aboutsummaryrefslogtreecommitdiff
path: root/xorg-server
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-10-05 15:13:41 +0000
committermarha <marha@users.sourceforge.net>2009-10-05 15:13:41 +0000
commit78db264e7992131e0781bdfa5ede821305262b2d (patch)
tree7461ae9dab5bf69f056250fc233c1ada393dc957 /xorg-server
parent1d2fa791e7eb383cf2818bb2e33da546edbeade9 (diff)
parent77a4732b0637493966889fe3545966fdc12a1b5e (diff)
downloadvcxsrv-78db264e7992131e0781bdfa5ede821305262b2d.tar.gz
vcxsrv-78db264e7992131e0781bdfa5ede821305262b2d.tar.bz2
vcxsrv-78db264e7992131e0781bdfa5ede821305262b2d.zip
svn merge https://vcxsrv.svn.sourceforge.net/svnroot/vcxsrv/branches/released .
Diffstat (limited to 'xorg-server')
-rw-r--r--xorg-server/ChangeLog608
-rw-r--r--xorg-server/Xext/shm.c43
-rw-r--r--xorg-server/Xi/exevents.c4
-rw-r--r--xorg-server/Xi/queryst.c2
-rw-r--r--xorg-server/composite/compinit.c59
-rw-r--r--xorg-server/configure395
-rw-r--r--xorg-server/configure.ac67
-rw-r--r--xorg-server/dix/Makefile.am2
-rw-r--r--xorg-server/dix/Makefile.in13
-rw-r--r--xorg-server/dix/Xserver.d7
-rw-r--r--xorg-server/dix/colormap.c5456
-rw-r--r--xorg-server/dix/eventconvert.c12
-rw-r--r--xorg-server/dix/events.c4
-rw-r--r--xorg-server/dix/getevents.c18
-rw-r--r--xorg-server/exa/exa.c78
-rw-r--r--xorg-server/exa/exa_glyphs.c2
-rw-r--r--xorg-server/exa/exa_migration_classic.c1462
-rw-r--r--xorg-server/exa/exa_migration_mixed.c179
-rw-r--r--xorg-server/exa/exa_mixed.c91
-rw-r--r--xorg-server/exa/exa_priv.h22
-rw-r--r--xorg-server/exa/exa_render.c12
-rw-r--r--xorg-server/exa/exa_unaccel.c1064
-rw-r--r--xorg-server/glx/glxscreens.c980
-rw-r--r--xorg-server/hw/dmx/Makefile.am5
-rw-r--r--xorg-server/hw/dmx/Makefile.in12
-rw-r--r--xorg-server/hw/dmx/dmx-config.h13
-rw-r--r--xorg-server/hw/dmx/input/dmxevents.c8
-rw-r--r--xorg-server/hw/kdrive/ephyr/Xephyr.man.pre5
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.c2370
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrinit.c828
-rw-r--r--xorg-server/hw/kdrive/src/kinfo.c6
-rw-r--r--xorg-server/hw/xfree86/common/compiler.h16
-rw-r--r--xorg-server/hw/xfree86/common/xf86DGA.c29
-rw-r--r--xorg-server/hw/xfree86/loader/sdksyms.c2
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Crtc.c4
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Crtc.h8
-rw-r--r--xorg-server/hw/xfree86/modes/xf86DiDGA.c15
-rw-r--r--xorg-server/hw/xfree86/modes/xf86EdidModes.c2
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Rotate.c10
-rw-r--r--xorg-server/hw/xfree86/os-support/hurd/hurd_video.c2
-rw-r--r--xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c52
-rw-r--r--xorg-server/hw/xfree86/os-support/shared/bios_mmap.c2
-rw-r--r--xorg-server/hw/xfree86/vgahw/vgaHW.c16
-rw-r--r--xorg-server/hw/xquartz/GL/capabilities.c14
-rw-r--r--xorg-server/hw/xquartz/GL/visualConfigs.c2
-rw-r--r--xorg-server/hw/xquartz/Makefile.am2
-rw-r--r--xorg-server/hw/xquartz/Makefile.in5
-rw-r--r--xorg-server/hw/xquartz/X11Application.m44
-rw-r--r--xorg-server/hw/xquartz/X11Controller.m4
-rw-r--r--xorg-server/hw/xquartz/applewm.c19
-rw-r--r--xorg-server/hw/xquartz/darwin.c12
-rw-r--r--xorg-server/hw/xquartz/darwinEvents.c246
-rw-r--r--xorg-server/hw/xquartz/darwinEvents.h7
-rw-r--r--xorg-server/hw/xquartz/mach-startup/bundle-main.c15
-rw-r--r--xorg-server/hw/xquartz/mach-startup/launchd_fd.c2
-rw-r--r--xorg-server/hw/xquartz/mach-startup/stub.c30
-rw-r--r--xorg-server/hw/xquartz/quartz.c17
-rw-r--r--xorg-server/hw/xquartz/quartz.h10
-rw-r--r--xorg-server/hw/xquartz/quartzAudio.c2
-rw-r--r--xorg-server/hw/xquartz/quartzCocoa.m57
-rw-r--r--xorg-server/hw/xquartz/quartzKeyboard.c8
-rw-r--r--xorg-server/hw/xquartz/quartzKeyboard.h2
-rw-r--r--xorg-server/hw/xquartz/xpr/appledri.c2
-rw-r--r--xorg-server/hw/xquartz/xpr/x-hash.h2
-rw-r--r--xorg-server/hw/xquartz/xpr/xpr.h2
-rw-r--r--xorg-server/hw/xquartz/xpr/xprCursor.c4
-rw-r--r--xorg-server/hw/xquartz/xpr/xprEvent.c49
-rw-r--r--xorg-server/hw/xquartz/xpr/xprEvent.h2
-rw-r--r--xorg-server/hw/xquartz/xpr/xprFrame.c8
-rw-r--r--xorg-server/hw/xquartz/xpr/xprScreen.c4
-rw-r--r--xorg-server/include/colormap.h5
-rw-r--r--xorg-server/include/dix.h1
-rw-r--r--xorg-server/include/events.h3
-rw-r--r--xorg-server/include/eventstr.h18
-rw-r--r--xorg-server/mi/mieq.c3
-rw-r--r--xorg-server/mi/miexpose.c21
-rw-r--r--xorg-server/mi/miinitext.c12
-rw-r--r--xorg-server/miext/rootless/rootlessWindow.c26
-rw-r--r--xorg-server/os/Makefile.am2
-rw-r--r--xorg-server/os/Makefile.in13
-rw-r--r--xorg-server/render/glyph.c97
-rw-r--r--xorg-server/render/picture.c5
-rw-r--r--xorg-server/render/render.c6
-rw-r--r--xorg-server/xkbdata.src/ChangeLog4
-rw-r--r--xorg-server/xkbdata.src/NEWS1
-rw-r--r--xorg-server/xkbdata.src/compat/compat.dir32
-rw-r--r--xorg-server/xkbdata.src/configure20
-rw-r--r--xorg-server/xkbdata.src/configure.in2
-rw-r--r--xorg-server/xkbdata.src/geometry/geometry.dir92
-rw-r--r--xorg-server/xkbdata.src/keycodes/keycodes.dir60
-rw-r--r--xorg-server/xkbdata.src/keymap/keymap.dir316
-rw-r--r--xorg-server/xkbdata.src/po/bg.po1260
-rw-r--r--xorg-server/xkbdata.src/po/ca.po1262
-rw-r--r--xorg-server/xkbdata.src/po/cs.po1262
-rw-r--r--xorg-server/xkbdata.src/po/da.po1611
-rw-r--r--xorg-server/xkbdata.src/po/de.po1280
-rw-r--r--xorg-server/xkbdata.src/po/eo.po1557
-rw-r--r--xorg-server/xkbdata.src/po/fi.po1603
-rw-r--r--xorg-server/xkbdata.src/po/fr.po1279
-rw-r--r--xorg-server/xkbdata.src/po/hu.po2022
-rw-r--r--xorg-server/xkbdata.src/po/id.po1274
-rw-r--r--xorg-server/xkbdata.src/po/it.po1315
-rw-r--r--xorg-server/xkbdata.src/po/ky.po2738
-rw-r--r--xorg-server/xkbdata.src/po/lt.po1340
-rw-r--r--xorg-server/xkbdata.src/po/nl.po2277
-rw-r--r--xorg-server/xkbdata.src/po/ru.po2549
-rw-r--r--xorg-server/xkbdata.src/po/sv.po1573
-rw-r--r--xorg-server/xkbdata.src/po/vi.po1260
-rw-r--r--xorg-server/xkbdata.src/symbols/inet1
-rw-r--r--xorg-server/xkbdata.src/symbols/symbols.dir1248
-rw-r--r--xorg-server/xkbdata.src/types/types.dir12
-rw-r--r--xorg-server/xkbdata.src/xkeyboard-config.spec2
112 files changed, 23261 insertions, 20759 deletions
diff --git a/xorg-server/ChangeLog b/xorg-server/ChangeLog
index 838924c38..67410e90e 100644
--- a/xorg-server/ChangeLog
+++ b/xorg-server/ChangeLog
@@ -1,3 +1,611 @@
+commit 4257023c1e40387aff096d5f00d746d3f7a521b4
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Oct 2 14:05:43 2009 +1000
+
+ xserver 1.7.0
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 15b4faff281ad8abce6b32fe2fc855eb6da42476
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Oct 1 21:19:11 2009 +1000
+
+ dix: force a minimum of 0 for screen coordinates.
+
+ Currently the root coordinates may fall into ]-1..0] if the subpixel
+ remainder is less than 0. Screen coordinates mustn't go below 0, so use
+ miPointerSetPosition to cap off the remainder if the coordinates are below
+ 0.
+
+ This is cheating a bit, a more comprehensive solution to deal with subpixels
+ correctly when crossing screens is needed. For now, this'll do.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Acked-by: Simon Thum <simon.thum@gmx.de>
+ (cherry picked from commit 45f447dafded5adfe11b7df3325c2d8f6ae0639b)
+
+commit 3788113618977bdc83e3ec1e7ca3160bad9a0d13
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Oct 2 09:34:24 2009 +1000
+
+ configure: if xnest was requested but modules weren't found, fail.
+
+ Tested-by: Xavier Chantry <shiningxc@gmail.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Acked-by: Julien Cristau <jcristau@debian.org>
+ (cherry picked from commit 64fe5784b49347e1fd27b0c463be5c16557594c9)
+
+commit c3034dc3af450802dda156136d9fabbc1cc58836
+Author: Dave Airlie <airlied@redhat.com>
+Date: Thu Oct 1 15:25:55 2009 +1000
+
+ rotate: drop unwrapping inside block handler.
+
+ Keith has shown half the block handlers wrappers are wrong, also
+ dynamic wrapping/unwrapping from what I can see will happen after
+ the drivers, so its really accidental ABI, that we can't change
+ now without modifing drivers. So be safe for 1.7.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ Declared-as-sane-by: Keith Packard <keithp@keithp.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 3ebb82d61c2b56e8f7145443a552a4e913bbfc80)
+
+commit 47c0b80915d67346ec63b36b659a96b77e777a71
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Oct 1 10:03:42 2009 +1000
+
+ render: Fix crash in RenderAddGlyphs (#23645)
+
+ This patch fixes two bugs:
+ size is calculated as glyph height * padded_width. If the client submits
+ garbage, this may get above INT_MAX, resulting in a negative size if size is
+ unsigned. The sanity checks don't trigger for negative sizes and the server
+ goes and writes into random memory locations.
+
+ If the client submits glyphs with a width or height 0, the destination
+ pixmap is NULL, causing a null-pointer dereference. Since there's nothing to
+ composite if the width/height is 0, we might as well skip the whole thing
+ anyway.
+
+ Tested with Xvfb, Xephyr and Xorg.
+
+ X.Org Bug 23645 <http://bugs.freedesktop.org/show_bug.cgi?id=23645>
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit 622fc98fd08aba98369e6933c3ab8c9ff85385d5)
+
+commit 30ebee3bfcadf915be98d407610c615e3e00f9c1
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Oct 1 15:22:19 2009 +1000
+
+ render: set the glyph picture to NULL by default.
+
+ In a follow-up patch we may have glyphs with a NULL picture. To cope with
+ that, always set the pictures for glyphs to NULL at creation time and cope
+ with cleaning up such glyphs. Also, since compositing a NULL source doesn't
+ do a lot anyway, skip trying to do so.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit 758ab55d2defc78d0169fd61a7036eb9f889e9e7)
+
+commit 8026c5a08584419be3adecd5965dd03e793ddf81
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Thu Oct 1 15:17:11 2009 +1000
+
+ exa: avoid infinite loops if UTS sw fallbacks.
+
+ The upload in finish access can cause an infinite loop if
+ UTS returns FALSE in here.
+
+ Fixes fd.o bug #24246.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit b5fcc5553eb784c9f4826936e839079c0cdee55a)
+
+commit e182c1b4368c6958579732dd4ddc59de2b46359b
+Author: Keith Packard <keithp@keithp.com>
+Date: Wed Sep 30 11:40:19 2009 -0700
+
+ Re-fix DGA removal.
+
+ Removing DGA ended up breaking any drivers calling into the old
+ xf86DiDGAInit function as it tried to see if DGA was already enabled
+ and ended up crashing if the VT wasn't completely initialized. Oops.
+
+ Also, if the driver initializes DGA itself, have the DiDGA
+ initialization overwrite that information as the DiDGA code will call
+ ReInit on mode detect.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit db98b26ee145f70e732e2cf4a6ac3de77fdf4adc)
+
+commit 369b5d526b699cd1c5cd38bb5a823ec66c5286ef
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Sep 29 11:49:09 2009 +1000
+
+ dix/glx/composite: consolidate visual resize in one place.
+
+ The previous code was copied and in both cases incorrectly fixed
+ up the colormaps after resizing the visuals, this patch consolidates
+ the visual resize + colormaps fixups in one place. This version
+ also consolidates the vid allocation for the DepthPtr inside the
+ function.
+
+ I'm not 100% sure colormap.[ch] is the correct place for this but
+ visuals are mostly created in fb and I know thats not the place to
+ be resizing them.
+
+ Fixes fd.o bug #19470.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 6ffda5aae75272fabdc27d6f693ae827be119e95)
+
+commit d3ba814884154150ed3e6a71254dec7312593488
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Tue Sep 29 08:56:59 2009 +0200
+
+ Fix ShmPutImage non-ZPixmap case.
+
+ Fixes http://bugs.freedesktop.org/show_bug.cgi?id=23298 .
+ (cherry picked from commit 11817a881cb93a89788105d1e575a468f2a8d27c)
+
+commit 8fc0d54cbaf791d947c7bab23f2e982cabd7c958
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Sep 28 14:18:45 2009 +1000
+
+ ephyr: if -parent is given, check for a trailing -screen. (#24144)
+
+ If -parent is given, don't open up a new window if -screen is given as well.
+ The commandline option -screen allows to set the depth of the embedded
+ Xephry instance, even though width and height are autoscaled on -parent.
+
+ This patch checks for a -screen parameter after -parent and - if one is
+ found - delays initializing the screen. The parent window id is stored
+ temporarily but re-set after a -screen argument.
+ The following command is thus valid:
+
+ Xephyr -parent 1234 -screen 640x480@8 -screen 1024x768
+
+ It embeds the first 8-bit screen into window 1234 and opens up a new window
+ for the second screen. Multiple parent arguments are possible, the screens
+ are embedded in-order.
+
+ X.Org Bug 24144 <http://bugs.freedesktop.org/show_bug.cgi?id=24144>
+
+ Tested-by: Vic Lee
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 19be992d9dc542b61fa3f4fd32a09071c9e64880)
+
+commit 857ec3e6fff571398dfcd9b4728b5c38cbcd3fcb
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Sep 28 13:59:25 2009 +1000
+
+ xfree86: use the DDC size if either width or height of DisplaySize is bogus.
+
+ If either width or height of DisplaySize is invalid, assume that the
+ configuration is invalid and use the DDC-reported values instead.
+
+ See Comment 9, Bug 9758.
+ http://bugs.freedesktop.org/show_bug.cgi?id=9758#c9
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Acked-by: Dave Airlie <airlied@redhat.com>
+ (cherry picked from commit 83023ffd09a84ff48e6b99f57ebad101a00478db)
+
+commit 2d4bab18c0d894619f044f29769c67c2f63b540a
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Sep 23 10:53:51 2009 +1000
+
+ render: Plug a memory leak in AddGlyph. (#23286)
+
+ AddGlyph was missing the FreePicture() call that DeleteGlyph used, resulting
+ in a memory leak when more than one Glyph was added in a RenderAddGlyphs
+ request.
+
+ Since the code in AddGlyph and DeleteGlyph is identical, move into a static
+ function to avoid such mistakes in the future.
+
+ X.Org Bug 23286 <http://bugs.freedesktop.org/show_bug.cgi?id=23286>
+ (cherry picked from commit f772014c435f56db56520ca13ffa39431684f122)
+
+commit 290a9639db3e420ec4caf0e6aee9f7386724c765
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Sep 28 21:05:11 2009 +1000
+
+ xserver 1.6.99.903 (xserver 1.7 RC3)
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 8c83457c60a4e02ca61086c7218dcd0e054926ba
+Merge: 6af44db b49dba3
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Sep 28 16:48:46 2009 +1000
+
+ Merge remote branch 'origin/xorg-server-1.7-apple' into server-1.7-branch
+
+commit 6af44db315121ea24cec390d144514bf56908b2c
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Thu Sep 24 12:57:02 2009 +0200
+
+ configure: make XNEST default to auto.
+
+ When we're checking whether to build Xnest, we're comparing the
+ variable to auto but before it never was assigned that.
+
+ Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
+
+ [Xnest was enabled to yes to increase build exposure and catch compiler
+ errors early. The requirements to Xnest are quite low and I expect most
+ developers have them, so Xnext will be enabled on most boxes. Anyone
+ missing those requires probably doesn't want to build Xnest anyway.]
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 3db28f92b0c810b452506abbed299a204c90ba0b)
+
+commit b49dba33f94b51ba9a14803f0d81ccde2cb778f8
+Author: Ben Byer <bbyer@freedesktop.org>
+Date: Sun Sep 27 10:35:53 2009 -0700
+
+ Add (ok, fix) support for DTrace under OS X
+ (cherry picked from commit 8428a57184f542941d2c8c90e97d18e111a69dd2)
+
+commit cf2e3312cff3f341e9edba8c321a4ca7ffd8748e
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Sep 27 23:09:51 2009 -0700
+
+ Rootless: Correct border rendering on parent-relative windows
+
+ Resurected code from the punted RootlessPaintBackground/Border and added it conditionally to miPaintWindow
+
+commit dadab5a2279a19dcf709402d7f22f0cd48670db0
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Sep 27 23:00:59 2009 -0700
+
+ XQuartz: Fix QuartzSetCursor to match the expected prototype.
+
+commit 54000bdcbca52a2de31f7c1a1147de6d8e9dbbb8
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Sep 27 22:57:25 2009 -0700
+
+ XQuartz: Fix a bunch of compilation warnings about style
+
+commit 29cb904e4de2411a9b6dbe68694954788f0525f7
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Sep 27 22:29:49 2009 -0700
+
+ XQuartz: Nuke TSM
+
+ It's deprecated in SnowLeopard. Ben and I both have no idea what it is for. It says something about unicode input, but urxvt seems fine taking in unicode, so /shrug... bye.
+
+commit de6cee11e1c335a0e5f708e7641e81d3cfe52529
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Sep 27 22:26:22 2009 -0700
+
+ XQuartz: Fix inverse map from mode_switch to alt
+
+commit 7e6640b55503b6ee797ab2589f7debcbfa531958
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Sep 28 12:20:03 2009 +1000
+
+ Revert "alpha: kill xf86SlowBCopyToBus and xf86SlowBCopyFromBus"
+
+ The vesa driver still uses slowbcopy_frombus and slowbcopy_tobus.
+
+ This reverts commit 5ef53a94ce4e48e11de26290cd677266308640c8.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit ceaa5c779ceed3de5ea53727649613be3133b24e
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Sep 27 18:25:57 2009 -0700
+
+ XQuartz: Force a keymap resync on the first keypress to workaround XKB mucking with our keymap.
+
+ We need to find a better way to work with XKB on this.
+
+commit a3dbde2de87ee4f577748a8c447501a3ea462559
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Sep 27 17:08:12 2009 -0700
+
+ XQuartz: Transition from xEvent based mieq to InternalEvent
+
+commit 4aeac52c495c4cf691de7ef7d9e4030e90b3c8b8
+Merge: 498135f 77099b9
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Sep 28 09:54:53 2009 +1000
+
+ Merge remote branch 'origin/xorg-server-1.7-apple' into server-1.7-branch
+
+commit 498135f26e8504e103ffe4512acf6fddca8e92e8
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Sun Sep 27 17:30:23 2009 +0200
+
+ xfree86: Hurd fix
+
+ I hadn't paid attention that the parameters order had changed, here is a
+ trivial patch, please apply.
+
+ Signed-off-by: Julien Cristau <jcristau@debian.org>
+ (cherry picked from commit 78ad6ca9a97440b74019c00a28144ea7d1e03431)
+
+commit 77099b933a0362d40a28f9afea46c5cc97c29e13
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Sep 26 23:41:45 2009 -0700
+
+ XQuartz: Stop checking version numbers of the bundle because CFBundleGetVersionNumber is gimpish
+ (cherry picked from commit 9f5bdd89608ec12012592ff395b82e954fbb4da8)
+
+commit 7958f6b75b3c6b8a827188af2e684f181bdd7688
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Sep 26 22:52:39 2009 -0700
+
+ XQuartz: Add pressure/tilt property labels
+
+commit 29b2d9cdf5095399b79d9ff2a2f12f5a9c49cf1f
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Sep 26 22:48:49 2009 -0700
+
+ XQuartz: Fix a brain-o array indexing problem
+
+ /bop Peter
+
+commit fd1adc21a931e2dd1ff2e52b60a77c2153a30fe0
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Sep 26 22:17:09 2009 -0700
+
+ XQuartz: Nuke duplicate locks that make painful headaches
+
+commit 6e4fc5d066d9c1ea4fca444cfee1e73147c5fefb
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Sep 26 22:13:49 2009 -0700
+
+ Xi: CopyKeyClass is not static for XQuartz
+
+commit e0e2eaf1f30ebce4c0ff28416259d8e976fdf0d7
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Fri Aug 7 00:02:21 2009 -0700
+
+ XQuartz: Use internal xshm header for new xextproto
+ (cherry picked from commit 1755239330c0bdac820d88a3e06ff391d65f29be)
+ (cherry picked from commit 697be460d0e555e2c75eed6889293650e02d423c)
+
+commit 1a0dfde2d102d845f1ceda66ad7a078aa1b42ef9
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Wed Sep 23 17:41:28 2009 -0700
+
+ XQuartz: GLX capabilities: Allow 16bit accumulation buffers
+
+ http://xquartz.macosforge.org/trac/ticket/308
+ (cherry picked from commit e9e63a2118b76b6c31c4081fec08a99e4d796e22)
+
+commit 0c6423b3d52af85cd990811f7be982c0b6ed7c32
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Sun Sep 27 02:08:10 2009 +0200
+
+ EXA: Fix mixed pixmaps crash with missing / failing UploadToScreen hook.
+
+ For the recent mixed pixmaps changes, I failed to realize (or hit in my
+ testing) a problem which can occur if the driver doesn't provide an
+ UploadToScreen hook or provides one which can fail: There can be a crash
+ in exaMemcpyBox() because exaCopyDirtyToFb() passes pExaPixmap->fb_ptr to
+ exaCopyDirty(), but that's normally NULL with driver allocated pixmaps.
+
+ The solution is to make exaCopyDirty*() no longer rely on pExaPixmap->fb_ptr
+ but use pPixmap->devPrivate.ptr after PrepareAccess instead.
+
+ Fixes http://bugs.freedesktop.org/show_bug.cgi?id=24167 .
+ (cherry picked from commit 73ae547d5e687ef10dea45801fc627e10ac4b659)
+
+commit bb7c26e38c262614c5d1c21fc7a04c71a9028e51
+Author: Kevin E Martin <kem@redhat.com>
+Date: Sat Sep 26 13:10:54 2009 +1000
+
+ dmx: undefine MITSHM, move undefs to miinitext.c.
+
+ This patch undefines MITSHM for dmx - we don't support the required
+ screen->ModifyPixmapHeaders. All undefines are moved from dmx-config to
+ miinitext.c, where they belong.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit c9ec2bab2f258798fd6e6676698c732f09571a60)
+
+commit 72f0194be1558f244bad85197ccc50e17561df50
+Author: Kevin E Martin <kem@redhat.com>
+Date: Sat Sep 26 13:09:52 2009 +1000
+
+ dmx: reshuffle linker order to avoid errors when MITSHM is undefined.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit fc9d733bab3ff0e4e51b19c73b66196dca563a70)
+
+commit e4edb4f2e6ca960b68629783459920faa86d8671
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Sep 25 14:53:33 2009 +1000
+
+ dmx: core events are always in screen coordinates when passed to GPE.
+
+ This fixes input in dmx, the pointer appears at the right positions to the
+ clients now.
+
+ Also mark the spot where we pass in the button state as valuator to GPE
+ with a FIXME. (??)
+
+ Tested-by: Kevin Martin
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit e7c2598f565e8252dd66ee3e6212b310856476cb)
+
+commit 7c9e0b07780b664ebbcee2d6be4bce645cb8c5b2
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Sep 24 14:07:26 2009 +1000
+
+ Xi: update axisVals with the right subpixel data.
+
+ Subpixel data in data_frac is stored as FP32.32, hence we need to get that
+ down again before adding it to the current value.
+
+ Reported-by: Thomas Jaeger
+ Tested-by: Thomas Jaeger
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 9bd08c690fc687c4d69bb70536f3079a9184476d)
+
+commit 1745808c2939d7dc08d3d8acae425e5eeb6a16ca
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Sep 23 21:49:11 2009 +1000
+
+ configure: Unify all library defines that require a specific version.
+
+ This patch moves all libraries that require a specific version into a single
+ location instead or duplicating them across the configure.ac file.
+ Libraries that do not require specific versions are left where they are.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 43a2eb794f19a2ba56d653f465fc5f6b2ff0d3d3)
+
+commit e5371c7fc895c51092bd5b2d303e4835c123bd5c
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Sat Sep 26 01:59:39 2009 +0200
+
+ EXA: Extend mixed pixmaps scheme to allow driver PrepareAccess hook to fail.
+
+ If the PrepareAccess hook fails, use the DownloadFromScreen hook to retrieve
+ driver pixmap contents to a system RAM copy, perform software rendering on that
+ and copy the results back using the UploadToScreen hook. Use the classic
+ migration logic to minimize transfers (which as a bonus allows slightly
+ cleaning up some of the existing mixed pixmap code).
+
+ This enables things that weren't possible before with driver-allocated pixmap
+ storage: If some (or all) GPU pixmap storage can't be mapped directly by the
+ CPU, this can be handled between the PrepareAccess and
+ DownloadFrom/UploadToScreen hooks, e.g.:
+
+ * Radeon KMS on big endian machines can fail PrepareAccess if the pixmap
+ requires byte-swapping and swap bytes in DownloadFrom/UploadToScreen.
+ * Environments where GPU and CPU don't have a shared address space at all.
+ Here the driver PrepareAccess hook will always fail and leave all transfers
+ between GPU / CPU storage to the Download/From/UploadToScreen hooks.
+
+ Drivers which can handle all pixmaps in the PrepareAccess hook should notice
+ little if any difference.
+ (cherry picked from commit 1818cbd70fc1f2e1487b4c678e67e28f1265c0ef)
+
+commit cecd484fbb3db273472d0bf0ec45d8604ff0cde2
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Sep 22 20:34:54 2009 +1000
+
+ Require libXext >= 1.0.99.4
+
+ Reported-by: Tilman Sauerbeck
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 9fa73be9fa543a686ea35c861084f5af37d44caa)
+
+commit f188fabfe264dfec1950c168e2d9c22f13797b93
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Sep 23 11:43:27 2009 +1000
+
+ kdrive: plug two memory leaks when freeing the KdKeyboard/Pointer.
+
+ xkbRules, xkbModel and xkbLayout are strdup'd in KdNewKeyboard, need to be
+ freed.
+
+ The ephyr driver strdups the name on top of the already allocated
+ kdrive-assigned name. Memory must be freed beforehand.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit a9c274df5c37cb4ece6449e934342d8ff8e61705)
+
+commit 48ab48a6ce12605c7353b45dff4e3a4338b9132e
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Sep 23 11:44:12 2009 +1000
+
+ dix: plug memory leak in DeviceEnterLeaveEvents.
+
+ 'event' must be freed before exiting.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit fd913136732ff14a0484ca28f60ac1fbf49be81d)
+
+commit 9e39491166eb4540bbc72e963e673c976301e936
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Sep 24 14:05:52 2009 +1000
+
+ Xi: fix length calculation for ValuatorState in QueryDeviceState reply.
+
+ The length field needs to include the bytes required for the valuators
+ (INT32) as well.
+
+ The reply length has the right value and since the valuator state is always
+ last, clients didn't notice the wrong offset.
+
+ Tested-by: Thomas Jaeger
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 6ee796e9bb4e46782b50a69c7b4fa5b49576f139)
+
+commit a9e2f7ac15f426560ac01689ec66f2db32424884
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Sep 23 12:32:44 2009 +1000
+
+ configure: fix up tslib check once again.
+
+ This patch addresses two issues:
+ The check for HAVE_TSLIB = xauto can never be true, the check has been
+ corrected to TSLIB = xauto.
+
+ Pre-pkgconfig versions of tslib fail to be found, this patch restores the
+ additional AC_CHECK_LIB. However, the pgk-config check must happen before
+ AC_CHECK_LIB, as AC_CHECK_LIB does not seem to honour the LD_LIBRARY_PATH.
+ Thus, if tslib is installed outside of the default paths, AC_CHECK_LIB
+ fails.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Acked--by: Daniel Stone <daniel@fooishbar.org>
+ (cherry picked from commit 3b5bbb149d4c932d9624336f5cbe9fe71c87bea3)
+
+commit 1f74cfdeacb88b466d8f2005af191db30dde2a86
+Author: Thomas Jaeger <thjaeger@gmail.com>
+Date: Tue Sep 22 20:16:21 2009 -0400
+
+ dix: report XI1 axis values correctly if first_valuator != 0
+
+ Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 5402f18d9c3f7ba19cc05b3a814e3a9e94c8d551)
+
+commit 8867c60782909816826054ed0587094e58eb39e6
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Wed Sep 23 13:10:05 2009 +0200
+
+ render: Don't add b8g8r8x8 format for depth 24.
+
+ The components are required to be packed in the bottom of the pixel, so this
+ format can't fit in depth 24.
+
+ Also fix up a comment for the addition of BGRA formats.
+ (cherry picked from commit ce1fe8ddb4a4dbe6cfd909e5b1b73b459d742bec)
+
+commit ac1490b651a251407e1bbc98e3ccd265a9e491b5
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Wed Sep 23 08:24:06 2009 +0200
+
+ EXA: Fix some issues pointed out by clang.
+
+ Remove dead variables, fix use of uninitialized values, that kind of thing.
+ (cherry picked from commit 096f21bb7a1217443d8a03529b1a2938518eb24f)
+
+commit 6b656c3498fa1bdbf93b2951b27cc8ff00e65990
+Author: Simon Thum <simon.thum@gmx.de>
+Date: Mon Sep 21 15:23:27 2009 +0200
+
+ dix: move bounds check before access
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ (cherry picked from commit 824a09d856a5f750694e11d2fd2faaa3de705eaa)
+
commit 9c1a18377afdb919a648a96c4195113121902cfe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Sep 22 12:44:19 2009 +1000
diff --git a/xorg-server/Xext/shm.c b/xorg-server/Xext/shm.c
index d3393bfed..8a1defdb0 100644
--- a/xorg-server/Xext/shm.c
+++ b/xorg-server/Xext/shm.c
@@ -516,15 +516,40 @@ doShmPutImage(DrawablePtr dst, GCPtr pGC,
char *data)
{
PixmapPtr pPixmap;
-
- pPixmap = GetScratchPixmapHeader(dst->pScreen, w, h, depth,
- BitsPerPixel(depth),
- PixmapBytePad(w, depth),
- data);
- if (!pPixmap)
- return;
- pGC->ops->CopyArea((DrawablePtr)pPixmap, dst, pGC, sx, sy, sw, sh, dx, dy);
- FreeScratchPixmapHeader(pPixmap);
+
+ if (format == ZPixmap || depth == 1) {
+ pPixmap = GetScratchPixmapHeader(dst->pScreen, w, h, depth,
+ BitsPerPixel(depth),
+ PixmapBytePad(w, depth),
+ data);
+ if (!pPixmap)
+ return;
+ pGC->ops->CopyArea((DrawablePtr)pPixmap, dst, pGC, sx, sy, sw, sh, dx, dy);
+ FreeScratchPixmapHeader(pPixmap);
+ } else {
+ GCPtr putGC = GetScratchGC(depth, dst->pScreen);
+
+ if (!putGC)
+ return;
+
+ pPixmap = (*dst->pScreen->CreatePixmap)(dst->pScreen, sw, sh, depth,
+ CREATE_PIXMAP_USAGE_SCRATCH);
+ if (!pPixmap) {
+ FreeScratchGC(putGC);
+ return;
+ }
+ ValidateGC(&pPixmap->drawable, putGC);
+ (*putGC->ops->PutImage)(&pPixmap->drawable, putGC, depth, -sx, -sy, w, h, 0,
+ (format == XYPixmap) ? XYPixmap : ZPixmap, data);
+ FreeScratchGC(putGC);
+ if (format == XYBitmap)
+ (void)(*pGC->ops->CopyPlane)(&pPixmap->drawable, dst, pGC, 0, 0, sw, sh,
+ dx, dy, 1L);
+ else
+ (void)(*pGC->ops->CopyArea)(&pPixmap->drawable, dst, pGC, 0, 0, sw, sh,
+ dx, dy);
+ (*pPixmap->drawable.pScreen->DestroyPixmap)(pPixmap);
+ }
}
#ifdef PANORAMIX
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c
index 52a0fe3e6..8d56aa270 100644
--- a/xorg-server/Xi/exevents.c
+++ b/xorg-server/Xi/exevents.c
@@ -194,7 +194,7 @@ XIGetDevice(xEvent* xE)
* This code is basically the old SwitchCoreKeyboard.
*/
-static void
+void
CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
{
KeyClassPtr mk = master->key;
@@ -807,7 +807,7 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent* event)
{
/* XXX: Relative/Absolute mode */
v->axisVal[i] = event->valuators.data[i];
- v->axisVal[i] += event->valuators.data_frac[i];
+ v->axisVal[i] += (event->valuators.data_frac[i] * 1.0f / (1 << 16) / (1 << 16));
}
}
diff --git a/xorg-server/Xi/queryst.c b/xorg-server/Xi/queryst.c
index 60ec32ec9..2ba1edb63 100644
--- a/xorg-server/Xi/queryst.c
+++ b/xorg-server/Xi/queryst.c
@@ -147,7 +147,7 @@ ProcXQueryDeviceState(ClientPtr client)
if (v != NULL) {
tv = (xValuatorState *) buf;
tv->class = ValuatorClass;
- tv->length = sizeof(xValuatorState);
+ tv->length = sizeof(xValuatorState) + v->numAxes * 4;
tv->num_valuators = v->numAxes;
tv->mode = v->mode;
buf += sizeof(xValuatorState);
diff --git a/xorg-server/composite/compinit.c b/xorg-server/composite/compinit.c
index 6159e4e49..96ac70fd0 100644
--- a/xorg-server/composite/compinit.c
+++ b/xorg-server/composite/compinit.c
@@ -248,15 +248,9 @@ static Bool
compAddAlternateVisual(ScreenPtr pScreen, CompScreenPtr cs,
CompAlternateVisual *alt)
{
- VisualPtr visual, visuals;
- int i;
- int numVisuals;
- XID *installedCmaps;
- ColormapPtr installedCmap;
- int numInstalledCmaps;
+ VisualPtr visual;
DepthPtr depth;
PictFormatPtr pPictFormat;
- VisualID *vid;
unsigned long alphaMask;
/*
@@ -277,54 +271,13 @@ compAddAlternateVisual(ScreenPtr pScreen, CompScreenPtr cs,
pPictFormat->direct.red != pScreen->visuals[0].offsetRed)
return FALSE;
- vid = xalloc(sizeof(VisualID));
- if (!vid)
- return FALSE;
-
- /* Find the installed colormaps */
- installedCmaps = xalloc (pScreen->maxInstalledCmaps * sizeof (XID));
- if (!installedCmaps) {
- xfree(vid);
- return FALSE;
- }
- numInstalledCmaps = pScreen->ListInstalledColormaps(pScreen,
- installedCmaps);
-
- /* realloc the visual array to fit the new one in place */
- numVisuals = pScreen->numVisuals;
- visuals = xrealloc(pScreen->visuals, (numVisuals + 1) * sizeof(VisualRec));
- if (!visuals) {
- xfree(vid);
- xfree(installedCmaps);
- return FALSE;
+ if (ResizeVisualArray(pScreen, 1, depth) == FALSE) {
+ return FALSE;
}
- /*
- * Fix up any existing installed colormaps -- we'll assume that
- * the only ones created so far have been installed. If this
- * isn't true, we'll have to walk the resource database looking
- * for all colormaps.
- */
- for (i = 0; i < numInstalledCmaps; i++) {
- int j, rc;
-
- rc = dixLookupResourceByType((pointer *)&installedCmap,
- installedCmaps[i], RT_COLORMAP,
- serverClient, DixReadAccess);
- if (rc != Success)
- continue;
- j = installedCmap->pVisual - pScreen->visuals;
- installedCmap->pVisual = &visuals[j];
- }
-
- xfree(installedCmaps);
-
- pScreen->visuals = visuals;
- visual = visuals + pScreen->numVisuals; /* the new one */
- pScreen->numVisuals++;
+ visual = pScreen->visuals + (pScreen->numVisuals - 1); /* the new one */
/* Initialize the visual */
- visual->vid = FakeClientID (0);
visual->bitsPerRGBValue = 8;
if (PICT_FORMAT_TYPE(alt->format) == PICT_TYPE_COLOR) {
visual->class = PseudoColor;
@@ -357,10 +310,6 @@ compAddAlternateVisual(ScreenPtr pScreen, CompScreenPtr cs,
/* remember the visual ID to detect auto-update windows */
compRegisterAlternateVisuals(cs, &visual->vid, 1);
- /* Fix up the depth */
- *vid = visual->vid;
- depth->numVids = 1;
- depth->vids = vid;
return TRUE;
}
diff --git a/xorg-server/configure b/xorg-server/configure
index 8ef951bae..175a3d075 100644
--- a/xorg-server/configure
+++ b/xorg-server/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for xorg-server 1.6.99.902.
+# Generated by GNU Autoconf 2.63 for xorg-server 1.7.0.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xorg-server'
PACKAGE_TARNAME='xorg-server'
-PACKAGE_VERSION='1.6.99.902'
-PACKAGE_STRING='xorg-server 1.6.99.902'
+PACKAGE_VERSION='1.7.0'
+PACKAGE_STRING='xorg-server 1.7.0'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@@ -1999,7 +1999,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xorg-server 1.6.99.902 to adapt to many kinds of systems.
+\`configure' configures xorg-server 1.7.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2069,7 +2069,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xorg-server 1.6.99.902:";;
+ short | recursive ) echo "Configuration of xorg-server 1.7.0:";;
esac
cat <<\_ACEOF
@@ -2139,7 +2139,7 @@ Optional Features:
--enable-xorg Build Xorg server (default: auto)
--enable-dmx Build DMX server (default: auto)
--enable-xvfb Build Xvfb server (default: yes)
- --enable-xnest Build Xnest server (default: yes)
+ --enable-xnest Build Xnest server (default: auto)
--enable-xquartz Build Xquartz server for OS-X (default: auto)
--enable-standalone-xpbproxy
Build a standalone xpbproxy (in addition to the one
@@ -2401,7 +2401,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xorg-server configure 1.6.99.902
+xorg-server configure 1.7.0
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -2415,7 +2415,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xorg-server $as_me 1.6.99.902, which was
+It was created by xorg-server $as_me 1.7.0, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -2783,7 +2783,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-RELEASE_DATE="2009-9-22"
+RELEASE_DATE="2009-10-2"
am__api_version='1.11'
@@ -3266,7 +3266,7 @@ fi
# Define the identity of the package.
PACKAGE='xorg-server'
- VERSION='1.6.99.902'
+ VERSION='1.7.0'
cat >>confdefs.h <<_ACEOF
@@ -13513,11 +13513,6 @@ else
WDTRACE=auto
fi
-if test "x$WDTRACE" = xauto; then
- case $host_os in
- darwin*) WDTRACE="no" ;;
- esac
-fi
if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then
# Extract the first word of "dtrace", so it can be a program name with args.
set dummy dtrace; ac_word=$2
@@ -20019,7 +20014,7 @@ fi
if test "${enable_xnest+set}" = set; then
enableval=$enable_xnest; XNEST=$enableval
else
- XNEST=yes
+ XNEST=auto
fi
# Check whether --enable-xquartz was given.
@@ -21468,6 +21463,15 @@ APPLEWMPROTO="applewmproto >= 1.4"
REQUIRED_MODULES="randrproto >= 1.2.99.3 renderproto >= 0.11 fixesproto >= 4.1 damageproto >= 1.1 xcmiscproto >= 1.2.0 xextproto >= 7.0.99.3 xproto >= 7.0.13 xtrans >= 1.2.2 bigreqsproto >= 1.1.0 fontsproto inputproto >= 1.9.99.902 kbproto >= 1.0.3"
REQUIRED_LIBS="xfont xau pixman-1 >= 0.15.20"
+LIBAPPLEWM="applewm >= 1.4"
+LIBDRI="dri >= 7.1.0"
+LIBDRM="libdrm >= 2.3.0"
+LIBGL="gl >= 7.1.0"
+LIBXEXT="xext >= 1.0.99.4"
+LIBXI="xi >= 1.2.99.1"
+LIBPCIACCESS="pciaccess >= 0.8.0"
+LIBGLIB="glib-2.0 >= 2.16"
+
pkg_failed=no
{ $as_echo "$as_me:$LINENO: checking for DBUS" >&5
@@ -22270,12 +22274,12 @@ if test -n "$GL_CFLAGS"; then
pkg_cv_GL_CFLAGS="$GL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO gl >= 7.1.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "$GLPROTO gl >= 7.1.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO \$LIBGL\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$GLPROTO $LIBGL") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GL_CFLAGS=`$PKG_CONFIG --cflags "$GLPROTO gl >= 7.1.0" 2>/dev/null`
+ pkg_cv_GL_CFLAGS=`$PKG_CONFIG --cflags "$GLPROTO $LIBGL" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -22286,12 +22290,12 @@ if test -n "$GL_LIBS"; then
pkg_cv_GL_LIBS="$GL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO gl >= 7.1.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "$GLPROTO gl >= 7.1.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO \$LIBGL\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$GLPROTO $LIBGL") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GL_LIBS=`$PKG_CONFIG --libs "$GLPROTO gl >= 7.1.0" 2>/dev/null`
+ pkg_cv_GL_LIBS=`$PKG_CONFIG --libs "$GLPROTO $LIBGL" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -22309,14 +22313,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$GLPROTO gl >= 7.1.0" 2>&1`
+ GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$GLPROTO $LIBGL" 2>&1`
else
- GL_PKG_ERRORS=`$PKG_CONFIG --print-errors "$GLPROTO gl >= 7.1.0" 2>&1`
+ GL_PKG_ERRORS=`$PKG_CONFIG --print-errors "$GLPROTO $LIBGL" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GL_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements ($GLPROTO gl >= 7.1.0) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($GLPROTO $LIBGL) were not met:
$GL_PKG_ERRORS
@@ -22327,7 +22331,7 @@ Alternatively, you may set the environment variables GL_CFLAGS
and GL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements ($GLPROTO gl >= 7.1.0) were not met:
+$as_echo "$as_me: error: Package requirements ($GLPROTO $LIBGL) were not met:
$GL_PKG_ERRORS
@@ -22546,12 +22550,12 @@ if test -n "$DRI_CFLAGS"; then
pkg_cv_DRI_CFLAGS="$DRI_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO dri >= 7.1.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "$GLPROTO dri >= 7.1.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO \$LIBDRI\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$GLPROTO $LIBDRI") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DRI_CFLAGS=`$PKG_CONFIG --cflags "$GLPROTO dri >= 7.1.0" 2>/dev/null`
+ pkg_cv_DRI_CFLAGS=`$PKG_CONFIG --cflags "$GLPROTO $LIBDRI" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -22562,12 +22566,12 @@ if test -n "$DRI_LIBS"; then
pkg_cv_DRI_LIBS="$DRI_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO dri >= 7.1.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "$GLPROTO dri >= 7.1.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$GLPROTO \$LIBDRI\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$GLPROTO $LIBDRI") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DRI_LIBS=`$PKG_CONFIG --libs "$GLPROTO dri >= 7.1.0" 2>/dev/null`
+ pkg_cv_DRI_LIBS=`$PKG_CONFIG --libs "$GLPROTO $LIBDRI" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -22585,14 +22589,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- DRI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$GLPROTO dri >= 7.1.0" 2>&1`
+ DRI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$GLPROTO $LIBDRI" 2>&1`
else
- DRI_PKG_ERRORS=`$PKG_CONFIG --print-errors "$GLPROTO dri >= 7.1.0" 2>&1`
+ DRI_PKG_ERRORS=`$PKG_CONFIG --print-errors "$GLPROTO $LIBDRI" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$DRI_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements ($GLPROTO dri >= 7.1.0) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($GLPROTO $LIBDRI) were not met:
$DRI_PKG_ERRORS
@@ -22603,7 +22607,7 @@ Alternatively, you may set the environment variables DRI_CFLAGS
and DRI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements ($GLPROTO dri >= 7.1.0) were not met:
+$as_echo "$as_me: error: Package requirements ($GLPROTO $LIBDRI) were not met:
$DRI_PKG_ERRORS
@@ -22750,12 +22754,12 @@ if test -n "$LIBDRM_CFLAGS"; then
pkg_cv_LIBDRM_CFLAGS="$LIBDRM_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm >= 2.3.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "libdrm >= 2.3.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBDRM\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBDRM") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_LIBDRM_CFLAGS=`$PKG_CONFIG --cflags "libdrm >= 2.3.0" 2>/dev/null`
+ pkg_cv_LIBDRM_CFLAGS=`$PKG_CONFIG --cflags "$LIBDRM" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -22766,12 +22770,12 @@ if test -n "$LIBDRM_LIBS"; then
pkg_cv_LIBDRM_LIBS="$LIBDRM_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm >= 2.3.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "libdrm >= 2.3.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBDRM\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBDRM") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_LIBDRM_LIBS=`$PKG_CONFIG --libs "libdrm >= 2.3.0" 2>/dev/null`
+ pkg_cv_LIBDRM_LIBS=`$PKG_CONFIG --libs "$LIBDRM" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -22789,14 +22793,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBDRM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libdrm >= 2.3.0" 2>&1`
+ LIBDRM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$LIBDRM" 2>&1`
else
- LIBDRM_PKG_ERRORS=`$PKG_CONFIG --print-errors "libdrm >= 2.3.0" 2>&1`
+ LIBDRM_PKG_ERRORS=`$PKG_CONFIG --print-errors "$LIBDRM" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBDRM_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (libdrm >= 2.3.0) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($LIBDRM) were not met:
$LIBDRM_PKG_ERRORS
@@ -22807,7 +22811,7 @@ Alternatively, you may set the environment variables LIBDRM_CFLAGS
and LIBDRM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (libdrm >= 2.3.0) were not met:
+$as_echo "$as_me: error: Package requirements ($LIBDRM) were not met:
$LIBDRM_PKG_ERRORS
@@ -24482,12 +24486,12 @@ if test -n "$GLIB_CFLAGS"; then
pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\"") >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBGLIB\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBGLIB") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.16" 2>/dev/null`
+ pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "$LIBGLIB" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24498,12 +24502,12 @@ if test -n "$GLIB_LIBS"; then
pkg_cv_GLIB_LIBS="$GLIB_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\"") >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBGLIB\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBGLIB") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.16" 2>/dev/null`
+ pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "$LIBGLIB" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24521,9 +24525,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.16" 2>&1`
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$LIBGLIB" 2>&1`
else
- GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.16" 2>&1`
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "$LIBGLIB" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLIB_PKG_ERRORS" >&5
@@ -24667,7 +24671,7 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF
-if test "x$WDTRACE" != "xno" ; then
+if test "x$WDTRACE" != "xno" && test "x$XQUARTZ" = "xno"; then
DIX_LIB='$(top_builddir)/dix/dix.O'
OS_LIB='$(top_builddir)/os/os.O'
else
@@ -25274,12 +25278,12 @@ if test -n "$XNESTMODULES_CFLAGS"; then
pkg_cv_XNESTMODULES_CFLAGS="$XNESTMODULES_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfont xext x11 xau \$XDMCP_MODULES\"") >&5
- ($PKG_CONFIG --exists --print-errors "xfont xext x11 xau $XDMCP_MODULES") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfont \$LIBXEXT x11 xau \$XDMCP_MODULES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xfont $LIBXEXT x11 xau $XDMCP_MODULES") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XNESTMODULES_CFLAGS=`$PKG_CONFIG --cflags "xfont xext x11 xau $XDMCP_MODULES" 2>/dev/null`
+ pkg_cv_XNESTMODULES_CFLAGS=`$PKG_CONFIG --cflags "xfont $LIBXEXT x11 xau $XDMCP_MODULES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -25290,12 +25294,12 @@ if test -n "$XNESTMODULES_LIBS"; then
pkg_cv_XNESTMODULES_LIBS="$XNESTMODULES_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfont xext x11 xau \$XDMCP_MODULES\"") >&5
- ($PKG_CONFIG --exists --print-errors "xfont xext x11 xau $XDMCP_MODULES") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfont \$LIBXEXT x11 xau \$XDMCP_MODULES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xfont $LIBXEXT x11 xau $XDMCP_MODULES") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XNESTMODULES_LIBS=`$PKG_CONFIG --libs "xfont xext x11 xau $XDMCP_MODULES" 2>/dev/null`
+ pkg_cv_XNESTMODULES_LIBS=`$PKG_CONFIG --libs "xfont $LIBXEXT x11 xau $XDMCP_MODULES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -25313,9 +25317,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- XNESTMODULES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xfont xext x11 xau $XDMCP_MODULES" 2>&1`
+ XNESTMODULES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xfont $LIBXEXT x11 xau $XDMCP_MODULES" 2>&1`
else
- XNESTMODULES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xfont xext x11 xau $XDMCP_MODULES" 2>&1`
+ XNESTMODULES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xfont $LIBXEXT x11 xau $XDMCP_MODULES" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$XNESTMODULES_PKG_ERRORS" >&5
@@ -25349,6 +25353,11 @@ fi
if test "x$XNEST" = xyes; then
+ if test "x$have_xnest" = xno; then
+ { { $as_echo "$as_me:$LINENO: error: Xnest build explicitly requested, but required modules not found." >&5
+$as_echo "$as_me: error: Xnest build explicitly requested, but required modules not found." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB $MAIN_LIB $OS_LIB $CONFIG_LIB"
XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
@@ -25523,12 +25532,12 @@ if test -n "$PCIACCESS_CFLAGS"; then
pkg_cv_PCIACCESS_CFLAGS="$PCIACCESS_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pciaccess >= 0.8.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "pciaccess >= 0.8.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBPCIACCESS\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBPCIACCESS") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_PCIACCESS_CFLAGS=`$PKG_CONFIG --cflags "pciaccess >= 0.8.0" 2>/dev/null`
+ pkg_cv_PCIACCESS_CFLAGS=`$PKG_CONFIG --cflags "$LIBPCIACCESS" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -25539,12 +25548,12 @@ if test -n "$PCIACCESS_LIBS"; then
pkg_cv_PCIACCESS_LIBS="$PCIACCESS_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pciaccess >= 0.8.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "pciaccess >= 0.8.0") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBPCIACCESS\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBPCIACCESS") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_PCIACCESS_LIBS=`$PKG_CONFIG --libs "pciaccess >= 0.8.0" 2>/dev/null`
+ pkg_cv_PCIACCESS_LIBS=`$PKG_CONFIG --libs "$LIBPCIACCESS" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -25562,14 +25571,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- PCIACCESS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "pciaccess >= 0.8.0" 2>&1`
+ PCIACCESS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$LIBPCIACCESS" 2>&1`
else
- PCIACCESS_PKG_ERRORS=`$PKG_CONFIG --print-errors "pciaccess >= 0.8.0" 2>&1`
+ PCIACCESS_PKG_ERRORS=`$PKG_CONFIG --print-errors "$LIBPCIACCESS" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$PCIACCESS_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (pciaccess >= 0.8.0) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($LIBPCIACCESS) were not met:
$PCIACCESS_PKG_ERRORS
@@ -25580,7 +25589,7 @@ Alternatively, you may set the environment variables PCIACCESS_CFLAGS
and PCIACCESS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (pciaccess >= 0.8.0) were not met:
+$as_echo "$as_me: error: Package requirements ($LIBPCIACCESS) were not met:
$PCIACCESS_PKG_ERRORS
@@ -27975,12 +27984,12 @@ if test -n "$XPBPROXY_CFLAGS"; then
pkg_cv_XPBPROXY_CFLAGS="$XPBPROXY_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$APPLEWMPROTO applewm >= 1.4 xfixes x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "$APPLEWMPROTO applewm >= 1.4 xfixes x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$APPLEWMPROTO \$LIBAPPLEWM xfixes x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$APPLEWMPROTO $LIBAPPLEWM xfixes x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XPBPROXY_CFLAGS=`$PKG_CONFIG --cflags "$APPLEWMPROTO applewm >= 1.4 xfixes x11" 2>/dev/null`
+ pkg_cv_XPBPROXY_CFLAGS=`$PKG_CONFIG --cflags "$APPLEWMPROTO $LIBAPPLEWM xfixes x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -27991,12 +28000,12 @@ if test -n "$XPBPROXY_LIBS"; then
pkg_cv_XPBPROXY_LIBS="$XPBPROXY_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$APPLEWMPROTO applewm >= 1.4 xfixes x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "$APPLEWMPROTO applewm >= 1.4 xfixes x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$APPLEWMPROTO \$LIBAPPLEWM xfixes x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$APPLEWMPROTO $LIBAPPLEWM xfixes x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XPBPROXY_LIBS=`$PKG_CONFIG --libs "$APPLEWMPROTO applewm >= 1.4 xfixes x11" 2>/dev/null`
+ pkg_cv_XPBPROXY_LIBS=`$PKG_CONFIG --libs "$APPLEWMPROTO $LIBAPPLEWM xfixes x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28014,14 +28023,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- XPBPROXY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$APPLEWMPROTO applewm >= 1.4 xfixes x11" 2>&1`
+ XPBPROXY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$APPLEWMPROTO $LIBAPPLEWM xfixes x11" 2>&1`
else
- XPBPROXY_PKG_ERRORS=`$PKG_CONFIG --print-errors "$APPLEWMPROTO applewm >= 1.4 xfixes x11" 2>&1`
+ XPBPROXY_PKG_ERRORS=`$PKG_CONFIG --print-errors "$APPLEWMPROTO $LIBAPPLEWM xfixes x11" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$XPBPROXY_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements ($APPLEWMPROTO applewm >= 1.4 xfixes x11) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($APPLEWMPROTO $LIBAPPLEWM xfixes x11) were not met:
$XPBPROXY_PKG_ERRORS
@@ -28032,7 +28041,7 @@ Alternatively, you may set the environment variables XPBPROXY_CFLAGS
and XPBPROXY_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements ($APPLEWMPROTO applewm >= 1.4 xfixes x11) were not met:
+$as_echo "$as_me: error: Package requirements ($APPLEWMPROTO $LIBAPPLEWM xfixes x11) were not met:
$XPBPROXY_PKG_ERRORS
@@ -28264,12 +28273,12 @@ if test -n "$DMXMODULES_CFLAGS"; then
pkg_cv_DMXMODULES_CFLAGS="$DMXMODULES_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 \$DMXPROTO xau \$XDMCP_MODULES\"") >&5
- ($PKG_CONFIG --exists --print-errors "xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 $DMXPROTO xau $XDMCP_MODULES") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xmuu \$LIBXEXT x11 xrender xfixes xfont \$LIBXI \$DMXPROTO xau \$XDMCP_MODULES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXMODULES_CFLAGS=`$PKG_CONFIG --cflags "xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 $DMXPROTO xau $XDMCP_MODULES" 2>/dev/null`
+ pkg_cv_DMXMODULES_CFLAGS=`$PKG_CONFIG --cflags "xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28280,12 +28289,12 @@ if test -n "$DMXMODULES_LIBS"; then
pkg_cv_DMXMODULES_LIBS="$DMXMODULES_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 \$DMXPROTO xau \$XDMCP_MODULES\"") >&5
- ($PKG_CONFIG --exists --print-errors "xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 $DMXPROTO xau $XDMCP_MODULES") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xmuu \$LIBXEXT x11 xrender xfixes xfont \$LIBXI \$DMXPROTO xau \$XDMCP_MODULES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXMODULES_LIBS=`$PKG_CONFIG --libs "xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 $DMXPROTO xau $XDMCP_MODULES" 2>/dev/null`
+ pkg_cv_DMXMODULES_LIBS=`$PKG_CONFIG --libs "xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28303,9 +28312,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- DMXMODULES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 $DMXPROTO xau $XDMCP_MODULES" 2>&1`
+ DMXMODULES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES" 2>&1`
else
- DMXMODULES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 $DMXPROTO xau $XDMCP_MODULES" 2>&1`
+ DMXMODULES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$DMXMODULES_PKG_ERRORS" >&5
@@ -28352,7 +28361,7 @@ $as_echo "$as_me: error: Xdmx build explicitly requested, but required
fi
DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC"
XDMX_CFLAGS="$DMXMODULES_CFLAGS"
- XDMX_LIBS="$XEXT_LIB $FB_LIB $CONFIG_LIB $FIXES_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB"
+ XDMX_LIBS="$FB_LIB $MI_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $XEXT_LIB $MAIN_LIB $DIX_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
XDMX_SYS_LIBS="$DMXMODULES_LIBS"
@@ -28756,12 +28765,12 @@ if test -n "$DMXEXAMPLES_DEP_CFLAGS"; then
pkg_cv_DMXEXAMPLES_DEP_CFLAGS="$DMXEXAMPLES_DEP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "dmx xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dmx $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "dmx xext x11" 2>/dev/null`
+ pkg_cv_DMXEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "dmx $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28772,12 +28781,12 @@ if test -n "$DMXEXAMPLES_DEP_LIBS"; then
pkg_cv_DMXEXAMPLES_DEP_LIBS="$DMXEXAMPLES_DEP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "dmx xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dmx $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "dmx xext x11" 2>/dev/null`
+ pkg_cv_DMXEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "dmx $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28795,14 +28804,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- DMXEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dmx xext x11" 2>&1`
+ DMXEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dmx $LIBXEXT x11" 2>&1`
else
- DMXEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "dmx xext x11" 2>&1`
+ DMXEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "dmx $LIBXEXT x11" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$DMXEXAMPLES_DEP_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (dmx xext x11) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (dmx $LIBXEXT x11) were not met:
$DMXEXAMPLES_DEP_PKG_ERRORS
@@ -28813,7 +28822,7 @@ Alternatively, you may set the environment variables DMXEXAMPLES_DEP_CFLAGS
and DMXEXAMPLES_DEP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (dmx xext x11) were not met:
+$as_echo "$as_me: error: Package requirements (dmx $LIBXEXT x11) were not met:
$DMXEXAMPLES_DEP_PKG_ERRORS
@@ -28866,12 +28875,12 @@ if test -n "$DMXXMUEXAMPLES_DEP_CFLAGS"; then
pkg_cv_DMXXMUEXAMPLES_DEP_CFLAGS="$DMXXMUEXAMPLES_DEP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xmu xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "dmx xmu xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xmu \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dmx xmu $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXXMUEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "dmx xmu xext x11" 2>/dev/null`
+ pkg_cv_DMXXMUEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "dmx xmu $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28882,12 +28891,12 @@ if test -n "$DMXXMUEXAMPLES_DEP_LIBS"; then
pkg_cv_DMXXMUEXAMPLES_DEP_LIBS="$DMXXMUEXAMPLES_DEP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xmu xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "dmx xmu xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xmu \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dmx xmu $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXXMUEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "dmx xmu xext x11" 2>/dev/null`
+ pkg_cv_DMXXMUEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "dmx xmu $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28905,14 +28914,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- DMXXMUEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dmx xmu xext x11" 2>&1`
+ DMXXMUEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dmx xmu $LIBXEXT x11" 2>&1`
else
- DMXXMUEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "dmx xmu xext x11" 2>&1`
+ DMXXMUEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "dmx xmu $LIBXEXT x11" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$DMXXMUEXAMPLES_DEP_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (dmx xmu xext x11) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (dmx xmu $LIBXEXT x11) were not met:
$DMXXMUEXAMPLES_DEP_PKG_ERRORS
@@ -28923,7 +28932,7 @@ Alternatively, you may set the environment variables DMXXMUEXAMPLES_DEP_CFLAGS
and DMXXMUEXAMPLES_DEP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (dmx xmu xext x11) were not met:
+$as_echo "$as_me: error: Package requirements (dmx xmu $LIBXEXT x11) were not met:
$DMXXMUEXAMPLES_DEP_PKG_ERRORS
@@ -28976,12 +28985,12 @@ if test -n "$DMXXIEXAMPLES_DEP_CFLAGS"; then
pkg_cv_DMXXIEXAMPLES_DEP_CFLAGS="$DMXXIEXAMPLES_DEP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xi xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "dmx xi xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx \$LIBXI \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dmx $LIBXI $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXXIEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "dmx xi xext x11" 2>/dev/null`
+ pkg_cv_DMXXIEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "dmx $LIBXI $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -28992,12 +29001,12 @@ if test -n "$DMXXIEXAMPLES_DEP_LIBS"; then
pkg_cv_DMXXIEXAMPLES_DEP_LIBS="$DMXXIEXAMPLES_DEP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx xi xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "dmx xi xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dmx \$LIBXI \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dmx $LIBXI $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DMXXIEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "dmx xi xext x11" 2>/dev/null`
+ pkg_cv_DMXXIEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "dmx $LIBXI $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -29015,14 +29024,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- DMXXIEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dmx xi xext x11" 2>&1`
+ DMXXIEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dmx $LIBXI $LIBXEXT x11" 2>&1`
else
- DMXXIEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "dmx xi xext x11" 2>&1`
+ DMXXIEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "dmx $LIBXI $LIBXEXT x11" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$DMXXIEXAMPLES_DEP_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (dmx xi xext x11) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (dmx $LIBXI $LIBXEXT x11) were not met:
$DMXXIEXAMPLES_DEP_PKG_ERRORS
@@ -29033,7 +29042,7 @@ Alternatively, you may set the environment variables DMXXIEXAMPLES_DEP_CFLAGS
and DMXXIEXAMPLES_DEP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (dmx xi xext x11) were not met:
+$as_echo "$as_me: error: Package requirements (dmx $LIBXI $LIBXEXT x11) were not met:
$DMXXIEXAMPLES_DEP_PKG_ERRORS
@@ -29086,12 +29095,12 @@ if test -n "$XTSTEXAMPLES_DEP_CFLAGS"; then
pkg_cv_XTSTEXAMPLES_DEP_CFLAGS="$XTSTEXAMPLES_DEP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xtst xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "xtst xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xtst \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xtst $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XTSTEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "xtst xext x11" 2>/dev/null`
+ pkg_cv_XTSTEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "xtst $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -29102,12 +29111,12 @@ if test -n "$XTSTEXAMPLES_DEP_LIBS"; then
pkg_cv_XTSTEXAMPLES_DEP_LIBS="$XTSTEXAMPLES_DEP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xtst xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "xtst xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xtst \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xtst $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XTSTEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "xtst xext x11" 2>/dev/null`
+ pkg_cv_XTSTEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "xtst $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -29125,14 +29134,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- XTSTEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xtst xext x11" 2>&1`
+ XTSTEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xtst $LIBXEXT x11" 2>&1`
else
- XTSTEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "xtst xext x11" 2>&1`
+ XTSTEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "xtst $LIBXEXT x11" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$XTSTEXAMPLES_DEP_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (xtst xext x11) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (xtst $LIBXEXT x11) were not met:
$XTSTEXAMPLES_DEP_PKG_ERRORS
@@ -29143,7 +29152,7 @@ Alternatively, you may set the environment variables XTSTEXAMPLES_DEP_CFLAGS
and XTSTEXAMPLES_DEP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (xtst xext x11) were not met:
+$as_echo "$as_me: error: Package requirements (xtst $LIBXEXT x11) were not met:
$XTSTEXAMPLES_DEP_PKG_ERRORS
@@ -29196,12 +29205,12 @@ if test -n "$XRESEXAMPLES_DEP_CFLAGS"; then
pkg_cv_XRESEXAMPLES_DEP_CFLAGS="$XRESEXAMPLES_DEP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xres xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "xres xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xres \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xres $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XRESEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "xres xext x11" 2>/dev/null`
+ pkg_cv_XRESEXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "xres $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -29212,12 +29221,12 @@ if test -n "$XRESEXAMPLES_DEP_LIBS"; then
pkg_cv_XRESEXAMPLES_DEP_LIBS="$XRESEXAMPLES_DEP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xres xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "xres xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xres \$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xres $LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XRESEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "xres xext x11" 2>/dev/null`
+ pkg_cv_XRESEXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "xres $LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -29235,14 +29244,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- XRESEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xres xext x11" 2>&1`
+ XRESEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xres $LIBXEXT x11" 2>&1`
else
- XRESEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "xres xext x11" 2>&1`
+ XRESEXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "xres $LIBXEXT x11" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$XRESEXAMPLES_DEP_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (xres xext x11) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (xres $LIBXEXT x11) were not met:
$XRESEXAMPLES_DEP_PKG_ERRORS
@@ -29253,7 +29262,7 @@ Alternatively, you may set the environment variables XRESEXAMPLES_DEP_CFLAGS
and XRESEXAMPLES_DEP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (xres xext x11) were not met:
+$as_echo "$as_me: error: Package requirements (xres $LIBXEXT x11) were not met:
$XRESEXAMPLES_DEP_PKG_ERRORS
@@ -29306,12 +29315,12 @@ if test -n "$X11EXAMPLES_DEP_CFLAGS"; then
pkg_cv_X11EXAMPLES_DEP_CFLAGS="$X11EXAMPLES_DEP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_X11EXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "xext x11" 2>/dev/null`
+ pkg_cv_X11EXAMPLES_DEP_CFLAGS=`$PKG_CONFIG --cflags "$LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -29322,12 +29331,12 @@ if test -n "$X11EXAMPLES_DEP_LIBS"; then
pkg_cv_X11EXAMPLES_DEP_LIBS="$X11EXAMPLES_DEP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext x11\"") >&5
- ($PKG_CONFIG --exists --print-errors "xext x11") 2>&5
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$LIBXEXT x11\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$LIBXEXT x11") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_X11EXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "xext x11" 2>/dev/null`
+ pkg_cv_X11EXAMPLES_DEP_LIBS=`$PKG_CONFIG --libs "$LIBXEXT x11" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -29345,14 +29354,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- X11EXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xext x11" 2>&1`
+ X11EXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$LIBXEXT x11" 2>&1`
else
- X11EXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "xext x11" 2>&1`
+ X11EXAMPLES_DEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "$LIBXEXT x11" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$X11EXAMPLES_DEP_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (xext x11) were not met:
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($LIBXEXT x11) were not met:
$X11EXAMPLES_DEP_PKG_ERRORS
@@ -29363,7 +29372,7 @@ Alternatively, you may set the environment variables X11EXAMPLES_DEP_CFLAGS
and X11EXAMPLES_DEP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-$as_echo "$as_me: error: Package requirements (xext x11) were not met:
+$as_echo "$as_me: error: Package requirements ($LIBXEXT x11) were not met:
$X11EXAMPLES_DEP_PKG_ERRORS
@@ -29849,7 +29858,79 @@ else
$as_echo "yes" >&6; }
HAVE_TSLIB="yes"
fi
- if test "x$HAVE_TSLIB" = xauto; then
+ if test "x$HAVE_TSLIB" = xno; then
+ { $as_echo "$as_me:$LINENO: checking for ts_open in -lts" >&5
+$as_echo_n "checking for ts_open in -lts... " >&6; }
+if test "${ac_cv_lib_ts_ts_open+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lts $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ts_open ();
+int
+main ()
+{
+return ts_open ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_ts_ts_open=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_ts_ts_open=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ts_ts_open" >&5
+$as_echo "$ac_cv_lib_ts_ts_open" >&6; }
+if test "x$ac_cv_lib_ts_ts_open" = x""yes; then
+ HAVE_TSLIB="yes"
+fi
+
+ fi
+
+ if test "xTSLIB" = xauto; then
TSLIB="$HAVE_TSLIB"
fi
@@ -30033,12 +30114,12 @@ _ACEOF
XSDL_INCS="`sdl-config --cflags` $XSERVER_CFLAGS"
fi
- XEPHYR_REQUIRED_LIBS="x11 xext xfont xau xdmcp"
+ XEPHYR_REQUIRED_LIBS="x11 $LIBXEXT xfont xau xdmcp"
if test "x$XV" = xyes; then
XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS xv"
fi
if test "x$DRI" = xyes && test "x$GLX" = xyes; then
- XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS gl libdrm"
+ XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS $LIBGL libdrm"
fi
@@ -31752,7 +31833,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xorg-server $as_me 1.6.99.902, which was
+This file was extended by xorg-server $as_me 1.7.0, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -31815,7 +31896,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-xorg-server config.status 1.6.99.902
+xorg-server config.status 1.7.0
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/xorg-server/configure.ac b/xorg-server/configure.ac
index db5325ee9..9425bc964 100644
--- a/xorg-server/configure.ac
+++ b/xorg-server/configure.ac
@@ -26,8 +26,8 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.6.99.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2009-9-22"
+AC_INIT([xorg-server], 1.7.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2009-10-2"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
@@ -85,12 +85,6 @@ dnl ISDN trace program named dtrace
AC_ARG_WITH(dtrace, AS_HELP_STRING([--with-dtrace=PATH],
[Enable dtrace probes (default: enabled if dtrace found)]),
[WDTRACE=$withval], [WDTRACE=auto])
-dnl Darwin 9 has dtrace, but it doesn't support compilation into ELF...
-if test "x$WDTRACE" = xauto; then
- case $host_os in
- darwin*) WDTRACE="no" ;;
- esac
-fi
if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then
AC_PATH_PROG(DTRACE, [dtrace], [not_found], [$PATH:/usr/sbin])
if test "x$DTRACE" = "xnot_found" ; then
@@ -604,7 +598,7 @@ dnl DDXes.
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
AC_ARG_ENABLE(dmx, AS_HELP_STRING([--enable-dmx], [Build DMX server (default: auto)]), [DMX=$enableval], [DMX=auto])
AC_ARG_ENABLE(xvfb, AS_HELP_STRING([--enable-xvfb], [Build Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes])
-AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: yes)]), [XNEST=$enableval], [XNEST=yes])
+AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto])
AC_ARG_ENABLE(xquartz, AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto])
AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addition to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no])
AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto])
@@ -738,6 +732,16 @@ dnl Core modules for most extensions, et al.
REQUIRED_MODULES="[randrproto >= 1.2.99.3] [renderproto >= 0.11] [fixesproto >= 4.1] [damageproto >= 1.1] [xcmiscproto >= 1.2.0] [xextproto >= 7.0.99.3] [xproto >= 7.0.13] [xtrans >= 1.2.2] [bigreqsproto >= 1.1.0] fontsproto [inputproto >= 1.9.99.902] [kbproto >= 1.0.3]"
REQUIRED_LIBS="xfont xau [pixman-1 >= 0.15.20]"
+dnl List of libraries that require a specific version
+LIBAPPLEWM="applewm >= 1.4"
+LIBDRI="dri >= 7.1.0"
+LIBDRM="libdrm >= 2.3.0"
+LIBGL="gl >= 7.1.0"
+LIBXEXT="xext >= 1.0.99.4"
+LIBXI="xi >= 1.2.99.1"
+LIBPCIACCESS="pciaccess >= 0.8.0"
+LIBGLIB="glib-2.0 >= 2.16"
+
dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
dnl CONFIG_DBUS_API is true if we want to enable the D-Bus config
dnl API.
@@ -901,7 +905,7 @@ fi
if test "x$GLX" = xyes; then
PKG_CHECK_MODULES([XLIB], [x11])
- PKG_CHECK_MODULES([GL], $GLPROTO [gl >= 7.1.0])
+ PKG_CHECK_MODULES([GL], $GLPROTO $LIBGL)
AC_SUBST(XLIB_CFLAGS)
AC_DEFINE(GLXEXT, 1, [Build GLX extension])
GLX_LIBS='$(top_builddir)/glx/libglx.la'
@@ -928,7 +932,7 @@ AM_CONDITIONAL(DRI, test "x$DRI" = xyes)
if test "x$DRI" = xyes; then
AC_DEFINE(XF86DRI, 1, [Build DRI extension])
PKG_CHECK_MODULES([DRIPROTO], [$DRIPROTO])
- PKG_CHECK_MODULES([DRI], $GLPROTO [dri >= 7.1.0])
+ PKG_CHECK_MODULES([DRI], $GLPROTO $LIBDRI)
AC_SUBST(DRIPROTO_CFLAGS)
fi
@@ -946,7 +950,7 @@ esac
AM_CONDITIONAL(DRI2, test "x$DRI2" = xyes)
if test "x$DRI" = xyes || test "x$DRI2" = xyes; then
- PKG_CHECK_MODULES([LIBDRM], [libdrm >= 2.3.0])
+ PKG_CHECK_MODULES([LIBDRM], $LIBDRM)
AC_SUBST(LIBDRM_CFLAGS)
AC_SUBST(LIBDRM_LIBS)
fi
@@ -1193,7 +1197,7 @@ AM_CONDITIONAL(DEBUG, [test "x$DEBUGGING" = xyes])
# If unittests aren't explicitly disabled, check for required support
if test "x$UNITTESTS" != xno ; then
- PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.16],
+ PKG_CHECK_MODULES([GLIB], $LIBGLIB,
[HAVE_GLIB=yes], [HAVE_GLIB=no])
# Check if linker supports -wrap, passed via compiler flags
@@ -1240,7 +1244,7 @@ AC_DEFINE(XSYNC, 1, [Support XSync extension])
AC_DEFINE(XCMISC, 1, [Support XCMisc extension])
AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
-if test "x$WDTRACE" != "xno" ; then
+if test "x$WDTRACE" != "xno" && test "x$XQUARTZ" = "xno"; then
DIX_LIB='$(top_builddir)/dix/dix.O'
OS_LIB='$(top_builddir)/os/os.O'
else
@@ -1360,7 +1364,7 @@ fi
dnl Xnest DDX
-PKG_CHECK_MODULES(XNESTMODULES, [xfont xext x11 xau $XDMCP_MODULES], [have_xnest=yes], [have_xnest=no])
+PKG_CHECK_MODULES(XNESTMODULES, [xfont $LIBXEXT x11 xau $XDMCP_MODULES], [have_xnest=yes], [have_xnest=no])
AC_MSG_CHECKING([whether to build Xnest DDX])
if test "x$XNEST" = xauto; then
XNEST="$have_xnest"
@@ -1369,6 +1373,9 @@ AC_MSG_RESULT([$XNEST])
AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
if test "x$XNEST" = xyes; then
+ if test "x$have_xnest" = xno; then
+ AC_MSG_ERROR([Xnest build explicitly requested, but required modules not found.])
+ fi
XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB $MAIN_LIB $OS_LIB $CONFIG_LIB"
XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
AC_SUBST([XNEST_LIBS])
@@ -1440,7 +1447,7 @@ if test "x$XORG" = xyes; then
AC_SUBST([symbol_visibility])
dnl ===================================================================
- PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
+ PKG_CHECK_MODULES([PCIACCESS], $LIBPCIACCESS)
SAVE_LIBS=$LIBS
SAVE_CFLAGS=$CFLAGS
CFLAGS=$PCIACCESS_CFLAGS
@@ -1746,7 +1753,7 @@ if test "x$XQUARTZ" = xyes; then
CFLAGS="${CFLAGS} -DROOTLESS_WORKAROUND -DROOTLESS_SAFEALPHA -DNO_ALLOCA"
- PKG_CHECK_MODULES(XPBPROXY, $APPLEWMPROTO [applewm >= 1.4] xfixes x11)
+ PKG_CHECK_MODULES(XPBPROXY, $APPLEWMPROTO $LIBAPPLEWM xfixes x11)
if test "x$XQUARTZ_SPARKLE" = xyes ; then
AC_DEFINE(XQUARTZ_SPARKLE,1,[Support application updating through sparkle.])
@@ -1775,7 +1782,7 @@ AM_CONDITIONAL(STANDALONE_XPBPROXY, [test "x$STANDALONE_XPBPROXY" = xyes])
dnl DMX DDX
PKG_CHECK_MODULES([DMXMODULES],
- [xmuu xext x11 xrender xfixes xfont xi >= 1.2.99.1 $DMXPROTO xau $XDMCP_MODULES],
+ [xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES],
[have_dmx=yes], [have_dmx=no])
AC_MSG_CHECKING([whether to build Xdmx DDX])
if test "x$DMX" = xauto; then
@@ -1795,7 +1802,7 @@ if test "x$DMX" = xyes; then
fi
DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC"
XDMX_CFLAGS="$DMXMODULES_CFLAGS"
- XDMX_LIBS="$XEXT_LIB $FB_LIB $CONFIG_LIB $FIXES_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB"
+ XDMX_LIBS="$FB_LIB $MI_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $XEXT_LIB $MAIN_LIB $DIX_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
XDMX_SYS_LIBS="$DMXMODULES_LIBS"
AC_SUBST([XDMX_CFLAGS])
AC_SUBST([XDMX_LIBS])
@@ -1810,17 +1817,17 @@ dnl Linux sources in DMX require <linux/keyboard.h>
PKG_CHECK_MODULES([XDMXCONFIG_DEP], [xaw7 xmu xt xpm x11])
AC_SUBST(XDMXCONFIG_DEP_CFLAGS)
AC_SUBST(XDMXCONFIG_DEP_LIBS)
- PKG_CHECK_MODULES([DMXEXAMPLES_DEP], [dmx xext x11])
+ PKG_CHECK_MODULES([DMXEXAMPLES_DEP], [dmx $LIBXEXT x11])
AC_SUBST(DMXEXAMPLES_DEP_LIBS)
- PKG_CHECK_MODULES([DMXXMUEXAMPLES_DEP], [dmx xmu xext x11])
+ PKG_CHECK_MODULES([DMXXMUEXAMPLES_DEP], [dmx xmu $LIBXEXT x11])
AC_SUBST(DMXXMUEXAMPLES_DEP_LIBS)
- PKG_CHECK_MODULES([DMXXIEXAMPLES_DEP], [dmx xi xext x11])
+ PKG_CHECK_MODULES([DMXXIEXAMPLES_DEP], [dmx $LIBXI $LIBXEXT x11])
AC_SUBST(DMXXIEXAMPLES_DEP_LIBS)
- PKG_CHECK_MODULES([XTSTEXAMPLES_DEP], [xtst xext x11])
+ PKG_CHECK_MODULES([XTSTEXAMPLES_DEP], [xtst $LIBXEXT x11])
AC_SUBST(XTSTEXAMPLES_DEP_LIBS)
- PKG_CHECK_MODULES([XRESEXAMPLES_DEP], [xres xext x11])
+ PKG_CHECK_MODULES([XRESEXAMPLES_DEP], [xres $LIBXEXT x11])
AC_SUBST(XRESEXAMPLES_DEP_LIBS)
- PKG_CHECK_MODULES([X11EXAMPLES_DEP], [xext x11])
+ PKG_CHECK_MODULES([X11EXAMPLES_DEP], [$LIBXEXT x11])
AC_SUBST(X11EXAMPLES_DEP_LIBS)
fi
AM_CONDITIONAL([DMX_BUILD_LNX], [test "x$DMX_BUILD_LNX" = xyes])
@@ -1861,7 +1868,11 @@ if test "$KDRIVE" = yes; then
PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
- if test "x$HAVE_TSLIB" = xauto; then
+ if test "x$HAVE_TSLIB" = xno; then
+ AC_CHECK_LIB(ts, ts_open, [HAVE_TSLIB="yes"])
+ fi
+
+ if test "xTSLIB" = xauto; then
TSLIB="$HAVE_TSLIB"
fi
@@ -1885,12 +1896,12 @@ if test "$KDRIVE" = yes; then
XSDL_INCS="`sdl-config --cflags` $XSERVER_CFLAGS"
fi
- XEPHYR_REQUIRED_LIBS="x11 xext xfont xau xdmcp"
+ XEPHYR_REQUIRED_LIBS="x11 $LIBXEXT xfont xau xdmcp"
if test "x$XV" = xyes; then
XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS xv"
fi
if test "x$DRI" = xyes && test "x$GLX" = xyes; then
- XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS gl libdrm"
+ XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS $LIBGL libdrm"
fi
PKG_CHECK_MODULES(XEPHYR, $XEPHYR_REQUIRED_LIBS, [xephyr="yes"], [xephyr="no"])
diff --git a/xorg-server/dix/Makefile.am b/xorg-server/dix/Makefile.am
index 13e5dedd7..23fe46007 100644
--- a/xorg-server/dix/Makefile.am
+++ b/xorg-server/dix/Makefile.am
@@ -54,6 +54,7 @@ Xserver-dtrace.h: $(srcdir)/Xserver.d
$(DTRACE) -C -h -o $@ -s $(srcdir)/Xserver.d \
|| cp Xserver-dtrace.h.in $@
+if !XQUARTZ
# Generate dtrace object code for probes in libdix
dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS)
$(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o
@@ -63,6 +64,7 @@ noinst_PROGRAMS = dix.O
dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS)
ld -r -o $@ .libs/*.o
endif
+endif
dix.c:
touch $@
diff --git a/xorg-server/dix/Makefile.in b/xorg-server/dix/Makefile.in
index 661851255..eff37155a 100644
--- a/xorg-server/dix/Makefile.in
+++ b/xorg-server/dix/Makefile.in
@@ -36,7 +36,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-@XSERVER_DTRACE_TRUE@noinst_PROGRAMS = dix.O$(EXEEXT)
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@noinst_PROGRAMS = dix.O$(EXEEXT)
subdir = dix
DIST_COMMON = $(dist_miscconfig_DATA) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
@@ -527,6 +527,9 @@ clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+@XQUARTZ_TRUE@dix.O$(EXEEXT): $(dix_O_OBJECTS) $(dix_O_DEPENDENCIES)
+@XQUARTZ_TRUE@ @rm -f dix.O$(EXEEXT)
+@XQUARTZ_TRUE@ $(AM_V_CCLD)$(LINK) $(dix_O_OBJECTS) $(dix_O_LDADD) $(LIBS)
@XSERVER_DTRACE_FALSE@dix.O$(EXEEXT): $(dix_O_OBJECTS) $(dix_O_DEPENDENCIES)
@XSERVER_DTRACE_FALSE@ @rm -f dix.O$(EXEEXT)
@XSERVER_DTRACE_FALSE@ $(AM_V_CCLD)$(LINK) $(dix_O_OBJECTS) $(dix_O_LDADD) $(LIBS)
@@ -833,11 +836,11 @@ uninstall-am: uninstall-dist_miscconfigDATA
@XSERVER_DTRACE_TRUE@ || cp Xserver-dtrace.h.in $@
# Generate dtrace object code for probes in libdix
-@XSERVER_DTRACE_TRUE@dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS)
-@XSERVER_DTRACE_TRUE@ $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS)
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@ $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o
-@XSERVER_DTRACE_TRUE@dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS)
-@XSERVER_DTRACE_TRUE@ ld -r -o $@ .libs/*.o
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS)
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@ ld -r -o $@ .libs/*.o
dix.c:
touch $@
diff --git a/xorg-server/dix/Xserver.d b/xorg-server/dix/Xserver.d
index e4c9b8320..cea97e908 100644
--- a/xorg-server/dix/Xserver.d
+++ b/xorg-server/dix/Xserver.d
@@ -29,8 +29,13 @@
/*
* Xserver dtrace provider definition
*/
-
+#ifdef __APPLE__
+#define string char *
+#define pid_t uint32_t
+#define zoneid_t uint32_t
+#else
#include <sys/types.h>
+#endif
provider Xserver {
/* reqType, data, length, client id, request buffer */
diff --git a/xorg-server/dix/colormap.c b/xorg-server/dix/colormap.c
index 6fbf26c3b..48d36f796 100644
--- a/xorg-server/dix/colormap.c
+++ b/xorg-server/dix/colormap.c
@@ -1,2696 +1,2760 @@
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xproto.h>
-#include <stdio.h>
-#include <string.h>
-#include <strings.h>
-#include "misc.h"
-#include "dix.h"
-#include "colormapst.h"
-#include "os.h"
-#include "scrnintstr.h"
-#include "resource.h"
-#include "windowstr.h"
-#include "privates.h"
-#include "xace.h"
-
-#ifdef _MSC_VER
-#define UpdateColors thisUpdateColors
-#endif
-
-extern XID clientErrorValue;
-
-static Pixel FindBestPixel(
- EntryPtr /*pentFirst*/,
- int /*size*/,
- xrgb * /*prgb*/,
- int /*channel*/
-);
-
-static int AllComp(
- EntryPtr /*pent*/,
- xrgb * /*prgb*/
-);
-
-static int RedComp(
- EntryPtr /*pent*/,
- xrgb * /*prgb*/
-);
-
-static int GreenComp(
- EntryPtr /*pent*/,
- xrgb * /*prgb*/
-);
-
-static int BlueComp(
- EntryPtr /*pent*/,
- xrgb * /*prgb*/
-);
-
-static void FreePixels(
- ColormapPtr /*pmap*/,
- int /*client*/
-);
-
-static void CopyFree(
- int /*channel*/,
- int /*client*/,
- ColormapPtr /*pmapSrc*/,
- ColormapPtr /*pmapDst*/
-);
-
-static void FreeCell(
- ColormapPtr /*pmap*/,
- Pixel /*i*/,
- int /*channel*/
-);
-
-static void UpdateColors(
- ColormapPtr /*pmap*/
-);
-
-static int AllocDirect(
- int /*client*/,
- ColormapPtr /*pmap*/,
- int /*c*/,
- int /*r*/,
- int /*g*/,
- int /*b*/,
- Bool /*contig*/,
- Pixel * /*pixels*/,
- Pixel * /*prmask*/,
- Pixel * /*pgmask*/,
- Pixel * /*pbmask*/
-);
-
-static int AllocPseudo(
- int /*client*/,
- ColormapPtr /*pmap*/,
- int /*c*/,
- int /*r*/,
- Bool /*contig*/,
- Pixel * /*pixels*/,
- Pixel * /*pmask*/,
- Pixel ** /*pppixFirst*/
-);
-
-static Bool AllocCP(
- ColormapPtr /*pmap*/,
- EntryPtr /*pentFirst*/,
- int /*count*/,
- int /*planes*/,
- Bool /*contig*/,
- Pixel * /*pixels*/,
- Pixel * /*pMask*/
-);
-
-static Bool AllocShared(
- ColormapPtr /*pmap*/,
- Pixel * /*ppix*/,
- int /*c*/,
- int /*r*/,
- int /*g*/,
- int /*b*/,
- Pixel /*rmask*/,
- Pixel /*gmask*/,
- Pixel /*bmask*/,
- Pixel * /*ppixFirst*/
-);
-
-static int FreeCo(
- ColormapPtr /*pmap*/,
- int /*client*/,
- int /*color*/,
- int /*npixIn*/,
- Pixel * /*ppixIn*/,
- Pixel /*mask*/
-);
-
-static int TellNoMap(
- WindowPtr /*pwin*/,
- Colormap * /*pmid*/
-);
-
-static void FindColorInRootCmap (
- ColormapPtr /* pmap */,
- EntryPtr /* pentFirst */,
- int /* size */,
- xrgb* /* prgb */,
- Pixel* /* pPixel */,
- int /* channel */,
- ColorCompareProcPtr /* comp */
-);
-
-#define NUMRED(vis) ((vis->redMask >> vis->offsetRed) + 1)
-#define NUMGREEN(vis) ((vis->greenMask >> vis->offsetGreen) + 1)
-#define NUMBLUE(vis) ((vis->blueMask >> vis->offsetBlue) + 1)
-#if COMPOSITE
-#define ALPHAMASK(vis) ((vis)->nplanes < 32 ? 0 : \
- (CARD32) ~((vis)->redMask|(vis)->greenMask|(vis)->blueMask))
-#else
-#define ALPHAMASK(vis) 0
-#endif
-
-#define RGBMASK(vis) (vis->redMask | vis->greenMask | vis->blueMask | ALPHAMASK(vis))
-
-/* GetNextBitsOrBreak(bits, mask, base) --
- * (Suggestion: First read the macro, then read this explanation.
- *
- * Either generate the next value to OR in to a pixel or break out of this
- * while loop
- *
- * This macro is used when we're trying to generate all 2^n combinations of
- * bits in mask. What we're doing here is counting in binary, except that
- * the bits we use to count may not be contiguous. This macro will be
- * called 2^n times, returning a different value in bits each time. Then
- * it will cause us to break out of a surrounding loop. (It will always be
- * called from within a while loop.)
- * On call: mask is the value we want to find all the combinations for
- * base has 1 bit set where the least significant bit of mask is set
- *
- * For example,if mask is 01010, base should be 0010 and we count like this:
- * 00010 (see this isn't so hard),
- * then we add base to bits and get 0100. (bits & ~mask) is (0100 & 0100) so
- * we add that to bits getting (0100 + 0100) =
- * 01000 for our next value.
- * then we add 0010 to get
- * 01010 and we're done (easy as 1, 2, 3)
- */
-#define GetNextBitsOrBreak(bits, mask, base) \
- if((bits) == (mask)) \
- break; \
- (bits) += (base); \
- while((bits) & ~(mask)) \
- (bits) += ((bits) & ~(mask));
-/* ID of server as client */
-#define SERVER_ID 0
-
-typedef struct _colorResource
-{
- Colormap mid;
- int client;
-} colorResource;
-
-/* Invariants:
- * refcnt == 0 means entry is empty
- * refcnt > 0 means entry is useable by many clients, so it can't be changed
- * refcnt == AllocPrivate means entry owned by one client only
- * fShared should only be set if refcnt == AllocPrivate, and only in red map
- */
-
-
-/**
- * Create and initialize the color map
- *
- * \param mid resource to use for this colormap
- * \param alloc 1 iff all entries are allocated writable
- */
-int
-CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
- ColormapPtr *ppcmap, int alloc, int client)
-{
- int class, size;
- unsigned long sizebytes;
- ColormapPtr pmap;
- EntryPtr pent;
- int i;
- Pixel *ppix, **pptr;
-
- class = pVisual->class;
- if(!(class & DynamicClass) && (alloc != AllocNone) && (client != SERVER_ID))
- return (BadMatch);
-
- size = pVisual->ColormapEntries;
- sizebytes = (size * sizeof(Entry)) +
- (MAXCLIENTS * sizeof(Pixel *)) +
- (MAXCLIENTS * sizeof(int));
- if ((class | DynamicClass) == DirectColor)
- sizebytes *= 3;
- sizebytes += sizeof(ColormapRec);
- pmap = xalloc(sizebytes);
- if (!pmap)
- return (BadAlloc);
-#if defined(_XSERVER64)
- pmap->pad0 = 0;
- pmap->pad1 = 0;
-#if (X_BYTE_ORDER == X_LITTLE_ENDIAN)
- pmap->pad2 = 0;
-#endif
-#endif
- pmap->red = (EntryPtr)((char *)pmap + sizeof(ColormapRec));
- sizebytes = size * sizeof(Entry);
- pmap->clientPixelsRed = (Pixel **)((char *)pmap->red + sizebytes);
- pmap->numPixelsRed = (int *)((char *)pmap->clientPixelsRed +
- (MAXCLIENTS * sizeof(Pixel *)));
- pmap->mid = mid;
- pmap->flags = 0; /* start out with all flags clear */
- if(mid == pScreen->defColormap)
- pmap->flags |= IsDefault;
- pmap->pScreen = pScreen;
- pmap->pVisual = pVisual;
- pmap->class = class;
- if ((class | DynamicClass) == DirectColor)
- size = NUMRED(pVisual);
- pmap->freeRed = size;
- bzero ((char *) pmap->red, (int)sizebytes);
- bzero((char *) pmap->numPixelsRed, MAXCLIENTS * sizeof(int));
- for (pptr = &pmap->clientPixelsRed[MAXCLIENTS]; --pptr >= pmap->clientPixelsRed; )
- *pptr = (Pixel *)NULL;
- if (alloc == AllocAll)
- {
- if (class & DynamicClass)
- pmap->flags |= AllAllocated;
- for (pent = &pmap->red[size - 1]; pent >= pmap->red; pent--)
- pent->refcnt = AllocPrivate;
- pmap->freeRed = 0;
- ppix = xalloc(size * sizeof(Pixel));
- if (!ppix)
- {
- xfree(pmap);
- return (BadAlloc);
- }
- pmap->clientPixelsRed[client] = ppix;
- for(i = 0; i < size; i++)
- ppix[i] = i;
- pmap->numPixelsRed[client] = size;
- }
-
- if ((class | DynamicClass) == DirectColor)
- {
- pmap->freeGreen = NUMGREEN(pVisual);
- pmap->green = (EntryPtr)((char *)pmap->numPixelsRed +
- (MAXCLIENTS * sizeof(int)));
- pmap->clientPixelsGreen = (Pixel **)((char *)pmap->green + sizebytes);
- pmap->numPixelsGreen = (int *)((char *)pmap->clientPixelsGreen +
- (MAXCLIENTS * sizeof(Pixel *)));
- pmap->freeBlue = NUMBLUE(pVisual);
- pmap->blue = (EntryPtr)((char *)pmap->numPixelsGreen +
- (MAXCLIENTS * sizeof(int)));
- pmap->clientPixelsBlue = (Pixel **)((char *)pmap->blue + sizebytes);
- pmap->numPixelsBlue = (int *)((char *)pmap->clientPixelsBlue +
- (MAXCLIENTS * sizeof(Pixel *)));
-
- bzero ((char *) pmap->green, (int)sizebytes);
- bzero ((char *) pmap->blue, (int)sizebytes);
-
- memmove((char *) pmap->clientPixelsGreen,
- (char *) pmap->clientPixelsRed,
- MAXCLIENTS * sizeof(Pixel *));
- memmove((char *) pmap->clientPixelsBlue,
- (char *) pmap->clientPixelsRed,
- MAXCLIENTS * sizeof(Pixel *));
- bzero((char *) pmap->numPixelsGreen, MAXCLIENTS * sizeof(int));
- bzero((char *) pmap->numPixelsBlue, MAXCLIENTS * sizeof(int));
-
- /* If every cell is allocated, mark its refcnt */
- if (alloc == AllocAll)
- {
- size = pmap->freeGreen;
- for(pent = &pmap->green[size-1]; pent >= pmap->green; pent--)
- pent->refcnt = AllocPrivate;
- pmap->freeGreen = 0;
- ppix = xalloc(size * sizeof(Pixel));
- if (!ppix)
- {
- xfree(pmap->clientPixelsRed[client]);
- xfree(pmap);
- return(BadAlloc);
- }
- pmap->clientPixelsGreen[client] = ppix;
- for(i = 0; i < size; i++)
- ppix[i] = i;
- pmap->numPixelsGreen[client] = size;
-
- size = pmap->freeBlue;
- for(pent = &pmap->blue[size-1]; pent >= pmap->blue; pent--)
- pent->refcnt = AllocPrivate;
- pmap->freeBlue = 0;
- ppix = xalloc(size * sizeof(Pixel));
- if (!ppix)
- {
- xfree(pmap->clientPixelsGreen[client]);
- xfree(pmap->clientPixelsRed[client]);
- xfree(pmap);
- return(BadAlloc);
- }
- pmap->clientPixelsBlue[client] = ppix;
- for(i = 0; i < size; i++)
- ppix[i] = i;
- pmap->numPixelsBlue[client] = size;
- }
- }
- pmap->devPrivates = NULL;
- pmap->flags |= BeingCreated;
-
- if (!AddResource(mid, RT_COLORMAP, (pointer)pmap))
- return (BadAlloc);
-
- /*
- * Security creation/labeling check
- */
- i = XaceHook(XACE_RESOURCE_ACCESS, clients[client], mid, RT_COLORMAP,
- pmap, RT_NONE, NULL, DixCreateAccess);
- if (i != Success) {
- FreeResource(mid, RT_NONE);
- return i;
- }
-
- /* If the device wants a chance to initialize the colormap in any way,
- * this is it. In specific, if this is a Static colormap, this is the
- * time to fill in the colormap's values */
- if (!(*pScreen->CreateColormap)(pmap))
- {
- FreeResource (mid, RT_NONE);
- return BadAlloc;
- }
- pmap->flags &= ~BeingCreated;
- *ppcmap = pmap;
- return (Success);
-}
-
-/**
- *
- * \param value must conform to DeleteType
- */
-int
-FreeColormap (pointer value, XID mid)
-{
- int i;
- EntryPtr pent;
- ColormapPtr pmap = (ColormapPtr)value;
-
- if(CLIENT_ID(mid) != SERVER_ID)
- {
- (*pmap->pScreen->UninstallColormap) (pmap);
- WalkTree(pmap->pScreen, (VisitWindowProcPtr)TellNoMap, (pointer) &mid);
- }
-
- /* This is the device's chance to undo anything it needs to, especially
- * to free any storage it allocated */
- (*pmap->pScreen->DestroyColormap)(pmap);
-
- if(pmap->clientPixelsRed)
- {
- for(i = 0; i < MAXCLIENTS; i++)
- xfree(pmap->clientPixelsRed[i]);
- }
-
- if ((pmap->class == PseudoColor) || (pmap->class == GrayScale))
- {
- for(pent = &pmap->red[pmap->pVisual->ColormapEntries - 1];
- pent >= pmap->red;
- pent--)
- {
- if(pent->fShared)
- {
- if (--pent->co.shco.red->refcnt == 0)
- xfree(pent->co.shco.red);
- if (--pent->co.shco.green->refcnt == 0)
- xfree(pent->co.shco.green);
- if (--pent->co.shco.blue->refcnt == 0)
- xfree(pent->co.shco.blue);
- }
- }
- }
- if((pmap->class | DynamicClass) == DirectColor)
- {
- for(i = 0; i < MAXCLIENTS; i++)
- {
- xfree(pmap->clientPixelsGreen[i]);
- xfree(pmap->clientPixelsBlue[i]);
- }
- }
-
- dixFreePrivates(pmap->devPrivates);
- xfree(pmap);
- return(Success);
-}
-
-/* Tell window that pmid has disappeared */
-static int
-TellNoMap (WindowPtr pwin, Colormap *pmid)
-{
- xEvent xE;
-
- if (wColormap(pwin) == *pmid)
- {
- /* This should be call to DeliverEvent */
- xE.u.u.type = ColormapNotify;
- xE.u.colormap.window = pwin->drawable.id;
- xE.u.colormap.colormap = None;
- xE.u.colormap.new = TRUE;
- xE.u.colormap.state = ColormapUninstalled;
-#ifdef PANORAMIX
- if(noPanoramiXExtension || !pwin->drawable.pScreen->myNum)
-#endif
- DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
- if (pwin->optional) {
- pwin->optional->colormap = None;
- CheckWindowOptionalNeed (pwin);
- }
- }
-
- return (WT_WALKCHILDREN);
-}
-
-/* Tell window that pmid got uninstalled */
-int
-TellLostMap (WindowPtr pwin, pointer value)
-{
- Colormap *pmid = (Colormap *)value;
- xEvent xE;
-
-#ifdef PANORAMIX
- if(!noPanoramiXExtension && pwin->drawable.pScreen->myNum)
- return WT_STOPWALKING;
-#endif
- if (wColormap(pwin) == *pmid)
- {
- /* This should be call to DeliverEvent */
- xE.u.u.type = ColormapNotify;
- xE.u.colormap.window = pwin->drawable.id;
- xE.u.colormap.colormap = *pmid;
- xE.u.colormap.new = FALSE;
- xE.u.colormap.state = ColormapUninstalled;
- DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
- }
-
- return (WT_WALKCHILDREN);
-}
-
-/* Tell window that pmid got installed */
-int
-TellGainedMap (WindowPtr pwin, pointer value)
-{
- Colormap *pmid = (Colormap *)value;
- xEvent xE;
-
-#ifdef PANORAMIX
- if(!noPanoramiXExtension && pwin->drawable.pScreen->myNum)
- return WT_STOPWALKING;
-#endif
- if (wColormap (pwin) == *pmid)
- {
- /* This should be call to DeliverEvent */
- xE.u.u.type = ColormapNotify;
- xE.u.colormap.window = pwin->drawable.id;
- xE.u.colormap.colormap = *pmid;
- xE.u.colormap.new = FALSE;
- xE.u.colormap.state = ColormapInstalled;
- DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
- }
-
- return (WT_WALKCHILDREN);
-}
-
-
-int
-CopyColormapAndFree (Colormap mid, ColormapPtr pSrc, int client)
-{
- ColormapPtr pmap = (ColormapPtr) NULL;
- int result, alloc, size;
- Colormap midSrc;
- ScreenPtr pScreen;
- VisualPtr pVisual;
-
- pScreen = pSrc->pScreen;
- pVisual = pSrc->pVisual;
- midSrc = pSrc->mid;
- alloc = ((pSrc->flags & AllAllocated) && CLIENT_ID(midSrc) == client) ?
- AllocAll : AllocNone;
- size = pVisual->ColormapEntries;
-
- /* If the create returns non-0, it failed */
- result = CreateColormap (mid, pScreen, pVisual, &pmap, alloc, client);
- if(result != Success)
- return(result);
- if(alloc == AllocAll)
- {
- memmove((char *)pmap->red, (char *)pSrc->red, size * sizeof(Entry));
- if((pmap->class | DynamicClass) == DirectColor)
- {
- memmove((char *)pmap->green, (char *)pSrc->green, size * sizeof(Entry));
- memmove((char *)pmap->blue, (char *)pSrc->blue, size * sizeof(Entry));
- }
- pSrc->flags &= ~AllAllocated;
- FreePixels(pSrc, client);
- UpdateColors(pmap);
- return(Success);
- }
-
- CopyFree(REDMAP, client, pSrc, pmap);
- if ((pmap->class | DynamicClass) == DirectColor)
- {
- CopyFree(GREENMAP, client, pSrc, pmap);
- CopyFree(BLUEMAP, client, pSrc, pmap);
- }
- if (pmap->class & DynamicClass)
- UpdateColors(pmap);
- /* XXX should worry about removing any RT_CMAPENTRY resource */
- return(Success);
-}
-
-/* Helper routine for freeing large numbers of cells from a map */
-static void
-CopyFree (int channel, int client, ColormapPtr pmapSrc, ColormapPtr pmapDst)
-{
- int z, npix;
- EntryPtr pentSrcFirst, pentDstFirst;
- EntryPtr pentSrc, pentDst;
- Pixel *ppix;
- int nalloc;
-
- switch(channel)
- {
- default: /* so compiler can see that everything gets initialized */
- case REDMAP:
- ppix = (pmapSrc->clientPixelsRed)[client];
- npix = (pmapSrc->numPixelsRed)[client];
- pentSrcFirst = pmapSrc->red;
- pentDstFirst = pmapDst->red;
- break;
- case GREENMAP:
- ppix = (pmapSrc->clientPixelsGreen)[client];
- npix = (pmapSrc->numPixelsGreen)[client];
- pentSrcFirst = pmapSrc->green;
- pentDstFirst = pmapDst->green;
- break;
- case BLUEMAP:
- ppix = (pmapSrc->clientPixelsBlue)[client];
- npix = (pmapSrc->numPixelsBlue)[client];
- pentSrcFirst = pmapSrc->blue;
- pentDstFirst = pmapDst->blue;
- break;
- }
- nalloc = 0;
- if (pmapSrc->class & DynamicClass)
- {
- for(z = npix; --z >= 0; ppix++)
- {
- /* Copy entries */
- pentSrc = pentSrcFirst + *ppix;
- pentDst = pentDstFirst + *ppix;
- if (pentDst->refcnt > 0)
- {
- pentDst->refcnt++;
- }
- else
- {
- *pentDst = *pentSrc;
- nalloc++;
- if (pentSrc->refcnt > 0)
- pentDst->refcnt = 1;
- else
- pentSrc->fShared = FALSE;
- }
- FreeCell(pmapSrc, *ppix, channel);
- }
- }
-
- /* Note that FreeCell has already fixed pmapSrc->free{Color} */
- switch(channel)
- {
- case REDMAP:
- pmapDst->freeRed -= nalloc;
- (pmapDst->clientPixelsRed)[client] =
- (pmapSrc->clientPixelsRed)[client];
- (pmapSrc->clientPixelsRed)[client] = (Pixel *) NULL;
- (pmapDst->numPixelsRed)[client] = (pmapSrc->numPixelsRed)[client];
- (pmapSrc->numPixelsRed)[client] = 0;
- break;
- case GREENMAP:
- pmapDst->freeGreen -= nalloc;
- (pmapDst->clientPixelsGreen)[client] =
- (pmapSrc->clientPixelsGreen)[client];
- (pmapSrc->clientPixelsGreen)[client] = (Pixel *) NULL;
- (pmapDst->numPixelsGreen)[client] = (pmapSrc->numPixelsGreen)[client];
- (pmapSrc->numPixelsGreen)[client] = 0;
- break;
- case BLUEMAP:
- pmapDst->freeBlue -= nalloc;
- pmapDst->clientPixelsBlue[client] = pmapSrc->clientPixelsBlue[client];
- pmapSrc->clientPixelsBlue[client] = (Pixel *) NULL;
- pmapDst->numPixelsBlue[client] = pmapSrc->numPixelsBlue[client];
- pmapSrc->numPixelsBlue[client] = 0;
- break;
- }
-}
-
-/* Free the ith entry in a color map. Must handle freeing of
- * colors allocated through AllocColorPlanes */
-static void
-FreeCell (ColormapPtr pmap, Pixel i, int channel)
-{
- EntryPtr pent;
- int *pCount;
-
-
- switch (channel)
- {
- default: /* so compiler can see that everything gets initialized */
- case PSEUDOMAP:
- case REDMAP:
- pent = (EntryPtr) &pmap->red[i];
- pCount = &pmap->freeRed;
- break;
- case GREENMAP:
- pent = (EntryPtr) &pmap->green[i];
- pCount = &pmap->freeGreen;
- break;
- case BLUEMAP:
- pent = (EntryPtr) &pmap->blue[i];
- pCount = &pmap->freeBlue;
- break;
- }
- /* If it's not privately allocated and it's not time to free it, just
- * decrement the count */
- if (pent->refcnt > 1)
- pent->refcnt--;
- else
- {
- /* If the color type is shared, find the sharedcolor. If decremented
- * refcnt is 0, free the shared cell. */
- if (pent->fShared)
- {
- if(--pent->co.shco.red->refcnt == 0)
- xfree(pent->co.shco.red);
- if(--pent->co.shco.green->refcnt == 0)
- xfree(pent->co.shco.green);
- if(--pent->co.shco.blue->refcnt == 0)
- xfree(pent->co.shco.blue);
- pent->fShared = FALSE;
- }
- pent->refcnt = 0;
- *pCount += 1;
- }
-}
-
-static void
-UpdateColors (ColormapPtr pmap)
-{
- xColorItem *defs;
- xColorItem *pdef;
- EntryPtr pent;
- VisualPtr pVisual;
- int i, n, size;
-
- pVisual = pmap->pVisual;
- size = pVisual->ColormapEntries;
- defs = xalloc(size * sizeof(xColorItem));
- if (!defs)
- return;
- n = 0;
- pdef = defs;
- if (pmap->class == DirectColor)
- {
- for (i = 0; i < size; i++)
- {
- if (!pmap->red[i].refcnt &&
- !pmap->green[i].refcnt &&
- !pmap->blue[i].refcnt)
- continue;
- pdef->pixel = ((Pixel)i << pVisual->offsetRed) |
- ((Pixel)i << pVisual->offsetGreen) |
- ((Pixel)i << pVisual->offsetBlue);
- pdef->red = pmap->red[i].co.local.red;
- pdef->green = pmap->green[i].co.local.green;
- pdef->blue = pmap->blue[i].co.local.blue;
- pdef->flags = DoRed|DoGreen|DoBlue;
- pdef++;
- n++;
- }
- }
- else
- {
- for (i = 0, pent = pmap->red; i < size; i++, pent++)
- {
- if (!pent->refcnt)
- continue;
- pdef->pixel = i;
- if(pent->fShared)
- {
- pdef->red = pent->co.shco.red->color;
- pdef->green = pent->co.shco.green->color;
- pdef->blue = pent->co.shco.blue->color;
- }
- else
- {
- pdef->red = pent->co.local.red;
- pdef->green = pent->co.local.green;
- pdef->blue = pent->co.local.blue;
- }
- pdef->flags = DoRed|DoGreen|DoBlue;
- pdef++;
- n++;
- }
- }
- if (n)
- (*pmap->pScreen->StoreColors)(pmap, n, defs);
- xfree(defs);
-}
-
-/* Get a read-only color from a ColorMap (probably slow for large maps)
- * Returns by changing the value in pred, pgreen, pblue and pPix
- */
-int
-AllocColor (ColormapPtr pmap,
- unsigned short *pred, unsigned short *pgreen, unsigned short *pblue,
- Pixel *pPix, int client)
-{
- Pixel pixR, pixG, pixB;
- int entries;
- xrgb rgb;
- int class;
- VisualPtr pVisual;
- int npix;
- Pixel *ppix;
-
- pVisual = pmap->pVisual;
- (*pmap->pScreen->ResolveColor) (pred, pgreen, pblue, pVisual);
- rgb.red = *pred;
- rgb.green = *pgreen;
- rgb.blue = *pblue;
- class = pmap->class;
- entries = pVisual->ColormapEntries;
-
- /* If the colormap is being created, then we want to be able to change
- * the colormap, even if it's a static type. Otherwise, we'd never be
- * able to initialize static colormaps
- */
- if(pmap->flags & BeingCreated)
- class |= DynamicClass;
-
- /* If this is one of the static storage classes, and we're not initializing
- * it, the best we can do is to find the closest color entry to the
- * requested one and return that.
- */
- switch (class) {
- case StaticColor:
- case StaticGray:
- /* Look up all three components in the same pmap */
- *pPix = pixR = FindBestPixel(pmap->red, entries, &rgb, PSEUDOMAP);
- *pred = pmap->red[pixR].co.local.red;
- *pgreen = pmap->red[pixR].co.local.green;
- *pblue = pmap->red[pixR].co.local.blue;
- npix = pmap->numPixelsRed[client];
- ppix = (Pixel *) xrealloc(pmap->clientPixelsRed[client],
- (npix + 1) * sizeof(Pixel));
- if (!ppix)
- return (BadAlloc);
- ppix[npix] = pixR;
- pmap->clientPixelsRed[client] = ppix;
- pmap->numPixelsRed[client]++;
- break;
-
- case TrueColor:
- /* Look up each component in its own map, then OR them together */
- pixR = FindBestPixel(pmap->red, NUMRED(pVisual), &rgb, REDMAP);
- pixG = FindBestPixel(pmap->green, NUMGREEN(pVisual), &rgb, GREENMAP);
- pixB = FindBestPixel(pmap->blue, NUMBLUE(pVisual), &rgb, BLUEMAP);
- *pPix = (pixR << pVisual->offsetRed) |
- (pixG << pVisual->offsetGreen) |
- (pixB << pVisual->offsetBlue) |
- ALPHAMASK(pVisual);
-
- *pred = pmap->red[pixR].co.local.red;
- *pgreen = pmap->green[pixG].co.local.green;
- *pblue = pmap->blue[pixB].co.local.blue;
- npix = pmap->numPixelsRed[client];
- ppix = (Pixel *) xrealloc(pmap->clientPixelsRed[client],
- (npix + 1) * sizeof(Pixel));
- if (!ppix)
- return (BadAlloc);
- ppix[npix] = pixR;
- pmap->clientPixelsRed[client] = ppix;
- npix = pmap->numPixelsGreen[client];
- ppix = (Pixel *) xrealloc(pmap->clientPixelsGreen[client],
- (npix + 1) * sizeof(Pixel));
- if (!ppix)
- return (BadAlloc);
- ppix[npix] = pixG;
- pmap->clientPixelsGreen[client] = ppix;
- npix = pmap->numPixelsBlue[client];
- ppix = (Pixel *) xrealloc(pmap->clientPixelsBlue[client],
- (npix + 1) * sizeof(Pixel));
- if (!ppix)
- return (BadAlloc);
- ppix[npix] = pixB;
- pmap->clientPixelsBlue[client] = ppix;
- pmap->numPixelsRed[client]++;
- pmap->numPixelsGreen[client]++;
- pmap->numPixelsBlue[client]++;
- break;
-
- case GrayScale:
- case PseudoColor:
- if (pmap->mid != pmap->pScreen->defColormap &&
- pmap->pVisual->vid == pmap->pScreen->rootVisual)
- {
- ColormapPtr prootmap;
- dixLookupResourceByType((pointer *)&prootmap, pmap->pScreen->defColormap,
- RT_COLORMAP, clients[client], DixReadAccess);
-
- if (pmap->class == prootmap->class)
- FindColorInRootCmap (prootmap, prootmap->red, entries, &rgb,
- pPix, PSEUDOMAP, AllComp);
- }
- if (FindColor(pmap, pmap->red, entries, &rgb, pPix, PSEUDOMAP,
- client, AllComp) != Success)
- return (BadAlloc);
- break;
-
- case DirectColor:
- if (pmap->mid != pmap->pScreen->defColormap &&
- pmap->pVisual->vid == pmap->pScreen->rootVisual)
- {
- ColormapPtr prootmap;
- dixLookupResourceByType((pointer *)&prootmap, pmap->pScreen->defColormap,
- RT_COLORMAP, clients[client], DixReadAccess);
-
- if (pmap->class == prootmap->class)
- {
- pixR = (*pPix & pVisual->redMask) >> pVisual->offsetRed;
- FindColorInRootCmap (prootmap, prootmap->red, entries, &rgb,
- &pixR, REDMAP, RedComp);
- pixG = (*pPix & pVisual->greenMask) >> pVisual->offsetGreen;
- FindColorInRootCmap (prootmap, prootmap->green, entries, &rgb,
- &pixG, GREENMAP, GreenComp);
- pixB = (*pPix & pVisual->blueMask) >> pVisual->offsetBlue;
- FindColorInRootCmap (prootmap, prootmap->blue, entries, &rgb,
- &pixB, BLUEMAP, BlueComp);
- *pPix = pixR | pixG | pixB;
- }
- }
-
- pixR = (*pPix & pVisual->redMask) >> pVisual->offsetRed;
- if (FindColor(pmap, pmap->red, NUMRED(pVisual), &rgb, &pixR, REDMAP,
- client, RedComp) != Success)
- return (BadAlloc);
- pixG = (*pPix & pVisual->greenMask) >> pVisual->offsetGreen;
- if (FindColor(pmap, pmap->green, NUMGREEN(pVisual), &rgb, &pixG,
- GREENMAP, client, GreenComp) != Success)
- {
- (void)FreeCo(pmap, client, REDMAP, 1, &pixR, (Pixel)0);
- return (BadAlloc);
- }
- pixB = (*pPix & pVisual->blueMask) >> pVisual->offsetBlue;
- if (FindColor(pmap, pmap->blue, NUMBLUE(pVisual), &rgb, &pixB, BLUEMAP,
- client, BlueComp) != Success)
- {
- (void)FreeCo(pmap, client, GREENMAP, 1, &pixG, (Pixel)0);
- (void)FreeCo(pmap, client, REDMAP, 1, &pixR, (Pixel)0);
- return (BadAlloc);
- }
- *pPix = pixR | pixG | pixB | ALPHAMASK(pVisual);
-
- break;
- }
-
- /* if this is the client's first pixel in this colormap, tell the
- * resource manager that the client has pixels in this colormap which
- * should be freed when the client dies */
- if ((pmap->numPixelsRed[client] == 1) &&
- (CLIENT_ID(pmap->mid) != client) &&
- !(pmap->flags & BeingCreated))
- {
- colorResource *pcr;
-
- pcr = xalloc(sizeof(colorResource));
- if (!pcr)
- {
- (void)FreeColors(pmap, client, 1, pPix, (Pixel)0);
- return (BadAlloc);
- }
- pcr->mid = pmap->mid;
- pcr->client = client;
- if (!AddResource(FakeClientID(client), RT_CMAPENTRY, (pointer)pcr))
- return (BadAlloc);
- }
- return (Success);
-}
-
-/*
- * FakeAllocColor -- fake an AllocColor request by
- * returning a free pixel if availible, otherwise returning
- * the closest matching pixel. This is used by the mi
- * software sprite code to recolor cursors. A nice side-effect
- * is that this routine will never return failure.
- */
-
-void
-FakeAllocColor (ColormapPtr pmap, xColorItem *item)
-{
- Pixel pixR, pixG, pixB;
- Pixel temp;
- int entries;
- xrgb rgb;
- int class;
- VisualPtr pVisual;
-
- pVisual = pmap->pVisual;
- rgb.red = item->red;
- rgb.green = item->green;
- rgb.blue = item->blue;
- (*pmap->pScreen->ResolveColor) (&rgb.red, &rgb.green, &rgb.blue, pVisual);
- class = pmap->class;
- entries = pVisual->ColormapEntries;
-
- switch (class) {
- case GrayScale:
- case PseudoColor:
- temp = 0;
- item->pixel = 0;
- if (FindColor(pmap, pmap->red, entries, &rgb, &temp, PSEUDOMAP,
- -1, AllComp) == Success) {
- item->pixel = temp;
- break;
- }
- /* fall through ... */
- case StaticColor:
- case StaticGray:
- item->pixel = FindBestPixel(pmap->red, entries, &rgb, PSEUDOMAP);
- break;
-
- case DirectColor:
- /* Look up each component in its own map, then OR them together */
- pixR = (item->pixel & pVisual->redMask) >> pVisual->offsetRed;
- pixG = (item->pixel & pVisual->greenMask) >> pVisual->offsetGreen;
- pixB = (item->pixel & pVisual->blueMask) >> pVisual->offsetBlue;
- if (FindColor(pmap, pmap->red, NUMRED(pVisual), &rgb, &pixR, REDMAP,
- -1, RedComp) != Success)
- pixR = FindBestPixel(pmap->red, NUMRED(pVisual), &rgb, REDMAP)
- << pVisual->offsetRed;
- if (FindColor(pmap, pmap->green, NUMGREEN(pVisual), &rgb, &pixG,
- GREENMAP, -1, GreenComp) != Success)
- pixG = FindBestPixel(pmap->green, NUMGREEN(pVisual), &rgb,
- GREENMAP) << pVisual->offsetGreen;
- if (FindColor(pmap, pmap->blue, NUMBLUE(pVisual), &rgb, &pixB, BLUEMAP,
- -1, BlueComp) != Success)
- pixB = FindBestPixel(pmap->blue, NUMBLUE(pVisual), &rgb, BLUEMAP)
- << pVisual->offsetBlue;
- item->pixel = pixR | pixG | pixB;
- break;
-
- case TrueColor:
- /* Look up each component in its own map, then OR them together */
- pixR = FindBestPixel(pmap->red, NUMRED(pVisual), &rgb, REDMAP);
- pixG = FindBestPixel(pmap->green, NUMGREEN(pVisual), &rgb, GREENMAP);
- pixB = FindBestPixel(pmap->blue, NUMBLUE(pVisual), &rgb, BLUEMAP);
- item->pixel = (pixR << pVisual->offsetRed) |
- (pixG << pVisual->offsetGreen) |
- (pixB << pVisual->offsetBlue);
- break;
- }
-}
-
-/* free a pixel value obtained from FakeAllocColor */
-void
-FakeFreeColor(ColormapPtr pmap, Pixel pixel)
-{
- VisualPtr pVisual;
- Pixel pixR, pixG, pixB;
-
- switch (pmap->class) {
- case GrayScale:
- case PseudoColor:
- if (pmap->red[pixel].refcnt == AllocTemporary)
- pmap->red[pixel].refcnt = 0;
- break;
- case DirectColor:
- pVisual = pmap->pVisual;
- pixR = (pixel & pVisual->redMask) >> pVisual->offsetRed;
- pixG = (pixel & pVisual->greenMask) >> pVisual->offsetGreen;
- pixB = (pixel & pVisual->blueMask) >> pVisual->offsetBlue;
- if (pmap->red[pixR].refcnt == AllocTemporary)
- pmap->red[pixR].refcnt = 0;
- if (pmap->green[pixG].refcnt == AllocTemporary)
- pmap->green[pixG].refcnt = 0;
- if (pmap->blue[pixB].refcnt == AllocTemporary)
- pmap->blue[pixB].refcnt = 0;
- break;
- }
-}
-
-typedef unsigned short BigNumUpper;
-typedef unsigned long BigNumLower;
-
-#define BIGNUMLOWERBITS 24
-#define BIGNUMUPPERBITS 16
-#define BIGNUMLOWER (1 << BIGNUMLOWERBITS)
-#define BIGNUMUPPER (1 << BIGNUMUPPERBITS)
-#define UPPERPART(i) ((i) >> BIGNUMLOWERBITS)
-#define LOWERPART(i) ((i) & (BIGNUMLOWER - 1))
-
-typedef struct _bignum {
- BigNumUpper upper;
- BigNumLower lower;
-} BigNumRec, *BigNumPtr;
-
-#define BigNumGreater(x,y) (((x)->upper > (y)->upper) ||\
- ((x)->upper == (y)->upper && (x)->lower > (y)->lower))
-
-#define UnsignedToBigNum(u,r) (((r)->upper = UPPERPART(u)), \
- ((r)->lower = LOWERPART(u)))
-
-#define MaxBigNum(r) (((r)->upper = BIGNUMUPPER-1), \
- ((r)->lower = BIGNUMLOWER-1))
-
-static void
-BigNumAdd (BigNumPtr x, BigNumPtr y, BigNumPtr r)
-{
- BigNumLower lower, carry = 0;
-
- lower = x->lower + y->lower;
- if (lower >= BIGNUMLOWER) {
- lower -= BIGNUMLOWER;
- carry = 1;
- }
- r->lower = lower;
- r->upper = x->upper + y->upper + carry;
-}
-
-static Pixel
-FindBestPixel(EntryPtr pentFirst, int size, xrgb *prgb, int channel)
-{
- EntryPtr pent;
- Pixel pixel, final;
- long dr, dg, db;
- unsigned long sq;
- BigNumRec minval, sum, temp;
-
- final = 0;
- MaxBigNum(&minval);
- /* look for the minimal difference */
- for (pent = pentFirst, pixel = 0; pixel < size; pent++, pixel++)
- {
- dr = dg = db = 0;
- switch(channel)
- {
- case PSEUDOMAP:
- dg = (long) pent->co.local.green - prgb->green;
- db = (long) pent->co.local.blue - prgb->blue;
- case REDMAP:
- dr = (long) pent->co.local.red - prgb->red;
- break;
- case GREENMAP:
- dg = (long) pent->co.local.green - prgb->green;
- break;
- case BLUEMAP:
- db = (long) pent->co.local.blue - prgb->blue;
- break;
- }
- sq = dr * dr;
- UnsignedToBigNum (sq, &sum);
- sq = dg * dg;
- UnsignedToBigNum (sq, &temp);
- BigNumAdd (&sum, &temp, &sum);
- sq = db * db;
- UnsignedToBigNum (sq, &temp);
- BigNumAdd (&sum, &temp, &sum);
- if (BigNumGreater (&minval, &sum))
- {
- final = pixel;
- minval = sum;
- }
- }
- return(final);
-}
-
-static void
-FindColorInRootCmap (ColormapPtr pmap, EntryPtr pentFirst, int size,
- xrgb *prgb, Pixel *pPixel, int channel,
- ColorCompareProcPtr comp)
-{
- EntryPtr pent;
- Pixel pixel;
- int count;
-
- if ((pixel = *pPixel) >= size)
- pixel = 0;
- for (pent = pentFirst + pixel, count = size; --count >= 0; pent++, pixel++)
- {
- if (pent->refcnt > 0 && (*comp) (pent, prgb))
- {
- switch (channel)
- {
- case REDMAP:
- pixel <<= pmap->pVisual->offsetRed;
- break;
- case GREENMAP:
- pixel <<= pmap->pVisual->offsetGreen;
- break;
- case BLUEMAP:
- pixel <<= pmap->pVisual->offsetBlue;
- break;
- default: /* PSEUDOMAP */
- break;
- }
- *pPixel = pixel;
- }
- }
-}
-
-/* Tries to find a color in pmap that exactly matches the one requested in prgb
- * if it can't it allocates one.
- * Starts looking at pentFirst + *pPixel, so if you want a specific pixel,
- * load *pPixel with that value, otherwise set it to 0
- */
-int
-FindColor (ColormapPtr pmap, EntryPtr pentFirst, int size, xrgb *prgb,
- Pixel *pPixel, int channel, int client,
- ColorCompareProcPtr comp)
-{
- EntryPtr pent;
- Bool foundFree;
- Pixel pixel, Free = 0;
- int npix, count, *nump = NULL;
- Pixel **pixp = NULL, *ppix;
- xColorItem def;
-
- foundFree = FALSE;
-
- if((pixel = *pPixel) >= size)
- pixel = 0;
- /* see if there is a match, and also look for a free entry */
- for (pent = pentFirst + pixel, count = size; --count >= 0; )
- {
- if (pent->refcnt > 0)
- {
- if ((*comp) (pent, prgb))
- {
- if (client >= 0)
- pent->refcnt++;
- *pPixel = pixel;
- switch(channel)
- {
- case REDMAP:
- *pPixel <<= pmap->pVisual->offsetRed;
- case PSEUDOMAP:
- break;
- case GREENMAP:
- *pPixel <<= pmap->pVisual->offsetGreen;
- break;
- case BLUEMAP:
- *pPixel <<= pmap->pVisual->offsetBlue;
- break;
- }
- goto gotit;
- }
- }
- else if (!foundFree && pent->refcnt == 0)
- {
- Free = pixel;
- foundFree = TRUE;
- /* If we're initializing the colormap, then we are looking for
- * the first free cell we can find, not to minimize the number
- * of entries we use. So don't look any further. */
- if(pmap->flags & BeingCreated)
- break;
- }
- pixel++;
- if(pixel >= size)
- {
- pent = pentFirst;
- pixel = 0;
- }
- else
- pent++;
- }
-
- /* If we got here, we didn't find a match. If we also didn't find
- * a free entry, we're out of luck. Otherwise, we'll usurp a free
- * entry and fill it in */
- if (!foundFree)
- return (BadAlloc);
- pent = pentFirst + Free;
- pent->fShared = FALSE;
- pent->refcnt = (client >= 0) ? 1 : AllocTemporary;
-
- switch (channel)
- {
- case PSEUDOMAP:
- pent->co.local.red = prgb->red;
- pent->co.local.green = prgb->green;
- pent->co.local.blue = prgb->blue;
- def.red = prgb->red;
- def.green = prgb->green;
- def.blue = prgb->blue;
- def.flags = (DoRed|DoGreen|DoBlue);
- if (client >= 0)
- pmap->freeRed--;
- def.pixel = Free;
- break;
-
- case REDMAP:
- pent->co.local.red = prgb->red;
- def.red = prgb->red;
- def.green = pmap->green[0].co.local.green;
- def.blue = pmap->blue[0].co.local.blue;
- def.flags = DoRed;
- if (client >= 0)
- pmap->freeRed--;
- def.pixel = Free << pmap->pVisual->offsetRed;
- break;
-
- case GREENMAP:
- pent->co.local.green = prgb->green;
- def.red = pmap->red[0].co.local.red;
- def.green = prgb->green;
- def.blue = pmap->blue[0].co.local.blue;
- def.flags = DoGreen;
- if (client >= 0)
- pmap->freeGreen--;
- def.pixel = Free << pmap->pVisual->offsetGreen;
- break;
-
- case BLUEMAP:
- pent->co.local.blue = prgb->blue;
- def.red = pmap->red[0].co.local.red;
- def.green = pmap->green[0].co.local.green;
- def.blue = prgb->blue;
- def.flags = DoBlue;
- if (client >= 0)
- pmap->freeBlue--;
- def.pixel = Free << pmap->pVisual->offsetBlue;
- break;
- }
- (*pmap->pScreen->StoreColors) (pmap, 1, &def);
- pixel = Free;
- *pPixel = def.pixel;
-
-gotit:
- if (pmap->flags & BeingCreated || client == -1)
- return(Success);
- /* Now remember the pixel, for freeing later */
- switch (channel)
- {
- case PSEUDOMAP:
- case REDMAP:
- nump = pmap->numPixelsRed;
- pixp = pmap->clientPixelsRed;
- break;
-
- case GREENMAP:
- nump = pmap->numPixelsGreen;
- pixp = pmap->clientPixelsGreen;
- break;
-
- case BLUEMAP:
- nump = pmap->numPixelsBlue;
- pixp = pmap->clientPixelsBlue;
- break;
- }
- npix = nump[client];
- ppix = (Pixel *) xrealloc (pixp[client], (npix + 1) * sizeof(Pixel));
- if (!ppix)
- {
- pent->refcnt--;
- if (!pent->fShared)
- switch (channel)
- {
- case PSEUDOMAP:
- case REDMAP:
- pmap->freeRed++;
- break;
- case GREENMAP:
- pmap->freeGreen++;
- break;
- case BLUEMAP:
- pmap->freeBlue++;
- break;
- }
- return(BadAlloc);
- }
- ppix[npix] = pixel;
- pixp[client] = ppix;
- nump[client]++;
-
- return(Success);
-}
-
-/* Comparison functions -- passed to FindColor to determine if an
- * entry is already the color we're looking for or not */
-static int
-AllComp (EntryPtr pent, xrgb *prgb)
-{
- if((pent->co.local.red == prgb->red) &&
- (pent->co.local.green == prgb->green) &&
- (pent->co.local.blue == prgb->blue) )
- return (1);
- return (0);
-}
-
-static int
-RedComp (EntryPtr pent, xrgb *prgb)
-{
- if (pent->co.local.red == prgb->red)
- return (1);
- return (0);
-}
-
-static int
-GreenComp (EntryPtr pent, xrgb *prgb)
-{
- if (pent->co.local.green == prgb->green)
- return (1);
- return (0);
-}
-
-static int
-BlueComp (EntryPtr pent, xrgb *prgb)
-{
- if (pent->co.local.blue == prgb->blue)
- return (1);
- return (0);
-}
-
-
-/* Read the color value of a cell */
-
-int
-QueryColors (ColormapPtr pmap, int count, Pixel *ppixIn, xrgb *prgbList)
-{
- Pixel *ppix, pixel;
- xrgb *prgb;
- VisualPtr pVisual;
- EntryPtr pent;
- Pixel i;
- int errVal = Success;
-
- pVisual = pmap->pVisual;
- if ((pmap->class | DynamicClass) == DirectColor)
- {
- int numred, numgreen, numblue;
- Pixel rgbbad;
-
- numred = NUMRED(pVisual);
- numgreen = NUMGREEN(pVisual);
- numblue = NUMBLUE(pVisual);
- rgbbad = ~RGBMASK(pVisual);
- for( ppix = ppixIn, prgb = prgbList; --count >= 0; ppix++, prgb++)
- {
- pixel = *ppix;
- if (pixel & rgbbad) {
- clientErrorValue = pixel;
- errVal = BadValue;
- continue;
- }
- i = (pixel & pVisual->redMask) >> pVisual->offsetRed;
- if (i >= numred)
- {
- clientErrorValue = pixel;
- errVal = BadValue;
- continue;
- }
- prgb->red = pmap->red[i].co.local.red;
- i = (pixel & pVisual->greenMask) >> pVisual->offsetGreen;
- if (i >= numgreen)
- {
- clientErrorValue = pixel;
- errVal = BadValue;
- continue;
- }
- prgb->green = pmap->green[i].co.local.green;
- i = (pixel & pVisual->blueMask) >> pVisual->offsetBlue;
- if (i >= numblue)
- {
- clientErrorValue = pixel;
- errVal = BadValue;
- continue;
- }
- prgb->blue = pmap->blue[i].co.local.blue;
- }
- }
- else
- {
- for( ppix = ppixIn, prgb = prgbList; --count >= 0; ppix++, prgb++)
- {
- pixel = *ppix;
- if (pixel >= pVisual->ColormapEntries)
- {
- clientErrorValue = pixel;
- errVal = BadValue;
- }
- else
- {
- pent = (EntryPtr)&pmap->red[pixel];
- if (pent->fShared)
- {
- prgb->red = pent->co.shco.red->color;
- prgb->green = pent->co.shco.green->color;
- prgb->blue = pent->co.shco.blue->color;
- }
- else
- {
- prgb->red = pent->co.local.red;
- prgb->green = pent->co.local.green;
- prgb->blue = pent->co.local.blue;
- }
- }
- }
- }
- return (errVal);
-}
-
-static void
-FreePixels(ColormapPtr pmap, int client)
-{
- Pixel *ppix, *ppixStart;
- int n;
- int class;
-
- class = pmap->class;
- ppixStart = pmap->clientPixelsRed[client];
- if (class & DynamicClass)
- {
- n = pmap->numPixelsRed[client];
- for (ppix = ppixStart; --n >= 0; )
- {
- FreeCell(pmap, *ppix, REDMAP);
- ppix++;
- }
- }
-
- xfree(ppixStart);
- pmap->clientPixelsRed[client] = (Pixel *) NULL;
- pmap->numPixelsRed[client] = 0;
- if ((class | DynamicClass) == DirectColor)
- {
- ppixStart = pmap->clientPixelsGreen[client];
- if (class & DynamicClass)
- for (ppix = ppixStart, n = pmap->numPixelsGreen[client]; --n >= 0;)
- FreeCell(pmap, *ppix++, GREENMAP);
- xfree(ppixStart);
- pmap->clientPixelsGreen[client] = (Pixel *) NULL;
- pmap->numPixelsGreen[client] = 0;
-
- ppixStart = pmap->clientPixelsBlue[client];
- if (class & DynamicClass)
- for (ppix = ppixStart, n = pmap->numPixelsBlue[client]; --n >= 0; )
- FreeCell(pmap, *ppix++, BLUEMAP);
- xfree(ppixStart);
- pmap->clientPixelsBlue[client] = (Pixel *) NULL;
- pmap->numPixelsBlue[client] = 0;
- }
-}
-
-/**
- * Frees all of a client's colors and cells.
- *
- * \param value must conform to DeleteType
- * \unused fakeid
- */
-int
-FreeClientPixels (pointer value, XID fakeid)
-{
- pointer pmap;
- colorResource *pcr = value;
- int rc;
-
- rc = dixLookupResourceByType(&pmap, pcr->mid, RT_COLORMAP, serverClient,
- DixRemoveAccess);
- if (rc == Success)
- FreePixels((ColormapPtr)pmap, pcr->client);
- xfree(pcr);
- return Success;
-}
-
-int
-AllocColorCells (int client, ColormapPtr pmap, int colors, int planes,
- Bool contig, Pixel *ppix, Pixel *masks)
-{
- Pixel rmask, gmask, bmask, *ppixFirst, r, g, b;
- int n, class;
- int ok;
- int oldcount;
- colorResource *pcr = (colorResource *)NULL;
-
- class = pmap->class;
- if (!(class & DynamicClass))
- return (BadAlloc); /* Shouldn't try on this type */
- oldcount = pmap->numPixelsRed[client];
- if (pmap->class == DirectColor)
- oldcount += pmap->numPixelsGreen[client] + pmap->numPixelsBlue[client];
- if (!oldcount && (CLIENT_ID(pmap->mid) != client))
- {
- pcr = xalloc(sizeof(colorResource));
- if (!pcr)
- return (BadAlloc);
- }
-
- if (pmap->class == DirectColor)
- {
- ok = AllocDirect (client, pmap, colors, planes, planes, planes,
- contig, ppix, &rmask, &gmask, &bmask);
- if(ok == Success)
- {
- for (r = g = b = 1, n = planes; --n >= 0; r += r, g += g, b += b)
- {
- while(!(rmask & r))
- r += r;
- while(!(gmask & g))
- g += g;
- while(!(bmask & b))
- b += b;
- *masks++ = r | g | b;
- }
- }
- }
- else
- {
- ok = AllocPseudo (client, pmap, colors, planes, contig, ppix, &rmask,
- &ppixFirst);
- if(ok == Success)
- {
- for (r = 1, n = planes; --n >= 0; r += r)
- {
- while(!(rmask & r))
- r += r;
- *masks++ = r;
- }
- }
- }
-
- /* if this is the client's first pixels in this colormap, tell the
- * resource manager that the client has pixels in this colormap which
- * should be freed when the client dies */
- if ((ok == Success) && pcr)
- {
- pcr->mid = pmap->mid;
- pcr->client = client;
- if (!AddResource(FakeClientID(client), RT_CMAPENTRY, (pointer)pcr))
- ok = BadAlloc;
- } else if (pcr)
- xfree(pcr);
-
- return (ok);
-}
-
-
-int
-AllocColorPlanes (int client, ColormapPtr pmap, int colors,
- int r, int g, int b, Bool contig, Pixel *pixels,
- Pixel *prmask, Pixel *pgmask, Pixel *pbmask)
-{
- int ok;
- Pixel mask, *ppixFirst;
- Pixel shift;
- int i;
- int class;
- int oldcount;
- colorResource *pcr = (colorResource *)NULL;
-
- class = pmap->class;
- if (!(class & DynamicClass))
- return (BadAlloc); /* Shouldn't try on this type */
- oldcount = pmap->numPixelsRed[client];
- if (class == DirectColor)
- oldcount += pmap->numPixelsGreen[client] + pmap->numPixelsBlue[client];
- if (!oldcount && (CLIENT_ID(pmap->mid) != client))
- {
- pcr = xalloc(sizeof(colorResource));
- if (!pcr)
- return (BadAlloc);
- }
-
- if (class == DirectColor)
- {
- ok = AllocDirect (client, pmap, colors, r, g, b, contig, pixels,
- prmask, pgmask, pbmask);
- }
- else
- {
- /* Allocate the proper pixels */
- /* XXX This is sort of bad, because of contig is set, we force all
- * r + g + b bits to be contiguous. Should only force contiguity
- * per mask
- */
- ok = AllocPseudo (client, pmap, colors, r + g + b, contig, pixels,
- &mask, &ppixFirst);
-
- if(ok == Success)
- {
- /* now split that mask into three */
- *prmask = *pgmask = *pbmask = 0;
- shift = 1;
- for (i = r; --i >= 0; shift += shift)
- {
- while (!(mask & shift))
- shift += shift;
- *prmask |= shift;
- }
- for (i = g; --i >= 0; shift += shift)
- {
- while (!(mask & shift))
- shift += shift;
- *pgmask |= shift;
- }
- for (i = b; --i >= 0; shift += shift)
- {
- while (!(mask & shift))
- shift += shift;
- *pbmask |= shift;
- }
-
- /* set up the shared color cells */
- if (!AllocShared(pmap, pixels, colors, r, g, b,
- *prmask, *pgmask, *pbmask, ppixFirst))
- {
- (void)FreeColors(pmap, client, colors, pixels, mask);
- ok = BadAlloc;
- }
- }
- }
-
- /* if this is the client's first pixels in this colormap, tell the
- * resource manager that the client has pixels in this colormap which
- * should be freed when the client dies */
- if ((ok == Success) && pcr)
- {
- pcr->mid = pmap->mid;
- pcr->client = client;
- if (!AddResource(FakeClientID(client), RT_CMAPENTRY, (pointer)pcr))
- ok = BadAlloc;
- } else if (pcr)
- xfree(pcr);
-
- return (ok);
-}
-
-static int
-AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool contig,
- Pixel *pixels, Pixel *prmask, Pixel *pgmask, Pixel *pbmask)
-{
- Pixel *ppixRed, *ppixGreen, *ppixBlue;
- Pixel *ppix, *pDst, *p;
- int npix, npixR, npixG, npixB;
- Bool okR, okG, okB;
- Pixel *rpix = 0, *gpix = 0, *bpix = 0;
-
- npixR = c << r;
- npixG = c << g;
- npixB = c << b;
- if ((r >= 32) || (g >= 32) || (b >= 32) ||
- (npixR > pmap->freeRed) || (npixR < c) ||
- (npixG > pmap->freeGreen) || (npixG < c) ||
- (npixB > pmap->freeBlue) || (npixB < c))
- return BadAlloc;
-
- /* start out with empty pixels */
- for(p = pixels; p < pixels + c; p++)
- *p = 0;
-
- ppixRed = xalloc(npixR * sizeof(Pixel));
- ppixGreen = xalloc(npixG * sizeof(Pixel));
- ppixBlue = xalloc(npixB * sizeof(Pixel));
- if (!ppixRed || !ppixGreen || !ppixBlue)
- {
- if (ppixBlue) xfree(ppixBlue);
- if (ppixGreen) xfree(ppixGreen);
- if (ppixRed) xfree(ppixRed);
- return(BadAlloc);
- }
-
- okR = AllocCP(pmap, pmap->red, c, r, contig, ppixRed, prmask);
- okG = AllocCP(pmap, pmap->green, c, g, contig, ppixGreen, pgmask);
- okB = AllocCP(pmap, pmap->blue, c, b, contig, ppixBlue, pbmask);
-
- if (okR && okG && okB)
- {
- rpix = (Pixel *) xrealloc(pmap->clientPixelsRed[client],
- (pmap->numPixelsRed[client] + (c << r)) *
- sizeof(Pixel));
- if (rpix)
- pmap->clientPixelsRed[client] = rpix;
- gpix = (Pixel *) xrealloc(pmap->clientPixelsGreen[client],
- (pmap->numPixelsGreen[client] + (c << g)) *
- sizeof(Pixel));
- if (gpix)
- pmap->clientPixelsGreen[client] = gpix;
- bpix = (Pixel *) xrealloc(pmap->clientPixelsBlue[client],
- (pmap->numPixelsBlue[client] + (c << b)) *
- sizeof(Pixel));
- if (bpix)
- pmap->clientPixelsBlue[client] = bpix;
- }
-
- if (!okR || !okG || !okB || !rpix || !gpix || !bpix)
- {
- if (okR)
- for(ppix = ppixRed, npix = npixR; --npix >= 0; ppix++)
- pmap->red[*ppix].refcnt = 0;
- if (okG)
- for(ppix = ppixGreen, npix = npixG; --npix >= 0; ppix++)
- pmap->green[*ppix].refcnt = 0;
- if (okB)
- for(ppix = ppixBlue, npix = npixB; --npix >= 0; ppix++)
- pmap->blue[*ppix].refcnt = 0;
- xfree(ppixBlue);
- xfree(ppixGreen);
- xfree(ppixRed);
- return(BadAlloc);
- }
-
- *prmask <<= pmap->pVisual->offsetRed;
- *pgmask <<= pmap->pVisual->offsetGreen;
- *pbmask <<= pmap->pVisual->offsetBlue;
-
- ppix = rpix + pmap->numPixelsRed[client];
- for (pDst = pixels, p = ppixRed; p < ppixRed + npixR; p++)
- {
- *ppix++ = *p;
- if(p < ppixRed + c)
- *pDst++ |= *p << pmap->pVisual->offsetRed;
- }
- pmap->numPixelsRed[client] += npixR;
- pmap->freeRed -= npixR;
-
- ppix = gpix + pmap->numPixelsGreen[client];
- for (pDst = pixels, p = ppixGreen; p < ppixGreen + npixG; p++)
- {
- *ppix++ = *p;
- if(p < ppixGreen + c)
- *pDst++ |= *p << pmap->pVisual->offsetGreen;
- }
- pmap->numPixelsGreen[client] += npixG;
- pmap->freeGreen -= npixG;
-
- ppix = bpix + pmap->numPixelsBlue[client];
- for (pDst = pixels, p = ppixBlue; p < ppixBlue + npixB; p++)
- {
- *ppix++ = *p;
- if(p < ppixBlue + c)
- *pDst++ |= *p << pmap->pVisual->offsetBlue;
- }
- pmap->numPixelsBlue[client] += npixB;
- pmap->freeBlue -= npixB;
-
-
- for (pDst = pixels; pDst < pixels + c; pDst++)
- *pDst |= ALPHAMASK(pmap->pVisual);
-
- xfree(ppixBlue);
- xfree(ppixGreen);
- xfree(ppixRed);
-
- return (Success);
-}
-
-static int
-AllocPseudo (int client, ColormapPtr pmap, int c, int r, Bool contig,
- Pixel *pixels, Pixel *pmask, Pixel **pppixFirst)
-{
- Pixel *ppix, *p, *pDst, *ppixTemp;
- int npix;
- Bool ok;
-
- npix = c << r;
- if ((r >= 32) || (npix > pmap->freeRed) || (npix < c))
- return(BadAlloc);
- if(!(ppixTemp = xalloc(npix * sizeof(Pixel))))
- return(BadAlloc);
- ok = AllocCP(pmap, pmap->red, c, r, contig, ppixTemp, pmask);
-
- if (ok)
- {
-
- /* all the allocated pixels are added to the client pixel list,
- * but only the unique ones are returned to the client */
- ppix = (Pixel *)xrealloc(pmap->clientPixelsRed[client],
- (pmap->numPixelsRed[client] + npix) * sizeof(Pixel));
- if (!ppix)
- {
- for (p = ppixTemp; p < ppixTemp + npix; p++)
- pmap->red[*p].refcnt = 0;
- return (BadAlloc);
- }
- pmap->clientPixelsRed[client] = ppix;
- ppix += pmap->numPixelsRed[client];
- *pppixFirst = ppix;
- pDst = pixels;
- for (p = ppixTemp; p < ppixTemp + npix; p++)
- {
- *ppix++ = *p;
- if(p < ppixTemp + c)
- *pDst++ = *p;
- }
- pmap->numPixelsRed[client] += npix;
- pmap->freeRed -= npix;
- }
- xfree(ppixTemp);
- return (ok ? Success : BadAlloc);
-}
-
-/* Allocates count << planes pixels from colormap pmap for client. If
- * contig, then the plane mask is made of consecutive bits. Returns
- * all count << pixels in the array pixels. The first count of those
- * pixels are the unique pixels. *pMask has the mask to Or with the
- * unique pixels to get the rest of them.
- *
- * Returns True iff all pixels could be allocated
- * All cells allocated will have refcnt set to AllocPrivate and shared to FALSE
- * (see AllocShared for why we care)
- */
-static Bool
-AllocCP (ColormapPtr pmap, EntryPtr pentFirst, int count, int planes,
- Bool contig, Pixel *pixels, Pixel *pMask)
-{
- EntryPtr ent;
- Pixel pixel, base, entries, maxp, save;
- int dplanes, found;
- Pixel *ppix;
- Pixel mask;
- Pixel finalmask;
-
- dplanes = pmap->pVisual->nplanes;
-
- /* Easy case. Allocate pixels only */
- if (planes == 0)
- {
- /* allocate writable entries */
- ppix = pixels;
- ent = pentFirst;
- pixel = 0;
- while (--count >= 0)
- {
- /* Just find count unallocated cells */
- while (ent->refcnt)
- {
- ent++;
- pixel++;
- }
- ent->refcnt = AllocPrivate;
- *ppix++ = pixel;
- ent->fShared = FALSE;
- }
- *pMask = 0;
- return (TRUE);
- }
- else if (planes > dplanes)
- {
- return (FALSE);
- }
-
- /* General case count pixels * 2 ^ planes cells to be allocated */
-
- /* make room for new pixels */
- ent = pentFirst;
-
- /* first try for contiguous planes, since it's fastest */
- for (mask = (((Pixel)1) << planes) - 1, base = 1, dplanes -= (planes - 1);
- --dplanes >= 0;
- mask += mask, base += base)
- {
- ppix = pixels;
- found = 0;
- pixel = 0;
- entries = pmap->pVisual->ColormapEntries - mask;
- while (pixel < entries)
- {
- save = pixel;
- maxp = pixel + mask + base;
- /* check if all are free */
- while (pixel != maxp && ent[pixel].refcnt == 0)
- pixel += base;
- if (pixel == maxp)
- {
- /* this one works */
- *ppix++ = save;
- found++;
- if (found == count)
- {
- /* found enough, allocate them all */
- while (--count >= 0)
- {
- pixel = pixels[count];
- maxp = pixel + mask;
- while (1)
- {
- ent[pixel].refcnt = AllocPrivate;
- ent[pixel].fShared = FALSE;
- if (pixel == maxp)
- break;
- pixel += base;
- *ppix++ = pixel;
- }
- }
- *pMask = mask;
- return (TRUE);
- }
- }
- pixel = save + 1;
- if (pixel & mask)
- pixel += mask;
- }
- }
-
- dplanes = pmap->pVisual->nplanes;
- if (contig || planes == 1 || dplanes < 3)
- return (FALSE);
-
- /* this will be very slow for large maps, need a better algorithm */
-
- /*
- we can generate the smallest and largest numbers that fits in dplanes
- bits and contain exactly planes bits set as follows. First, we need to
- check that it is possible to generate such a mask at all.
- (Non-contiguous masks need one more bit than contiguous masks). Then
- the smallest such mask consists of the rightmost planes-1 bits set, then
- a zero, then a one in position planes + 1. The formula is
- (3 << (planes-1)) -1
- The largest such masks consists of the leftmost planes-1 bits set, then
- a zero, then a one bit in position dplanes-planes-1. If dplanes is
- smaller than 32 (the number of bits in a word) then the formula is:
- (1<<dplanes) - (1<<(dplanes-planes+1) + (1<<dplanes-planes-1)
- If dplanes = 32, then we can't calculate (1<<dplanes) and we have
- to use:
- ( (1<<(planes-1)) - 1) << (dplanes-planes+1) + (1<<(dplanes-planes-1))
-
- << Thank you, Loretta>>>
-
- */
-
- finalmask =
- (((((Pixel)1)<<(planes-1)) - 1) << (dplanes-planes+1)) +
- (((Pixel)1)<<(dplanes-planes-1));
- for (mask = (((Pixel)3) << (planes -1)) - 1; mask <= finalmask; mask++)
- {
- /* next 3 magic statements count number of ones (HAKMEM #169) */
- pixel = (mask >> 1) & 033333333333;
- pixel = mask - pixel - ((pixel >> 1) & 033333333333);
- if ((((pixel + (pixel >> 3)) & 030707070707) % 077) != planes)
- continue;
- ppix = pixels;
- found = 0;
- entries = pmap->pVisual->ColormapEntries - mask;
- base = lowbit (mask);
- for (pixel = 0; pixel < entries; pixel++)
- {
- if (pixel & mask)
- continue;
- maxp = 0;
- /* check if all are free */
- while (ent[pixel + maxp].refcnt == 0)
- {
- GetNextBitsOrBreak(maxp, mask, base);
- }
- if ((maxp < mask) || (ent[pixel + mask].refcnt != 0))
- continue;
- /* this one works */
- *ppix++ = pixel;
- found++;
- if (found < count)
- continue;
- /* found enough, allocate them all */
- while (--count >= 0)
- {
- pixel = (pixels)[count];
- maxp = 0;
- while (1)
- {
- ent[pixel + maxp].refcnt = AllocPrivate;
- ent[pixel + maxp].fShared = FALSE;
- GetNextBitsOrBreak(maxp, mask, base);
- *ppix++ = pixel + maxp;
- }
- }
-
- *pMask = mask;
- return (TRUE);
- }
- }
- return (FALSE);
-}
-
-/**
- *
- * \param ppixFirst First of the client's new pixels
- */
-static Bool
-AllocShared (ColormapPtr pmap, Pixel *ppix, int c, int r, int g, int b,
- Pixel rmask, Pixel gmask, Pixel bmask, Pixel *ppixFirst)
-{
- Pixel *pptr, *cptr;
- int npix, z, npixClientNew, npixShared;
- Pixel basemask, base, bits, common;
- SHAREDCOLOR *pshared, **ppshared, **psharedList;
-
- npixClientNew = c << (r + g + b);
- npixShared = (c << r) + (c << g) + (c << b);
- psharedList = xalloc(npixShared * sizeof(SHAREDCOLOR *));
- if (!psharedList)
- return FALSE;
- ppshared = psharedList;
- for (z = npixShared; --z >= 0; )
- {
- if (!(ppshared[z] = xalloc(sizeof(SHAREDCOLOR))))
- {
- for (z++ ; z < npixShared; z++)
- xfree(ppshared[z]);
- return FALSE;
- }
- }
- for(pptr = ppix, npix = c; --npix >= 0; pptr++)
- {
- basemask = ~(gmask | bmask);
- common = *pptr & basemask;
- if (rmask)
- {
- bits = 0;
- base = lowbit (rmask);
- while(1)
- {
- pshared = *ppshared++;
- pshared->refcnt = 1 << (g + b);
- for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
- {
- if ((*cptr & basemask) == (common | bits))
- {
- pmap->red[*cptr].fShared = TRUE;
- pmap->red[*cptr].co.shco.red = pshared;
- }
- }
- GetNextBitsOrBreak(bits, rmask, base);
- }
- }
- else
- {
- pshared = *ppshared++;
- pshared->refcnt = 1 << (g + b);
- for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
- {
- if ((*cptr & basemask) == common)
- {
- pmap->red[*cptr].fShared = TRUE;
- pmap->red[*cptr].co.shco.red = pshared;
- }
- }
- }
- basemask = ~(rmask | bmask);
- common = *pptr & basemask;
- if (gmask)
- {
- bits = 0;
- base = lowbit (gmask);
- while(1)
- {
- pshared = *ppshared++;
- pshared->refcnt = 1 << (r + b);
- for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
- {
- if ((*cptr & basemask) == (common | bits))
- {
- pmap->red[*cptr].co.shco.green = pshared;
- }
- }
- GetNextBitsOrBreak(bits, gmask, base);
- }
- }
- else
- {
- pshared = *ppshared++;
- pshared->refcnt = 1 << (g + b);
- for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
- {
- if ((*cptr & basemask) == common)
- {
- pmap->red[*cptr].co.shco.green = pshared;
- }
- }
- }
- basemask = ~(rmask | gmask);
- common = *pptr & basemask;
- if (bmask)
- {
- bits = 0;
- base = lowbit (bmask);
- while(1)
- {
- pshared = *ppshared++;
- pshared->refcnt = 1 << (r + g);
- for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
- {
- if ((*cptr & basemask) == (common | bits))
- {
- pmap->red[*cptr].co.shco.blue = pshared;
- }
- }
- GetNextBitsOrBreak(bits, bmask, base);
- }
- }
- else
- {
- pshared = *ppshared++;
- pshared->refcnt = 1 << (g + b);
- for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
- {
- if ((*cptr & basemask) == common)
- {
- pmap->red[*cptr].co.shco.blue = pshared;
- }
- }
- }
- }
- xfree(psharedList);
- return TRUE;
-}
-
-
-/** FreeColors
- * Free colors and/or cells (probably slow for large numbers)
- */
-int
-FreeColors (ColormapPtr pmap, int client, int count, Pixel *pixels, Pixel mask)
-{
- int rval, result, class;
- Pixel rmask;
-
- class = pmap->class;
- if (pmap->flags & AllAllocated)
- return(BadAccess);
- if ((class | DynamicClass) == DirectColor)
- {
- rmask = mask & RGBMASK(pmap->pVisual);
- result = FreeCo(pmap, client, REDMAP, count, pixels,
- mask & pmap->pVisual->redMask);
- /* If any of the three calls fails, we must report that, if more
- * than one fails, it's ok that we report the last one */
- rval = FreeCo(pmap, client, GREENMAP, count, pixels,
- mask & pmap->pVisual->greenMask);
- if(rval != Success)
- result = rval;
- rval = FreeCo(pmap, client, BLUEMAP, count, pixels,
- mask & pmap->pVisual->blueMask);
- if(rval != Success)
- result = rval;
- }
- else
- {
- rmask = mask & ((((Pixel)1) << pmap->pVisual->nplanes) - 1);
- result = FreeCo(pmap, client, PSEUDOMAP, count, pixels, rmask);
- }
- if ((mask != rmask) && count)
- {
- clientErrorValue = *pixels | mask;
- result = BadValue;
- }
- /* XXX should worry about removing any RT_CMAPENTRY resource */
- return (result);
-}
-
-/**
- * Helper for FreeColors -- frees all combinations of *newpixels and mask bits
- * which the client has allocated in channel colormap cells of pmap.
- * doesn't change newpixels if it doesn't need to
- *
- * \param pmap which colormap head
- * \param color which sub-map, eg, RED, BLUE, PSEUDO
- * \param npixIn number of pixels passed in
- * \param ppixIn number of base pixels
- * \param mask mask client gave us
- */
-static int
-FreeCo (ColormapPtr pmap, int client, int color, int npixIn, Pixel *ppixIn, Pixel mask)
-{
- Pixel *ppixClient, pixTest;
- int npixClient, npixNew, npix;
- Pixel bits, base, cmask, rgbbad;
- Pixel *pptr, *cptr;
- int n, zapped;
- int errVal = Success;
- int offset, numents;
-
- if (npixIn == 0)
- return (errVal);
- bits = 0;
- zapped = 0;
- base = lowbit (mask);
-
- switch(color)
- {
- case REDMAP:
- cmask = pmap->pVisual->redMask;
- rgbbad = ~RGBMASK(pmap->pVisual);
- offset = pmap->pVisual->offsetRed;
- numents = (cmask >> offset) + 1;
- ppixClient = pmap->clientPixelsRed[client];
- npixClient = pmap->numPixelsRed[client];
- break;
- case GREENMAP:
- cmask = pmap->pVisual->greenMask;
- rgbbad = ~RGBMASK(pmap->pVisual);
- offset = pmap->pVisual->offsetGreen;
- numents = (cmask >> offset) + 1;
- ppixClient = pmap->clientPixelsGreen[client];
- npixClient = pmap->numPixelsGreen[client];
- break;
- case BLUEMAP:
- cmask = pmap->pVisual->blueMask;
- rgbbad = ~RGBMASK(pmap->pVisual);
- offset = pmap->pVisual->offsetBlue;
- numents = (cmask >> offset) + 1;
- ppixClient = pmap->clientPixelsBlue[client];
- npixClient = pmap->numPixelsBlue[client];
- break;
- default: /* so compiler can see that everything gets initialized */
- case PSEUDOMAP:
- cmask = ~((Pixel)0);
- rgbbad = 0;
- offset = 0;
- numents = pmap->pVisual->ColormapEntries;
- ppixClient = pmap->clientPixelsRed[client];
- npixClient = pmap->numPixelsRed[client];
- break;
- }
-
-
- /* zap all pixels which match */
- while (1)
- {
- /* go through pixel list */
- for (pptr = ppixIn, n = npixIn; --n >= 0; pptr++)
- {
- pixTest = ((*pptr | bits) & cmask) >> offset;
- if ((pixTest >= numents) || (*pptr & rgbbad))
- {
- clientErrorValue = *pptr | bits;
- errVal = BadValue;
- continue;
- }
-
- /* find match in client list */
- for (cptr = ppixClient, npix = npixClient;
- --npix >= 0 && *cptr != pixTest;
- cptr++) ;
-
- if (npix >= 0)
- {
- if (pmap->class & DynamicClass)
- {
- FreeCell(pmap, pixTest, color);
- }
- *cptr = ~((Pixel)0);
- zapped++;
- }
- else
- errVal = BadAccess;
- }
- /* generate next bits value */
- GetNextBitsOrBreak(bits, mask, base);
- }
-
- /* delete freed pixels from client pixel list */
- if (zapped)
- {
- npixNew = npixClient - zapped;
- if (npixNew)
- {
- /* Since the list can only get smaller, we can do a copy in
- * place and then realloc to a smaller size */
- pptr = cptr = ppixClient;
-
- /* If we have all the new pixels, we don't have to examine the
- * rest of the old ones */
- for(npix = 0; npix < npixNew; cptr++)
- {
- if (*cptr != ~((Pixel)0))
- {
- *pptr++ = *cptr;
- npix++;
- }
- }
- pptr = (Pixel *)xrealloc(ppixClient, npixNew * sizeof(Pixel));
- if (pptr)
- ppixClient = pptr;
- npixClient = npixNew;
- }
- else
- {
- npixClient = 0;
- xfree(ppixClient);
- ppixClient = (Pixel *)NULL;
- }
- switch(color)
- {
- case PSEUDOMAP:
- case REDMAP:
- pmap->clientPixelsRed[client] = ppixClient;
- pmap->numPixelsRed[client] = npixClient;
- break;
- case GREENMAP:
- pmap->clientPixelsGreen[client] = ppixClient;
- pmap->numPixelsGreen[client] = npixClient;
- break;
- case BLUEMAP:
- pmap->clientPixelsBlue[client] = ppixClient;
- pmap->numPixelsBlue[client] = npixClient;
- break;
- }
- }
- return (errVal);
-}
-
-
-
-/* Redefine color values */
-int
-StoreColors (ColormapPtr pmap, int count, xColorItem *defs)
-{
- Pixel pix;
- xColorItem *pdef;
- EntryPtr pent, pentT, pentLast;
- VisualPtr pVisual;
- SHAREDCOLOR *pred, *pgreen, *pblue;
- int n, ChgRed, ChgGreen, ChgBlue, idef;
- int class, errVal = Success;
- int ok;
-
-
- class = pmap->class;
- if(!(class & DynamicClass) && !(pmap->flags & BeingCreated))
- {
- return(BadAccess);
- }
- pVisual = pmap->pVisual;
-
- idef = 0;
- if((class | DynamicClass) == DirectColor)
- {
- int numred, numgreen, numblue;
- Pixel rgbbad;
-
- numred = NUMRED(pVisual);
- numgreen = NUMGREEN(pVisual);
- numblue = NUMBLUE(pVisual);
- rgbbad = ~RGBMASK(pVisual);
- for (pdef = defs, n = 0; n < count; pdef++, n++)
- {
- ok = TRUE;
- (*pmap->pScreen->ResolveColor)
- (&pdef->red, &pdef->green, &pdef->blue, pmap->pVisual);
-
- if (pdef->pixel & rgbbad)
- {
- errVal = BadValue;
- clientErrorValue = pdef->pixel;
- continue;
- }
- pix = (pdef->pixel & pVisual->redMask) >> pVisual->offsetRed;
- if (pix >= numred)
- {
- errVal = BadValue;
- ok = FALSE;
- }
- else if (pmap->red[pix].refcnt != AllocPrivate)
- {
- errVal = BadAccess;
- ok = FALSE;
- }
- else if (pdef->flags & DoRed)
- {
- pmap->red[pix].co.local.red = pdef->red;
- }
- else
- {
- pdef->red = pmap->red[pix].co.local.red;
- }
-
- pix = (pdef->pixel & pVisual->greenMask) >> pVisual->offsetGreen;
- if (pix >= numgreen)
- {
- errVal = BadValue;
- ok = FALSE;
- }
- else if (pmap->green[pix].refcnt != AllocPrivate)
- {
- errVal = BadAccess;
- ok = FALSE;
- }
- else if (pdef->flags & DoGreen)
- {
- pmap->green[pix].co.local.green = pdef->green;
- }
- else
- {
- pdef->green = pmap->green[pix].co.local.green;
- }
-
- pix = (pdef->pixel & pVisual->blueMask) >> pVisual->offsetBlue;
- if (pix >= numblue)
- {
- errVal = BadValue;
- ok = FALSE;
- }
- else if (pmap->blue[pix].refcnt != AllocPrivate)
- {
- errVal = BadAccess;
- ok = FALSE;
- }
- else if (pdef->flags & DoBlue)
- {
- pmap->blue[pix].co.local.blue = pdef->blue;
- }
- else
- {
- pdef->blue = pmap->blue[pix].co.local.blue;
- }
- /* If this is an o.k. entry, then it gets added to the list
- * to be sent to the hardware. If not, skip it. Once we've
- * skipped one, we have to copy all the others.
- */
- if(ok)
- {
- if(idef != n)
- defs[idef] = defs[n];
- idef++;
- } else
- clientErrorValue = pdef->pixel;
- }
- }
- else
- {
- for (pdef = defs, n = 0; n < count; pdef++, n++)
- {
-
- ok = TRUE;
- if (pdef->pixel >= pVisual->ColormapEntries)
- {
- clientErrorValue = pdef->pixel;
- errVal = BadValue;
- ok = FALSE;
- }
- else if (pmap->red[pdef->pixel].refcnt != AllocPrivate)
- {
- errVal = BadAccess;
- ok = FALSE;
- }
-
- /* If this is an o.k. entry, then it gets added to the list
- * to be sent to the hardware. If not, skip it. Once we've
- * skipped one, we have to copy all the others.
- */
- if(ok)
- {
- if(idef != n)
- defs[idef] = defs[n];
- idef++;
- }
- else
- continue;
-
- (*pmap->pScreen->ResolveColor)
- (&pdef->red, &pdef->green, &pdef->blue, pmap->pVisual);
-
- pent = &pmap->red[pdef->pixel];
-
- if(pdef->flags & DoRed)
- {
- if(pent->fShared)
- {
- pent->co.shco.red->color = pdef->red;
- if (pent->co.shco.red->refcnt > 1)
- ok = FALSE;
- }
- else
- pent->co.local.red = pdef->red;
- }
- else
- {
- if(pent->fShared)
- pdef->red = pent->co.shco.red->color;
- else
- pdef->red = pent->co.local.red;
- }
- if(pdef->flags & DoGreen)
- {
- if(pent->fShared)
- {
- pent->co.shco.green->color = pdef->green;
- if (pent->co.shco.green->refcnt > 1)
- ok = FALSE;
- }
- else
- pent->co.local.green = pdef->green;
- }
- else
- {
- if(pent->fShared)
- pdef->green = pent->co.shco.green->color;
- else
- pdef->green = pent->co.local.green;
- }
- if(pdef->flags & DoBlue)
- {
- if(pent->fShared)
- {
- pent->co.shco.blue->color = pdef->blue;
- if (pent->co.shco.blue->refcnt > 1)
- ok = FALSE;
- }
- else
- pent->co.local.blue = pdef->blue;
- }
- else
- {
- if(pent->fShared)
- pdef->blue = pent->co.shco.blue->color;
- else
- pdef->blue = pent->co.local.blue;
- }
-
- if(!ok)
- {
- /* have to run through the colormap and change anybody who
- * shares this value */
- pred = pent->co.shco.red;
- pgreen = pent->co.shco.green;
- pblue = pent->co.shco.blue;
- ChgRed = pdef->flags & DoRed;
- ChgGreen = pdef->flags & DoGreen;
- ChgBlue = pdef->flags & DoBlue;
- pentLast = pmap->red + pVisual->ColormapEntries;
-
- for(pentT = pmap->red; pentT < pentLast; pentT++)
- {
- if(pentT->fShared && (pentT != pent))
- {
- xColorItem defChg;
-
- /* There are, alas, devices in this world too dumb
- * to read their own hardware colormaps. Sick, but
- * true. So we're going to be really nice and load
- * the xColorItem with the proper value for all the
- * fields. We will only set the flags for those
- * fields that actually change. Smart devices can
- * arrange to change only those fields. Dumb devices
- * can rest assured that we have provided for them,
- * and can change all three fields */
-
- defChg.flags = 0;
- if(ChgRed && pentT->co.shco.red == pred)
- {
- defChg.flags |= DoRed;
- }
- if(ChgGreen && pentT->co.shco.green == pgreen)
- {
- defChg.flags |= DoGreen;
- }
- if(ChgBlue && pentT->co.shco.blue == pblue)
- {
- defChg.flags |= DoBlue;
- }
- if(defChg.flags != 0)
- {
- defChg.pixel = pentT - pmap->red;
- defChg.red = pentT->co.shco.red->color;
- defChg.green = pentT->co.shco.green->color;
- defChg.blue = pentT->co.shco.blue->color;
- (*pmap->pScreen->StoreColors) (pmap, 1, &defChg);
- }
- }
- }
-
- }
- }
- }
- /* Note that we use idef, the count of acceptable entries, and not
- * count, the count of proposed entries */
- if (idef != 0)
- ( *pmap->pScreen->StoreColors) (pmap, idef, defs);
- return (errVal);
-}
-
-int
-IsMapInstalled(Colormap map, WindowPtr pWin)
-{
- Colormap *pmaps;
- int imap, nummaps, found;
-
- pmaps = xalloc(pWin->drawable.pScreen->maxInstalledCmaps*sizeof(Colormap));
- if(!pmaps)
- return(FALSE);
- nummaps = (*pWin->drawable.pScreen->ListInstalledColormaps)
- (pWin->drawable.pScreen, pmaps);
- found = FALSE;
- for(imap = 0; imap < nummaps; imap++)
- {
- if(pmaps[imap] == map)
- {
- found = TRUE;
- break;
- }
- }
- xfree(pmaps);
- return (found);
-}
+/***********************************************************
+
+Copyright 1987, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include <X11/X.h>
+#include <X11/Xproto.h>
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+#include "misc.h"
+#include "dix.h"
+#include "colormapst.h"
+#include "os.h"
+#include "scrnintstr.h"
+#include "resource.h"
+#include "windowstr.h"
+#include "privates.h"
+#include "xace.h"
+
+#ifdef _MSC_VER
+#define UpdateColors thisUpdateColors
+#endif
+
+extern XID clientErrorValue;
+
+static Pixel FindBestPixel(
+ EntryPtr /*pentFirst*/,
+ int /*size*/,
+ xrgb * /*prgb*/,
+ int /*channel*/
+);
+
+static int AllComp(
+ EntryPtr /*pent*/,
+ xrgb * /*prgb*/
+);
+
+static int RedComp(
+ EntryPtr /*pent*/,
+ xrgb * /*prgb*/
+);
+
+static int GreenComp(
+ EntryPtr /*pent*/,
+ xrgb * /*prgb*/
+);
+
+static int BlueComp(
+ EntryPtr /*pent*/,
+ xrgb * /*prgb*/
+);
+
+static void FreePixels(
+ ColormapPtr /*pmap*/,
+ int /*client*/
+);
+
+static void CopyFree(
+ int /*channel*/,
+ int /*client*/,
+ ColormapPtr /*pmapSrc*/,
+ ColormapPtr /*pmapDst*/
+);
+
+static void FreeCell(
+ ColormapPtr /*pmap*/,
+ Pixel /*i*/,
+ int /*channel*/
+);
+
+static void UpdateColors(
+ ColormapPtr /*pmap*/
+);
+
+static int AllocDirect(
+ int /*client*/,
+ ColormapPtr /*pmap*/,
+ int /*c*/,
+ int /*r*/,
+ int /*g*/,
+ int /*b*/,
+ Bool /*contig*/,
+ Pixel * /*pixels*/,
+ Pixel * /*prmask*/,
+ Pixel * /*pgmask*/,
+ Pixel * /*pbmask*/
+);
+
+static int AllocPseudo(
+ int /*client*/,
+ ColormapPtr /*pmap*/,
+ int /*c*/,
+ int /*r*/,
+ Bool /*contig*/,
+ Pixel * /*pixels*/,
+ Pixel * /*pmask*/,
+ Pixel ** /*pppixFirst*/
+);
+
+static Bool AllocCP(
+ ColormapPtr /*pmap*/,
+ EntryPtr /*pentFirst*/,
+ int /*count*/,
+ int /*planes*/,
+ Bool /*contig*/,
+ Pixel * /*pixels*/,
+ Pixel * /*pMask*/
+);
+
+static Bool AllocShared(
+ ColormapPtr /*pmap*/,
+ Pixel * /*ppix*/,
+ int /*c*/,
+ int /*r*/,
+ int /*g*/,
+ int /*b*/,
+ Pixel /*rmask*/,
+ Pixel /*gmask*/,
+ Pixel /*bmask*/,
+ Pixel * /*ppixFirst*/
+);
+
+static int FreeCo(
+ ColormapPtr /*pmap*/,
+ int /*client*/,
+ int /*color*/,
+ int /*npixIn*/,
+ Pixel * /*ppixIn*/,
+ Pixel /*mask*/
+);
+
+static int TellNoMap(
+ WindowPtr /*pwin*/,
+ Colormap * /*pmid*/
+);
+
+static void FindColorInRootCmap (
+ ColormapPtr /* pmap */,
+ EntryPtr /* pentFirst */,
+ int /* size */,
+ xrgb* /* prgb */,
+ Pixel* /* pPixel */,
+ int /* channel */,
+ ColorCompareProcPtr /* comp */
+);
+
+#define NUMRED(vis) ((vis->redMask >> vis->offsetRed) + 1)
+#define NUMGREEN(vis) ((vis->greenMask >> vis->offsetGreen) + 1)
+#define NUMBLUE(vis) ((vis->blueMask >> vis->offsetBlue) + 1)
+#if COMPOSITE
+#define ALPHAMASK(vis) ((vis)->nplanes < 32 ? 0 : \
+ (CARD32) ~((vis)->redMask|(vis)->greenMask|(vis)->blueMask))
+#else
+#define ALPHAMASK(vis) 0
+#endif
+
+#define RGBMASK(vis) (vis->redMask | vis->greenMask | vis->blueMask | ALPHAMASK(vis))
+
+/* GetNextBitsOrBreak(bits, mask, base) --
+ * (Suggestion: First read the macro, then read this explanation.
+ *
+ * Either generate the next value to OR in to a pixel or break out of this
+ * while loop
+ *
+ * This macro is used when we're trying to generate all 2^n combinations of
+ * bits in mask. What we're doing here is counting in binary, except that
+ * the bits we use to count may not be contiguous. This macro will be
+ * called 2^n times, returning a different value in bits each time. Then
+ * it will cause us to break out of a surrounding loop. (It will always be
+ * called from within a while loop.)
+ * On call: mask is the value we want to find all the combinations for
+ * base has 1 bit set where the least significant bit of mask is set
+ *
+ * For example,if mask is 01010, base should be 0010 and we count like this:
+ * 00010 (see this isn't so hard),
+ * then we add base to bits and get 0100. (bits & ~mask) is (0100 & 0100) so
+ * we add that to bits getting (0100 + 0100) =
+ * 01000 for our next value.
+ * then we add 0010 to get
+ * 01010 and we're done (easy as 1, 2, 3)
+ */
+#define GetNextBitsOrBreak(bits, mask, base) \
+ if((bits) == (mask)) \
+ break; \
+ (bits) += (base); \
+ while((bits) & ~(mask)) \
+ (bits) += ((bits) & ~(mask));
+/* ID of server as client */
+#define SERVER_ID 0
+
+typedef struct _colorResource
+{
+ Colormap mid;
+ int client;
+} colorResource;
+
+/* Invariants:
+ * refcnt == 0 means entry is empty
+ * refcnt > 0 means entry is useable by many clients, so it can't be changed
+ * refcnt == AllocPrivate means entry owned by one client only
+ * fShared should only be set if refcnt == AllocPrivate, and only in red map
+ */
+
+
+/**
+ * Create and initialize the color map
+ *
+ * \param mid resource to use for this colormap
+ * \param alloc 1 iff all entries are allocated writable
+ */
+int
+CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
+ ColormapPtr *ppcmap, int alloc, int client)
+{
+ int class, size;
+ unsigned long sizebytes;
+ ColormapPtr pmap;
+ EntryPtr pent;
+ int i;
+ Pixel *ppix, **pptr;
+
+ class = pVisual->class;
+ if(!(class & DynamicClass) && (alloc != AllocNone) && (client != SERVER_ID))
+ return (BadMatch);
+
+ size = pVisual->ColormapEntries;
+ sizebytes = (size * sizeof(Entry)) +
+ (MAXCLIENTS * sizeof(Pixel *)) +
+ (MAXCLIENTS * sizeof(int));
+ if ((class | DynamicClass) == DirectColor)
+ sizebytes *= 3;
+ sizebytes += sizeof(ColormapRec);
+ pmap = xalloc(sizebytes);
+ if (!pmap)
+ return (BadAlloc);
+#if defined(_XSERVER64)
+ pmap->pad0 = 0;
+ pmap->pad1 = 0;
+#if (X_BYTE_ORDER == X_LITTLE_ENDIAN)
+ pmap->pad2 = 0;
+#endif
+#endif
+ pmap->red = (EntryPtr)((char *)pmap + sizeof(ColormapRec));
+ sizebytes = size * sizeof(Entry);
+ pmap->clientPixelsRed = (Pixel **)((char *)pmap->red + sizebytes);
+ pmap->numPixelsRed = (int *)((char *)pmap->clientPixelsRed +
+ (MAXCLIENTS * sizeof(Pixel *)));
+ pmap->mid = mid;
+ pmap->flags = 0; /* start out with all flags clear */
+ if(mid == pScreen->defColormap)
+ pmap->flags |= IsDefault;
+ pmap->pScreen = pScreen;
+ pmap->pVisual = pVisual;
+ pmap->class = class;
+ if ((class | DynamicClass) == DirectColor)
+ size = NUMRED(pVisual);
+ pmap->freeRed = size;
+ bzero ((char *) pmap->red, (int)sizebytes);
+ bzero((char *) pmap->numPixelsRed, MAXCLIENTS * sizeof(int));
+ for (pptr = &pmap->clientPixelsRed[MAXCLIENTS]; --pptr >= pmap->clientPixelsRed; )
+ *pptr = (Pixel *)NULL;
+ if (alloc == AllocAll)
+ {
+ if (class & DynamicClass)
+ pmap->flags |= AllAllocated;
+ for (pent = &pmap->red[size - 1]; pent >= pmap->red; pent--)
+ pent->refcnt = AllocPrivate;
+ pmap->freeRed = 0;
+ ppix = xalloc(size * sizeof(Pixel));
+ if (!ppix)
+ {
+ xfree(pmap);
+ return (BadAlloc);
+ }
+ pmap->clientPixelsRed[client] = ppix;
+ for(i = 0; i < size; i++)
+ ppix[i] = i;
+ pmap->numPixelsRed[client] = size;
+ }
+
+ if ((class | DynamicClass) == DirectColor)
+ {
+ pmap->freeGreen = NUMGREEN(pVisual);
+ pmap->green = (EntryPtr)((char *)pmap->numPixelsRed +
+ (MAXCLIENTS * sizeof(int)));
+ pmap->clientPixelsGreen = (Pixel **)((char *)pmap->green + sizebytes);
+ pmap->numPixelsGreen = (int *)((char *)pmap->clientPixelsGreen +
+ (MAXCLIENTS * sizeof(Pixel *)));
+ pmap->freeBlue = NUMBLUE(pVisual);
+ pmap->blue = (EntryPtr)((char *)pmap->numPixelsGreen +
+ (MAXCLIENTS * sizeof(int)));
+ pmap->clientPixelsBlue = (Pixel **)((char *)pmap->blue + sizebytes);
+ pmap->numPixelsBlue = (int *)((char *)pmap->clientPixelsBlue +
+ (MAXCLIENTS * sizeof(Pixel *)));
+
+ bzero ((char *) pmap->green, (int)sizebytes);
+ bzero ((char *) pmap->blue, (int)sizebytes);
+
+ memmove((char *) pmap->clientPixelsGreen,
+ (char *) pmap->clientPixelsRed,
+ MAXCLIENTS * sizeof(Pixel *));
+ memmove((char *) pmap->clientPixelsBlue,
+ (char *) pmap->clientPixelsRed,
+ MAXCLIENTS * sizeof(Pixel *));
+ bzero((char *) pmap->numPixelsGreen, MAXCLIENTS * sizeof(int));
+ bzero((char *) pmap->numPixelsBlue, MAXCLIENTS * sizeof(int));
+
+ /* If every cell is allocated, mark its refcnt */
+ if (alloc == AllocAll)
+ {
+ size = pmap->freeGreen;
+ for(pent = &pmap->green[size-1]; pent >= pmap->green; pent--)
+ pent->refcnt = AllocPrivate;
+ pmap->freeGreen = 0;
+ ppix = xalloc(size * sizeof(Pixel));
+ if (!ppix)
+ {
+ xfree(pmap->clientPixelsRed[client]);
+ xfree(pmap);
+ return(BadAlloc);
+ }
+ pmap->clientPixelsGreen[client] = ppix;
+ for(i = 0; i < size; i++)
+ ppix[i] = i;
+ pmap->numPixelsGreen[client] = size;
+
+ size = pmap->freeBlue;
+ for(pent = &pmap->blue[size-1]; pent >= pmap->blue; pent--)
+ pent->refcnt = AllocPrivate;
+ pmap->freeBlue = 0;
+ ppix = xalloc(size * sizeof(Pixel));
+ if (!ppix)
+ {
+ xfree(pmap->clientPixelsGreen[client]);
+ xfree(pmap->clientPixelsRed[client]);
+ xfree(pmap);
+ return(BadAlloc);
+ }
+ pmap->clientPixelsBlue[client] = ppix;
+ for(i = 0; i < size; i++)
+ ppix[i] = i;
+ pmap->numPixelsBlue[client] = size;
+ }
+ }
+ pmap->devPrivates = NULL;
+ pmap->flags |= BeingCreated;
+
+ if (!AddResource(mid, RT_COLORMAP, (pointer)pmap))
+ return (BadAlloc);
+
+ /*
+ * Security creation/labeling check
+ */
+ i = XaceHook(XACE_RESOURCE_ACCESS, clients[client], mid, RT_COLORMAP,
+ pmap, RT_NONE, NULL, DixCreateAccess);
+ if (i != Success) {
+ FreeResource(mid, RT_NONE);
+ return i;
+ }
+
+ /* If the device wants a chance to initialize the colormap in any way,
+ * this is it. In specific, if this is a Static colormap, this is the
+ * time to fill in the colormap's values */
+ if (!(*pScreen->CreateColormap)(pmap))
+ {
+ FreeResource (mid, RT_NONE);
+ return BadAlloc;
+ }
+ pmap->flags &= ~BeingCreated;
+ *ppcmap = pmap;
+ return (Success);
+}
+
+/**
+ *
+ * \param value must conform to DeleteType
+ */
+int
+FreeColormap (pointer value, XID mid)
+{
+ int i;
+ EntryPtr pent;
+ ColormapPtr pmap = (ColormapPtr)value;
+
+ if(CLIENT_ID(mid) != SERVER_ID)
+ {
+ (*pmap->pScreen->UninstallColormap) (pmap);
+ WalkTree(pmap->pScreen, (VisitWindowProcPtr)TellNoMap, (pointer) &mid);
+ }
+
+ /* This is the device's chance to undo anything it needs to, especially
+ * to free any storage it allocated */
+ (*pmap->pScreen->DestroyColormap)(pmap);
+
+ if(pmap->clientPixelsRed)
+ {
+ for(i = 0; i < MAXCLIENTS; i++)
+ xfree(pmap->clientPixelsRed[i]);
+ }
+
+ if ((pmap->class == PseudoColor) || (pmap->class == GrayScale))
+ {
+ for(pent = &pmap->red[pmap->pVisual->ColormapEntries - 1];
+ pent >= pmap->red;
+ pent--)
+ {
+ if(pent->fShared)
+ {
+ if (--pent->co.shco.red->refcnt == 0)
+ xfree(pent->co.shco.red);
+ if (--pent->co.shco.green->refcnt == 0)
+ xfree(pent->co.shco.green);
+ if (--pent->co.shco.blue->refcnt == 0)
+ xfree(pent->co.shco.blue);
+ }
+ }
+ }
+ if((pmap->class | DynamicClass) == DirectColor)
+ {
+ for(i = 0; i < MAXCLIENTS; i++)
+ {
+ xfree(pmap->clientPixelsGreen[i]);
+ xfree(pmap->clientPixelsBlue[i]);
+ }
+ }
+
+ dixFreePrivates(pmap->devPrivates);
+ xfree(pmap);
+ return(Success);
+}
+
+/* Tell window that pmid has disappeared */
+static int
+TellNoMap (WindowPtr pwin, Colormap *pmid)
+{
+ xEvent xE;
+
+ if (wColormap(pwin) == *pmid)
+ {
+ /* This should be call to DeliverEvent */
+ xE.u.u.type = ColormapNotify;
+ xE.u.colormap.window = pwin->drawable.id;
+ xE.u.colormap.colormap = None;
+ xE.u.colormap.new = TRUE;
+ xE.u.colormap.state = ColormapUninstalled;
+#ifdef PANORAMIX
+ if(noPanoramiXExtension || !pwin->drawable.pScreen->myNum)
+#endif
+ DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
+ if (pwin->optional) {
+ pwin->optional->colormap = None;
+ CheckWindowOptionalNeed (pwin);
+ }
+ }
+
+ return (WT_WALKCHILDREN);
+}
+
+/* Tell window that pmid got uninstalled */
+int
+TellLostMap (WindowPtr pwin, pointer value)
+{
+ Colormap *pmid = (Colormap *)value;
+ xEvent xE;
+
+#ifdef PANORAMIX
+ if(!noPanoramiXExtension && pwin->drawable.pScreen->myNum)
+ return WT_STOPWALKING;
+#endif
+ if (wColormap(pwin) == *pmid)
+ {
+ /* This should be call to DeliverEvent */
+ xE.u.u.type = ColormapNotify;
+ xE.u.colormap.window = pwin->drawable.id;
+ xE.u.colormap.colormap = *pmid;
+ xE.u.colormap.new = FALSE;
+ xE.u.colormap.state = ColormapUninstalled;
+ DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
+ }
+
+ return (WT_WALKCHILDREN);
+}
+
+/* Tell window that pmid got installed */
+int
+TellGainedMap (WindowPtr pwin, pointer value)
+{
+ Colormap *pmid = (Colormap *)value;
+ xEvent xE;
+
+#ifdef PANORAMIX
+ if(!noPanoramiXExtension && pwin->drawable.pScreen->myNum)
+ return WT_STOPWALKING;
+#endif
+ if (wColormap (pwin) == *pmid)
+ {
+ /* This should be call to DeliverEvent */
+ xE.u.u.type = ColormapNotify;
+ xE.u.colormap.window = pwin->drawable.id;
+ xE.u.colormap.colormap = *pmid;
+ xE.u.colormap.new = FALSE;
+ xE.u.colormap.state = ColormapInstalled;
+ DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
+ }
+
+ return (WT_WALKCHILDREN);
+}
+
+
+int
+CopyColormapAndFree (Colormap mid, ColormapPtr pSrc, int client)
+{
+ ColormapPtr pmap = (ColormapPtr) NULL;
+ int result, alloc, size;
+ Colormap midSrc;
+ ScreenPtr pScreen;
+ VisualPtr pVisual;
+
+ pScreen = pSrc->pScreen;
+ pVisual = pSrc->pVisual;
+ midSrc = pSrc->mid;
+ alloc = ((pSrc->flags & AllAllocated) && CLIENT_ID(midSrc) == client) ?
+ AllocAll : AllocNone;
+ size = pVisual->ColormapEntries;
+
+ /* If the create returns non-0, it failed */
+ result = CreateColormap (mid, pScreen, pVisual, &pmap, alloc, client);
+ if(result != Success)
+ return(result);
+ if(alloc == AllocAll)
+ {
+ memmove((char *)pmap->red, (char *)pSrc->red, size * sizeof(Entry));
+ if((pmap->class | DynamicClass) == DirectColor)
+ {
+ memmove((char *)pmap->green, (char *)pSrc->green, size * sizeof(Entry));
+ memmove((char *)pmap->blue, (char *)pSrc->blue, size * sizeof(Entry));
+ }
+ pSrc->flags &= ~AllAllocated;
+ FreePixels(pSrc, client);
+ UpdateColors(pmap);
+ return(Success);
+ }
+
+ CopyFree(REDMAP, client, pSrc, pmap);
+ if ((pmap->class | DynamicClass) == DirectColor)
+ {
+ CopyFree(GREENMAP, client, pSrc, pmap);
+ CopyFree(BLUEMAP, client, pSrc, pmap);
+ }
+ if (pmap->class & DynamicClass)
+ UpdateColors(pmap);
+ /* XXX should worry about removing any RT_CMAPENTRY resource */
+ return(Success);
+}
+
+/* Helper routine for freeing large numbers of cells from a map */
+static void
+CopyFree (int channel, int client, ColormapPtr pmapSrc, ColormapPtr pmapDst)
+{
+ int z, npix;
+ EntryPtr pentSrcFirst, pentDstFirst;
+ EntryPtr pentSrc, pentDst;
+ Pixel *ppix;
+ int nalloc;
+
+ switch(channel)
+ {
+ default: /* so compiler can see that everything gets initialized */
+ case REDMAP:
+ ppix = (pmapSrc->clientPixelsRed)[client];
+ npix = (pmapSrc->numPixelsRed)[client];
+ pentSrcFirst = pmapSrc->red;
+ pentDstFirst = pmapDst->red;
+ break;
+ case GREENMAP:
+ ppix = (pmapSrc->clientPixelsGreen)[client];
+ npix = (pmapSrc->numPixelsGreen)[client];
+ pentSrcFirst = pmapSrc->green;
+ pentDstFirst = pmapDst->green;
+ break;
+ case BLUEMAP:
+ ppix = (pmapSrc->clientPixelsBlue)[client];
+ npix = (pmapSrc->numPixelsBlue)[client];
+ pentSrcFirst = pmapSrc->blue;
+ pentDstFirst = pmapDst->blue;
+ break;
+ }
+ nalloc = 0;
+ if (pmapSrc->class & DynamicClass)
+ {
+ for(z = npix; --z >= 0; ppix++)
+ {
+ /* Copy entries */
+ pentSrc = pentSrcFirst + *ppix;
+ pentDst = pentDstFirst + *ppix;
+ if (pentDst->refcnt > 0)
+ {
+ pentDst->refcnt++;
+ }
+ else
+ {
+ *pentDst = *pentSrc;
+ nalloc++;
+ if (pentSrc->refcnt > 0)
+ pentDst->refcnt = 1;
+ else
+ pentSrc->fShared = FALSE;
+ }
+ FreeCell(pmapSrc, *ppix, channel);
+ }
+ }
+
+ /* Note that FreeCell has already fixed pmapSrc->free{Color} */
+ switch(channel)
+ {
+ case REDMAP:
+ pmapDst->freeRed -= nalloc;
+ (pmapDst->clientPixelsRed)[client] =
+ (pmapSrc->clientPixelsRed)[client];
+ (pmapSrc->clientPixelsRed)[client] = (Pixel *) NULL;
+ (pmapDst->numPixelsRed)[client] = (pmapSrc->numPixelsRed)[client];
+ (pmapSrc->numPixelsRed)[client] = 0;
+ break;
+ case GREENMAP:
+ pmapDst->freeGreen -= nalloc;
+ (pmapDst->clientPixelsGreen)[client] =
+ (pmapSrc->clientPixelsGreen)[client];
+ (pmapSrc->clientPixelsGreen)[client] = (Pixel *) NULL;
+ (pmapDst->numPixelsGreen)[client] = (pmapSrc->numPixelsGreen)[client];
+ (pmapSrc->numPixelsGreen)[client] = 0;
+ break;
+ case BLUEMAP:
+ pmapDst->freeBlue -= nalloc;
+ pmapDst->clientPixelsBlue[client] = pmapSrc->clientPixelsBlue[client];
+ pmapSrc->clientPixelsBlue[client] = (Pixel *) NULL;
+ pmapDst->numPixelsBlue[client] = pmapSrc->numPixelsBlue[client];
+ pmapSrc->numPixelsBlue[client] = 0;
+ break;
+ }
+}
+
+/* Free the ith entry in a color map. Must handle freeing of
+ * colors allocated through AllocColorPlanes */
+static void
+FreeCell (ColormapPtr pmap, Pixel i, int channel)
+{
+ EntryPtr pent;
+ int *pCount;
+
+
+ switch (channel)
+ {
+ default: /* so compiler can see that everything gets initialized */
+ case PSEUDOMAP:
+ case REDMAP:
+ pent = (EntryPtr) &pmap->red[i];
+ pCount = &pmap->freeRed;
+ break;
+ case GREENMAP:
+ pent = (EntryPtr) &pmap->green[i];
+ pCount = &pmap->freeGreen;
+ break;
+ case BLUEMAP:
+ pent = (EntryPtr) &pmap->blue[i];
+ pCount = &pmap->freeBlue;
+ break;
+ }
+ /* If it's not privately allocated and it's not time to free it, just
+ * decrement the count */
+ if (pent->refcnt > 1)
+ pent->refcnt--;
+ else
+ {
+ /* If the color type is shared, find the sharedcolor. If decremented
+ * refcnt is 0, free the shared cell. */
+ if (pent->fShared)
+ {
+ if(--pent->co.shco.red->refcnt == 0)
+ xfree(pent->co.shco.red);
+ if(--pent->co.shco.green->refcnt == 0)
+ xfree(pent->co.shco.green);
+ if(--pent->co.shco.blue->refcnt == 0)
+ xfree(pent->co.shco.blue);
+ pent->fShared = FALSE;
+ }
+ pent->refcnt = 0;
+ *pCount += 1;
+ }
+}
+
+static void
+UpdateColors (ColormapPtr pmap)
+{
+ xColorItem *defs;
+ xColorItem *pdef;
+ EntryPtr pent;
+ VisualPtr pVisual;
+ int i, n, size;
+
+ pVisual = pmap->pVisual;
+ size = pVisual->ColormapEntries;
+ defs = xalloc(size * sizeof(xColorItem));
+ if (!defs)
+ return;
+ n = 0;
+ pdef = defs;
+ if (pmap->class == DirectColor)
+ {
+ for (i = 0; i < size; i++)
+ {
+ if (!pmap->red[i].refcnt &&
+ !pmap->green[i].refcnt &&
+ !pmap->blue[i].refcnt)
+ continue;
+ pdef->pixel = ((Pixel)i << pVisual->offsetRed) |
+ ((Pixel)i << pVisual->offsetGreen) |
+ ((Pixel)i << pVisual->offsetBlue);
+ pdef->red = pmap->red[i].co.local.red;
+ pdef->green = pmap->green[i].co.local.green;
+ pdef->blue = pmap->blue[i].co.local.blue;
+ pdef->flags = DoRed|DoGreen|DoBlue;
+ pdef++;
+ n++;
+ }
+ }
+ else
+ {
+ for (i = 0, pent = pmap->red; i < size; i++, pent++)
+ {
+ if (!pent->refcnt)
+ continue;
+ pdef->pixel = i;
+ if(pent->fShared)
+ {
+ pdef->red = pent->co.shco.red->color;
+ pdef->green = pent->co.shco.green->color;
+ pdef->blue = pent->co.shco.blue->color;
+ }
+ else
+ {
+ pdef->red = pent->co.local.red;
+ pdef->green = pent->co.local.green;
+ pdef->blue = pent->co.local.blue;
+ }
+ pdef->flags = DoRed|DoGreen|DoBlue;
+ pdef++;
+ n++;
+ }
+ }
+ if (n)
+ (*pmap->pScreen->StoreColors)(pmap, n, defs);
+ xfree(defs);
+}
+
+/* Get a read-only color from a ColorMap (probably slow for large maps)
+ * Returns by changing the value in pred, pgreen, pblue and pPix
+ */
+int
+AllocColor (ColormapPtr pmap,
+ unsigned short *pred, unsigned short *pgreen, unsigned short *pblue,
+ Pixel *pPix, int client)
+{
+ Pixel pixR, pixG, pixB;
+ int entries;
+ xrgb rgb;
+ int class;
+ VisualPtr pVisual;
+ int npix;
+ Pixel *ppix;
+
+ pVisual = pmap->pVisual;
+ (*pmap->pScreen->ResolveColor) (pred, pgreen, pblue, pVisual);
+ rgb.red = *pred;
+ rgb.green = *pgreen;
+ rgb.blue = *pblue;
+ class = pmap->class;
+ entries = pVisual->ColormapEntries;
+
+ /* If the colormap is being created, then we want to be able to change
+ * the colormap, even if it's a static type. Otherwise, we'd never be
+ * able to initialize static colormaps
+ */
+ if(pmap->flags & BeingCreated)
+ class |= DynamicClass;
+
+ /* If this is one of the static storage classes, and we're not initializing
+ * it, the best we can do is to find the closest color entry to the
+ * requested one and return that.
+ */
+ switch (class) {
+ case StaticColor:
+ case StaticGray:
+ /* Look up all three components in the same pmap */
+ *pPix = pixR = FindBestPixel(pmap->red, entries, &rgb, PSEUDOMAP);
+ *pred = pmap->red[pixR].co.local.red;
+ *pgreen = pmap->red[pixR].co.local.green;
+ *pblue = pmap->red[pixR].co.local.blue;
+ npix = pmap->numPixelsRed[client];
+ ppix = (Pixel *) xrealloc(pmap->clientPixelsRed[client],
+ (npix + 1) * sizeof(Pixel));
+ if (!ppix)
+ return (BadAlloc);
+ ppix[npix] = pixR;
+ pmap->clientPixelsRed[client] = ppix;
+ pmap->numPixelsRed[client]++;
+ break;
+
+ case TrueColor:
+ /* Look up each component in its own map, then OR them together */
+ pixR = FindBestPixel(pmap->red, NUMRED(pVisual), &rgb, REDMAP);
+ pixG = FindBestPixel(pmap->green, NUMGREEN(pVisual), &rgb, GREENMAP);
+ pixB = FindBestPixel(pmap->blue, NUMBLUE(pVisual), &rgb, BLUEMAP);
+ *pPix = (pixR << pVisual->offsetRed) |
+ (pixG << pVisual->offsetGreen) |
+ (pixB << pVisual->offsetBlue) |
+ ALPHAMASK(pVisual);
+
+ *pred = pmap->red[pixR].co.local.red;
+ *pgreen = pmap->green[pixG].co.local.green;
+ *pblue = pmap->blue[pixB].co.local.blue;
+ npix = pmap->numPixelsRed[client];
+ ppix = (Pixel *) xrealloc(pmap->clientPixelsRed[client],
+ (npix + 1) * sizeof(Pixel));
+ if (!ppix)
+ return (BadAlloc);
+ ppix[npix] = pixR;
+ pmap->clientPixelsRed[client] = ppix;
+ npix = pmap->numPixelsGreen[client];
+ ppix = (Pixel *) xrealloc(pmap->clientPixelsGreen[client],
+ (npix + 1) * sizeof(Pixel));
+ if (!ppix)
+ return (BadAlloc);
+ ppix[npix] = pixG;
+ pmap->clientPixelsGreen[client] = ppix;
+ npix = pmap->numPixelsBlue[client];
+ ppix = (Pixel *) xrealloc(pmap->clientPixelsBlue[client],
+ (npix + 1) * sizeof(Pixel));
+ if (!ppix)
+ return (BadAlloc);
+ ppix[npix] = pixB;
+ pmap->clientPixelsBlue[client] = ppix;
+ pmap->numPixelsRed[client]++;
+ pmap->numPixelsGreen[client]++;
+ pmap->numPixelsBlue[client]++;
+ break;
+
+ case GrayScale:
+ case PseudoColor:
+ if (pmap->mid != pmap->pScreen->defColormap &&
+ pmap->pVisual->vid == pmap->pScreen->rootVisual)
+ {
+ ColormapPtr prootmap;
+ dixLookupResourceByType((pointer *)&prootmap, pmap->pScreen->defColormap,
+ RT_COLORMAP, clients[client], DixReadAccess);
+
+ if (pmap->class == prootmap->class)
+ FindColorInRootCmap (prootmap, prootmap->red, entries, &rgb,
+ pPix, PSEUDOMAP, AllComp);
+ }
+ if (FindColor(pmap, pmap->red, entries, &rgb, pPix, PSEUDOMAP,
+ client, AllComp) != Success)
+ return (BadAlloc);
+ break;
+
+ case DirectColor:
+ if (pmap->mid != pmap->pScreen->defColormap &&
+ pmap->pVisual->vid == pmap->pScreen->rootVisual)
+ {
+ ColormapPtr prootmap;
+ dixLookupResourceByType((pointer *)&prootmap, pmap->pScreen->defColormap,
+ RT_COLORMAP, clients[client], DixReadAccess);
+
+ if (pmap->class == prootmap->class)
+ {
+ pixR = (*pPix & pVisual->redMask) >> pVisual->offsetRed;
+ FindColorInRootCmap (prootmap, prootmap->red, entries, &rgb,
+ &pixR, REDMAP, RedComp);
+ pixG = (*pPix & pVisual->greenMask) >> pVisual->offsetGreen;
+ FindColorInRootCmap (prootmap, prootmap->green, entries, &rgb,
+ &pixG, GREENMAP, GreenComp);
+ pixB = (*pPix & pVisual->blueMask) >> pVisual->offsetBlue;
+ FindColorInRootCmap (prootmap, prootmap->blue, entries, &rgb,
+ &pixB, BLUEMAP, BlueComp);
+ *pPix = pixR | pixG | pixB;
+ }
+ }
+
+ pixR = (*pPix & pVisual->redMask) >> pVisual->offsetRed;
+ if (FindColor(pmap, pmap->red, NUMRED(pVisual), &rgb, &pixR, REDMAP,
+ client, RedComp) != Success)
+ return (BadAlloc);
+ pixG = (*pPix & pVisual->greenMask) >> pVisual->offsetGreen;
+ if (FindColor(pmap, pmap->green, NUMGREEN(pVisual), &rgb, &pixG,
+ GREENMAP, client, GreenComp) != Success)
+ {
+ (void)FreeCo(pmap, client, REDMAP, 1, &pixR, (Pixel)0);
+ return (BadAlloc);
+ }
+ pixB = (*pPix & pVisual->blueMask) >> pVisual->offsetBlue;
+ if (FindColor(pmap, pmap->blue, NUMBLUE(pVisual), &rgb, &pixB, BLUEMAP,
+ client, BlueComp) != Success)
+ {
+ (void)FreeCo(pmap, client, GREENMAP, 1, &pixG, (Pixel)0);
+ (void)FreeCo(pmap, client, REDMAP, 1, &pixR, (Pixel)0);
+ return (BadAlloc);
+ }
+ *pPix = pixR | pixG | pixB | ALPHAMASK(pVisual);
+
+ break;
+ }
+
+ /* if this is the client's first pixel in this colormap, tell the
+ * resource manager that the client has pixels in this colormap which
+ * should be freed when the client dies */
+ if ((pmap->numPixelsRed[client] == 1) &&
+ (CLIENT_ID(pmap->mid) != client) &&
+ !(pmap->flags & BeingCreated))
+ {
+ colorResource *pcr;
+
+ pcr = xalloc(sizeof(colorResource));
+ if (!pcr)
+ {
+ (void)FreeColors(pmap, client, 1, pPix, (Pixel)0);
+ return (BadAlloc);
+ }
+ pcr->mid = pmap->mid;
+ pcr->client = client;
+ if (!AddResource(FakeClientID(client), RT_CMAPENTRY, (pointer)pcr))
+ return (BadAlloc);
+ }
+ return (Success);
+}
+
+/*
+ * FakeAllocColor -- fake an AllocColor request by
+ * returning a free pixel if availible, otherwise returning
+ * the closest matching pixel. This is used by the mi
+ * software sprite code to recolor cursors. A nice side-effect
+ * is that this routine will never return failure.
+ */
+
+void
+FakeAllocColor (ColormapPtr pmap, xColorItem *item)
+{
+ Pixel pixR, pixG, pixB;
+ Pixel temp;
+ int entries;
+ xrgb rgb;
+ int class;
+ VisualPtr pVisual;
+
+ pVisual = pmap->pVisual;
+ rgb.red = item->red;
+ rgb.green = item->green;
+ rgb.blue = item->blue;
+ (*pmap->pScreen->ResolveColor) (&rgb.red, &rgb.green, &rgb.blue, pVisual);
+ class = pmap->class;
+ entries = pVisual->ColormapEntries;
+
+ switch (class) {
+ case GrayScale:
+ case PseudoColor:
+ temp = 0;
+ item->pixel = 0;
+ if (FindColor(pmap, pmap->red, entries, &rgb, &temp, PSEUDOMAP,
+ -1, AllComp) == Success) {
+ item->pixel = temp;
+ break;
+ }
+ /* fall through ... */
+ case StaticColor:
+ case StaticGray:
+ item->pixel = FindBestPixel(pmap->red, entries, &rgb, PSEUDOMAP);
+ break;
+
+ case DirectColor:
+ /* Look up each component in its own map, then OR them together */
+ pixR = (item->pixel & pVisual->redMask) >> pVisual->offsetRed;
+ pixG = (item->pixel & pVisual->greenMask) >> pVisual->offsetGreen;
+ pixB = (item->pixel & pVisual->blueMask) >> pVisual->offsetBlue;
+ if (FindColor(pmap, pmap->red, NUMRED(pVisual), &rgb, &pixR, REDMAP,
+ -1, RedComp) != Success)
+ pixR = FindBestPixel(pmap->red, NUMRED(pVisual), &rgb, REDMAP)
+ << pVisual->offsetRed;
+ if (FindColor(pmap, pmap->green, NUMGREEN(pVisual), &rgb, &pixG,
+ GREENMAP, -1, GreenComp) != Success)
+ pixG = FindBestPixel(pmap->green, NUMGREEN(pVisual), &rgb,
+ GREENMAP) << pVisual->offsetGreen;
+ if (FindColor(pmap, pmap->blue, NUMBLUE(pVisual), &rgb, &pixB, BLUEMAP,
+ -1, BlueComp) != Success)
+ pixB = FindBestPixel(pmap->blue, NUMBLUE(pVisual), &rgb, BLUEMAP)
+ << pVisual->offsetBlue;
+ item->pixel = pixR | pixG | pixB;
+ break;
+
+ case TrueColor:
+ /* Look up each component in its own map, then OR them together */
+ pixR = FindBestPixel(pmap->red, NUMRED(pVisual), &rgb, REDMAP);
+ pixG = FindBestPixel(pmap->green, NUMGREEN(pVisual), &rgb, GREENMAP);
+ pixB = FindBestPixel(pmap->blue, NUMBLUE(pVisual), &rgb, BLUEMAP);
+ item->pixel = (pixR << pVisual->offsetRed) |
+ (pixG << pVisual->offsetGreen) |
+ (pixB << pVisual->offsetBlue);
+ break;
+ }
+}
+
+/* free a pixel value obtained from FakeAllocColor */
+void
+FakeFreeColor(ColormapPtr pmap, Pixel pixel)
+{
+ VisualPtr pVisual;
+ Pixel pixR, pixG, pixB;
+
+ switch (pmap->class) {
+ case GrayScale:
+ case PseudoColor:
+ if (pmap->red[pixel].refcnt == AllocTemporary)
+ pmap->red[pixel].refcnt = 0;
+ break;
+ case DirectColor:
+ pVisual = pmap->pVisual;
+ pixR = (pixel & pVisual->redMask) >> pVisual->offsetRed;
+ pixG = (pixel & pVisual->greenMask) >> pVisual->offsetGreen;
+ pixB = (pixel & pVisual->blueMask) >> pVisual->offsetBlue;
+ if (pmap->red[pixR].refcnt == AllocTemporary)
+ pmap->red[pixR].refcnt = 0;
+ if (pmap->green[pixG].refcnt == AllocTemporary)
+ pmap->green[pixG].refcnt = 0;
+ if (pmap->blue[pixB].refcnt == AllocTemporary)
+ pmap->blue[pixB].refcnt = 0;
+ break;
+ }
+}
+
+typedef unsigned short BigNumUpper;
+typedef unsigned long BigNumLower;
+
+#define BIGNUMLOWERBITS 24
+#define BIGNUMUPPERBITS 16
+#define BIGNUMLOWER (1 << BIGNUMLOWERBITS)
+#define BIGNUMUPPER (1 << BIGNUMUPPERBITS)
+#define UPPERPART(i) ((i) >> BIGNUMLOWERBITS)
+#define LOWERPART(i) ((i) & (BIGNUMLOWER - 1))
+
+typedef struct _bignum {
+ BigNumUpper upper;
+ BigNumLower lower;
+} BigNumRec, *BigNumPtr;
+
+#define BigNumGreater(x,y) (((x)->upper > (y)->upper) ||\
+ ((x)->upper == (y)->upper && (x)->lower > (y)->lower))
+
+#define UnsignedToBigNum(u,r) (((r)->upper = UPPERPART(u)), \
+ ((r)->lower = LOWERPART(u)))
+
+#define MaxBigNum(r) (((r)->upper = BIGNUMUPPER-1), \
+ ((r)->lower = BIGNUMLOWER-1))
+
+static void
+BigNumAdd (BigNumPtr x, BigNumPtr y, BigNumPtr r)
+{
+ BigNumLower lower, carry = 0;
+
+ lower = x->lower + y->lower;
+ if (lower >= BIGNUMLOWER) {
+ lower -= BIGNUMLOWER;
+ carry = 1;
+ }
+ r->lower = lower;
+ r->upper = x->upper + y->upper + carry;
+}
+
+static Pixel
+FindBestPixel(EntryPtr pentFirst, int size, xrgb *prgb, int channel)
+{
+ EntryPtr pent;
+ Pixel pixel, final;
+ long dr, dg, db;
+ unsigned long sq;
+ BigNumRec minval, sum, temp;
+
+ final = 0;
+ MaxBigNum(&minval);
+ /* look for the minimal difference */
+ for (pent = pentFirst, pixel = 0; pixel < size; pent++, pixel++)
+ {
+ dr = dg = db = 0;
+ switch(channel)
+ {
+ case PSEUDOMAP:
+ dg = (long) pent->co.local.green - prgb->green;
+ db = (long) pent->co.local.blue - prgb->blue;
+ case REDMAP:
+ dr = (long) pent->co.local.red - prgb->red;
+ break;
+ case GREENMAP:
+ dg = (long) pent->co.local.green - prgb->green;
+ break;
+ case BLUEMAP:
+ db = (long) pent->co.local.blue - prgb->blue;
+ break;
+ }
+ sq = dr * dr;
+ UnsignedToBigNum (sq, &sum);
+ sq = dg * dg;
+ UnsignedToBigNum (sq, &temp);
+ BigNumAdd (&sum, &temp, &sum);
+ sq = db * db;
+ UnsignedToBigNum (sq, &temp);
+ BigNumAdd (&sum, &temp, &sum);
+ if (BigNumGreater (&minval, &sum))
+ {
+ final = pixel;
+ minval = sum;
+ }
+ }
+ return(final);
+}
+
+static void
+FindColorInRootCmap (ColormapPtr pmap, EntryPtr pentFirst, int size,
+ xrgb *prgb, Pixel *pPixel, int channel,
+ ColorCompareProcPtr comp)
+{
+ EntryPtr pent;
+ Pixel pixel;
+ int count;
+
+ if ((pixel = *pPixel) >= size)
+ pixel = 0;
+ for (pent = pentFirst + pixel, count = size; --count >= 0; pent++, pixel++)
+ {
+ if (pent->refcnt > 0 && (*comp) (pent, prgb))
+ {
+ switch (channel)
+ {
+ case REDMAP:
+ pixel <<= pmap->pVisual->offsetRed;
+ break;
+ case GREENMAP:
+ pixel <<= pmap->pVisual->offsetGreen;
+ break;
+ case BLUEMAP:
+ pixel <<= pmap->pVisual->offsetBlue;
+ break;
+ default: /* PSEUDOMAP */
+ break;
+ }
+ *pPixel = pixel;
+ }
+ }
+}
+
+/* Tries to find a color in pmap that exactly matches the one requested in prgb
+ * if it can't it allocates one.
+ * Starts looking at pentFirst + *pPixel, so if you want a specific pixel,
+ * load *pPixel with that value, otherwise set it to 0
+ */
+int
+FindColor (ColormapPtr pmap, EntryPtr pentFirst, int size, xrgb *prgb,
+ Pixel *pPixel, int channel, int client,
+ ColorCompareProcPtr comp)
+{
+ EntryPtr pent;
+ Bool foundFree;
+ Pixel pixel, Free = 0;
+ int npix, count, *nump = NULL;
+ Pixel **pixp = NULL, *ppix;
+ xColorItem def;
+
+ foundFree = FALSE;
+
+ if((pixel = *pPixel) >= size)
+ pixel = 0;
+ /* see if there is a match, and also look for a free entry */
+ for (pent = pentFirst + pixel, count = size; --count >= 0; )
+ {
+ if (pent->refcnt > 0)
+ {
+ if ((*comp) (pent, prgb))
+ {
+ if (client >= 0)
+ pent->refcnt++;
+ *pPixel = pixel;
+ switch(channel)
+ {
+ case REDMAP:
+ *pPixel <<= pmap->pVisual->offsetRed;
+ case PSEUDOMAP:
+ break;
+ case GREENMAP:
+ *pPixel <<= pmap->pVisual->offsetGreen;
+ break;
+ case BLUEMAP:
+ *pPixel <<= pmap->pVisual->offsetBlue;
+ break;
+ }
+ goto gotit;
+ }
+ }
+ else if (!foundFree && pent->refcnt == 0)
+ {
+ Free = pixel;
+ foundFree = TRUE;
+ /* If we're initializing the colormap, then we are looking for
+ * the first free cell we can find, not to minimize the number
+ * of entries we use. So don't look any further. */
+ if(pmap->flags & BeingCreated)
+ break;
+ }
+ pixel++;
+ if(pixel >= size)
+ {
+ pent = pentFirst;
+ pixel = 0;
+ }
+ else
+ pent++;
+ }
+
+ /* If we got here, we didn't find a match. If we also didn't find
+ * a free entry, we're out of luck. Otherwise, we'll usurp a free
+ * entry and fill it in */
+ if (!foundFree)
+ return (BadAlloc);
+ pent = pentFirst + Free;
+ pent->fShared = FALSE;
+ pent->refcnt = (client >= 0) ? 1 : AllocTemporary;
+
+ switch (channel)
+ {
+ case PSEUDOMAP:
+ pent->co.local.red = prgb->red;
+ pent->co.local.green = prgb->green;
+ pent->co.local.blue = prgb->blue;
+ def.red = prgb->red;
+ def.green = prgb->green;
+ def.blue = prgb->blue;
+ def.flags = (DoRed|DoGreen|DoBlue);
+ if (client >= 0)
+ pmap->freeRed--;
+ def.pixel = Free;
+ break;
+
+ case REDMAP:
+ pent->co.local.red = prgb->red;
+ def.red = prgb->red;
+ def.green = pmap->green[0].co.local.green;
+ def.blue = pmap->blue[0].co.local.blue;
+ def.flags = DoRed;
+ if (client >= 0)
+ pmap->freeRed--;
+ def.pixel = Free << pmap->pVisual->offsetRed;
+ break;
+
+ case GREENMAP:
+ pent->co.local.green = prgb->green;
+ def.red = pmap->red[0].co.local.red;
+ def.green = prgb->green;
+ def.blue = pmap->blue[0].co.local.blue;
+ def.flags = DoGreen;
+ if (client >= 0)
+ pmap->freeGreen--;
+ def.pixel = Free << pmap->pVisual->offsetGreen;
+ break;
+
+ case BLUEMAP:
+ pent->co.local.blue = prgb->blue;
+ def.red = pmap->red[0].co.local.red;
+ def.green = pmap->green[0].co.local.green;
+ def.blue = prgb->blue;
+ def.flags = DoBlue;
+ if (client >= 0)
+ pmap->freeBlue--;
+ def.pixel = Free << pmap->pVisual->offsetBlue;
+ break;
+ }
+ (*pmap->pScreen->StoreColors) (pmap, 1, &def);
+ pixel = Free;
+ *pPixel = def.pixel;
+
+gotit:
+ if (pmap->flags & BeingCreated || client == -1)
+ return(Success);
+ /* Now remember the pixel, for freeing later */
+ switch (channel)
+ {
+ case PSEUDOMAP:
+ case REDMAP:
+ nump = pmap->numPixelsRed;
+ pixp = pmap->clientPixelsRed;
+ break;
+
+ case GREENMAP:
+ nump = pmap->numPixelsGreen;
+ pixp = pmap->clientPixelsGreen;
+ break;
+
+ case BLUEMAP:
+ nump = pmap->numPixelsBlue;
+ pixp = pmap->clientPixelsBlue;
+ break;
+ }
+ npix = nump[client];
+ ppix = (Pixel *) xrealloc (pixp[client], (npix + 1) * sizeof(Pixel));
+ if (!ppix)
+ {
+ pent->refcnt--;
+ if (!pent->fShared)
+ switch (channel)
+ {
+ case PSEUDOMAP:
+ case REDMAP:
+ pmap->freeRed++;
+ break;
+ case GREENMAP:
+ pmap->freeGreen++;
+ break;
+ case BLUEMAP:
+ pmap->freeBlue++;
+ break;
+ }
+ return(BadAlloc);
+ }
+ ppix[npix] = pixel;
+ pixp[client] = ppix;
+ nump[client]++;
+
+ return(Success);
+}
+
+/* Comparison functions -- passed to FindColor to determine if an
+ * entry is already the color we're looking for or not */
+static int
+AllComp (EntryPtr pent, xrgb *prgb)
+{
+ if((pent->co.local.red == prgb->red) &&
+ (pent->co.local.green == prgb->green) &&
+ (pent->co.local.blue == prgb->blue) )
+ return (1);
+ return (0);
+}
+
+static int
+RedComp (EntryPtr pent, xrgb *prgb)
+{
+ if (pent->co.local.red == prgb->red)
+ return (1);
+ return (0);
+}
+
+static int
+GreenComp (EntryPtr pent, xrgb *prgb)
+{
+ if (pent->co.local.green == prgb->green)
+ return (1);
+ return (0);
+}
+
+static int
+BlueComp (EntryPtr pent, xrgb *prgb)
+{
+ if (pent->co.local.blue == prgb->blue)
+ return (1);
+ return (0);
+}
+
+
+/* Read the color value of a cell */
+
+int
+QueryColors (ColormapPtr pmap, int count, Pixel *ppixIn, xrgb *prgbList)
+{
+ Pixel *ppix, pixel;
+ xrgb *prgb;
+ VisualPtr pVisual;
+ EntryPtr pent;
+ Pixel i;
+ int errVal = Success;
+
+ pVisual = pmap->pVisual;
+ if ((pmap->class | DynamicClass) == DirectColor)
+ {
+ int numred, numgreen, numblue;
+ Pixel rgbbad;
+
+ numred = NUMRED(pVisual);
+ numgreen = NUMGREEN(pVisual);
+ numblue = NUMBLUE(pVisual);
+ rgbbad = ~RGBMASK(pVisual);
+ for( ppix = ppixIn, prgb = prgbList; --count >= 0; ppix++, prgb++)
+ {
+ pixel = *ppix;
+ if (pixel & rgbbad) {
+ clientErrorValue = pixel;
+ errVal = BadValue;
+ continue;
+ }
+ i = (pixel & pVisual->redMask) >> pVisual->offsetRed;
+ if (i >= numred)
+ {
+ clientErrorValue = pixel;
+ errVal = BadValue;
+ continue;
+ }
+ prgb->red = pmap->red[i].co.local.red;
+ i = (pixel & pVisual->greenMask) >> pVisual->offsetGreen;
+ if (i >= numgreen)
+ {
+ clientErrorValue = pixel;
+ errVal = BadValue;
+ continue;
+ }
+ prgb->green = pmap->green[i].co.local.green;
+ i = (pixel & pVisual->blueMask) >> pVisual->offsetBlue;
+ if (i >= numblue)
+ {
+ clientErrorValue = pixel;
+ errVal = BadValue;
+ continue;
+ }
+ prgb->blue = pmap->blue[i].co.local.blue;
+ }
+ }
+ else
+ {
+ for( ppix = ppixIn, prgb = prgbList; --count >= 0; ppix++, prgb++)
+ {
+ pixel = *ppix;
+ if (pixel >= pVisual->ColormapEntries)
+ {
+ clientErrorValue = pixel;
+ errVal = BadValue;
+ }
+ else
+ {
+ pent = (EntryPtr)&pmap->red[pixel];
+ if (pent->fShared)
+ {
+ prgb->red = pent->co.shco.red->color;
+ prgb->green = pent->co.shco.green->color;
+ prgb->blue = pent->co.shco.blue->color;
+ }
+ else
+ {
+ prgb->red = pent->co.local.red;
+ prgb->green = pent->co.local.green;
+ prgb->blue = pent->co.local.blue;
+ }
+ }
+ }
+ }
+ return (errVal);
+}
+
+static void
+FreePixels(ColormapPtr pmap, int client)
+{
+ Pixel *ppix, *ppixStart;
+ int n;
+ int class;
+
+ class = pmap->class;
+ ppixStart = pmap->clientPixelsRed[client];
+ if (class & DynamicClass)
+ {
+ n = pmap->numPixelsRed[client];
+ for (ppix = ppixStart; --n >= 0; )
+ {
+ FreeCell(pmap, *ppix, REDMAP);
+ ppix++;
+ }
+ }
+
+ xfree(ppixStart);
+ pmap->clientPixelsRed[client] = (Pixel *) NULL;
+ pmap->numPixelsRed[client] = 0;
+ if ((class | DynamicClass) == DirectColor)
+ {
+ ppixStart = pmap->clientPixelsGreen[client];
+ if (class & DynamicClass)
+ for (ppix = ppixStart, n = pmap->numPixelsGreen[client]; --n >= 0;)
+ FreeCell(pmap, *ppix++, GREENMAP);
+ xfree(ppixStart);
+ pmap->clientPixelsGreen[client] = (Pixel *) NULL;
+ pmap->numPixelsGreen[client] = 0;
+
+ ppixStart = pmap->clientPixelsBlue[client];
+ if (class & DynamicClass)
+ for (ppix = ppixStart, n = pmap->numPixelsBlue[client]; --n >= 0; )
+ FreeCell(pmap, *ppix++, BLUEMAP);
+ xfree(ppixStart);
+ pmap->clientPixelsBlue[client] = (Pixel *) NULL;
+ pmap->numPixelsBlue[client] = 0;
+ }
+}
+
+/**
+ * Frees all of a client's colors and cells.
+ *
+ * \param value must conform to DeleteType
+ * \unused fakeid
+ */
+int
+FreeClientPixels (pointer value, XID fakeid)
+{
+ pointer pmap;
+ colorResource *pcr = value;
+ int rc;
+
+ rc = dixLookupResourceByType(&pmap, pcr->mid, RT_COLORMAP, serverClient,
+ DixRemoveAccess);
+ if (rc == Success)
+ FreePixels((ColormapPtr)pmap, pcr->client);
+ xfree(pcr);
+ return Success;
+}
+
+int
+AllocColorCells (int client, ColormapPtr pmap, int colors, int planes,
+ Bool contig, Pixel *ppix, Pixel *masks)
+{
+ Pixel rmask, gmask, bmask, *ppixFirst, r, g, b;
+ int n, class;
+ int ok;
+ int oldcount;
+ colorResource *pcr = (colorResource *)NULL;
+
+ class = pmap->class;
+ if (!(class & DynamicClass))
+ return (BadAlloc); /* Shouldn't try on this type */
+ oldcount = pmap->numPixelsRed[client];
+ if (pmap->class == DirectColor)
+ oldcount += pmap->numPixelsGreen[client] + pmap->numPixelsBlue[client];
+ if (!oldcount && (CLIENT_ID(pmap->mid) != client))
+ {
+ pcr = xalloc(sizeof(colorResource));
+ if (!pcr)
+ return (BadAlloc);
+ }
+
+ if (pmap->class == DirectColor)
+ {
+ ok = AllocDirect (client, pmap, colors, planes, planes, planes,
+ contig, ppix, &rmask, &gmask, &bmask);
+ if(ok == Success)
+ {
+ for (r = g = b = 1, n = planes; --n >= 0; r += r, g += g, b += b)
+ {
+ while(!(rmask & r))
+ r += r;
+ while(!(gmask & g))
+ g += g;
+ while(!(bmask & b))
+ b += b;
+ *masks++ = r | g | b;
+ }
+ }
+ }
+ else
+ {
+ ok = AllocPseudo (client, pmap, colors, planes, contig, ppix, &rmask,
+ &ppixFirst);
+ if(ok == Success)
+ {
+ for (r = 1, n = planes; --n >= 0; r += r)
+ {
+ while(!(rmask & r))
+ r += r;
+ *masks++ = r;
+ }
+ }
+ }
+
+ /* if this is the client's first pixels in this colormap, tell the
+ * resource manager that the client has pixels in this colormap which
+ * should be freed when the client dies */
+ if ((ok == Success) && pcr)
+ {
+ pcr->mid = pmap->mid;
+ pcr->client = client;
+ if (!AddResource(FakeClientID(client), RT_CMAPENTRY, (pointer)pcr))
+ ok = BadAlloc;
+ } else if (pcr)
+ xfree(pcr);
+
+ return (ok);
+}
+
+
+int
+AllocColorPlanes (int client, ColormapPtr pmap, int colors,
+ int r, int g, int b, Bool contig, Pixel *pixels,
+ Pixel *prmask, Pixel *pgmask, Pixel *pbmask)
+{
+ int ok;
+ Pixel mask, *ppixFirst;
+ Pixel shift;
+ int i;
+ int class;
+ int oldcount;
+ colorResource *pcr = (colorResource *)NULL;
+
+ class = pmap->class;
+ if (!(class & DynamicClass))
+ return (BadAlloc); /* Shouldn't try on this type */
+ oldcount = pmap->numPixelsRed[client];
+ if (class == DirectColor)
+ oldcount += pmap->numPixelsGreen[client] + pmap->numPixelsBlue[client];
+ if (!oldcount && (CLIENT_ID(pmap->mid) != client))
+ {
+ pcr = xalloc(sizeof(colorResource));
+ if (!pcr)
+ return (BadAlloc);
+ }
+
+ if (class == DirectColor)
+ {
+ ok = AllocDirect (client, pmap, colors, r, g, b, contig, pixels,
+ prmask, pgmask, pbmask);
+ }
+ else
+ {
+ /* Allocate the proper pixels */
+ /* XXX This is sort of bad, because of contig is set, we force all
+ * r + g + b bits to be contiguous. Should only force contiguity
+ * per mask
+ */
+ ok = AllocPseudo (client, pmap, colors, r + g + b, contig, pixels,
+ &mask, &ppixFirst);
+
+ if(ok == Success)
+ {
+ /* now split that mask into three */
+ *prmask = *pgmask = *pbmask = 0;
+ shift = 1;
+ for (i = r; --i >= 0; shift += shift)
+ {
+ while (!(mask & shift))
+ shift += shift;
+ *prmask |= shift;
+ }
+ for (i = g; --i >= 0; shift += shift)
+ {
+ while (!(mask & shift))
+ shift += shift;
+ *pgmask |= shift;
+ }
+ for (i = b; --i >= 0; shift += shift)
+ {
+ while (!(mask & shift))
+ shift += shift;
+ *pbmask |= shift;
+ }
+
+ /* set up the shared color cells */
+ if (!AllocShared(pmap, pixels, colors, r, g, b,
+ *prmask, *pgmask, *pbmask, ppixFirst))
+ {
+ (void)FreeColors(pmap, client, colors, pixels, mask);
+ ok = BadAlloc;
+ }
+ }
+ }
+
+ /* if this is the client's first pixels in this colormap, tell the
+ * resource manager that the client has pixels in this colormap which
+ * should be freed when the client dies */
+ if ((ok == Success) && pcr)
+ {
+ pcr->mid = pmap->mid;
+ pcr->client = client;
+ if (!AddResource(FakeClientID(client), RT_CMAPENTRY, (pointer)pcr))
+ ok = BadAlloc;
+ } else if (pcr)
+ xfree(pcr);
+
+ return (ok);
+}
+
+static int
+AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool contig,
+ Pixel *pixels, Pixel *prmask, Pixel *pgmask, Pixel *pbmask)
+{
+ Pixel *ppixRed, *ppixGreen, *ppixBlue;
+ Pixel *ppix, *pDst, *p;
+ int npix, npixR, npixG, npixB;
+ Bool okR, okG, okB;
+ Pixel *rpix = 0, *gpix = 0, *bpix = 0;
+
+ npixR = c << r;
+ npixG = c << g;
+ npixB = c << b;
+ if ((r >= 32) || (g >= 32) || (b >= 32) ||
+ (npixR > pmap->freeRed) || (npixR < c) ||
+ (npixG > pmap->freeGreen) || (npixG < c) ||
+ (npixB > pmap->freeBlue) || (npixB < c))
+ return BadAlloc;
+
+ /* start out with empty pixels */
+ for(p = pixels; p < pixels + c; p++)
+ *p = 0;
+
+ ppixRed = xalloc(npixR * sizeof(Pixel));
+ ppixGreen = xalloc(npixG * sizeof(Pixel));
+ ppixBlue = xalloc(npixB * sizeof(Pixel));
+ if (!ppixRed || !ppixGreen || !ppixBlue)
+ {
+ if (ppixBlue) xfree(ppixBlue);
+ if (ppixGreen) xfree(ppixGreen);
+ if (ppixRed) xfree(ppixRed);
+ return(BadAlloc);
+ }
+
+ okR = AllocCP(pmap, pmap->red, c, r, contig, ppixRed, prmask);
+ okG = AllocCP(pmap, pmap->green, c, g, contig, ppixGreen, pgmask);
+ okB = AllocCP(pmap, pmap->blue, c, b, contig, ppixBlue, pbmask);
+
+ if (okR && okG && okB)
+ {
+ rpix = (Pixel *) xrealloc(pmap->clientPixelsRed[client],
+ (pmap->numPixelsRed[client] + (c << r)) *
+ sizeof(Pixel));
+ if (rpix)
+ pmap->clientPixelsRed[client] = rpix;
+ gpix = (Pixel *) xrealloc(pmap->clientPixelsGreen[client],
+ (pmap->numPixelsGreen[client] + (c << g)) *
+ sizeof(Pixel));
+ if (gpix)
+ pmap->clientPixelsGreen[client] = gpix;
+ bpix = (Pixel *) xrealloc(pmap->clientPixelsBlue[client],
+ (pmap->numPixelsBlue[client] + (c << b)) *
+ sizeof(Pixel));
+ if (bpix)
+ pmap->clientPixelsBlue[client] = bpix;
+ }
+
+ if (!okR || !okG || !okB || !rpix || !gpix || !bpix)
+ {
+ if (okR)
+ for(ppix = ppixRed, npix = npixR; --npix >= 0; ppix++)
+ pmap->red[*ppix].refcnt = 0;
+ if (okG)
+ for(ppix = ppixGreen, npix = npixG; --npix >= 0; ppix++)
+ pmap->green[*ppix].refcnt = 0;
+ if (okB)
+ for(ppix = ppixBlue, npix = npixB; --npix >= 0; ppix++)
+ pmap->blue[*ppix].refcnt = 0;
+ xfree(ppixBlue);
+ xfree(ppixGreen);
+ xfree(ppixRed);
+ return(BadAlloc);
+ }
+
+ *prmask <<= pmap->pVisual->offsetRed;
+ *pgmask <<= pmap->pVisual->offsetGreen;
+ *pbmask <<= pmap->pVisual->offsetBlue;
+
+ ppix = rpix + pmap->numPixelsRed[client];
+ for (pDst = pixels, p = ppixRed; p < ppixRed + npixR; p++)
+ {
+ *ppix++ = *p;
+ if(p < ppixRed + c)
+ *pDst++ |= *p << pmap->pVisual->offsetRed;
+ }
+ pmap->numPixelsRed[client] += npixR;
+ pmap->freeRed -= npixR;
+
+ ppix = gpix + pmap->numPixelsGreen[client];
+ for (pDst = pixels, p = ppixGreen; p < ppixGreen + npixG; p++)
+ {
+ *ppix++ = *p;
+ if(p < ppixGreen + c)
+ *pDst++ |= *p << pmap->pVisual->offsetGreen;
+ }
+ pmap->numPixelsGreen[client] += npixG;
+ pmap->freeGreen -= npixG;
+
+ ppix = bpix + pmap->numPixelsBlue[client];
+ for (pDst = pixels, p = ppixBlue; p < ppixBlue + npixB; p++)
+ {
+ *ppix++ = *p;
+ if(p < ppixBlue + c)
+ *pDst++ |= *p << pmap->pVisual->offsetBlue;
+ }
+ pmap->numPixelsBlue[client] += npixB;
+ pmap->freeBlue -= npixB;
+
+
+ for (pDst = pixels; pDst < pixels + c; pDst++)
+ *pDst |= ALPHAMASK(pmap->pVisual);
+
+ xfree(ppixBlue);
+ xfree(ppixGreen);
+ xfree(ppixRed);
+
+ return (Success);
+}
+
+static int
+AllocPseudo (int client, ColormapPtr pmap, int c, int r, Bool contig,
+ Pixel *pixels, Pixel *pmask, Pixel **pppixFirst)
+{
+ Pixel *ppix, *p, *pDst, *ppixTemp;
+ int npix;
+ Bool ok;
+
+ npix = c << r;
+ if ((r >= 32) || (npix > pmap->freeRed) || (npix < c))
+ return(BadAlloc);
+ if(!(ppixTemp = xalloc(npix * sizeof(Pixel))))
+ return(BadAlloc);
+ ok = AllocCP(pmap, pmap->red, c, r, contig, ppixTemp, pmask);
+
+ if (ok)
+ {
+
+ /* all the allocated pixels are added to the client pixel list,
+ * but only the unique ones are returned to the client */
+ ppix = (Pixel *)xrealloc(pmap->clientPixelsRed[client],
+ (pmap->numPixelsRed[client] + npix) * sizeof(Pixel));
+ if (!ppix)
+ {
+ for (p = ppixTemp; p < ppixTemp + npix; p++)
+ pmap->red[*p].refcnt = 0;
+ return (BadAlloc);
+ }
+ pmap->clientPixelsRed[client] = ppix;
+ ppix += pmap->numPixelsRed[client];
+ *pppixFirst = ppix;
+ pDst = pixels;
+ for (p = ppixTemp; p < ppixTemp + npix; p++)
+ {
+ *ppix++ = *p;
+ if(p < ppixTemp + c)
+ *pDst++ = *p;
+ }
+ pmap->numPixelsRed[client] += npix;
+ pmap->freeRed -= npix;
+ }
+ xfree(ppixTemp);
+ return (ok ? Success : BadAlloc);
+}
+
+/* Allocates count << planes pixels from colormap pmap for client. If
+ * contig, then the plane mask is made of consecutive bits. Returns
+ * all count << pixels in the array pixels. The first count of those
+ * pixels are the unique pixels. *pMask has the mask to Or with the
+ * unique pixels to get the rest of them.
+ *
+ * Returns True iff all pixels could be allocated
+ * All cells allocated will have refcnt set to AllocPrivate and shared to FALSE
+ * (see AllocShared for why we care)
+ */
+static Bool
+AllocCP (ColormapPtr pmap, EntryPtr pentFirst, int count, int planes,
+ Bool contig, Pixel *pixels, Pixel *pMask)
+{
+ EntryPtr ent;
+ Pixel pixel, base, entries, maxp, save;
+ int dplanes, found;
+ Pixel *ppix;
+ Pixel mask;
+ Pixel finalmask;
+
+ dplanes = pmap->pVisual->nplanes;
+
+ /* Easy case. Allocate pixels only */
+ if (planes == 0)
+ {
+ /* allocate writable entries */
+ ppix = pixels;
+ ent = pentFirst;
+ pixel = 0;
+ while (--count >= 0)
+ {
+ /* Just find count unallocated cells */
+ while (ent->refcnt)
+ {
+ ent++;
+ pixel++;
+ }
+ ent->refcnt = AllocPrivate;
+ *ppix++ = pixel;
+ ent->fShared = FALSE;
+ }
+ *pMask = 0;
+ return (TRUE);
+ }
+ else if (planes > dplanes)
+ {
+ return (FALSE);
+ }
+
+ /* General case count pixels * 2 ^ planes cells to be allocated */
+
+ /* make room for new pixels */
+ ent = pentFirst;
+
+ /* first try for contiguous planes, since it's fastest */
+ for (mask = (((Pixel)1) << planes) - 1, base = 1, dplanes -= (planes - 1);
+ --dplanes >= 0;
+ mask += mask, base += base)
+ {
+ ppix = pixels;
+ found = 0;
+ pixel = 0;
+ entries = pmap->pVisual->ColormapEntries - mask;
+ while (pixel < entries)
+ {
+ save = pixel;
+ maxp = pixel + mask + base;
+ /* check if all are free */
+ while (pixel != maxp && ent[pixel].refcnt == 0)
+ pixel += base;
+ if (pixel == maxp)
+ {
+ /* this one works */
+ *ppix++ = save;
+ found++;
+ if (found == count)
+ {
+ /* found enough, allocate them all */
+ while (--count >= 0)
+ {
+ pixel = pixels[count];
+ maxp = pixel + mask;
+ while (1)
+ {
+ ent[pixel].refcnt = AllocPrivate;
+ ent[pixel].fShared = FALSE;
+ if (pixel == maxp)
+ break;
+ pixel += base;
+ *ppix++ = pixel;
+ }
+ }
+ *pMask = mask;
+ return (TRUE);
+ }
+ }
+ pixel = save + 1;
+ if (pixel & mask)
+ pixel += mask;
+ }
+ }
+
+ dplanes = pmap->pVisual->nplanes;
+ if (contig || planes == 1 || dplanes < 3)
+ return (FALSE);
+
+ /* this will be very slow for large maps, need a better algorithm */
+
+ /*
+ we can generate the smallest and largest numbers that fits in dplanes
+ bits and contain exactly planes bits set as follows. First, we need to
+ check that it is possible to generate such a mask at all.
+ (Non-contiguous masks need one more bit than contiguous masks). Then
+ the smallest such mask consists of the rightmost planes-1 bits set, then
+ a zero, then a one in position planes + 1. The formula is
+ (3 << (planes-1)) -1
+ The largest such masks consists of the leftmost planes-1 bits set, then
+ a zero, then a one bit in position dplanes-planes-1. If dplanes is
+ smaller than 32 (the number of bits in a word) then the formula is:
+ (1<<dplanes) - (1<<(dplanes-planes+1) + (1<<dplanes-planes-1)
+ If dplanes = 32, then we can't calculate (1<<dplanes) and we have
+ to use:
+ ( (1<<(planes-1)) - 1) << (dplanes-planes+1) + (1<<(dplanes-planes-1))
+
+ << Thank you, Loretta>>>
+
+ */
+
+ finalmask =
+ (((((Pixel)1)<<(planes-1)) - 1) << (dplanes-planes+1)) +
+ (((Pixel)1)<<(dplanes-planes-1));
+ for (mask = (((Pixel)3) << (planes -1)) - 1; mask <= finalmask; mask++)
+ {
+ /* next 3 magic statements count number of ones (HAKMEM #169) */
+ pixel = (mask >> 1) & 033333333333;
+ pixel = mask - pixel - ((pixel >> 1) & 033333333333);
+ if ((((pixel + (pixel >> 3)) & 030707070707) % 077) != planes)
+ continue;
+ ppix = pixels;
+ found = 0;
+ entries = pmap->pVisual->ColormapEntries - mask;
+ base = lowbit (mask);
+ for (pixel = 0; pixel < entries; pixel++)
+ {
+ if (pixel & mask)
+ continue;
+ maxp = 0;
+ /* check if all are free */
+ while (ent[pixel + maxp].refcnt == 0)
+ {
+ GetNextBitsOrBreak(maxp, mask, base);
+ }
+ if ((maxp < mask) || (ent[pixel + mask].refcnt != 0))
+ continue;
+ /* this one works */
+ *ppix++ = pixel;
+ found++;
+ if (found < count)
+ continue;
+ /* found enough, allocate them all */
+ while (--count >= 0)
+ {
+ pixel = (pixels)[count];
+ maxp = 0;
+ while (1)
+ {
+ ent[pixel + maxp].refcnt = AllocPrivate;
+ ent[pixel + maxp].fShared = FALSE;
+ GetNextBitsOrBreak(maxp, mask, base);
+ *ppix++ = pixel + maxp;
+ }
+ }
+
+ *pMask = mask;
+ return (TRUE);
+ }
+ }
+ return (FALSE);
+}
+
+/**
+ *
+ * \param ppixFirst First of the client's new pixels
+ */
+static Bool
+AllocShared (ColormapPtr pmap, Pixel *ppix, int c, int r, int g, int b,
+ Pixel rmask, Pixel gmask, Pixel bmask, Pixel *ppixFirst)
+{
+ Pixel *pptr, *cptr;
+ int npix, z, npixClientNew, npixShared;
+ Pixel basemask, base, bits, common;
+ SHAREDCOLOR *pshared, **ppshared, **psharedList;
+
+ npixClientNew = c << (r + g + b);
+ npixShared = (c << r) + (c << g) + (c << b);
+ psharedList = xalloc(npixShared * sizeof(SHAREDCOLOR *));
+ if (!psharedList)
+ return FALSE;
+ ppshared = psharedList;
+ for (z = npixShared; --z >= 0; )
+ {
+ if (!(ppshared[z] = xalloc(sizeof(SHAREDCOLOR))))
+ {
+ for (z++ ; z < npixShared; z++)
+ xfree(ppshared[z]);
+ return FALSE;
+ }
+ }
+ for(pptr = ppix, npix = c; --npix >= 0; pptr++)
+ {
+ basemask = ~(gmask | bmask);
+ common = *pptr & basemask;
+ if (rmask)
+ {
+ bits = 0;
+ base = lowbit (rmask);
+ while(1)
+ {
+ pshared = *ppshared++;
+ pshared->refcnt = 1 << (g + b);
+ for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
+ {
+ if ((*cptr & basemask) == (common | bits))
+ {
+ pmap->red[*cptr].fShared = TRUE;
+ pmap->red[*cptr].co.shco.red = pshared;
+ }
+ }
+ GetNextBitsOrBreak(bits, rmask, base);
+ }
+ }
+ else
+ {
+ pshared = *ppshared++;
+ pshared->refcnt = 1 << (g + b);
+ for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
+ {
+ if ((*cptr & basemask) == common)
+ {
+ pmap->red[*cptr].fShared = TRUE;
+ pmap->red[*cptr].co.shco.red = pshared;
+ }
+ }
+ }
+ basemask = ~(rmask | bmask);
+ common = *pptr & basemask;
+ if (gmask)
+ {
+ bits = 0;
+ base = lowbit (gmask);
+ while(1)
+ {
+ pshared = *ppshared++;
+ pshared->refcnt = 1 << (r + b);
+ for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
+ {
+ if ((*cptr & basemask) == (common | bits))
+ {
+ pmap->red[*cptr].co.shco.green = pshared;
+ }
+ }
+ GetNextBitsOrBreak(bits, gmask, base);
+ }
+ }
+ else
+ {
+ pshared = *ppshared++;
+ pshared->refcnt = 1 << (g + b);
+ for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
+ {
+ if ((*cptr & basemask) == common)
+ {
+ pmap->red[*cptr].co.shco.green = pshared;
+ }
+ }
+ }
+ basemask = ~(rmask | gmask);
+ common = *pptr & basemask;
+ if (bmask)
+ {
+ bits = 0;
+ base = lowbit (bmask);
+ while(1)
+ {
+ pshared = *ppshared++;
+ pshared->refcnt = 1 << (r + g);
+ for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
+ {
+ if ((*cptr & basemask) == (common | bits))
+ {
+ pmap->red[*cptr].co.shco.blue = pshared;
+ }
+ }
+ GetNextBitsOrBreak(bits, bmask, base);
+ }
+ }
+ else
+ {
+ pshared = *ppshared++;
+ pshared->refcnt = 1 << (g + b);
+ for (cptr = ppixFirst, z = npixClientNew; --z >= 0; cptr++)
+ {
+ if ((*cptr & basemask) == common)
+ {
+ pmap->red[*cptr].co.shco.blue = pshared;
+ }
+ }
+ }
+ }
+ xfree(psharedList);
+ return TRUE;
+}
+
+
+/** FreeColors
+ * Free colors and/or cells (probably slow for large numbers)
+ */
+int
+FreeColors (ColormapPtr pmap, int client, int count, Pixel *pixels, Pixel mask)
+{
+ int rval, result, class;
+ Pixel rmask;
+
+ class = pmap->class;
+ if (pmap->flags & AllAllocated)
+ return(BadAccess);
+ if ((class | DynamicClass) == DirectColor)
+ {
+ rmask = mask & RGBMASK(pmap->pVisual);
+ result = FreeCo(pmap, client, REDMAP, count, pixels,
+ mask & pmap->pVisual->redMask);
+ /* If any of the three calls fails, we must report that, if more
+ * than one fails, it's ok that we report the last one */
+ rval = FreeCo(pmap, client, GREENMAP, count, pixels,
+ mask & pmap->pVisual->greenMask);
+ if(rval != Success)
+ result = rval;
+ rval = FreeCo(pmap, client, BLUEMAP, count, pixels,
+ mask & pmap->pVisual->blueMask);
+ if(rval != Success)
+ result = rval;
+ }
+ else
+ {
+ rmask = mask & ((((Pixel)1) << pmap->pVisual->nplanes) - 1);
+ result = FreeCo(pmap, client, PSEUDOMAP, count, pixels, rmask);
+ }
+ if ((mask != rmask) && count)
+ {
+ clientErrorValue = *pixels | mask;
+ result = BadValue;
+ }
+ /* XXX should worry about removing any RT_CMAPENTRY resource */
+ return (result);
+}
+
+/**
+ * Helper for FreeColors -- frees all combinations of *newpixels and mask bits
+ * which the client has allocated in channel colormap cells of pmap.
+ * doesn't change newpixels if it doesn't need to
+ *
+ * \param pmap which colormap head
+ * \param color which sub-map, eg, RED, BLUE, PSEUDO
+ * \param npixIn number of pixels passed in
+ * \param ppixIn number of base pixels
+ * \param mask mask client gave us
+ */
+static int
+FreeCo (ColormapPtr pmap, int client, int color, int npixIn, Pixel *ppixIn, Pixel mask)
+{
+ Pixel *ppixClient, pixTest;
+ int npixClient, npixNew, npix;
+ Pixel bits, base, cmask, rgbbad;
+ Pixel *pptr, *cptr;
+ int n, zapped;
+ int errVal = Success;
+ int offset, numents;
+
+ if (npixIn == 0)
+ return (errVal);
+ bits = 0;
+ zapped = 0;
+ base = lowbit (mask);
+
+ switch(color)
+ {
+ case REDMAP:
+ cmask = pmap->pVisual->redMask;
+ rgbbad = ~RGBMASK(pmap->pVisual);
+ offset = pmap->pVisual->offsetRed;
+ numents = (cmask >> offset) + 1;
+ ppixClient = pmap->clientPixelsRed[client];
+ npixClient = pmap->numPixelsRed[client];
+ break;
+ case GREENMAP:
+ cmask = pmap->pVisual->greenMask;
+ rgbbad = ~RGBMASK(pmap->pVisual);
+ offset = pmap->pVisual->offsetGreen;
+ numents = (cmask >> offset) + 1;
+ ppixClient = pmap->clientPixelsGreen[client];
+ npixClient = pmap->numPixelsGreen[client];
+ break;
+ case BLUEMAP:
+ cmask = pmap->pVisual->blueMask;
+ rgbbad = ~RGBMASK(pmap->pVisual);
+ offset = pmap->pVisual->offsetBlue;
+ numents = (cmask >> offset) + 1;
+ ppixClient = pmap->clientPixelsBlue[client];
+ npixClient = pmap->numPixelsBlue[client];
+ break;
+ default: /* so compiler can see that everything gets initialized */
+ case PSEUDOMAP:
+ cmask = ~((Pixel)0);
+ rgbbad = 0;
+ offset = 0;
+ numents = pmap->pVisual->ColormapEntries;
+ ppixClient = pmap->clientPixelsRed[client];
+ npixClient = pmap->numPixelsRed[client];
+ break;
+ }
+
+
+ /* zap all pixels which match */
+ while (1)
+ {
+ /* go through pixel list */
+ for (pptr = ppixIn, n = npixIn; --n >= 0; pptr++)
+ {
+ pixTest = ((*pptr | bits) & cmask) >> offset;
+ if ((pixTest >= numents) || (*pptr & rgbbad))
+ {
+ clientErrorValue = *pptr | bits;
+ errVal = BadValue;
+ continue;
+ }
+
+ /* find match in client list */
+ for (cptr = ppixClient, npix = npixClient;
+ --npix >= 0 && *cptr != pixTest;
+ cptr++) ;
+
+ if (npix >= 0)
+ {
+ if (pmap->class & DynamicClass)
+ {
+ FreeCell(pmap, pixTest, color);
+ }
+ *cptr = ~((Pixel)0);
+ zapped++;
+ }
+ else
+ errVal = BadAccess;
+ }
+ /* generate next bits value */
+ GetNextBitsOrBreak(bits, mask, base);
+ }
+
+ /* delete freed pixels from client pixel list */
+ if (zapped)
+ {
+ npixNew = npixClient - zapped;
+ if (npixNew)
+ {
+ /* Since the list can only get smaller, we can do a copy in
+ * place and then realloc to a smaller size */
+ pptr = cptr = ppixClient;
+
+ /* If we have all the new pixels, we don't have to examine the
+ * rest of the old ones */
+ for(npix = 0; npix < npixNew; cptr++)
+ {
+ if (*cptr != ~((Pixel)0))
+ {
+ *pptr++ = *cptr;
+ npix++;
+ }
+ }
+ pptr = (Pixel *)xrealloc(ppixClient, npixNew * sizeof(Pixel));
+ if (pptr)
+ ppixClient = pptr;
+ npixClient = npixNew;
+ }
+ else
+ {
+ npixClient = 0;
+ xfree(ppixClient);
+ ppixClient = (Pixel *)NULL;
+ }
+ switch(color)
+ {
+ case PSEUDOMAP:
+ case REDMAP:
+ pmap->clientPixelsRed[client] = ppixClient;
+ pmap->numPixelsRed[client] = npixClient;
+ break;
+ case GREENMAP:
+ pmap->clientPixelsGreen[client] = ppixClient;
+ pmap->numPixelsGreen[client] = npixClient;
+ break;
+ case BLUEMAP:
+ pmap->clientPixelsBlue[client] = ppixClient;
+ pmap->numPixelsBlue[client] = npixClient;
+ break;
+ }
+ }
+ return (errVal);
+}
+
+
+
+/* Redefine color values */
+int
+StoreColors (ColormapPtr pmap, int count, xColorItem *defs)
+{
+ Pixel pix;
+ xColorItem *pdef;
+ EntryPtr pent, pentT, pentLast;
+ VisualPtr pVisual;
+ SHAREDCOLOR *pred, *pgreen, *pblue;
+ int n, ChgRed, ChgGreen, ChgBlue, idef;
+ int class, errVal = Success;
+ int ok;
+
+
+ class = pmap->class;
+ if(!(class & DynamicClass) && !(pmap->flags & BeingCreated))
+ {
+ return(BadAccess);
+ }
+ pVisual = pmap->pVisual;
+
+ idef = 0;
+ if((class | DynamicClass) == DirectColor)
+ {
+ int numred, numgreen, numblue;
+ Pixel rgbbad;
+
+ numred = NUMRED(pVisual);
+ numgreen = NUMGREEN(pVisual);
+ numblue = NUMBLUE(pVisual);
+ rgbbad = ~RGBMASK(pVisual);
+ for (pdef = defs, n = 0; n < count; pdef++, n++)
+ {
+ ok = TRUE;
+ (*pmap->pScreen->ResolveColor)
+ (&pdef->red, &pdef->green, &pdef->blue, pmap->pVisual);
+
+ if (pdef->pixel & rgbbad)
+ {
+ errVal = BadValue;
+ clientErrorValue = pdef->pixel;
+ continue;
+ }
+ pix = (pdef->pixel & pVisual->redMask) >> pVisual->offsetRed;
+ if (pix >= numred)
+ {
+ errVal = BadValue;
+ ok = FALSE;
+ }
+ else if (pmap->red[pix].refcnt != AllocPrivate)
+ {
+ errVal = BadAccess;
+ ok = FALSE;
+ }
+ else if (pdef->flags & DoRed)
+ {
+ pmap->red[pix].co.local.red = pdef->red;
+ }
+ else
+ {
+ pdef->red = pmap->red[pix].co.local.red;
+ }
+
+ pix = (pdef->pixel & pVisual->greenMask) >> pVisual->offsetGreen;
+ if (pix >= numgreen)
+ {
+ errVal = BadValue;
+ ok = FALSE;
+ }
+ else if (pmap->green[pix].refcnt != AllocPrivate)
+ {
+ errVal = BadAccess;
+ ok = FALSE;
+ }
+ else if (pdef->flags & DoGreen)
+ {
+ pmap->green[pix].co.local.green = pdef->green;
+ }
+ else
+ {
+ pdef->green = pmap->green[pix].co.local.green;
+ }
+
+ pix = (pdef->pixel & pVisual->blueMask) >> pVisual->offsetBlue;
+ if (pix >= numblue)
+ {
+ errVal = BadValue;
+ ok = FALSE;
+ }
+ else if (pmap->blue[pix].refcnt != AllocPrivate)
+ {
+ errVal = BadAccess;
+ ok = FALSE;
+ }
+ else if (pdef->flags & DoBlue)
+ {
+ pmap->blue[pix].co.local.blue = pdef->blue;
+ }
+ else
+ {
+ pdef->blue = pmap->blue[pix].co.local.blue;
+ }
+ /* If this is an o.k. entry, then it gets added to the list
+ * to be sent to the hardware. If not, skip it. Once we've
+ * skipped one, we have to copy all the others.
+ */
+ if(ok)
+ {
+ if(idef != n)
+ defs[idef] = defs[n];
+ idef++;
+ } else
+ clientErrorValue = pdef->pixel;
+ }
+ }
+ else
+ {
+ for (pdef = defs, n = 0; n < count; pdef++, n++)
+ {
+
+ ok = TRUE;
+ if (pdef->pixel >= pVisual->ColormapEntries)
+ {
+ clientErrorValue = pdef->pixel;
+ errVal = BadValue;
+ ok = FALSE;
+ }
+ else if (pmap->red[pdef->pixel].refcnt != AllocPrivate)
+ {
+ errVal = BadAccess;
+ ok = FALSE;
+ }
+
+ /* If this is an o.k. entry, then it gets added to the list
+ * to be sent to the hardware. If not, skip it. Once we've
+ * skipped one, we have to copy all the others.
+ */
+ if(ok)
+ {
+ if(idef != n)
+ defs[idef] = defs[n];
+ idef++;
+ }
+ else
+ continue;
+
+ (*pmap->pScreen->ResolveColor)
+ (&pdef->red, &pdef->green, &pdef->blue, pmap->pVisual);
+
+ pent = &pmap->red[pdef->pixel];
+
+ if(pdef->flags & DoRed)
+ {
+ if(pent->fShared)
+ {
+ pent->co.shco.red->color = pdef->red;
+ if (pent->co.shco.red->refcnt > 1)
+ ok = FALSE;
+ }
+ else
+ pent->co.local.red = pdef->red;
+ }
+ else
+ {
+ if(pent->fShared)
+ pdef->red = pent->co.shco.red->color;
+ else
+ pdef->red = pent->co.local.red;
+ }
+ if(pdef->flags & DoGreen)
+ {
+ if(pent->fShared)
+ {
+ pent->co.shco.green->color = pdef->green;
+ if (pent->co.shco.green->refcnt > 1)
+ ok = FALSE;
+ }
+ else
+ pent->co.local.green = pdef->green;
+ }
+ else
+ {
+ if(pent->fShared)
+ pdef->green = pent->co.shco.green->color;
+ else
+ pdef->green = pent->co.local.green;
+ }
+ if(pdef->flags & DoBlue)
+ {
+ if(pent->fShared)
+ {
+ pent->co.shco.blue->color = pdef->blue;
+ if (pent->co.shco.blue->refcnt > 1)
+ ok = FALSE;
+ }
+ else
+ pent->co.local.blue = pdef->blue;
+ }
+ else
+ {
+ if(pent->fShared)
+ pdef->blue = pent->co.shco.blue->color;
+ else
+ pdef->blue = pent->co.local.blue;
+ }
+
+ if(!ok)
+ {
+ /* have to run through the colormap and change anybody who
+ * shares this value */
+ pred = pent->co.shco.red;
+ pgreen = pent->co.shco.green;
+ pblue = pent->co.shco.blue;
+ ChgRed = pdef->flags & DoRed;
+ ChgGreen = pdef->flags & DoGreen;
+ ChgBlue = pdef->flags & DoBlue;
+ pentLast = pmap->red + pVisual->ColormapEntries;
+
+ for(pentT = pmap->red; pentT < pentLast; pentT++)
+ {
+ if(pentT->fShared && (pentT != pent))
+ {
+ xColorItem defChg;
+
+ /* There are, alas, devices in this world too dumb
+ * to read their own hardware colormaps. Sick, but
+ * true. So we're going to be really nice and load
+ * the xColorItem with the proper value for all the
+ * fields. We will only set the flags for those
+ * fields that actually change. Smart devices can
+ * arrange to change only those fields. Dumb devices
+ * can rest assured that we have provided for them,
+ * and can change all three fields */
+
+ defChg.flags = 0;
+ if(ChgRed && pentT->co.shco.red == pred)
+ {
+ defChg.flags |= DoRed;
+ }
+ if(ChgGreen && pentT->co.shco.green == pgreen)
+ {
+ defChg.flags |= DoGreen;
+ }
+ if(ChgBlue && pentT->co.shco.blue == pblue)
+ {
+ defChg.flags |= DoBlue;
+ }
+ if(defChg.flags != 0)
+ {
+ defChg.pixel = pentT - pmap->red;
+ defChg.red = pentT->co.shco.red->color;
+ defChg.green = pentT->co.shco.green->color;
+ defChg.blue = pentT->co.shco.blue->color;
+ (*pmap->pScreen->StoreColors) (pmap, 1, &defChg);
+ }
+ }
+ }
+
+ }
+ }
+ }
+ /* Note that we use idef, the count of acceptable entries, and not
+ * count, the count of proposed entries */
+ if (idef != 0)
+ ( *pmap->pScreen->StoreColors) (pmap, idef, defs);
+ return (errVal);
+}
+
+int
+IsMapInstalled(Colormap map, WindowPtr pWin)
+{
+ Colormap *pmaps;
+ int imap, nummaps, found;
+
+ pmaps = xalloc(pWin->drawable.pScreen->maxInstalledCmaps*sizeof(Colormap));
+ if(!pmaps)
+ return(FALSE);
+ nummaps = (*pWin->drawable.pScreen->ListInstalledColormaps)
+ (pWin->drawable.pScreen, pmaps);
+ found = FALSE;
+ for(imap = 0; imap < nummaps; imap++)
+ {
+ if(pmaps[imap] == map)
+ {
+ found = TRUE;
+ break;
+ }
+ }
+ xfree(pmaps);
+ return (found);
+}
+
+struct colormap_lookup_data {
+ ScreenPtr pScreen;
+ VisualPtr visuals;
+};
+
+static void _colormap_find_resource(pointer value, XID id,
+ pointer cdata)
+{
+ struct colormap_lookup_data *cmap_data = cdata;
+ VisualPtr visuals = cmap_data->visuals;
+ ScreenPtr pScreen = cmap_data->pScreen;
+ ColormapPtr cmap = value;
+ int j;
+
+ j = cmap->pVisual - pScreen->visuals;
+ cmap->pVisual = &visuals[j];
+}
+
+/* something has realloced the visuals, instead of breaking
+ ABI fix it up here - glx and compsite did this wrong */
+Bool
+ResizeVisualArray(ScreenPtr pScreen, int new_visual_count,
+ DepthPtr depth)
+{
+ struct colormap_lookup_data cdata;
+ int numVisuals;
+ VisualPtr visuals;
+ XID *vids, vid;
+ int first_new_vid, first_new_visual, i;
+
+ first_new_vid = depth->numVids;
+ first_new_visual = pScreen->numVisuals;
+
+ vids = xrealloc(depth->vids, (depth->numVids + new_visual_count) * sizeof(XID));
+ if (!vids)
+ return FALSE;
+
+ /* its realloced now no going back if we fail the next one */
+ depth->vids = vids;
+
+ numVisuals = pScreen->numVisuals + new_visual_count;
+ visuals = xrealloc(pScreen->visuals, numVisuals * sizeof(VisualRec));
+ if (!visuals) {
+ return FALSE;
+ }
+
+ cdata.visuals = visuals;
+ cdata.pScreen = pScreen;
+ FindClientResourcesByType(serverClient, RT_COLORMAP, _colormap_find_resource, &cdata);
+
+ pScreen->visuals = visuals;
+
+ for (i = 0; i < new_visual_count; i++) {
+ vid = FakeClientID(0);
+ pScreen->visuals[first_new_visual + i].vid = vid;
+ vids[first_new_vid + i] = vid;
+ }
+
+ depth->numVids += new_visual_count;
+ pScreen->numVisuals += new_visual_count;
+
+ return TRUE;
+}
diff --git a/xorg-server/dix/eventconvert.c b/xorg-server/dix/eventconvert.c
index d91ba67c2..e25f3ee97 100644
--- a/xorg-server/dix/eventconvert.c
+++ b/xorg-server/dix/eventconvert.c
@@ -352,17 +352,17 @@ getValuatorEvents(DeviceEvent *ev, deviceValuator *xv)
xv->device_state = state;
switch (xv->num_valuators) {
case 6:
- xv->valuator5 = ev->valuators.data[i + 5];
+ xv->valuator5 = ev->valuators.data[xv->first_valuator + 5];
case 5:
- xv->valuator4 = ev->valuators.data[i + 4];
+ xv->valuator4 = ev->valuators.data[xv->first_valuator + 4];
case 4:
- xv->valuator3 = ev->valuators.data[i + 3];
+ xv->valuator3 = ev->valuators.data[xv->first_valuator + 3];
case 3:
- xv->valuator2 = ev->valuators.data[i + 2];
+ xv->valuator2 = ev->valuators.data[xv->first_valuator + 2];
case 2:
- xv->valuator1 = ev->valuators.data[i + 1];
+ xv->valuator1 = ev->valuators.data[xv->first_valuator + 1];
case 1:
- xv->valuator0 = ev->valuators.data[i + 0];
+ xv->valuator0 = ev->valuators.data[xv->first_valuator + 0];
}
if (i + 6 < num_valuators)
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index a79cf6d2f..d60b8a534 100644
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -4414,10 +4414,12 @@ DeviceEnterLeaveEvent(
filter, grab);
} else {
if (!GetWindowXI2Mask(mouse, pWin, (xEvent*)event))
- return;
+ goto out;
DeliverEventsToWindow(mouse, pWin, (xEvent*)event, 1, filter,
NullGrab);
}
+
+out:
xfree(event);
}
diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c
index ea6aa1376..eb1563aa4 100644
--- a/xorg-server/dix/getevents.c
+++ b/xorg-server/dix/getevents.c
@@ -586,12 +586,13 @@ GetMaximumEventsNum(void) {
static void
clipAxis(DeviceIntPtr pDev, int axisNum, int *val)
{
- AxisInfoPtr axis = pDev->valuator->axes + axisNum;
- /* InitValuatoraAxisStruct ensures that (min < max). */
+ AxisInfoPtr axis;
if (axisNum >= pDev->valuator->numAxes)
return;
+ axis = pDev->valuator->axes + axisNum;
+
/* If a value range is defined, clip. If not, do nothing */
if (axis->max_value <= axis->min_value)
return;
@@ -788,6 +789,19 @@ positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac,
*screeny_frac = dev->last.remainder[1];
}
+ /* Hit the left screen edge? */
+ if (*screenx <= 0 && *screenx_frac < 0.0f)
+ {
+ *screenx_frac = 0.0f;
+ x_frac = 0.0f;
+ }
+ if (*screeny <= 0 && *screeny_frac < 0.0f)
+ {
+ *screeny_frac = 0.0f;
+ y_frac = 0.0f;
+ }
+
+
old_screenx = *screenx;
old_screeny = *screeny;
/* This takes care of crossing screens for us, as well as clipping
diff --git a/xorg-server/exa/exa.c b/xorg-server/exa/exa.c
index 483e3b4eb..e264d440c 100644
--- a/xorg-server/exa/exa.c
+++ b/xorg-server/exa/exa.c
@@ -286,11 +286,10 @@ exaGetOffscreenPixmap (DrawablePtr pDrawable, int *xp, int *yp)
* Returns TRUE if pixmap can be accessed offscreen.
*/
Bool
-ExaDoPrepareAccess(DrawablePtr pDrawable, int index)
+ExaDoPrepareAccess(PixmapPtr pPixmap, int index)
{
- ScreenPtr pScreen = pDrawable->pScreen;
+ ScreenPtr pScreen = pPixmap->drawable.pScreen;
ExaScreenPriv (pScreen);
- PixmapPtr pPixmap = exaGetDrawablePixmap (pDrawable);
ExaPixmapPriv(pPixmap);
Bool offscreen;
int i;
@@ -324,7 +323,7 @@ ExaDoPrepareAccess(DrawablePtr pDrawable, int index)
offscreen = exaPixmapIsOffscreen(pPixmap);
- if (offscreen)
+ if (offscreen && pExaPixmap->fb_ptr)
pPixmap->devPrivate.ptr = pExaPixmap->fb_ptr;
else
pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
@@ -333,20 +332,10 @@ ExaDoPrepareAccess(DrawablePtr pDrawable, int index)
pExaScr->access[index].pixmap = pPixmap;
pExaScr->access[index].count = 1;
- if (!offscreen) {
- /* Do we need to allocate our system buffer? */
- if ((pExaScr->info->flags & EXA_HANDLES_PIXMAPS) && (pExaScr->info->flags & EXA_MIXED_PIXMAPS)) {
- if (!pExaPixmap->sys_ptr && !exaPixmapIsPinned(pPixmap)) {
- pExaPixmap->sys_ptr = malloc(pExaPixmap->sys_pitch * pDrawable->height);
- if (!pExaPixmap->sys_ptr)
- FatalError("EXA: malloc failed for size %d bytes\n", pExaPixmap->sys_pitch * pDrawable->height);
- pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
- }
- }
+ if (!offscreen)
return FALSE;
- }
- exaWaitSync (pDrawable->pScreen);
+ exaWaitSync (pScreen);
if (pExaScr->info->PrepareAccess == NULL)
return TRUE;
@@ -360,7 +349,8 @@ ExaDoPrepareAccess(DrawablePtr pDrawable, int index)
}
if (!(*pExaScr->info->PrepareAccess) (pPixmap, index)) {
- if (pExaPixmap->score == EXA_PIXMAP_SCORE_PINNED)
+ if (pExaPixmap->score == EXA_PIXMAP_SCORE_PINNED &&
+ !(pExaScr->info->flags & EXA_MIXED_PIXMAPS))
FatalError("Driver failed PrepareAccess on a pinned pixmap.\n");
exaMoveOutPixmap (pPixmap);
@@ -370,31 +360,6 @@ ExaDoPrepareAccess(DrawablePtr pDrawable, int index)
return TRUE;
}
-void
-exaPrepareAccessReg(DrawablePtr pDrawable, int index, RegionPtr pReg)
-{
- PixmapPtr pPixmap = exaGetDrawablePixmap (pDrawable);
- ExaScreenPriv(pPixmap->drawable.pScreen);
-
- if (pExaScr->do_migration) {
- ExaMigrationRec pixmaps[1];
-
- if (index == EXA_PREPARE_DEST || index == EXA_PREPARE_AUX_DEST) {
- pixmaps[0].as_dst = TRUE;
- pixmaps[0].as_src = FALSE;
- } else {
- pixmaps[0].as_dst = FALSE;
- pixmaps[0].as_src = TRUE;
- }
- pixmaps[0].pPix = pPixmap;
- pixmaps[0].pReg = pReg;
-
- exaDoMigration(pixmaps, 1, FALSE);
- }
-
- ExaDoPrepareAccess(pDrawable, index);
-}
-
/**
* exaPrepareAccess() is EXA's wrapper for the driver's PrepareAccess() handler.
*
@@ -404,7 +369,13 @@ exaPrepareAccessReg(DrawablePtr pDrawable, int index, RegionPtr pReg)
void
exaPrepareAccess(DrawablePtr pDrawable, int index)
{
- exaPrepareAccessReg(pDrawable, index, NULL);
+ PixmapPtr pPixmap = exaGetDrawablePixmap(pDrawable);
+ ExaScreenPriv(pDrawable->pScreen);
+
+ if (pExaScr->prepare_access_reg)
+ pExaScr->prepare_access_reg(pPixmap, index, NULL);
+ else
+ (void)ExaDoPrepareAccess(pPixmap, index);
}
/**
@@ -432,7 +403,6 @@ exaFinishAccess(DrawablePtr pDrawable, int index)
if (pExaScr->access[i].pixmap == pPixmap) {
if (--pExaScr->access[i].count > 0)
return;
- index = i;
break;
}
}
@@ -442,25 +412,25 @@ exaFinishAccess(DrawablePtr pDrawable, int index)
EXA_FatalErrorDebug(("EXA bug: FinishAccess called without PrepareAccess for pixmap 0x%p.\n",
pPixmap));
- pExaScr->access[index].pixmap = NULL;
+ pExaScr->access[i].pixmap = NULL;
/* We always hide the devPrivate.ptr. */
pPixmap->devPrivate.ptr = NULL;
- if (pExaScr->info->FinishAccess == NULL)
- return;
+ if (pExaScr->finish_access)
+ pExaScr->finish_access(pPixmap, index);
- if (!exaPixmapIsOffscreen (pPixmap))
+ if (!pExaScr->info->FinishAccess || !exaPixmapIsOffscreen(pPixmap))
return;
- if (index >= EXA_PREPARE_AUX_DEST &&
+ if (i >= EXA_PREPARE_AUX_DEST &&
!(pExaScr->info->flags & EXA_SUPPORTS_PREPARE_AUX)) {
ErrorF("EXA bug: Trying to call driver FinishAccess hook with "
"unsupported index EXA_PREPARE_AUX*\n");
return;
}
- (*pExaScr->info->FinishAccess) (pPixmap, index);
+ (*pExaScr->info->FinishAccess) (pPixmap, i);
}
/**
@@ -537,7 +507,7 @@ exaCreatePixmapWithPrepare(ScreenPtr pScreen, int w, int h, int depth,
* For EXA_HANDLES_PIXMAPS the driver will handle whatever is needed.
* We want to signal that the pixmaps will be used as destination.
*/
- ExaDoPrepareAccess(&pPixmap->drawable, EXA_PREPARE_AUX_DEST);
+ ExaDoPrepareAccess(pPixmap, EXA_PREPARE_AUX_DEST);
return pPixmap;
}
@@ -1071,6 +1041,8 @@ exaDriverInit (ScreenPtr pScreen,
pExaScr->pixmap_is_offscreen = exaPixmapIsOffscreen_mixed;
pExaScr->do_move_in_pixmap = exaMoveInPixmap_mixed;
pExaScr->do_move_out_pixmap = NULL;
+ pExaScr->prepare_access_reg = exaPrepareAccessReg_mixed;
+ pExaScr->finish_access = exaFinishAccess_mixed;
} else {
wrap(pExaScr, pScreen, CreatePixmap, exaCreatePixmap_driver);
wrap(pExaScr, pScreen, DestroyPixmap, exaDestroyPixmap_driver);
@@ -1079,6 +1051,8 @@ exaDriverInit (ScreenPtr pScreen,
pExaScr->pixmap_is_offscreen = exaPixmapIsOffscreen_driver;
pExaScr->do_move_in_pixmap = NULL;
pExaScr->do_move_out_pixmap = NULL;
+ pExaScr->prepare_access_reg = NULL;
+ pExaScr->finish_access = NULL;
}
} else {
wrap(pExaScr, pScreen, CreatePixmap, exaCreatePixmap_classic);
@@ -1088,6 +1062,8 @@ exaDriverInit (ScreenPtr pScreen,
pExaScr->pixmap_is_offscreen = exaPixmapIsOffscreen_classic;
pExaScr->do_move_in_pixmap = exaMoveInPixmap_classic;
pExaScr->do_move_out_pixmap = exaMoveOutPixmap_classic;
+ pExaScr->prepare_access_reg = exaPrepareAccessReg_classic;
+ pExaScr->finish_access = NULL;
}
if (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS)) {
LogMessage(X_INFO, "EXA(%d): Offscreen pixmap area of %lu bytes\n",
diff --git a/xorg-server/exa/exa_glyphs.c b/xorg-server/exa/exa_glyphs.c
index d621ccf76..bf097c32f 100644
--- a/xorg-server/exa/exa_glyphs.c
+++ b/xorg-server/exa/exa_glyphs.c
@@ -701,7 +701,6 @@ exaGlyphs (CARD8 op,
GlyphListPtr list,
GlyphPtr *glyphs)
{
- PicturePtr pPicture;
PixmapPtr pMaskPixmap = 0;
PicturePtr pMask = NULL;
ScreenPtr pScreen = pDst->pDrawable->pScreen;
@@ -803,7 +802,6 @@ exaGlyphs (CARD8 op,
while (n--)
{
glyph = *glyphs++;
- pPicture = GlyphPicture (glyph)[pScreen->myNum];
if (glyph->info.width > 0 && glyph->info.height > 0)
{
diff --git a/xorg-server/exa/exa_migration_classic.c b/xorg-server/exa/exa_migration_classic.c
index e096c1eac..b6671f069 100644
--- a/xorg-server/exa/exa_migration_classic.c
+++ b/xorg-server/exa/exa_migration_classic.c
@@ -1,720 +1,742 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Authors:
- * Eric Anholt <eric@anholt.net>
- * Michel Dänzer <michel@tungstengraphics.com>
- *
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <string.h>
-
-#include "exa_priv.h"
-#include "exa.h"
-
-#if DEBUG_MIGRATE
-#define DBG_MIGRATE(a) ErrorF a
-#else
-#define DBG_MIGRATE(a)
-#endif
-
-/**
- * The fallback path for UTS/DFS failing is to just memcpy. exaCopyDirtyToSys
- * and exaCopyDirtyToFb both needed to do this loop.
- */
-static void
-exaMemcpyBox (PixmapPtr pPixmap, BoxPtr pbox, CARD8 *src, int src_pitch,
- CARD8 *dst, int dst_pitch)
- {
- int i, cpp = pPixmap->drawable.bitsPerPixel / 8;
- int bytes = (pbox->x2 - pbox->x1) * cpp;
-
- src += pbox->y1 * src_pitch + pbox->x1 * cpp;
- dst += pbox->y1 * dst_pitch + pbox->x1 * cpp;
-
- for (i = pbox->y2 - pbox->y1; i; i--) {
- memcpy (dst, src, bytes);
- src += src_pitch;
- dst += dst_pitch;
- }
-}
-
-/**
- * Returns TRUE if the pixmap is dirty (has been modified in its current
- * location compared to the other), or lacks a private for tracking
- * dirtiness.
- */
-static Bool
-exaPixmapIsDirty (PixmapPtr pPix)
-{
- ExaPixmapPriv (pPix);
-
- if (pExaPixmap == NULL)
- EXA_FatalErrorDebugWithRet(("EXA bug: exaPixmapIsDirty was called on a non-exa pixmap.\n"), TRUE);
-
- return REGION_NOTEMPTY (pScreen, DamageRegion(pExaPixmap->pDamage)) ||
- !REGION_EQUAL(pScreen, &pExaPixmap->validSys, &pExaPixmap->validFB);
-}
-
-/**
- * Returns TRUE if the pixmap is either pinned in FB, or has a sufficient score
- * to be considered "should be in framebuffer". That's just anything that has
- * had more acceleration than fallbacks, or has no score yet.
- *
- * Only valid if using a migration scheme that tracks score.
- */
-static Bool
-exaPixmapShouldBeInFB (PixmapPtr pPix)
-{
- ExaPixmapPriv (pPix);
-
- if (exaPixmapIsPinned (pPix))
- return TRUE;
-
- return pExaPixmap->score >= 0;
-}
-
-/**
- * If the pixmap is currently dirty, this copies at least the dirty area from
- * FB to system or vice versa. Both areas must be allocated.
- */
-static void
-exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
- Bool (*transfer) (PixmapPtr pPix, int x, int y, int w, int h,
- char *sys, int sys_pitch), CARD8 *fallback_src,
- CARD8 *fallback_dst, int fallback_srcpitch, int fallback_dstpitch,
- int fallback_index, void (*sync) (ScreenPtr pScreen))
-{
- PixmapPtr pPixmap = migrate->pPix;
- ExaPixmapPriv (pPixmap);
- RegionPtr damage = DamageRegion (pExaPixmap->pDamage);
- RegionRec CopyReg;
- Bool save_offscreen;
- int save_pitch;
- BoxPtr pBox;
- int nbox;
- Bool access_prepared = FALSE;
- Bool need_sync = FALSE;
-
- /* Damaged bits are valid in current copy but invalid in other one */
- if (exaPixmapIsOffscreen(pPixmap)) {
- REGION_UNION(pScreen, &pExaPixmap->validFB, &pExaPixmap->validFB,
- damage);
- REGION_SUBTRACT(pScreen, &pExaPixmap->validSys, &pExaPixmap->validSys,
- damage);
- } else {
- REGION_UNION(pScreen, &pExaPixmap->validSys, &pExaPixmap->validSys,
- damage);
- REGION_SUBTRACT(pScreen, &pExaPixmap->validFB, &pExaPixmap->validFB,
- damage);
- }
-
- REGION_EMPTY(pScreen, damage);
-
- /* Copy bits valid in source but not in destination */
- REGION_NULL(pScreen, &CopyReg);
- REGION_SUBTRACT(pScreen, &CopyReg, pValidSrc, pValidDst);
-
- if (migrate->as_dst) {
- ExaScreenPriv (pPixmap->drawable.pScreen);
-
- /* XXX: The pending damage region will be marked as damaged after the
- * operation, so it should serve as an upper bound for the region that
- * needs to be synchronized for the operation. Unfortunately, this
- * causes corruption in some cases, e.g. when starting compiz. See
- * https://bugs.freedesktop.org/show_bug.cgi?id=12916 .
- */
- if (pExaScr->optimize_migration) {
- RegionPtr pending_damage = DamagePendingRegion(pExaPixmap->pDamage);
-
-#if DEBUG_MIGRATE
- if (REGION_NIL(pending_damage)) {
- static Bool firsttime = TRUE;
-
- if (firsttime) {
- ErrorF("%s: Pending damage region empty!\n", __func__);
- firsttime = FALSE;
- }
- }
-#endif
-
- /* Try to prevent destination valid region from growing too many
- * rects by filling it up to the extents of the union of the
- * destination valid region and the pending damage region.
- */
- if (REGION_NUM_RECTS(pValidDst) > 10) {
- BoxRec box;
- BoxPtr pValidExt, pDamageExt;
- RegionRec closure;
-
- pValidExt = REGION_EXTENTS(pScreen, pValidDst);
- pDamageExt = REGION_EXTENTS(pScreen, pending_damage);
-
- box.x1 = min(pValidExt->x1, pDamageExt->x1);
- box.y1 = min(pValidExt->y1, pDamageExt->y1);
- box.x2 = max(pValidExt->x2, pDamageExt->x2);
- box.y2 = max(pValidExt->y2, pDamageExt->y2);
-
- REGION_INIT(pScreen, &closure, &box, 0);
- REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
- } else
- REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
- }
-
- /* The caller may provide a region to be subtracted from the calculated
- * dirty region. This is to avoid migration of bits that don't
- * contribute to the result of the operation.
- */
- if (migrate->pReg)
- REGION_SUBTRACT(pScreen, &CopyReg, &CopyReg, migrate->pReg);
- } else {
- /* The caller may restrict the region to be migrated for source pixmaps
- * to what's relevant for the operation.
- */
- if (migrate->pReg)
- REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, migrate->pReg);
- }
-
- pBox = REGION_RECTS(&CopyReg);
- nbox = REGION_NUM_RECTS(&CopyReg);
-
- save_offscreen = pExaPixmap->offscreen;
- save_pitch = pPixmap->devKind;
- pExaPixmap->offscreen = TRUE;
- pPixmap->devKind = pExaPixmap->fb_pitch;
-
- while (nbox--) {
- pBox->x1 = max(pBox->x1, 0);
- pBox->y1 = max(pBox->y1, 0);
- pBox->x2 = min(pBox->x2, pPixmap->drawable.width);
- pBox->y2 = min(pBox->y2, pPixmap->drawable.height);
-
- if (pBox->x1 >= pBox->x2 || pBox->y1 >= pBox->y2)
- continue;
-
- if (!transfer || !transfer (pPixmap,
- pBox->x1, pBox->y1,
- pBox->x2 - pBox->x1,
- pBox->y2 - pBox->y1,
- (char *) (pExaPixmap->sys_ptr
- + pBox->y1 * pExaPixmap->sys_pitch
- + pBox->x1 * pPixmap->drawable.bitsPerPixel / 8),
- pExaPixmap->sys_pitch))
- {
- if (!access_prepared) {
- ExaDoPrepareAccess(&pPixmap->drawable, fallback_index);
- access_prepared = TRUE;
- }
- exaMemcpyBox (pPixmap, pBox,
- fallback_src, fallback_srcpitch,
- fallback_dst, fallback_dstpitch);
- } else
- need_sync = TRUE;
-
- pBox++;
- }
-
- if (access_prepared)
- exaFinishAccess(&pPixmap->drawable, fallback_index);
- else if (need_sync && sync)
- sync (pPixmap->drawable.pScreen);
-
- pExaPixmap->offscreen = save_offscreen;
- pPixmap->devKind = save_pitch;
-
- /* Try to prevent source valid region from growing too many rects by
- * removing parts of it which are also in the destination valid region.
- * Removing anything beyond that would lead to data loss.
- */
- if (REGION_NUM_RECTS(pValidSrc) > 20)
- REGION_SUBTRACT(pScreen, pValidSrc, pValidSrc, pValidDst);
-
- /* The copied bits are now valid in destination */
- REGION_UNION(pScreen, pValidDst, pValidDst, &CopyReg);
-
- REGION_UNINIT(pScreen, &CopyReg);
-}
-
-/**
- * If the pixmap is currently dirty, this copies at least the dirty area from
- * the framebuffer memory copy to the system memory copy. Both areas must be
- * allocated.
- */
-static void
-exaCopyDirtyToSys (ExaMigrationPtr migrate)
-{
- PixmapPtr pPixmap = migrate->pPix;
- ExaScreenPriv (pPixmap->drawable.pScreen);
- ExaPixmapPriv (pPixmap);
-
- exaCopyDirty(migrate, &pExaPixmap->validSys, &pExaPixmap->validFB,
- pExaScr->info->DownloadFromScreen, pExaPixmap->fb_ptr,
- pExaPixmap->sys_ptr, pExaPixmap->fb_pitch,
- pExaPixmap->sys_pitch, EXA_PREPARE_SRC, exaWaitSync);
-}
-
-/**
- * If the pixmap is currently dirty, this copies at least the dirty area from
- * the system memory copy to the framebuffer memory copy. Both areas must be
- * allocated.
- */
-static void
-exaCopyDirtyToFb (ExaMigrationPtr migrate)
-{
- PixmapPtr pPixmap = migrate->pPix;
- ExaScreenPriv (pPixmap->drawable.pScreen);
- ExaPixmapPriv (pPixmap);
-
- exaCopyDirty(migrate, &pExaPixmap->validFB, &pExaPixmap->validSys,
- pExaScr->info->UploadToScreen, pExaPixmap->sys_ptr,
- pExaPixmap->fb_ptr, pExaPixmap->sys_pitch,
- pExaPixmap->fb_pitch, EXA_PREPARE_DEST, NULL);
-}
-
-/**
- * Allocates a framebuffer copy of the pixmap if necessary, and then copies
- * any necessary pixmap data into the framebuffer copy and points the pixmap at
- * it.
- *
- * Note that when first allocated, a pixmap will have FALSE dirty flag.
- * This is intentional because pixmap data starts out undefined. So if we move
- * it in due to the first operation against it being accelerated, it will have
- * undefined framebuffer contents that we didn't have to upload. If we do
- * moveouts (and moveins) after the first movein, then we will only have to copy
- * back and forth if the pixmap was written to after the last synchronization of
- * the two copies. Then, at exaPixmapSave (when the framebuffer copy goes away)
- * we mark the pixmap dirty, so that the next exaMoveInPixmap will actually move
- * all the data, since it's almost surely all valid now.
- */
-static void
-exaDoMoveInPixmap (ExaMigrationPtr migrate)
-{
- PixmapPtr pPixmap = migrate->pPix;
- ScreenPtr pScreen = pPixmap->drawable.pScreen;
- ExaScreenPriv (pScreen);
- ExaPixmapPriv (pPixmap);
-
- /* If we're VT-switched away, no touching card memory allowed. */
- if (pExaScr->swappedOut)
- return;
-
- /* If we're not allowed to move, then fail. */
- if (exaPixmapIsPinned(pPixmap))
- return;
-
- /* Don't migrate in pixmaps which are less than 8bpp. This avoids a lot of
- * fragility in EXA, and <8bpp is probably not used enough any more to care
- * (at least, not in acceleratd paths).
- */
- if (pPixmap->drawable.bitsPerPixel < 8)
- return;
-
- if (pExaPixmap->accel_blocked)
- return;
-
- if (pExaPixmap->area == NULL) {
- pExaPixmap->area =
- exaOffscreenAlloc (pScreen, pExaPixmap->fb_size,
- pExaScr->info->pixmapOffsetAlign, FALSE,
- exaPixmapSave, (pointer) pPixmap);
- if (pExaPixmap->area == NULL)
- return;
-
- pExaPixmap->fb_ptr = (CARD8 *) pExaScr->info->memoryBase +
- pExaPixmap->area->offset;
- }
-
- exaCopyDirtyToFb (migrate);
-
- if (exaPixmapIsOffscreen(pPixmap))
- return;
-
- DBG_MIGRATE (("-> %p (0x%x) (%dx%d) (%c)\n", pPixmap,
- (ExaGetPixmapPriv(pPixmap)->area ?
- ExaGetPixmapPriv(pPixmap)->area->offset : 0),
- pPixmap->drawable.width,
- pPixmap->drawable.height,
- exaPixmapIsDirty(pPixmap) ? 'd' : 'c'));
-
- pExaPixmap->offscreen = TRUE;
-
- pPixmap->devKind = pExaPixmap->fb_pitch;
- pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
-}
-
-void
-exaMoveInPixmap_classic (PixmapPtr pPixmap)
-{
- static ExaMigrationRec migrate = { FALSE, TRUE,
- NULL, NULL };
-
- migrate.pPix = pPixmap;
- exaDoMoveInPixmap (&migrate);
-}
-
-/**
- * Switches the current active location of the pixmap to system memory, copying
- * updated data out if necessary.
- */
-static void
-exaDoMoveOutPixmap (ExaMigrationPtr migrate)
-{
- PixmapPtr pPixmap = migrate->pPix;
- ExaPixmapPriv (pPixmap);
-
- if (!pExaPixmap->area || exaPixmapIsPinned(pPixmap))
- return;
-
- exaCopyDirtyToSys (migrate);
-
- if (exaPixmapIsOffscreen(pPixmap)) {
-
- DBG_MIGRATE (("<- %p (%p) (%dx%d) (%c)\n", pPixmap,
- (void*)(ExaGetPixmapPriv(pPixmap)->area ?
- ExaGetPixmapPriv(pPixmap)->area->offset : 0),
- pPixmap->drawable.width,
- pPixmap->drawable.height,
- exaPixmapIsDirty(pPixmap) ? 'd' : 'c'));
-
- pExaPixmap->offscreen = FALSE;
-
- pPixmap->devKind = pExaPixmap->sys_pitch;
- pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
- }
-}
-
-void
-exaMoveOutPixmap_classic (PixmapPtr pPixmap)
-{
- static ExaMigrationRec migrate = { FALSE, TRUE,
- NULL, NULL };
-
- migrate.pPix = pPixmap;
- exaDoMoveOutPixmap (&migrate);
-}
-
-
-/**
- * Copies out important pixmap data and removes references to framebuffer area.
- * Called when the memory manager decides it's time to kick the pixmap out of
- * framebuffer entirely.
- */
-void
-exaPixmapSave (ScreenPtr pScreen, ExaOffscreenArea *area)
-{
- PixmapPtr pPixmap = area->privData;
- ExaPixmapPriv(pPixmap);
-
- exaMoveOutPixmap(pPixmap);
-
- pExaPixmap->fb_ptr = NULL;
- pExaPixmap->area = NULL;
-
- /* Mark all FB bits as invalid, so all valid system bits get copied to FB
- * next time */
- REGION_EMPTY(pPixmap->drawable.pScreen, &pExaPixmap->validFB);
-}
-
-/**
- * For the "greedy" migration scheme, pushes the pixmap toward being located in
- * framebuffer memory.
- */
-static void
-exaMigrateTowardFb (ExaMigrationPtr migrate)
-{
- PixmapPtr pPixmap = migrate->pPix;
- ExaPixmapPriv (pPixmap);
-
- if (pExaPixmap->score == EXA_PIXMAP_SCORE_PINNED) {
- DBG_MIGRATE(("UseScreen: not migrating pinned pixmap %p\n",
- (pointer)pPixmap));
- return;
- }
-
- DBG_MIGRATE(("UseScreen %p score %d\n",
- (pointer)pPixmap, pExaPixmap->score));
-
- if (pExaPixmap->score == EXA_PIXMAP_SCORE_INIT) {
- exaDoMoveInPixmap(migrate);
- pExaPixmap->score = 0;
- }
-
- if (pExaPixmap->score < EXA_PIXMAP_SCORE_MAX)
- pExaPixmap->score++;
-
- if (pExaPixmap->score >= EXA_PIXMAP_SCORE_MOVE_IN &&
- !exaPixmapIsOffscreen(pPixmap))
- {
- exaDoMoveInPixmap(migrate);
- }
-
- if (exaPixmapIsOffscreen(pPixmap)) {
- exaCopyDirtyToFb (migrate);
- ExaOffscreenMarkUsed (pPixmap);
- } else
- exaCopyDirtyToSys (migrate);
-}
-
-/**
- * For the "greedy" migration scheme, pushes the pixmap toward being located in
- * system memory.
- */
-static void
-exaMigrateTowardSys (ExaMigrationPtr migrate)
-{
- PixmapPtr pPixmap = migrate->pPix;
- ExaPixmapPriv (pPixmap);
-
- DBG_MIGRATE(("UseMem: %p score %d\n", (pointer)pPixmap, pExaPixmap->score));
-
- if (pExaPixmap->score == EXA_PIXMAP_SCORE_PINNED)
- return;
-
- if (pExaPixmap->score == EXA_PIXMAP_SCORE_INIT)
- pExaPixmap->score = 0;
-
- if (pExaPixmap->score > EXA_PIXMAP_SCORE_MIN)
- pExaPixmap->score--;
-
- if (pExaPixmap->score <= EXA_PIXMAP_SCORE_MOVE_OUT && pExaPixmap->area)
- exaDoMoveOutPixmap(migrate);
-
- if (exaPixmapIsOffscreen(pPixmap)) {
- exaCopyDirtyToFb (migrate);
- ExaOffscreenMarkUsed (pPixmap);
- } else
- exaCopyDirtyToSys (migrate);
-}
-
-/**
- * If the pixmap has both a framebuffer and system memory copy, this function
- * asserts that both of them are the same.
- */
-static Bool
-exaAssertNotDirty (PixmapPtr pPixmap)
-{
- ExaPixmapPriv (pPixmap);
- CARD8 *dst, *src;
- RegionRec ValidReg;
- int dst_pitch, src_pitch, cpp, y, nbox, save_pitch;
- BoxPtr pBox;
- Bool ret = TRUE, save_offscreen;
-
- if (exaPixmapIsPinned(pPixmap) || pExaPixmap->area == NULL)
- return ret;
-
- REGION_NULL(pScreen, &ValidReg);
- REGION_INTERSECT(pScreen, &ValidReg, &pExaPixmap->validFB,
- &pExaPixmap->validSys);
- nbox = REGION_NUM_RECTS(&ValidReg);
-
- if (!nbox)
- goto out;
-
- pBox = REGION_RECTS(&ValidReg);
-
- dst_pitch = pExaPixmap->sys_pitch;
- src_pitch = pExaPixmap->fb_pitch;
- cpp = pPixmap->drawable.bitsPerPixel / 8;
-
- save_offscreen = pExaPixmap->offscreen;
- save_pitch = pPixmap->devKind;
- pExaPixmap->offscreen = TRUE;
- pPixmap->devKind = pExaPixmap->fb_pitch;
-
- if (!ExaDoPrepareAccess(&pPixmap->drawable, EXA_PREPARE_SRC))
- goto skip;
-
- while (nbox--) {
- int rowbytes;
-
- pBox->x1 = max(pBox->x1, 0);
- pBox->y1 = max(pBox->y1, 0);
- pBox->x2 = min(pBox->x2, pPixmap->drawable.width);
- pBox->y2 = min(pBox->y2, pPixmap->drawable.height);
-
- if (pBox->x1 >= pBox->x2 || pBox->y1 >= pBox->y2)
- continue;
-
- rowbytes = (pBox->x2 - pBox->x1) * cpp;
- src = (CARD8 *) pPixmap->devPrivate.ptr + pBox->y1 * src_pitch + pBox->x1 * cpp;
- dst = pExaPixmap->sys_ptr + pBox->y1 * dst_pitch + pBox->x1 * cpp;
-
- for (y = pBox->y1; y < pBox->y2;
- y++, src += src_pitch, dst += dst_pitch) {
- if (memcmp(dst, src, rowbytes) != 0) {
- ret = FALSE;
- exaPixmapDirty(pPixmap, pBox->x1, pBox->y1, pBox->x2,
- pBox->y2);
- break;
- }
- }
- }
-
-skip:
- exaFinishAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
-
- pExaPixmap->offscreen = save_offscreen;
- pPixmap->devKind = save_pitch;
-
-out:
- REGION_UNINIT(pScreen, &ValidReg);
- return ret;
-}
-
-/**
- * Performs migration of the pixmaps according to the operation information
- * provided in pixmaps and can_accel and the migration scheme chosen in the
- * config file.
- */
-void
-exaDoMigration_classic (ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel)
-{
- ScreenPtr pScreen = pixmaps[0].pPix->drawable.pScreen;
- ExaScreenPriv(pScreen);
- int i, j;
-
- /* If this debugging flag is set, check each pixmap for whether it is marked
- * as clean, and if so, actually check if that's the case. This should help
- * catch issues with failing to mark a drawable as dirty. While it will
- * catch them late (after the operation happened), it at least explains what
- * went wrong, and instrumenting the code to find what operation happened
- * to the pixmap last shouldn't be hard.
- */
- if (pExaScr->checkDirtyCorrectness) {
- for (i = 0; i < npixmaps; i++) {
- if (!exaPixmapIsDirty (pixmaps[i].pPix) &&
- !exaAssertNotDirty (pixmaps[i].pPix))
- ErrorF("%s: Pixmap %d dirty but not marked as such!\n", __FUNCTION__, i);
- }
- }
- /* If anything is pinned in system memory, we won't be able to
- * accelerate.
- */
- for (i = 0; i < npixmaps; i++) {
- if (exaPixmapIsPinned (pixmaps[i].pPix) &&
- !exaPixmapIsOffscreen (pixmaps[i].pPix))
- {
- EXA_FALLBACK(("Pixmap %p (%dx%d) pinned in sys\n", pixmaps[i].pPix,
- pixmaps[i].pPix->drawable.width,
- pixmaps[i].pPix->drawable.height));
- can_accel = FALSE;
- break;
- }
- }
-
- if (pExaScr->migration == ExaMigrationSmart) {
- /* If we've got something as a destination that we shouldn't cause to
- * become newly dirtied, take the unaccelerated route.
- */
- for (i = 0; i < npixmaps; i++) {
- if (pixmaps[i].as_dst && !exaPixmapShouldBeInFB (pixmaps[i].pPix) &&
- !exaPixmapIsDirty (pixmaps[i].pPix))
- {
- for (i = 0; i < npixmaps; i++) {
- if (!exaPixmapIsDirty (pixmaps[i].pPix))
- exaDoMoveOutPixmap (pixmaps + i);
- }
- return;
- }
- }
-
- /* If we aren't going to accelerate, then we migrate everybody toward
- * system memory, and kick out if it's free.
- */
- if (!can_accel) {
- for (i = 0; i < npixmaps; i++) {
- exaMigrateTowardSys (pixmaps + i);
- if (!exaPixmapIsDirty (pixmaps[i].pPix))
- exaDoMoveOutPixmap (pixmaps + i);
- }
- return;
- }
-
- /* Finally, the acceleration path. Move them all in. */
- for (i = 0; i < npixmaps; i++) {
- exaMigrateTowardFb(pixmaps + i);
- exaDoMoveInPixmap(pixmaps + i);
- }
- } else if (pExaScr->migration == ExaMigrationGreedy) {
- /* If we can't accelerate, either because the driver can't or because one of
- * the pixmaps is pinned in system memory, then we migrate everybody toward
- * system memory.
- *
- * We also migrate toward system if all pixmaps involved are currently in
- * system memory -- this can mitigate thrashing when there are significantly
- * more pixmaps active than would fit in memory.
- *
- * If not, then we migrate toward FB so that hopefully acceleration can
- * happen.
- */
- if (!can_accel) {
- for (i = 0; i < npixmaps; i++)
- exaMigrateTowardSys (pixmaps + i);
- return;
- }
-
- for (i = 0; i < npixmaps; i++) {
- if (exaPixmapIsOffscreen(pixmaps[i].pPix)) {
- /* Found one in FB, so move all to FB. */
- for (j = 0; j < npixmaps; j++)
- exaMigrateTowardFb(pixmaps + i);
- return;
- }
- }
-
- /* Nobody's in FB, so move all away from FB. */
- for (i = 0; i < npixmaps; i++)
- exaMigrateTowardSys(pixmaps + i);
- } else if (pExaScr->migration == ExaMigrationAlways) {
- /* Always move the pixmaps out if we can't accelerate. If we can
- * accelerate, try to move them all in. If that fails, then move them
- * back out.
- */
- if (!can_accel) {
- for (i = 0; i < npixmaps; i++)
- exaDoMoveOutPixmap(pixmaps + i);
- return;
- }
-
- /* Now, try to move them all into FB */
- for (i = 0; i < npixmaps; i++) {
- exaDoMoveInPixmap(pixmaps + i);
- }
-
- /* If we couldn't fit everything in, abort */
- for (i = 0; i < npixmaps; i++) {
- if (!exaPixmapIsOffscreen(pixmaps[i].pPix)) {
- return;
- }
- }
-
- /* Yay, everything's offscreen, mark memory as used */
- for (i = 0; i < npixmaps; i++) {
- ExaOffscreenMarkUsed (pixmaps[i].pPix);
- }
- }
-}
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Authors:
+ * Eric Anholt <eric@anholt.net>
+ * Michel Dänzer <michel@tungstengraphics.com>
+ *
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include <string.h>
+
+#include "exa_priv.h"
+#include "exa.h"
+
+#if DEBUG_MIGRATE
+#define DBG_MIGRATE(a) ErrorF a
+#else
+#define DBG_MIGRATE(a)
+#endif
+
+/**
+ * The fallback path for UTS/DFS failing is to just memcpy. exaCopyDirtyToSys
+ * and exaCopyDirtyToFb both needed to do this loop.
+ */
+static void
+exaMemcpyBox (PixmapPtr pPixmap, BoxPtr pbox, CARD8 *src, int src_pitch,
+ CARD8 *dst, int dst_pitch)
+ {
+ int i, cpp = pPixmap->drawable.bitsPerPixel / 8;
+ int bytes = (pbox->x2 - pbox->x1) * cpp;
+
+ src += pbox->y1 * src_pitch + pbox->x1 * cpp;
+ dst += pbox->y1 * dst_pitch + pbox->x1 * cpp;
+
+ for (i = pbox->y2 - pbox->y1; i; i--) {
+ memcpy (dst, src, bytes);
+ src += src_pitch;
+ dst += dst_pitch;
+ }
+}
+
+/**
+ * Returns TRUE if the pixmap is dirty (has been modified in its current
+ * location compared to the other), or lacks a private for tracking
+ * dirtiness.
+ */
+static Bool
+exaPixmapIsDirty (PixmapPtr pPix)
+{
+ ExaPixmapPriv (pPix);
+
+ if (pExaPixmap == NULL)
+ EXA_FatalErrorDebugWithRet(("EXA bug: exaPixmapIsDirty was called on a non-exa pixmap.\n"), TRUE);
+
+ return REGION_NOTEMPTY (pScreen, DamageRegion(pExaPixmap->pDamage)) ||
+ !REGION_EQUAL(pScreen, &pExaPixmap->validSys, &pExaPixmap->validFB);
+}
+
+/**
+ * Returns TRUE if the pixmap is either pinned in FB, or has a sufficient score
+ * to be considered "should be in framebuffer". That's just anything that has
+ * had more acceleration than fallbacks, or has no score yet.
+ *
+ * Only valid if using a migration scheme that tracks score.
+ */
+static Bool
+exaPixmapShouldBeInFB (PixmapPtr pPix)
+{
+ ExaPixmapPriv (pPix);
+
+ if (exaPixmapIsPinned (pPix))
+ return TRUE;
+
+ return pExaPixmap->score >= 0;
+}
+
+/**
+ * If the pixmap is currently dirty, this copies at least the dirty area from
+ * FB to system or vice versa. Both areas must be allocated.
+ */
+static void
+exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
+ Bool (*transfer) (PixmapPtr pPix, int x, int y, int w, int h,
+ char *sys, int sys_pitch), int fallback_index,
+ void (*sync) (ScreenPtr pScreen))
+{
+ PixmapPtr pPixmap = migrate->pPix;
+ ExaPixmapPriv (pPixmap);
+ RegionPtr damage = DamageRegion (pExaPixmap->pDamage);
+ RegionRec CopyReg;
+ Bool save_offscreen;
+ int save_pitch;
+ BoxPtr pBox;
+ int nbox;
+ Bool access_prepared = FALSE;
+ Bool need_sync = FALSE;
+
+ /* Damaged bits are valid in current copy but invalid in other one */
+ if (pExaPixmap->offscreen) {
+ REGION_UNION(pScreen, &pExaPixmap->validFB, &pExaPixmap->validFB,
+ damage);
+ REGION_SUBTRACT(pScreen, &pExaPixmap->validSys, &pExaPixmap->validSys,
+ damage);
+ } else {
+ REGION_UNION(pScreen, &pExaPixmap->validSys, &pExaPixmap->validSys,
+ damage);
+ REGION_SUBTRACT(pScreen, &pExaPixmap->validFB, &pExaPixmap->validFB,
+ damage);
+ }
+
+ REGION_EMPTY(pScreen, damage);
+
+ /* Copy bits valid in source but not in destination */
+ REGION_NULL(pScreen, &CopyReg);
+ REGION_SUBTRACT(pScreen, &CopyReg, pValidSrc, pValidDst);
+
+ if (migrate->as_dst) {
+ ExaScreenPriv (pPixmap->drawable.pScreen);
+
+ /* XXX: The pending damage region will be marked as damaged after the
+ * operation, so it should serve as an upper bound for the region that
+ * needs to be synchronized for the operation. Unfortunately, this
+ * causes corruption in some cases, e.g. when starting compiz. See
+ * https://bugs.freedesktop.org/show_bug.cgi?id=12916 .
+ */
+ if (pExaScr->optimize_migration) {
+ RegionPtr pending_damage = DamagePendingRegion(pExaPixmap->pDamage);
+
+#if DEBUG_MIGRATE
+ if (REGION_NIL(pending_damage)) {
+ static Bool firsttime = TRUE;
+
+ if (firsttime) {
+ ErrorF("%s: Pending damage region empty!\n", __func__);
+ firsttime = FALSE;
+ }
+ }
+#endif
+
+ /* Try to prevent destination valid region from growing too many
+ * rects by filling it up to the extents of the union of the
+ * destination valid region and the pending damage region.
+ */
+ if (REGION_NUM_RECTS(pValidDst) > 10) {
+ BoxRec box;
+ BoxPtr pValidExt, pDamageExt;
+ RegionRec closure;
+
+ pValidExt = REGION_EXTENTS(pScreen, pValidDst);
+ pDamageExt = REGION_EXTENTS(pScreen, pending_damage);
+
+ box.x1 = min(pValidExt->x1, pDamageExt->x1);
+ box.y1 = min(pValidExt->y1, pDamageExt->y1);
+ box.x2 = max(pValidExt->x2, pDamageExt->x2);
+ box.y2 = max(pValidExt->y2, pDamageExt->y2);
+
+ REGION_INIT(pScreen, &closure, &box, 0);
+ REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
+ } else
+ REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
+ }
+
+ /* The caller may provide a region to be subtracted from the calculated
+ * dirty region. This is to avoid migration of bits that don't
+ * contribute to the result of the operation.
+ */
+ if (migrate->pReg)
+ REGION_SUBTRACT(pScreen, &CopyReg, &CopyReg, migrate->pReg);
+ } else {
+ /* The caller may restrict the region to be migrated for source pixmaps
+ * to what's relevant for the operation.
+ */
+ if (migrate->pReg)
+ REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, migrate->pReg);
+ }
+
+ pBox = REGION_RECTS(&CopyReg);
+ nbox = REGION_NUM_RECTS(&CopyReg);
+
+ save_offscreen = pExaPixmap->offscreen;
+ save_pitch = pPixmap->devKind;
+ pExaPixmap->offscreen = TRUE;
+ pPixmap->devKind = pExaPixmap->fb_pitch;
+
+ while (nbox--) {
+ pBox->x1 = max(pBox->x1, 0);
+ pBox->y1 = max(pBox->y1, 0);
+ pBox->x2 = min(pBox->x2, pPixmap->drawable.width);
+ pBox->y2 = min(pBox->y2, pPixmap->drawable.height);
+
+ if (pBox->x1 >= pBox->x2 || pBox->y1 >= pBox->y2)
+ continue;
+
+ if (!transfer || !transfer (pPixmap,
+ pBox->x1, pBox->y1,
+ pBox->x2 - pBox->x1,
+ pBox->y2 - pBox->y1,
+ (char *) (pExaPixmap->sys_ptr
+ + pBox->y1 * pExaPixmap->sys_pitch
+ + pBox->x1 * pPixmap->drawable.bitsPerPixel / 8),
+ pExaPixmap->sys_pitch))
+ {
+ if (!access_prepared) {
+ ExaDoPrepareAccess(pPixmap, fallback_index);
+ access_prepared = TRUE;
+ }
+ if (fallback_index == EXA_PREPARE_DEST) {
+ exaMemcpyBox (pPixmap, pBox,
+ pExaPixmap->sys_ptr, pExaPixmap->sys_pitch,
+ pPixmap->devPrivate.ptr, pPixmap->devKind);
+ } else {
+ exaMemcpyBox (pPixmap, pBox,
+ pPixmap->devPrivate.ptr, pPixmap->devKind,
+ pExaPixmap->sys_ptr, pExaPixmap->sys_pitch);
+ }
+ } else
+ need_sync = TRUE;
+
+ pBox++;
+ }
+
+ pExaPixmap->offscreen = save_offscreen;
+ pPixmap->devKind = save_pitch;
+
+ /* Try to prevent source valid region from growing too many rects by
+ * removing parts of it which are also in the destination valid region.
+ * Removing anything beyond that would lead to data loss.
+ */
+ if (REGION_NUM_RECTS(pValidSrc) > 20)
+ REGION_SUBTRACT(pScreen, pValidSrc, pValidSrc, pValidDst);
+
+ /* The copied bits are now valid in destination */
+ REGION_UNION(pScreen, pValidDst, pValidDst, &CopyReg);
+
+ REGION_UNINIT(pScreen, &CopyReg);
+
+ if (access_prepared)
+ exaFinishAccess(&pPixmap->drawable, fallback_index);
+ else if (need_sync && sync)
+ sync (pPixmap->drawable.pScreen);
+}
+
+/**
+ * If the pixmap is currently dirty, this copies at least the dirty area from
+ * the framebuffer memory copy to the system memory copy. Both areas must be
+ * allocated.
+ */
+void
+exaCopyDirtyToSys (ExaMigrationPtr migrate)
+{
+ PixmapPtr pPixmap = migrate->pPix;
+ ExaScreenPriv (pPixmap->drawable.pScreen);
+ ExaPixmapPriv (pPixmap);
+
+ exaCopyDirty(migrate, &pExaPixmap->validSys, &pExaPixmap->validFB,
+ pExaScr->info->DownloadFromScreen, EXA_PREPARE_SRC,
+ exaWaitSync);
+}
+
+/**
+ * If the pixmap is currently dirty, this copies at least the dirty area from
+ * the system memory copy to the framebuffer memory copy. Both areas must be
+ * allocated.
+ */
+void
+exaCopyDirtyToFb (ExaMigrationPtr migrate)
+{
+ PixmapPtr pPixmap = migrate->pPix;
+ ExaScreenPriv (pPixmap->drawable.pScreen);
+ ExaPixmapPriv (pPixmap);
+
+ exaCopyDirty(migrate, &pExaPixmap->validFB, &pExaPixmap->validSys,
+ pExaScr->info->UploadToScreen, EXA_PREPARE_DEST, NULL);
+}
+
+/**
+ * Allocates a framebuffer copy of the pixmap if necessary, and then copies
+ * any necessary pixmap data into the framebuffer copy and points the pixmap at
+ * it.
+ *
+ * Note that when first allocated, a pixmap will have FALSE dirty flag.
+ * This is intentional because pixmap data starts out undefined. So if we move
+ * it in due to the first operation against it being accelerated, it will have
+ * undefined framebuffer contents that we didn't have to upload. If we do
+ * moveouts (and moveins) after the first movein, then we will only have to copy
+ * back and forth if the pixmap was written to after the last synchronization of
+ * the two copies. Then, at exaPixmapSave (when the framebuffer copy goes away)
+ * we mark the pixmap dirty, so that the next exaMoveInPixmap will actually move
+ * all the data, since it's almost surely all valid now.
+ */
+static void
+exaDoMoveInPixmap (ExaMigrationPtr migrate)
+{
+ PixmapPtr pPixmap = migrate->pPix;
+ ScreenPtr pScreen = pPixmap->drawable.pScreen;
+ ExaScreenPriv (pScreen);
+ ExaPixmapPriv (pPixmap);
+
+ /* If we're VT-switched away, no touching card memory allowed. */
+ if (pExaScr->swappedOut)
+ return;
+
+ /* If we're not allowed to move, then fail. */
+ if (exaPixmapIsPinned(pPixmap))
+ return;
+
+ /* Don't migrate in pixmaps which are less than 8bpp. This avoids a lot of
+ * fragility in EXA, and <8bpp is probably not used enough any more to care
+ * (at least, not in acceleratd paths).
+ */
+ if (pPixmap->drawable.bitsPerPixel < 8)
+ return;
+
+ if (pExaPixmap->accel_blocked)
+ return;
+
+ if (pExaPixmap->area == NULL) {
+ pExaPixmap->area =
+ exaOffscreenAlloc (pScreen, pExaPixmap->fb_size,
+ pExaScr->info->pixmapOffsetAlign, FALSE,
+ exaPixmapSave, (pointer) pPixmap);
+ if (pExaPixmap->area == NULL)
+ return;
+
+ pExaPixmap->fb_ptr = (CARD8 *) pExaScr->info->memoryBase +
+ pExaPixmap->area->offset;
+ }
+
+ exaCopyDirtyToFb (migrate);
+
+ if (exaPixmapIsOffscreen(pPixmap))
+ return;
+
+ DBG_MIGRATE (("-> %p (0x%x) (%dx%d) (%c)\n", pPixmap,
+ (ExaGetPixmapPriv(pPixmap)->area ?
+ ExaGetPixmapPriv(pPixmap)->area->offset : 0),
+ pPixmap->drawable.width,
+ pPixmap->drawable.height,
+ exaPixmapIsDirty(pPixmap) ? 'd' : 'c'));
+
+ pExaPixmap->offscreen = TRUE;
+
+ pPixmap->devKind = pExaPixmap->fb_pitch;
+ pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
+}
+
+void
+exaMoveInPixmap_classic (PixmapPtr pPixmap)
+{
+ static ExaMigrationRec migrate = { FALSE, TRUE,
+ NULL, NULL };
+
+ migrate.pPix = pPixmap;
+ exaDoMoveInPixmap (&migrate);
+}
+
+/**
+ * Switches the current active location of the pixmap to system memory, copying
+ * updated data out if necessary.
+ */
+static void
+exaDoMoveOutPixmap (ExaMigrationPtr migrate)
+{
+ PixmapPtr pPixmap = migrate->pPix;
+ ExaPixmapPriv (pPixmap);
+
+ if (!pExaPixmap->area || exaPixmapIsPinned(pPixmap))
+ return;
+
+ exaCopyDirtyToSys (migrate);
+
+ if (exaPixmapIsOffscreen(pPixmap)) {
+
+ DBG_MIGRATE (("<- %p (%p) (%dx%d) (%c)\n", pPixmap,
+ (void*)(ExaGetPixmapPriv(pPixmap)->area ?
+ ExaGetPixmapPriv(pPixmap)->area->offset : 0),
+ pPixmap->drawable.width,
+ pPixmap->drawable.height,
+ exaPixmapIsDirty(pPixmap) ? 'd' : 'c'));
+
+ pExaPixmap->offscreen = FALSE;
+
+ pPixmap->devKind = pExaPixmap->sys_pitch;
+ pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
+ }
+}
+
+void
+exaMoveOutPixmap_classic (PixmapPtr pPixmap)
+{
+ static ExaMigrationRec migrate = { FALSE, TRUE,
+ NULL, NULL };
+
+ migrate.pPix = pPixmap;
+ exaDoMoveOutPixmap (&migrate);
+}
+
+
+/**
+ * Copies out important pixmap data and removes references to framebuffer area.
+ * Called when the memory manager decides it's time to kick the pixmap out of
+ * framebuffer entirely.
+ */
+void
+exaPixmapSave (ScreenPtr pScreen, ExaOffscreenArea *area)
+{
+ PixmapPtr pPixmap = area->privData;
+ ExaPixmapPriv(pPixmap);
+
+ exaMoveOutPixmap(pPixmap);
+
+ pExaPixmap->fb_ptr = NULL;
+ pExaPixmap->area = NULL;
+
+ /* Mark all FB bits as invalid, so all valid system bits get copied to FB
+ * next time */
+ REGION_EMPTY(pPixmap->drawable.pScreen, &pExaPixmap->validFB);
+}
+
+/**
+ * For the "greedy" migration scheme, pushes the pixmap toward being located in
+ * framebuffer memory.
+ */
+static void
+exaMigrateTowardFb (ExaMigrationPtr migrate)
+{
+ PixmapPtr pPixmap = migrate->pPix;
+ ExaPixmapPriv (pPixmap);
+
+ if (pExaPixmap->score == EXA_PIXMAP_SCORE_PINNED) {
+ DBG_MIGRATE(("UseScreen: not migrating pinned pixmap %p\n",
+ (pointer)pPixmap));
+ return;
+ }
+
+ DBG_MIGRATE(("UseScreen %p score %d\n",
+ (pointer)pPixmap, pExaPixmap->score));
+
+ if (pExaPixmap->score == EXA_PIXMAP_SCORE_INIT) {
+ exaDoMoveInPixmap(migrate);
+ pExaPixmap->score = 0;
+ }
+
+ if (pExaPixmap->score < EXA_PIXMAP_SCORE_MAX)
+ pExaPixmap->score++;
+
+ if (pExaPixmap->score >= EXA_PIXMAP_SCORE_MOVE_IN &&
+ !exaPixmapIsOffscreen(pPixmap))
+ {
+ exaDoMoveInPixmap(migrate);
+ }
+
+ if (exaPixmapIsOffscreen(pPixmap)) {
+ exaCopyDirtyToFb (migrate);
+ ExaOffscreenMarkUsed (pPixmap);
+ } else
+ exaCopyDirtyToSys (migrate);
+}
+
+/**
+ * For the "greedy" migration scheme, pushes the pixmap toward being located in
+ * system memory.
+ */
+static void
+exaMigrateTowardSys (ExaMigrationPtr migrate)
+{
+ PixmapPtr pPixmap = migrate->pPix;
+ ExaPixmapPriv (pPixmap);
+
+ DBG_MIGRATE(("UseMem: %p score %d\n", (pointer)pPixmap, pExaPixmap->score));
+
+ if (pExaPixmap->score == EXA_PIXMAP_SCORE_PINNED)
+ return;
+
+ if (pExaPixmap->score == EXA_PIXMAP_SCORE_INIT)
+ pExaPixmap->score = 0;
+
+ if (pExaPixmap->score > EXA_PIXMAP_SCORE_MIN)
+ pExaPixmap->score--;
+
+ if (pExaPixmap->score <= EXA_PIXMAP_SCORE_MOVE_OUT && pExaPixmap->area)
+ exaDoMoveOutPixmap(migrate);
+
+ if (exaPixmapIsOffscreen(pPixmap)) {
+ exaCopyDirtyToFb (migrate);
+ ExaOffscreenMarkUsed (pPixmap);
+ } else
+ exaCopyDirtyToSys (migrate);
+}
+
+/**
+ * If the pixmap has both a framebuffer and system memory copy, this function
+ * asserts that both of them are the same.
+ */
+static Bool
+exaAssertNotDirty (PixmapPtr pPixmap)
+{
+ ExaPixmapPriv (pPixmap);
+ CARD8 *dst, *src;
+ RegionRec ValidReg;
+ int dst_pitch, src_pitch, cpp, y, nbox, save_pitch;
+ BoxPtr pBox;
+ Bool ret = TRUE, save_offscreen;
+
+ if (exaPixmapIsPinned(pPixmap) || pExaPixmap->area == NULL)
+ return ret;
+
+ REGION_NULL(pScreen, &ValidReg);
+ REGION_INTERSECT(pScreen, &ValidReg, &pExaPixmap->validFB,
+ &pExaPixmap->validSys);
+ nbox = REGION_NUM_RECTS(&ValidReg);
+
+ if (!nbox)
+ goto out;
+
+ pBox = REGION_RECTS(&ValidReg);
+
+ dst_pitch = pExaPixmap->sys_pitch;
+ src_pitch = pExaPixmap->fb_pitch;
+ cpp = pPixmap->drawable.bitsPerPixel / 8;
+
+ save_offscreen = pExaPixmap->offscreen;
+ save_pitch = pPixmap->devKind;
+ pExaPixmap->offscreen = TRUE;
+ pPixmap->devKind = pExaPixmap->fb_pitch;
+
+ if (!ExaDoPrepareAccess(pPixmap, EXA_PREPARE_SRC))
+ goto skip;
+
+ while (nbox--) {
+ int rowbytes;
+
+ pBox->x1 = max(pBox->x1, 0);
+ pBox->y1 = max(pBox->y1, 0);
+ pBox->x2 = min(pBox->x2, pPixmap->drawable.width);
+ pBox->y2 = min(pBox->y2, pPixmap->drawable.height);
+
+ if (pBox->x1 >= pBox->x2 || pBox->y1 >= pBox->y2)
+ continue;
+
+ rowbytes = (pBox->x2 - pBox->x1) * cpp;
+ src = (CARD8 *) pPixmap->devPrivate.ptr + pBox->y1 * src_pitch + pBox->x1 * cpp;
+ dst = pExaPixmap->sys_ptr + pBox->y1 * dst_pitch + pBox->x1 * cpp;
+
+ for (y = pBox->y1; y < pBox->y2;
+ y++, src += src_pitch, dst += dst_pitch) {
+ if (memcmp(dst, src, rowbytes) != 0) {
+ ret = FALSE;
+ exaPixmapDirty(pPixmap, pBox->x1, pBox->y1, pBox->x2,
+ pBox->y2);
+ break;
+ }
+ }
+ }
+
+skip:
+ exaFinishAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
+
+ pExaPixmap->offscreen = save_offscreen;
+ pPixmap->devKind = save_pitch;
+
+out:
+ REGION_UNINIT(pScreen, &ValidReg);
+ return ret;
+}
+
+/**
+ * Performs migration of the pixmaps according to the operation information
+ * provided in pixmaps and can_accel and the migration scheme chosen in the
+ * config file.
+ */
+void
+exaDoMigration_classic (ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel)
+{
+ ScreenPtr pScreen = pixmaps[0].pPix->drawable.pScreen;
+ ExaScreenPriv(pScreen);
+ int i, j;
+
+ /* If this debugging flag is set, check each pixmap for whether it is marked
+ * as clean, and if so, actually check if that's the case. This should help
+ * catch issues with failing to mark a drawable as dirty. While it will
+ * catch them late (after the operation happened), it at least explains what
+ * went wrong, and instrumenting the code to find what operation happened
+ * to the pixmap last shouldn't be hard.
+ */
+ if (pExaScr->checkDirtyCorrectness) {
+ for (i = 0; i < npixmaps; i++) {
+ if (!exaPixmapIsDirty (pixmaps[i].pPix) &&
+ !exaAssertNotDirty (pixmaps[i].pPix))
+ ErrorF("%s: Pixmap %d dirty but not marked as such!\n", __FUNCTION__, i);
+ }
+ }
+ /* If anything is pinned in system memory, we won't be able to
+ * accelerate.
+ */
+ for (i = 0; i < npixmaps; i++) {
+ if (exaPixmapIsPinned (pixmaps[i].pPix) &&
+ !exaPixmapIsOffscreen (pixmaps[i].pPix))
+ {
+ EXA_FALLBACK(("Pixmap %p (%dx%d) pinned in sys\n", pixmaps[i].pPix,
+ pixmaps[i].pPix->drawable.width,
+ pixmaps[i].pPix->drawable.height));
+ can_accel = FALSE;
+ break;
+ }
+ }
+
+ if (pExaScr->migration == ExaMigrationSmart) {
+ /* If we've got something as a destination that we shouldn't cause to
+ * become newly dirtied, take the unaccelerated route.
+ */
+ for (i = 0; i < npixmaps; i++) {
+ if (pixmaps[i].as_dst && !exaPixmapShouldBeInFB (pixmaps[i].pPix) &&
+ !exaPixmapIsDirty (pixmaps[i].pPix))
+ {
+ for (i = 0; i < npixmaps; i++) {
+ if (!exaPixmapIsDirty (pixmaps[i].pPix))
+ exaDoMoveOutPixmap (pixmaps + i);
+ }
+ return;
+ }
+ }
+
+ /* If we aren't going to accelerate, then we migrate everybody toward
+ * system memory, and kick out if it's free.
+ */
+ if (!can_accel) {
+ for (i = 0; i < npixmaps; i++) {
+ exaMigrateTowardSys (pixmaps + i);
+ if (!exaPixmapIsDirty (pixmaps[i].pPix))
+ exaDoMoveOutPixmap (pixmaps + i);
+ }
+ return;
+ }
+
+ /* Finally, the acceleration path. Move them all in. */
+ for (i = 0; i < npixmaps; i++) {
+ exaMigrateTowardFb(pixmaps + i);
+ exaDoMoveInPixmap(pixmaps + i);
+ }
+ } else if (pExaScr->migration == ExaMigrationGreedy) {
+ /* If we can't accelerate, either because the driver can't or because one of
+ * the pixmaps is pinned in system memory, then we migrate everybody toward
+ * system memory.
+ *
+ * We also migrate toward system if all pixmaps involved are currently in
+ * system memory -- this can mitigate thrashing when there are significantly
+ * more pixmaps active than would fit in memory.
+ *
+ * If not, then we migrate toward FB so that hopefully acceleration can
+ * happen.
+ */
+ if (!can_accel) {
+ for (i = 0; i < npixmaps; i++)
+ exaMigrateTowardSys (pixmaps + i);
+ return;
+ }
+
+ for (i = 0; i < npixmaps; i++) {
+ if (exaPixmapIsOffscreen(pixmaps[i].pPix)) {
+ /* Found one in FB, so move all to FB. */
+ for (j = 0; j < npixmaps; j++)
+ exaMigrateTowardFb(pixmaps + i);
+ return;
+ }
+ }
+
+ /* Nobody's in FB, so move all away from FB. */
+ for (i = 0; i < npixmaps; i++)
+ exaMigrateTowardSys(pixmaps + i);
+ } else if (pExaScr->migration == ExaMigrationAlways) {
+ /* Always move the pixmaps out if we can't accelerate. If we can
+ * accelerate, try to move them all in. If that fails, then move them
+ * back out.
+ */
+ if (!can_accel) {
+ for (i = 0; i < npixmaps; i++)
+ exaDoMoveOutPixmap(pixmaps + i);
+ return;
+ }
+
+ /* Now, try to move them all into FB */
+ for (i = 0; i < npixmaps; i++) {
+ exaDoMoveInPixmap(pixmaps + i);
+ }
+
+ /* If we couldn't fit everything in, abort */
+ for (i = 0; i < npixmaps; i++) {
+ if (!exaPixmapIsOffscreen(pixmaps[i].pPix)) {
+ return;
+ }
+ }
+
+ /* Yay, everything's offscreen, mark memory as used */
+ for (i = 0; i < npixmaps; i++) {
+ ExaOffscreenMarkUsed (pixmaps[i].pPix);
+ }
+ }
+}
+
+void
+exaPrepareAccessReg_classic(PixmapPtr pPixmap, int index, RegionPtr pReg)
+{
+ ExaMigrationRec pixmaps[1];
+
+ if (index == EXA_PREPARE_DEST || index == EXA_PREPARE_AUX_DEST) {
+ pixmaps[0].as_dst = TRUE;
+ pixmaps[0].as_src = FALSE;
+ } else {
+ pixmaps[0].as_dst = FALSE;
+ pixmaps[0].as_src = TRUE;
+ }
+ pixmaps[0].pPix = pPixmap;
+ pixmaps[0].pReg = pReg;
+
+ exaDoMigration(pixmaps, 1, FALSE);
+
+ (void)ExaDoPrepareAccess(pPixmap, index);
+}
diff --git a/xorg-server/exa/exa_migration_mixed.c b/xorg-server/exa/exa_migration_mixed.c
index d1ee9871b..f42c9c233 100644
--- a/xorg-server/exa/exa_migration_mixed.c
+++ b/xorg-server/exa/exa_migration_mixed.c
@@ -31,55 +31,16 @@
#include "exa_priv.h"
#include "exa.h"
-static void
-exaUploadFallback(PixmapPtr pPixmap, CARD8 *src, int src_pitch)
-{
- ExaPixmapPriv(pPixmap);
- RegionPtr damage = DamageRegion (pExaPixmap->pDamage);
- GCPtr pGC = GetScratchGC (pPixmap->drawable.depth,
- pPixmap->drawable.pScreen);
- int nbox, cpp = pPixmap->drawable.bitsPerPixel / 8;
- DamagePtr backup = pExaPixmap->pDamage;
- BoxPtr pbox;
- CARD8 *src2;
-
- /* We don't want damage optimisations. */
- pExaPixmap->pDamage = NULL;
- ValidateGC (&pPixmap->drawable, pGC);
-
- pbox = REGION_RECTS(damage);
- nbox = REGION_NUM_RECTS(damage);
-
- while (nbox--) {
- src2 = src + pbox->y1 * src_pitch + pbox->x1 * cpp;
-
- ExaCheckPutImage(&pPixmap->drawable, pGC,
- pPixmap->drawable.depth, pbox->x1, pbox->y1,
- pbox->x2 - pbox->x1, pbox->y2 - pbox->y1, 0,
- ZPixmap, (char*) src2);
-
- pbox++;
- }
-
- FreeScratchGC (pGC);
- pExaPixmap->pDamage = backup;
-}
-
void
exaCreateDriverPixmap_mixed(PixmapPtr pPixmap)
{
ScreenPtr pScreen = pPixmap->drawable.pScreen;
ExaScreenPriv(pScreen);
ExaPixmapPriv(pPixmap);
- RegionPtr damage = DamageRegion (pExaPixmap->pDamage);
- void *sys_buffer = pExaPixmap->sys_ptr;
int w = pPixmap->drawable.width, h = pPixmap->drawable.height;
int depth = pPixmap->drawable.depth, bpp = pPixmap->drawable.bitsPerPixel;
int usage_hint = pPixmap->usage_hint;
- int sys_pitch = pExaPixmap->sys_pitch;
- int paddedWidth = sys_pitch;
- int nbox;
- BoxPtr pbox;
+ int paddedWidth = pExaPixmap->sys_pitch;
/* Already done. */
if (pExaPixmap->driverPriv)
@@ -105,50 +66,8 @@ exaCreateDriverPixmap_mixed(PixmapPtr pPixmap)
if (!pExaPixmap->driverPriv)
return;
- pExaPixmap->offscreen = TRUE;
- pExaPixmap->sys_ptr = pPixmap->devPrivate.ptr = NULL;
- pExaPixmap->sys_pitch = pPixmap->devKind = 0;
-
- pExaPixmap->score = EXA_PIXMAP_SCORE_PINNED;
(*pScreen->ModifyPixmapHeader)(pPixmap, w, h, 0, 0,
paddedWidth, NULL);
-
- /* scratch pixmaps */
- if (!w || !h)
- goto finish;
-
- /* we do not malloc memory by default. */
- if (!sys_buffer)
- goto finish;
-
- if (!pExaScr->info->UploadToScreen)
- goto fallback;
-
- pbox = REGION_RECTS(damage);
- nbox = REGION_NUM_RECTS(damage);
-
- while (nbox--) {
- if (!pExaScr->info->UploadToScreen(pPixmap, pbox->x1, pbox->y1, pbox->x2 - pbox->x1,
- pbox->y2 - pbox->y1, (char *) (sys_buffer) + pbox->y1 * sys_pitch + pbox->x1 * (bpp / 8), sys_pitch))
- goto fallback;
-
- pbox++;
- }
-
- goto finish;
-
-fallback:
- exaUploadFallback(pPixmap, sys_buffer, sys_pitch);
-
-finish:
- free(sys_buffer);
-
- /* We no longer need this. */
- if (pExaPixmap->pDamage) {
- DamageUnregister(&pPixmap->drawable, pExaPixmap->pDamage);
- DamageDestroy(pExaPixmap->pDamage);
- pExaPixmap->pDamage = NULL;
- }
}
void
@@ -175,8 +94,16 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel)
for (i = 0; i < npixmaps; i++) {
PixmapPtr pPixmap = pixmaps[i].pPix;
ExaPixmapPriv(pPixmap);
+
if (!pExaPixmap->driverPriv)
exaCreateDriverPixmap_mixed(pPixmap);
+
+ if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) {
+ pPixmap->devKind = pExaPixmap->fb_pitch;
+ exaCopyDirtyToFb(pixmaps + i);
+ }
+
+ pExaPixmap->offscreen = exaPixmapIsOffscreen(pPixmap);
}
}
@@ -192,3 +119,91 @@ exaMoveInPixmap_mixed(PixmapPtr pPixmap)
exaDoMigration(pixmaps, 1, TRUE);
}
+
+/* With mixed pixmaps, if we fail to get direct access to the driver pixmap, we
+ * use the DownloadFromScreen hook to retrieve contents to a copy in system
+ * memory, perform software rendering on that and move back the results with the
+ * UploadToScreen hook (see exaFinishAccess_mixed).
+ */
+void
+exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg)
+{
+ if (!ExaDoPrepareAccess(pPixmap, index)) {
+ ExaPixmapPriv(pPixmap);
+ Bool is_offscreen = exaPixmapIsOffscreen(pPixmap);
+ ExaMigrationRec pixmaps[1];
+
+ /* Do we need to allocate our system buffer? */
+ if (!pExaPixmap->sys_ptr) {
+ pExaPixmap->sys_ptr = malloc(pExaPixmap->sys_pitch *
+ pPixmap->drawable.height);
+ if (!pExaPixmap->sys_ptr)
+ FatalError("EXA: malloc failed for size %d bytes\n",
+ pExaPixmap->sys_pitch * pPixmap->drawable.height);
+ }
+
+ if (index == EXA_PREPARE_DEST || index == EXA_PREPARE_AUX_DEST) {
+ pixmaps[0].as_dst = TRUE;
+ pixmaps[0].as_src = FALSE;
+ } else {
+ pixmaps[0].as_dst = FALSE;
+ pixmaps[0].as_src = TRUE;
+ }
+ pixmaps[0].pPix = pPixmap;
+ pixmaps[0].pReg = pReg;
+
+ if (!pExaPixmap->pDamage && (is_offscreen || !exaPixmapIsPinned(pPixmap))) {
+ Bool as_dst = pixmaps[0].as_dst;
+
+ /* Set up damage tracking */
+ pExaPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone,
+ TRUE, pPixmap->drawable.pScreen,
+ pPixmap);
+
+ DamageRegister(&pPixmap->drawable, pExaPixmap->pDamage);
+ /* This ensures that pending damage reflects the current operation. */
+ /* This is used by exa to optimize migration. */
+ DamageSetReportAfterOp(pExaPixmap->pDamage, TRUE);
+
+ if (is_offscreen) {
+ exaPixmapDirty(pPixmap, 0, 0, pPixmap->drawable.width,
+ pPixmap->drawable.height);
+
+ /* We don't know which region of the destination will be damaged,
+ * have to assume all of it
+ */
+ if (as_dst) {
+ pixmaps[0].as_dst = FALSE;
+ pixmaps[0].as_src = TRUE;
+ pixmaps[0].pReg = NULL;
+ }
+ pPixmap->devKind = pExaPixmap->fb_pitch;
+ exaCopyDirtyToSys(pixmaps);
+ }
+
+ if (as_dst)
+ exaPixmapDirty(pPixmap, 0, 0, pPixmap->drawable.width,
+ pPixmap->drawable.height);
+ } else if (is_offscreen) {
+ pPixmap->devKind = pExaPixmap->fb_pitch;
+ exaCopyDirtyToSys(pixmaps);
+ }
+
+ pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
+ pPixmap->devKind = pExaPixmap->sys_pitch;
+ pExaPixmap->offscreen = FALSE;
+ }
+}
+
+/* Move back results of software rendering on system memory copy of mixed driver
+ * pixmap (see exaPrepareAccessReg_mixed).
+ */
+void exaFinishAccess_mixed(PixmapPtr pPixmap, int index)
+{
+ ExaPixmapPriv(pPixmap);
+
+ if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) {
+ DamageRegionProcessPending(&pPixmap->drawable);
+ exaMoveInPixmap_mixed(pPixmap);
+ }
+}
diff --git a/xorg-server/exa/exa_mixed.c b/xorg-server/exa/exa_mixed.c
index 01f87ba87..167ffa9d5 100644
--- a/xorg-server/exa/exa_mixed.c
+++ b/xorg-server/exa/exa_mixed.c
@@ -32,8 +32,6 @@
#include "exa.h"
/* This file holds the driver allocated pixmaps + better initial placement code.
- * A pinned pixmap implies one that is either driver based already or otherwise altered.
- * Proper care is taken to free the initially allocated buffer.
*/
static _X_INLINE void*
@@ -46,9 +44,6 @@ ExaGetPixmapAddress(PixmapPtr p)
/**
* exaCreatePixmap() creates a new pixmap.
- *
- * Pixmaps are always marked as pinned, unless the pixmap can still be transfered to a
- * driver pixmaps.
*/
PixmapPtr
exaCreatePixmap_mixed(ScreenPtr pScreen, int w, int h, int depth,
@@ -57,7 +52,7 @@ exaCreatePixmap_mixed(ScreenPtr pScreen, int w, int h, int depth,
PixmapPtr pPixmap;
ExaPixmapPrivPtr pExaPixmap;
int bpp;
- size_t paddedWidth, datasize;
+ size_t paddedWidth;
ExaScreenPriv(pScreen);
if (w > 32767 || h > 32767)
@@ -79,15 +74,12 @@ exaCreatePixmap_mixed(ScreenPtr pScreen, int w, int h, int depth,
if (paddedWidth / 4 > 32767 || h > 32767)
return NullPixmap;
- datasize = h * paddedWidth;
-
/* We will allocate the system pixmap later if needed. */
pPixmap->devPrivate.ptr = NULL;
pExaPixmap->sys_ptr = NULL;
pExaPixmap->sys_pitch = paddedWidth;
pExaPixmap->area = NULL;
- pExaPixmap->offscreen = FALSE;
pExaPixmap->fb_ptr = NULL;
pExaPixmap->pDamage = NULL;
@@ -95,36 +87,15 @@ exaCreatePixmap_mixed(ScreenPtr pScreen, int w, int h, int depth,
exaSetAccelBlock(pExaScr, pExaPixmap,
w, h, bpp);
- /* Avoid freeing sys_ptr. */
- pExaPixmap->score = EXA_PIXMAP_SCORE_PINNED;
-
(*pScreen->ModifyPixmapHeader)(pPixmap, w, h, 0, 0,
paddedWidth, NULL);
- /* We want to be able to transfer the pixmap to driver memory later on. */
- pExaPixmap->score = EXA_PIXMAP_SCORE_INIT;
-
/* A scratch pixmap will become a driver pixmap right away. */
if (!w || !h) {
exaCreateDriverPixmap_mixed(pPixmap);
- } else {
- /* Set up damage tracking */
- pExaPixmap->pDamage = DamageCreate (NULL, NULL,
- DamageReportNone, TRUE,
- pScreen, pPixmap);
-
- if (pExaPixmap->pDamage == NULL) {
- swap(pExaScr, pScreen, DestroyPixmap);
- pScreen->DestroyPixmap (pPixmap);
- swap(pExaScr, pScreen, DestroyPixmap);
- return NULL;
- }
-
- DamageRegister (&pPixmap->drawable, pExaPixmap->pDamage);
- /* This ensures that pending damage reflects the current operation. */
- /* This is used by exa to optimize migration. */
- DamageSetReportAfterOp (pExaPixmap->pDamage, TRUE);
- }
+ pExaPixmap->offscreen = exaPixmapIsOffscreen(pPixmap);
+ } else
+ pExaPixmap->offscreen = FALSE;
return pPixmap;
}
@@ -136,7 +107,7 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
ScreenPtr pScreen = pPixmap->drawable.pScreen;
ExaScreenPrivPtr pExaScr;
ExaPixmapPrivPtr pExaPixmap;
- Bool ret;
+ Bool ret, is_offscreen;
if (!pPixmap)
return FALSE;
@@ -144,26 +115,23 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
pExaScr = ExaGetScreenPriv(pScreen);
pExaPixmap = ExaGetPixmapPriv(pPixmap);
- if (pExaPixmap) {
- if (!exaPixmapIsPinned(pPixmap)) {
- free(pExaPixmap->sys_ptr);
- pExaPixmap->sys_ptr = pPixmap->devPrivate.ptr = NULL;
- pExaPixmap->sys_pitch = pPixmap->devKind = 0;
-
- /* We no longer need this. */
+ if (pPixData) {
+ if (pExaPixmap->driverPriv) {
if (pExaPixmap->pDamage) {
DamageUnregister(&pPixmap->drawable, pExaPixmap->pDamage);
DamageDestroy(pExaPixmap->pDamage);
pExaPixmap->pDamage = NULL;
}
- }
- if (pPixData)
- pExaPixmap->sys_ptr = pPixData;
+ pExaScr->info->DestroyPixmap(pScreen, pExaPixmap->driverPriv);
+ pExaPixmap->driverPriv = NULL;
+ }
- if (devKind > 0)
- pExaPixmap->sys_pitch = devKind;
+ pExaPixmap->offscreen = FALSE;
+ pExaPixmap->score = EXA_PIXMAP_SCORE_PINNED;
+ }
+ if (pExaPixmap->driverPriv) {
if (width > 0 && height > 0 && bitsPerPixel > 0) {
exaSetFbPitch(pExaScr, pExaPixmap,
width, height, bitsPerPixel);
@@ -171,9 +139,15 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
exaSetAccelBlock(pExaScr, pExaPixmap,
width, height, bitsPerPixel);
}
+ }
- /* Anything can happen, don't try to predict it all. */
- pExaPixmap->score = EXA_PIXMAP_SCORE_PINNED;
+ is_offscreen = exaPixmapIsOffscreen(pPixmap);
+ if (is_offscreen) {
+ pPixmap->devPrivate.ptr = pExaPixmap->fb_ptr;
+ pPixmap->devKind = pExaPixmap->fb_pitch;
+ } else {
+ pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
+ pPixmap->devKind = pExaPixmap->sys_pitch;
}
/* Only pass driver pixmaps to the driver. */
@@ -184,10 +158,6 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
* If pPixmap->devPrivate.ptr is non-NULL, then we've got a non-offscreen pixmap.
* We need to store the pointer, because PrepareAccess won't be called.
*/
- if (!pPixData && pPixmap->devPrivate.ptr && pPixmap->devKind) {
- pExaPixmap->sys_ptr = pPixmap->devPrivate.ptr;
- pExaPixmap->sys_pitch = pPixmap->devKind;
- }
if (ret == TRUE)
goto out;
}
@@ -198,6 +168,13 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
swap(pExaScr, pScreen, ModifyPixmapHeader);
out:
+ if (is_offscreen) {
+ pExaPixmap->fb_ptr = pPixmap->devPrivate.ptr;
+ pExaPixmap->fb_pitch = pPixmap->devKind;
+ } else {
+ pExaPixmap->sys_ptr = pPixmap->devPrivate.ptr;
+ pExaPixmap->sys_pitch = pPixmap->devKind;
+ }
/* Always NULL this, we don't want lingering pointers. */
pPixmap->devPrivate.ptr = NULL;
@@ -217,10 +194,14 @@ exaDestroyPixmap_mixed(PixmapPtr pPixmap)
if (pExaPixmap->driverPriv)
pExaScr->info->DestroyPixmap(pScreen, pExaPixmap->driverPriv);
- else if (pExaPixmap->sys_ptr && !exaPixmapIsPinned(pPixmap))
- free(pExaPixmap->sys_ptr);
pExaPixmap->driverPriv = NULL;
- pExaPixmap->sys_ptr = NULL;
+
+ if (pExaPixmap->pDamage) {
+ if (pExaPixmap->sys_ptr)
+ free(pExaPixmap->sys_ptr);
+ pExaPixmap->sys_ptr = NULL;
+ pExaPixmap->pDamage = NULL;
+ }
}
swap(pExaScr, pScreen, DestroyPixmap);
diff --git a/xorg-server/exa/exa_priv.h b/xorg-server/exa/exa_priv.h
index 869cf1772..1aec8e966 100644
--- a/xorg-server/exa/exa_priv.h
+++ b/xorg-server/exa/exa_priv.h
@@ -176,6 +176,8 @@ typedef struct {
Bool (*pixmap_is_offscreen) (PixmapPtr pPixmap);
void (*do_move_in_pixmap) (PixmapPtr pPixmap);
void (*do_move_out_pixmap) (PixmapPtr pPixmap);
+ void (*prepare_access_reg)(PixmapPtr pPixmap, int index, RegionPtr pReg);
+ void (*finish_access)(PixmapPtr pPixmap, int index);
Bool swappedOut;
enum ExaMigrationHeuristic migration;
@@ -511,10 +513,7 @@ ExaOffscreenFini (ScreenPtr pScreen);
/* exa.c */
Bool
-ExaDoPrepareAccess(DrawablePtr pDrawable, int index);
-
-void
-exaPrepareAccessReg(DrawablePtr pDrawable, int index, RegionPtr pReg);
+ExaDoPrepareAccess(PixmapPtr pPixmap, int index);
void
exaPrepareAccess(DrawablePtr pDrawable, int index);
@@ -609,6 +608,12 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel);
void
exaMoveInPixmap_mixed(PixmapPtr pPixmap);
+void
+exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg);
+
+void
+exaFinishAccess_mixed(PixmapPtr pPixmap, int index);
+
/* exa_render.c */
Bool
exaOpReadsDestination (CARD8 op);
@@ -665,6 +670,12 @@ exaGlyphs (CARD8 op,
/* exa_migration_classic.c */
void
+exaCopyDirtyToSys (ExaMigrationPtr migrate);
+
+void
+exaCopyDirtyToFb (ExaMigrationPtr migrate);
+
+void
exaDoMigration_classic (ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel);
void
@@ -676,4 +687,7 @@ exaMoveOutPixmap_classic (PixmapPtr pPixmap);
void
exaMoveInPixmap_classic (PixmapPtr pPixmap);
+void
+exaPrepareAccessReg_classic(PixmapPtr pPixmap, int index, RegionPtr pReg);
+
#endif /* EXAPRIV_H */
diff --git a/xorg-server/exa/exa_render.c b/xorg-server/exa/exa_render.c
index d46930130..1c1856610 100644
--- a/xorg-server/exa/exa_render.c
+++ b/xorg-server/exa/exa_render.c
@@ -266,6 +266,10 @@ exaTryDriverSolidFill(PicturePtr pSrc,
xDst += pDst->pDrawable->x;
yDst += pDst->pDrawable->y;
+ if (pSrc->pDrawable) {
+ xSrc += pSrc->pDrawable->x;
+ ySrc += pSrc->pDrawable->y;
+ }
if (!miComputeCompositeRegion (&region, pSrc, NULL, pDst,
xSrc, ySrc, 0, 0, xDst, yDst,
@@ -277,9 +281,6 @@ exaTryDriverSolidFill(PicturePtr pSrc,
REGION_TRANSLATE(pScreen, &region, dst_off_x, dst_off_y);
if (pSrc->pDrawable) {
- xSrc += pSrc->pDrawable->x;
- ySrc += pSrc->pDrawable->y;
-
pSrcPix = exaGetDrawablePixmap (pSrc->pDrawable);
pixel = exaGetPixmapFirstPixel (pSrcPix);
} else
@@ -340,7 +341,8 @@ exaTryDriverCompositeRects(CARD8 op,
ExaCompositeRectPtr rects)
{
ExaScreenPriv (pDst->pDrawable->pScreen);
- int src_off_x, src_off_y, mask_off_x, mask_off_y, dst_off_x, dst_off_y;
+ int src_off_x = 0, src_off_y = 0, mask_off_x = 0, mask_off_y = 0;
+ int dst_off_x, dst_off_y;
PixmapPtr pSrcPix = NULL, pMaskPix = NULL, pDstPix;
ExaPixmapPrivPtr pSrcExaPix = NULL, pMaskExaPix = NULL, pDstExaPix;
@@ -656,7 +658,7 @@ exaTryDriverComposite(CARD8 op,
*/
if (pDstExaPix->accel_blocked ||
(pSrcExaPix && pSrcExaPix->accel_blocked) ||
- (pMask && (pMaskExaPix->accel_blocked)))
+ (pMaskExaPix && (pMaskExaPix->accel_blocked)))
{
return -1;
}
diff --git a/xorg-server/exa/exa_unaccel.c b/xorg-server/exa/exa_unaccel.c
index 7e26feb83..d7958066b 100644
--- a/xorg-server/exa/exa_unaccel.c
+++ b/xorg-server/exa/exa_unaccel.c
@@ -1,528 +1,536 @@
-/*
- *
- * Copyright © 1999 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Keith Packard makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "exa_priv.h"
-
-#ifdef RENDER
-#include "mipict.h"
-#endif
-
-/*
- * These functions wrap the low-level fb rendering functions and
- * synchronize framebuffer/accelerated drawing by stalling until
- * the accelerator is idle
- */
-
-/**
- * Calls exaPrepareAccess with EXA_PREPARE_SRC for the tile, if that is the
- * current fill style.
- *
- * Solid doesn't use an extra pixmap source, and Stippled/OpaqueStippled are
- * 1bpp and never in fb, so we don't worry about them.
- * We should worry about them for completeness sake and going forward.
- */
-void
-exaPrepareAccessGC(GCPtr pGC)
-{
- if (pGC->stipple)
- exaPrepareAccess(&pGC->stipple->drawable, EXA_PREPARE_MASK);
- if (pGC->fillStyle == FillTiled)
- exaPrepareAccess(&pGC->tile.pixmap->drawable, EXA_PREPARE_SRC);
-}
-
-/**
- * Finishes access to the tile in the GC, if used.
- */
-void
-exaFinishAccessGC(GCPtr pGC)
-{
- if (pGC->fillStyle == FillTiled)
- exaFinishAccess(&pGC->tile.pixmap->drawable, EXA_PREPARE_SRC);
- if (pGC->stipple)
- exaFinishAccess(&pGC->stipple->drawable, EXA_PREPARE_MASK);
-}
-
-#if DEBUG_TRACE_FALL
-char
-exaDrawableLocation(DrawablePtr pDrawable)
-{
- return exaDrawableIsOffscreen(pDrawable) ? 's' : 'm';
-}
-#endif /* DEBUG_TRACE_FALL */
-
-void
-ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
- DDXPointPtr ppt, int *pwidth, int fSorted)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccessGC (pGC);
- pGC->ops->FillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
- exaFinishAccessGC (pGC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
- DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- pGC->ops->SetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
- int x, int y, int w, int h, int leftPad, int format,
- char *bits)
-{
- ExaPixmapPriv(exaGetDrawablePixmap(pDrawable));
-
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
- if (exaGCReadsDestination(pDrawable, pGC->planemask, pGC->fillStyle,
- pGC->alu, pGC->clientClipType))
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- else
- exaPrepareAccessReg (pDrawable, EXA_PREPARE_DEST, pExaPixmap->pDamage ?
- DamagePendingRegion(pExaPixmap->pDamage) : NULL);
- pGC->ops->PutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckCopyNtoN (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
- BoxPtr pbox, int nbox, int dx, int dy, Bool reverse,
- Bool upsidedown, Pixel bitplane, void *closure)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
- exaDrawableLocation(pSrc), exaDrawableLocation(pDst)));
- exaPrepareAccess (pDst, EXA_PREPARE_DEST);
- exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
- /* This will eventually call fbCopyNtoN, with some calculation overhead. */
- while (nbox--) {
- pGC->ops->CopyArea (pSrc, pDst, pGC, pbox->x1 - pSrc->x + dx, pbox->y1 - pSrc->y + dy,
- pbox->x2 - pbox->x1, pbox->y2 - pbox->y1, pbox->x1 - pDst->x, pbox->y1 - pDst->y);
- pbox++;
- }
- exaFinishAccess (pSrc, EXA_PREPARE_SRC);
- exaFinishAccess (pDst, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-RegionPtr
-ExaCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
- int srcx, int srcy, int w, int h, int dstx, int dsty)
-{
- RegionPtr ret;
-
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
- exaDrawableLocation(pSrc), exaDrawableLocation(pDst)));
- exaPrepareAccess (pDst, EXA_PREPARE_DEST);
- exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
- ret = pGC->ops->CopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
- exaFinishAccess (pSrc, EXA_PREPARE_SRC);
- exaFinishAccess (pDst, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-
- return ret;
-}
-
-RegionPtr
-ExaCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
- int srcx, int srcy, int w, int h, int dstx, int dsty,
- unsigned long bitPlane)
-{
- RegionPtr ret;
-
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
- exaDrawableLocation(pSrc), exaDrawableLocation(pDst)));
- exaPrepareAccess (pDst, EXA_PREPARE_DEST);
- exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
- ret = pGC->ops->CopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
- bitPlane);
- exaFinishAccess (pSrc, EXA_PREPARE_SRC);
- exaFinishAccess (pDst, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-
- return ret;
-}
-
-void
-ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
- DDXPointPtr pptInit)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- pGC->ops->PolyPoint (pDrawable, pGC, mode, npt, pptInit);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
- int mode, int npt, DDXPointPtr ppt)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c), width %d, mode %d, count %d\n",
- pDrawable, exaDrawableLocation(pDrawable),
- pGC->lineWidth, mode, npt));
-
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccessGC (pGC);
- pGC->ops->Polylines (pDrawable, pGC, mode, npt, ppt);
- exaFinishAccessGC (pGC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
- int nsegInit, xSegment *pSegInit)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c) width %d, count %d\n", pDrawable,
- exaDrawableLocation(pDrawable), pGC->lineWidth, nsegInit));
-
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccessGC (pGC);
- pGC->ops->PolySegment (pDrawable, pGC, nsegInit, pSegInit);
- exaFinishAccessGC (pGC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
- int narcs, xArc *pArcs)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
-
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccessGC (pGC);
- pGC->ops->PolyArc (pDrawable, pGC, narcs, pArcs);
- exaFinishAccessGC (pGC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
- int nrect, xRectangle *prect)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
-
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccessGC (pGC);
- pGC->ops->PolyFillRect (pDrawable, pGC, nrect, prect);
- exaFinishAccessGC (pGC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr *ppci, pointer pglyphBase)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c)\n", pDrawable,
- exaDrawableLocation(pDrawable)));
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccessGC (pGC);
- pGC->ops->ImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- exaFinishAccessGC (pGC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr *ppci, pointer pglyphBase)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("to %p (%c), style %d alu %d\n", pDrawable,
- exaDrawableLocation(pDrawable), pGC->fillStyle, pGC->alu));
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccessGC (pGC);
- pGC->ops->PolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- exaFinishAccessGC (pGC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
- DrawablePtr pDrawable,
- int w, int h, int x, int y)
-{
- EXA_GC_PROLOGUE(pGC);
- EXA_FALLBACK(("from %p to %p (%c,%c)\n", pBitmap, pDrawable,
- exaDrawableLocation(&pBitmap->drawable),
- exaDrawableLocation(pDrawable)));
- exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
- exaPrepareAccess (&pBitmap->drawable, EXA_PREPARE_SRC);
- exaPrepareAccessGC (pGC);
- pGC->ops->PushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
- exaFinishAccessGC (pGC);
- exaFinishAccess (&pBitmap->drawable, EXA_PREPARE_SRC);
- exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
- EXA_GC_EPILOGUE(pGC);
-}
-
-void
-ExaCheckCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
-{
- DrawablePtr pDrawable = &pWin->drawable;
- ScreenPtr pScreen = pDrawable->pScreen;
- ExaScreenPriv(pScreen);
- EXA_FALLBACK(("from %p\n", pWin));
-
- /* being both src and dest, src is safest. */
- exaPrepareAccess(pDrawable, EXA_PREPARE_SRC);
- swap(pExaScr, pScreen, CopyWindow);
- pScreen->CopyWindow (pWin, ptOldOrg, prgnSrc);
- swap(pExaScr, pScreen, CopyWindow);
- exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
-}
-
-void
-ExaCheckGetImage(DrawablePtr pDrawable, int x, int y, int w, int h,
- unsigned int format, unsigned long planeMask, char *d)
-{
- BoxRec Box;
- RegionRec Reg;
- int xoff, yoff;
- ScreenPtr pScreen = pDrawable->pScreen;
- PixmapPtr pPix = exaGetDrawablePixmap (pDrawable);
- ExaScreenPriv(pScreen);
-
- EXA_FALLBACK(("from %p (%c)\n", pDrawable,
- exaDrawableLocation(pDrawable)));
-
- exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff);
-
- Box.x1 = pDrawable->y + x + xoff;
- Box.y1 = pDrawable->y + y + yoff;
- Box.x2 = Box.x1 + w;
- Box.y2 = Box.y1 + h;
-
- REGION_INIT(pScreen, &Reg, &Box, 1);
-
- exaPrepareAccessReg (pDrawable, EXA_PREPARE_SRC, &Reg);
- swap(pExaScr, pScreen, GetImage);
- pScreen->GetImage (pDrawable, x, y, w, h, format, planeMask, d);
- swap(pExaScr, pScreen, GetImage);
- exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
-}
-
-void
-ExaCheckGetSpans (DrawablePtr pDrawable,
- int wMax,
- DDXPointPtr ppt,
- int *pwidth,
- int nspans,
- char *pdstStart)
-{
- ScreenPtr pScreen = pDrawable->pScreen;
- ExaScreenPriv(pScreen);
-
- EXA_FALLBACK(("from %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
- exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
- swap(pExaScr, pScreen, GetSpans);
- pScreen->GetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
- swap(pExaScr, pScreen, GetSpans);
- exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
-}
-
-void
-ExaCheckComposite (CARD8 op,
- PicturePtr pSrc,
- PicturePtr pMask,
- PicturePtr pDst,
- INT16 xSrc,
- INT16 ySrc,
- INT16 xMask,
- INT16 yMask,
- INT16 xDst,
- INT16 yDst,
- CARD16 width,
- CARD16 height)
-{
- ScreenPtr pScreen = pDst->pDrawable->pScreen;
-#ifdef RENDER
- PictureScreenPtr ps = GetPictureScreen(pScreen);
-#endif /* RENDER */
- ExaScreenPriv(pScreen);
- RegionRec region;
- int xoff, yoff;
-
- REGION_NULL(pScreen, &region);
-
- /* We need to prepare access to any separate alpha maps first, in case the
- * driver doesn't support EXA_PREPARE_AUX*, in which case EXA_PREPARE_SRC
- * may be used for moving them out.
- */
- if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
- exaPrepareAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX_SRC);
- if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
- exaPrepareAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX_MASK);
-
- if (!exaOpReadsDestination(op)) {
- if (!miComputeCompositeRegion (&region, pSrc, pMask, pDst,
- xSrc, ySrc, xMask, yMask, xDst, yDst,
- width, height))
- goto skip;
-
- exaGetDrawableDeltas (pDst->pDrawable,
- exaGetDrawablePixmap(pDst->pDrawable),
- &xoff, &yoff);
-
- REGION_TRANSLATE(pScreen, &region, xoff, yoff);
-
- if (pDst->alphaMap && pDst->alphaMap->pDrawable)
- exaPrepareAccessReg(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX_DEST,
- &region);
-
- exaPrepareAccessReg (pDst->pDrawable, EXA_PREPARE_DEST, &region);
- } else {
- if (pDst->alphaMap && pDst->alphaMap->pDrawable)
- exaPrepareAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX_DEST);
-
- exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
- }
-
- EXA_FALLBACK(("from picts %p/%p to pict %p\n",
- pSrc, pMask, pDst));
-
- if (pSrc->pDrawable != NULL)
- exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
- if (pMask && pMask->pDrawable != NULL)
- exaPrepareAccess (pMask->pDrawable, EXA_PREPARE_MASK);
-#ifdef RENDER
- swap(pExaScr, ps, Composite);
- ps->Composite (op,
- pSrc,
- pMask,
- pDst,
- xSrc,
- ySrc,
- xMask,
- yMask,
- xDst,
- yDst,
- width,
- height);
- swap(pExaScr, ps, Composite);
-#endif /* RENDER */
- if (pMask && pMask->pDrawable != NULL)
- exaFinishAccess (pMask->pDrawable, EXA_PREPARE_MASK);
- if (pSrc->pDrawable != NULL)
- exaFinishAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
- exaFinishAccess (pDst->pDrawable, EXA_PREPARE_DEST);
- if (pDst->alphaMap && pDst->alphaMap->pDrawable)
- exaFinishAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX_DEST);
-
-skip:
- if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
- exaFinishAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX_SRC);
- if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
- exaFinishAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX_MASK);
-
- REGION_UNINIT(pScreen, &region);
-}
-
-void
-ExaCheckAddTraps (PicturePtr pPicture,
- INT16 x_off,
- INT16 y_off,
- int ntrap,
- xTrap *traps)
-{
- ScreenPtr pScreen = pPicture->pDrawable->pScreen;
-#ifdef RENDER
- PictureScreenPtr ps = GetPictureScreen(pScreen);
-#endif /* RENDER */
- ExaScreenPriv(pScreen);
-
- EXA_FALLBACK(("to pict %p (%c)\n",
- exaDrawableLocation(pPicture->pDrawable)));
- exaPrepareAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
-#ifdef RENDER
- swap(pExaScr, ps, AddTraps);
- ps->AddTraps (pPicture, x_off, y_off, ntrap, traps);
- swap(pExaScr, ps, AddTraps);
-#endif /* RENDER */
- exaFinishAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
-}
-
-/**
- * Gets the 0,0 pixel of a pixmap. Used for doing solid fills of tiled pixmaps
- * that happen to be 1x1. Pixmap must be at least 8bpp.
- */
-CARD32
-exaGetPixmapFirstPixel (PixmapPtr pPixmap)
-{
- switch (pPixmap->drawable.bitsPerPixel) {
- case 32:
- {
- CARD32 pixel;
-
- pPixmap->drawable.pScreen->GetImage(&pPixmap->drawable, 0, 0, 1, 1,
- ZPixmap, ~0, (char*)&pixel);
- return pixel;
- }
- case 16:
- {
- CARD16 pixel;
-
- pPixmap->drawable.pScreen->GetImage(&pPixmap->drawable, 0, 0, 1, 1,
- ZPixmap, ~0, (char*)&pixel);
- return pixel;
- }
- case 8:
- {
- CARD8 pixel;
-
- pPixmap->drawable.pScreen->GetImage(&pPixmap->drawable, 0, 0, 1, 1,
- ZPixmap, ~0, (char*)&pixel);
- return pixel;
- }
- default:
- FatalError("%s called for invalid bpp %d\n", __FUNCTION__,
- pPixmap->drawable.bitsPerPixel);
- }
-}
+/*
+ *
+ * Copyright © 1999 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "exa_priv.h"
+
+#ifdef RENDER
+#include "mipict.h"
+#endif
+
+/*
+ * These functions wrap the low-level fb rendering functions and
+ * synchronize framebuffer/accelerated drawing by stalling until
+ * the accelerator is idle
+ */
+
+/**
+ * Calls exaPrepareAccess with EXA_PREPARE_SRC for the tile, if that is the
+ * current fill style.
+ *
+ * Solid doesn't use an extra pixmap source, and Stippled/OpaqueStippled are
+ * 1bpp and never in fb, so we don't worry about them.
+ * We should worry about them for completeness sake and going forward.
+ */
+void
+exaPrepareAccessGC(GCPtr pGC)
+{
+ if (pGC->stipple)
+ exaPrepareAccess(&pGC->stipple->drawable, EXA_PREPARE_MASK);
+ if (pGC->fillStyle == FillTiled)
+ exaPrepareAccess(&pGC->tile.pixmap->drawable, EXA_PREPARE_SRC);
+}
+
+/**
+ * Finishes access to the tile in the GC, if used.
+ */
+void
+exaFinishAccessGC(GCPtr pGC)
+{
+ if (pGC->fillStyle == FillTiled)
+ exaFinishAccess(&pGC->tile.pixmap->drawable, EXA_PREPARE_SRC);
+ if (pGC->stipple)
+ exaFinishAccess(&pGC->stipple->drawable, EXA_PREPARE_MASK);
+}
+
+#if DEBUG_TRACE_FALL
+char
+exaDrawableLocation(DrawablePtr pDrawable)
+{
+ return exaDrawableIsOffscreen(pDrawable) ? 's' : 'm';
+}
+#endif /* DEBUG_TRACE_FALL */
+
+void
+ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
+ DDXPointPtr ppt, int *pwidth, int fSorted)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->FillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
+ DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ pGC->ops->SetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
+ int x, int y, int w, int h, int leftPad, int format,
+ char *bits)
+{
+ PixmapPtr pPixmap = exaGetDrawablePixmap(pDrawable);
+ ExaPixmapPriv(pPixmap);
+ ExaScreenPriv(pDrawable->pScreen);
+
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
+ if (!pExaScr->prepare_access_reg || !pExaPixmap->pDamage ||
+ exaGCReadsDestination(pDrawable, pGC->planemask, pGC->fillStyle,
+ pGC->alu, pGC->clientClipType))
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ else
+ pExaScr->prepare_access_reg(pPixmap, EXA_PREPARE_DEST,
+ DamagePendingRegion(pExaPixmap->pDamage));
+ pGC->ops->PutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckCopyNtoN (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
+ BoxPtr pbox, int nbox, int dx, int dy, Bool reverse,
+ Bool upsidedown, Pixel bitplane, void *closure)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
+ exaDrawableLocation(pSrc), exaDrawableLocation(pDst)));
+ exaPrepareAccess (pDst, EXA_PREPARE_DEST);
+ exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
+ /* This will eventually call fbCopyNtoN, with some calculation overhead. */
+ while (nbox--) {
+ pGC->ops->CopyArea (pSrc, pDst, pGC, pbox->x1 - pSrc->x + dx, pbox->y1 - pSrc->y + dy,
+ pbox->x2 - pbox->x1, pbox->y2 - pbox->y1, pbox->x1 - pDst->x, pbox->y1 - pDst->y);
+ pbox++;
+ }
+ exaFinishAccess (pSrc, EXA_PREPARE_SRC);
+ exaFinishAccess (pDst, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+RegionPtr
+ExaCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
+ int srcx, int srcy, int w, int h, int dstx, int dsty)
+{
+ RegionPtr ret;
+
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
+ exaDrawableLocation(pSrc), exaDrawableLocation(pDst)));
+ exaPrepareAccess (pDst, EXA_PREPARE_DEST);
+ exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
+ ret = pGC->ops->CopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
+ exaFinishAccess (pSrc, EXA_PREPARE_SRC);
+ exaFinishAccess (pDst, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+
+ return ret;
+}
+
+RegionPtr
+ExaCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
+ int srcx, int srcy, int w, int h, int dstx, int dsty,
+ unsigned long bitPlane)
+{
+ RegionPtr ret;
+
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
+ exaDrawableLocation(pSrc), exaDrawableLocation(pDst)));
+ exaPrepareAccess (pDst, EXA_PREPARE_DEST);
+ exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
+ ret = pGC->ops->CopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
+ bitPlane);
+ exaFinishAccess (pSrc, EXA_PREPARE_SRC);
+ exaFinishAccess (pDst, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+
+ return ret;
+}
+
+void
+ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
+ DDXPointPtr pptInit)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ pGC->ops->PolyPoint (pDrawable, pGC, mode, npt, pptInit);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
+ int mode, int npt, DDXPointPtr ppt)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c), width %d, mode %d, count %d\n",
+ pDrawable, exaDrawableLocation(pDrawable),
+ pGC->lineWidth, mode, npt));
+
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->Polylines (pDrawable, pGC, mode, npt, ppt);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
+ int nsegInit, xSegment *pSegInit)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c) width %d, count %d\n", pDrawable,
+ exaDrawableLocation(pDrawable), pGC->lineWidth, nsegInit));
+
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->PolySegment (pDrawable, pGC, nsegInit, pSegInit);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
+ int narcs, xArc *pArcs)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
+
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->PolyArc (pDrawable, pGC, narcs, pArcs);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
+ int nrect, xRectangle *prect)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
+
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->PolyFillRect (pDrawable, pGC, nrect, prect);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
+ int x, int y, unsigned int nglyph,
+ CharInfoPtr *ppci, pointer pglyphBase)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c)\n", pDrawable,
+ exaDrawableLocation(pDrawable)));
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->ImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
+ int x, int y, unsigned int nglyph,
+ CharInfoPtr *ppci, pointer pglyphBase)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("to %p (%c), style %d alu %d\n", pDrawable,
+ exaDrawableLocation(pDrawable), pGC->fillStyle, pGC->alu));
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->PolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
+ DrawablePtr pDrawable,
+ int w, int h, int x, int y)
+{
+ EXA_GC_PROLOGUE(pGC);
+ EXA_FALLBACK(("from %p to %p (%c,%c)\n", pBitmap, pDrawable,
+ exaDrawableLocation(&pBitmap->drawable),
+ exaDrawableLocation(pDrawable)));
+ exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
+ exaPrepareAccess (&pBitmap->drawable, EXA_PREPARE_SRC);
+ exaPrepareAccessGC (pGC);
+ pGC->ops->PushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
+ exaFinishAccessGC (pGC);
+ exaFinishAccess (&pBitmap->drawable, EXA_PREPARE_SRC);
+ exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
+ EXA_GC_EPILOGUE(pGC);
+}
+
+void
+ExaCheckCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
+{
+ DrawablePtr pDrawable = &pWin->drawable;
+ ScreenPtr pScreen = pDrawable->pScreen;
+ ExaScreenPriv(pScreen);
+ EXA_FALLBACK(("from %p\n", pWin));
+
+ /* being both src and dest, src is safest. */
+ exaPrepareAccess(pDrawable, EXA_PREPARE_SRC);
+ swap(pExaScr, pScreen, CopyWindow);
+ pScreen->CopyWindow (pWin, ptOldOrg, prgnSrc);
+ swap(pExaScr, pScreen, CopyWindow);
+ exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
+}
+
+void
+ExaCheckGetImage(DrawablePtr pDrawable, int x, int y, int w, int h,
+ unsigned int format, unsigned long planeMask, char *d)
+{
+ ScreenPtr pScreen = pDrawable->pScreen;
+ PixmapPtr pPix = exaGetDrawablePixmap (pDrawable);
+ ExaScreenPriv(pScreen);
+
+ EXA_FALLBACK(("from %p (%c)\n", pDrawable,
+ exaDrawableLocation(pDrawable)));
+
+ if (pExaScr->prepare_access_reg) {
+ int xoff, yoff;
+ BoxRec Box;
+ RegionRec Reg;
+
+ exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff);
+
+ Box.x1 = pDrawable->y + x + xoff;
+ Box.y1 = pDrawable->y + y + yoff;
+ Box.x2 = Box.x1 + w;
+ Box.y2 = Box.y1 + h;
+
+ REGION_INIT(pScreen, &Reg, &Box, 1);
+
+ pExaScr->prepare_access_reg(pPix, EXA_PREPARE_SRC, &Reg);
+ } else
+ exaPrepareAccess(pDrawable, EXA_PREPARE_SRC);
+
+ swap(pExaScr, pScreen, GetImage);
+ pScreen->GetImage (pDrawable, x, y, w, h, format, planeMask, d);
+ swap(pExaScr, pScreen, GetImage);
+ exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
+}
+
+void
+ExaCheckGetSpans (DrawablePtr pDrawable,
+ int wMax,
+ DDXPointPtr ppt,
+ int *pwidth,
+ int nspans,
+ char *pdstStart)
+{
+ ScreenPtr pScreen = pDrawable->pScreen;
+ ExaScreenPriv(pScreen);
+
+ EXA_FALLBACK(("from %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
+ exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
+ swap(pExaScr, pScreen, GetSpans);
+ pScreen->GetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
+ swap(pExaScr, pScreen, GetSpans);
+ exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
+}
+
+void
+ExaCheckComposite (CARD8 op,
+ PicturePtr pSrc,
+ PicturePtr pMask,
+ PicturePtr pDst,
+ INT16 xSrc,
+ INT16 ySrc,
+ INT16 xMask,
+ INT16 yMask,
+ INT16 xDst,
+ INT16 yDst,
+ CARD16 width,
+ CARD16 height)
+{
+ ScreenPtr pScreen = pDst->pDrawable->pScreen;
+#ifdef RENDER
+ PictureScreenPtr ps = GetPictureScreen(pScreen);
+#endif /* RENDER */
+ ExaScreenPriv(pScreen);
+ RegionRec region;
+ int xoff, yoff;
+
+ REGION_NULL(pScreen, &region);
+
+ /* We need to prepare access to any separate alpha maps first, in case the
+ * driver doesn't support EXA_PREPARE_AUX*, in which case EXA_PREPARE_SRC
+ * may be used for moving them out.
+ */
+ if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
+ exaPrepareAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX_SRC);
+ if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
+ exaPrepareAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX_MASK);
+
+ if (!exaOpReadsDestination(op) && pExaScr->prepare_access_reg) {
+ PixmapPtr pDstPix;
+
+ if (!miComputeCompositeRegion (&region, pSrc, pMask, pDst,
+ xSrc, ySrc, xMask, yMask, xDst, yDst,
+ width, height))
+ goto skip;
+
+ pDstPix = exaGetDrawablePixmap(pDst->pDrawable);
+ exaGetDrawableDeltas (pDst->pDrawable, pDstPix, &xoff, &yoff);
+ REGION_TRANSLATE(pScreen, &region, xoff, yoff);
+
+ if (pDst->alphaMap && pDst->alphaMap->pDrawable)
+ pExaScr->prepare_access_reg(exaGetDrawablePixmap(pDst->alphaMap->pDrawable),
+ EXA_PREPARE_AUX_DEST, &region);
+
+ pExaScr->prepare_access_reg(pDstPix, EXA_PREPARE_DEST, &region);
+ } else {
+ if (pDst->alphaMap && pDst->alphaMap->pDrawable)
+ exaPrepareAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX_DEST);
+
+ exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
+ }
+
+ EXA_FALLBACK(("from picts %p/%p to pict %p\n",
+ pSrc, pMask, pDst));
+
+ if (pSrc->pDrawable != NULL)
+ exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
+ if (pMask && pMask->pDrawable != NULL)
+ exaPrepareAccess (pMask->pDrawable, EXA_PREPARE_MASK);
+#ifdef RENDER
+ swap(pExaScr, ps, Composite);
+ ps->Composite (op,
+ pSrc,
+ pMask,
+ pDst,
+ xSrc,
+ ySrc,
+ xMask,
+ yMask,
+ xDst,
+ yDst,
+ width,
+ height);
+ swap(pExaScr, ps, Composite);
+#endif /* RENDER */
+ if (pMask && pMask->pDrawable != NULL)
+ exaFinishAccess (pMask->pDrawable, EXA_PREPARE_MASK);
+ if (pSrc->pDrawable != NULL)
+ exaFinishAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
+ exaFinishAccess (pDst->pDrawable, EXA_PREPARE_DEST);
+ if (pDst->alphaMap && pDst->alphaMap->pDrawable)
+ exaFinishAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX_DEST);
+
+skip:
+ if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
+ exaFinishAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX_SRC);
+ if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
+ exaFinishAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX_MASK);
+
+ REGION_UNINIT(pScreen, &region);
+}
+
+void
+ExaCheckAddTraps (PicturePtr pPicture,
+ INT16 x_off,
+ INT16 y_off,
+ int ntrap,
+ xTrap *traps)
+{
+ ScreenPtr pScreen = pPicture->pDrawable->pScreen;
+#ifdef RENDER
+ PictureScreenPtr ps = GetPictureScreen(pScreen);
+#endif /* RENDER */
+ ExaScreenPriv(pScreen);
+
+ EXA_FALLBACK(("to pict %p (%c)\n",
+ exaDrawableLocation(pPicture->pDrawable)));
+ exaPrepareAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
+#ifdef RENDER
+ swap(pExaScr, ps, AddTraps);
+ ps->AddTraps (pPicture, x_off, y_off, ntrap, traps);
+ swap(pExaScr, ps, AddTraps);
+#endif /* RENDER */
+ exaFinishAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
+}
+
+/**
+ * Gets the 0,0 pixel of a pixmap. Used for doing solid fills of tiled pixmaps
+ * that happen to be 1x1. Pixmap must be at least 8bpp.
+ */
+CARD32
+exaGetPixmapFirstPixel (PixmapPtr pPixmap)
+{
+ switch (pPixmap->drawable.bitsPerPixel) {
+ case 32:
+ {
+ CARD32 pixel;
+
+ pPixmap->drawable.pScreen->GetImage(&pPixmap->drawable, 0, 0, 1, 1,
+ ZPixmap, ~0, (char*)&pixel);
+ return pixel;
+ }
+ case 16:
+ {
+ CARD16 pixel;
+
+ pPixmap->drawable.pScreen->GetImage(&pPixmap->drawable, 0, 0, 1, 1,
+ ZPixmap, ~0, (char*)&pixel);
+ return pixel;
+ }
+ case 8:
+ {
+ CARD8 pixel;
+
+ pPixmap->drawable.pScreen->GetImage(&pPixmap->drawable, 0, 0, 1, 1,
+ ZPixmap, ~0, (char*)&pixel);
+ return pixel;
+ }
+ default:
+ FatalError("%s called for invalid bpp %d\n", __FUNCTION__,
+ pPixmap->drawable.bitsPerPixel);
+ }
+}
diff --git a/xorg-server/glx/glxscreens.c b/xorg-server/glx/glxscreens.c
index fe7b22d96..c6f5700d5 100644
--- a/xorg-server/glx/glxscreens.c
+++ b/xorg-server/glx/glxscreens.c
@@ -1,516 +1,464 @@
-/*
- * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
- * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice including the dates of first publication and
- * either this permission notice or a reference to
- * http://oss.sgi.com/projects/FreeB/
- * shall be included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Except as contained in this notice, the name of Silicon Graphics, Inc.
- * shall not be used in advertising or otherwise to promote the sale, use or
- * other dealings in this Software without prior written authorization from
- * Silicon Graphics, Inc.
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#else
-
-#include "glheader.h"
-
-#endif
-
-#include <GL/glxtokens.h>
-#include <string.h>
-#include <windowstr.h>
-#include <os.h>
-#include <colormapst.h>
-
-#include "privates.h"
-#include "glxserver.h"
-#include "glxutil.h"
-#include "glxext.h"
-
-static int glxScreenPrivateKeyIndex;
-static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex;
-
-const char GLServerVersion[] = "1.4";
-static const char GLServerExtensions[] =
- "GL_ARB_depth_texture "
- "GL_ARB_draw_buffers "
- "GL_ARB_fragment_program "
- "GL_ARB_fragment_program_shadow "
- "GL_ARB_imaging "
- "GL_ARB_multisample "
- "GL_ARB_multitexture "
- "GL_ARB_occlusion_query "
- "GL_ARB_point_parameters "
- "GL_ARB_point_sprite "
- "GL_ARB_shadow "
- "GL_ARB_shadow_ambient "
- "GL_ARB_texture_border_clamp "
- "GL_ARB_texture_compression "
- "GL_ARB_texture_cube_map "
- "GL_ARB_texture_env_add "
- "GL_ARB_texture_env_combine "
- "GL_ARB_texture_env_crossbar "
- "GL_ARB_texture_env_dot3 "
- "GL_ARB_texture_mirrored_repeat "
- "GL_ARB_texture_non_power_of_two "
- "GL_ARB_transpose_matrix "
- "GL_ARB_vertex_program "
- "GL_ARB_window_pos "
- "GL_EXT_abgr "
- "GL_EXT_bgra "
- "GL_EXT_blend_color "
- "GL_EXT_blend_equation_separate "
- "GL_EXT_blend_func_separate "
- "GL_EXT_blend_logic_op "
- "GL_EXT_blend_minmax "
- "GL_EXT_blend_subtract "
- "GL_EXT_clip_volume_hint "
- "GL_EXT_copy_texture "
- "GL_EXT_draw_range_elements "
- "GL_EXT_fog_coord "
- "GL_EXT_framebuffer_object "
- "GL_EXT_multi_draw_arrays "
- "GL_EXT_packed_pixels "
- "GL_EXT_paletted_texture "
- "GL_EXT_point_parameters "
- "GL_EXT_polygon_offset "
- "GL_EXT_rescale_normal "
- "GL_EXT_secondary_color "
- "GL_EXT_separate_specular_color "
- "GL_EXT_shadow_funcs "
- "GL_EXT_shared_texture_palette "
- "GL_EXT_stencil_two_side "
- "GL_EXT_stencil_wrap "
- "GL_EXT_subtexture "
- "GL_EXT_texture "
- "GL_EXT_texture3D "
- "GL_EXT_texture_compression_dxt1 "
- "GL_EXT_texture_compression_s3tc "
- "GL_EXT_texture_edge_clamp "
- "GL_EXT_texture_env_add "
- "GL_EXT_texture_env_combine "
- "GL_EXT_texture_env_dot3 "
- "GL_EXT_texture_filter_anisotropic "
- "GL_EXT_texture_lod "
- "GL_EXT_texture_lod_bias "
- "GL_EXT_texture_mirror_clamp "
- "GL_EXT_texture_object "
- "GL_EXT_texture_rectangle "
- "GL_EXT_vertex_array "
- "GL_3DFX_texture_compression_FXT1 "
- "GL_APPLE_packed_pixels "
- "GL_ATI_draw_buffers "
- "GL_ATI_texture_env_combine3 "
- "GL_ATI_texture_mirror_once "
- "GL_HP_occlusion_test "
- "GL_IBM_texture_mirrored_repeat "
- "GL_INGR_blend_func_separate "
- "GL_MESA_pack_invert "
- "GL_MESA_ycbcr_texture "
- "GL_NV_blend_square "
- "GL_NV_depth_clamp "
- "GL_NV_fog_distance "
- "GL_NV_fragment_program "
- "GL_NV_fragment_program_option "
- "GL_NV_fragment_program2 "
- "GL_NV_light_max_exponent "
- "GL_NV_multisample_filter_hint "
- "GL_NV_point_sprite "
- "GL_NV_texgen_reflection "
- "GL_NV_texture_compression_vtc "
- "GL_NV_texture_env_combine4 "
- "GL_NV_texture_expand_normal "
- "GL_NV_texture_rectangle "
- "GL_NV_vertex_program "
- "GL_NV_vertex_program1_1 "
- "GL_NV_vertex_program2 "
- "GL_NV_vertex_program2_option "
- "GL_NV_vertex_program3 "
- "GL_OES_compressed_paletted_texture "
- "GL_SGI_color_matrix "
- "GL_SGI_color_table "
- "GL_SGIS_generate_mipmap "
- "GL_SGIS_multisample "
- "GL_SGIS_point_parameters "
- "GL_SGIS_texture_border_clamp "
- "GL_SGIS_texture_edge_clamp "
- "GL_SGIS_texture_lod "
- "GL_SGIX_depth_texture "
- "GL_SGIX_shadow "
- "GL_SGIX_shadow_ambient "
- "GL_SUN_slice_accum "
- ;
-
-/*
-** We have made the simplifying assuption that the same extensions are
-** supported across all screens in a multi-screen system.
-*/
-static char GLXServerVendorName[] = "SGI";
-static char GLXServerVersion[] = "1.2";
-static char GLXServerExtensions[] =
- "GLX_ARB_multisample "
- "GLX_EXT_visual_info "
- "GLX_EXT_visual_rating "
- "GLX_EXT_import_context "
- "GLX_EXT_texture_from_pixmap "
- "GLX_OML_swap_method "
- "GLX_SGI_make_current_read "
-#ifndef __APPLE__
- "GLX_SGIS_multisample "
- "GLX_SGIX_hyperpipe "
- "GLX_SGIX_swap_barrier "
-#endif
- "GLX_SGIX_fbconfig "
- "GLX_SGIX_pbuffer "
- "GLX_MESA_copy_sub_buffer "
- ;
-
-/*
- * If your DDX driver wants to register support for swap barriers or hyperpipe
- * topology, it should call __glXHyperpipeInit() or __glXSwapBarrierInit()
- * with a dispatch table of functions to handle the requests. In the XFree86
- * DDX, for example, you would call these near the bottom of the driver's
- * ScreenInit method, after DRI has been initialized.
- *
- * This should be replaced with a better method when we teach the server how
- * to load DRI drivers.
- */
-
-void __glXHyperpipeInit(int screen, __GLXHyperpipeExtensionFuncs *funcs)
-{
- __GLXscreen *pGlxScreen = glxGetScreen(screenInfo.screens[screen]);
-
- pGlxScreen->hyperpipeFuncs = funcs;
-}
-
-void __glXSwapBarrierInit(int screen, __GLXSwapBarrierExtensionFuncs *funcs)
-{
- __GLXscreen *pGlxScreen = glxGetScreen(screenInfo.screens[screen]);
-
- pGlxScreen->swapBarrierFuncs = funcs;
-}
-
-static Bool
-glxCloseScreen (int index, ScreenPtr pScreen)
-{
- __GLXscreen *pGlxScreen = glxGetScreen(pScreen);
-
- pScreen->CloseScreen = pGlxScreen->CloseScreen;
- pScreen->DestroyWindow = pGlxScreen->DestroyWindow;
-
- pGlxScreen->destroy(pGlxScreen);
-
- return pScreen->CloseScreen(index, pScreen);
-}
-
-__GLXscreen *
-glxGetScreen(ScreenPtr pScreen)
-{
- return dixLookupPrivate(&pScreen->devPrivates, glxScreenPrivateKey);
-}
-
-_X_EXPORT void GlxSetVisualConfigs(int nconfigs,
- void *configs, void **privates)
-{
- /* We keep this stub around for the DDX drivers that still
- * call it. */
-}
-
-GLint glxConvertToXVisualType(int visualType)
-{
- static const int x_visual_types[] = {
- TrueColor, DirectColor,
- PseudoColor, StaticColor,
- GrayScale, StaticGray
- };
-
- return ( (unsigned) (visualType - GLX_TRUE_COLOR) < 6 )
- ? x_visual_types[ visualType - GLX_TRUE_COLOR ] : -1;
-}
-
-/* This code inspired by composite/compinit.c. We could move this to
- * mi/ and share it with composite.*/
-
-static VisualPtr
-AddScreenVisuals(ScreenPtr pScreen, int count, int d)
-{
- XID *installedCmaps, *vids, vid;
- int numInstalledCmaps, numVisuals, i, j;
- VisualPtr visuals;
- ColormapPtr installedCmap;
- DepthPtr depth;
- int rc;
-
- depth = NULL;
- for (i = 0; i < pScreen->numDepths; i++) {
- if (pScreen->allowedDepths[i].depth == d) {
- depth = &pScreen->allowedDepths[i];
- break;
- }
- }
- if (depth == NULL)
- return NULL;
-
- /* Find the installed colormaps */
- installedCmaps = xalloc (pScreen->maxInstalledCmaps * sizeof (XID));
- if (!installedCmaps)
- return NULL;
-
- numInstalledCmaps = pScreen->ListInstalledColormaps(pScreen, installedCmaps);
-
- /* realloc the visual array to fit the new one in place */
- numVisuals = pScreen->numVisuals;
- visuals = xrealloc(pScreen->visuals, (numVisuals + count) * sizeof(VisualRec));
- if (!visuals) {
- xfree(installedCmaps);
- return NULL;
- }
-
- vids = xrealloc(depth->vids, (depth->numVids + count) * sizeof(XID));
- if (vids == NULL) {
- xfree(installedCmaps);
- xfree(visuals);
- return NULL;
- }
-
- /*
- * Fix up any existing installed colormaps -- we'll assume that
- * the only ones created so far have been installed. If this
- * isn't true, we'll have to walk the resource database looking
- * for all colormaps.
- */
- for (i = 0; i < numInstalledCmaps; i++) {
- rc = dixLookupResourceByType((pointer *)&installedCmap,
- installedCmaps[i], RT_COLORMAP,
- serverClient, DixReadAccess);
- if (rc != Success)
- continue;
- j = installedCmap->pVisual - pScreen->visuals;
- installedCmap->pVisual = &visuals[j];
- }
-
- xfree(installedCmaps);
-
- for (i = 0; i < count; i++) {
- vid = FakeClientID(0);
- visuals[pScreen->numVisuals + i].vid = vid;
- vids[depth->numVids + i] = vid;
- }
-
- pScreen->visuals = visuals;
- pScreen->numVisuals += count;
- depth->vids = vids;
- depth->numVids += count;
-
- /* Return a pointer to the first of the added visuals. */
- return pScreen->visuals + pScreen->numVisuals - count;
-}
-
-static int
-findFirstSet(unsigned int v)
-{
- int i;
-
- for (i = 0; i < 32; i++)
- if (v & (1 << i))
- return i;
-
- return -1;
-}
-
-static void
-initGlxVisual(VisualPtr visual, __GLXconfig *config)
-{
- int maxBits;
- maxBits = max(config->redBits, max(config->greenBits, config->blueBits));
-
- config->visualID = visual->vid;
- visual->class = glxConvertToXVisualType(config->visualType);
- visual->bitsPerRGBValue = maxBits;
- visual->ColormapEntries = 1 << maxBits;
- visual->nplanes = config->redBits + config->greenBits + config->blueBits;
-
- visual->redMask = config->redMask;
- visual->greenMask = config->greenMask;
- visual->blueMask = config->blueMask;
- visual->offsetRed = findFirstSet(config->redMask);
- visual->offsetGreen = findFirstSet(config->greenMask);
- visual->offsetBlue = findFirstSet(config->blueMask);
-}
-
-static __GLXconfig *
-pickFBConfig(__GLXscreen *pGlxScreen, VisualPtr visual)
-{
- __GLXconfig *best = NULL, *config;
- int best_score = 0;
-
- for (config = pGlxScreen->fbconfigs; config != NULL; config = config->next) {
- int score = 0;
-
- if (config->redMask != visual->redMask ||
- config->greenMask != visual->greenMask ||
- config->blueMask != visual->blueMask)
- continue;
- if (config->visualRating != GLX_NONE)
- continue;
- if (glxConvertToXVisualType(config->visualType) != visual->class)
- continue;
- /* If it's the 32-bit RGBA visual, demand a 32-bit fbconfig. */
- if (visual->nplanes == 32 && config->rgbBits != 32)
- continue;
- /* Can't use the same FBconfig for multiple X visuals. I think. */
- if (config->visualID != 0)
- continue;
-
- if (config->doubleBufferMode > 0)
- score += 8;
- if (config->depthBits > 0)
- score += 4;
- if (config->stencilBits > 0)
- score += 2;
- if (config->alphaBits > 0)
- score++;
-
- if (score > best_score) {
- best = config;
- best_score = score;
- }
- }
-
- return best;
-}
-
-static Bool
-glxDestroyWindow(WindowPtr pWin)
-{
- ScreenPtr pScreen = pWin->drawable.pScreen;
- __GLXscreen *pGlxScreen = glxGetScreen(pScreen);
- Bool retval = TRUE;
-
- FreeResource(pWin->drawable.id, FALSE);
-
- /* call lower wrapped functions */
- if (pGlxScreen->DestroyWindow) {
- /* unwrap */
- pScreen->DestroyWindow = pGlxScreen->DestroyWindow;
-
- /* call lower layers */
- retval = (*pScreen->DestroyWindow)(pWin);
-
- /* rewrap */
- pGlxScreen->DestroyWindow = pScreen->DestroyWindow;
- pScreen->DestroyWindow = glxDestroyWindow;
- }
-
- return retval;
-}
-
-void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
-{
- __GLXconfig *m;
- __GLXconfig *config;
- int i;
-
- pGlxScreen->pScreen = pScreen;
- pGlxScreen->GLextensions = xstrdup(GLServerExtensions);
- pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName);
- pGlxScreen->GLXversion = xstrdup(GLXServerVersion);
- pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions);
-
- pGlxScreen->CloseScreen = pScreen->CloseScreen;
- pScreen->CloseScreen = glxCloseScreen;
- pGlxScreen->DestroyWindow = pScreen->DestroyWindow;
- pScreen->DestroyWindow = glxDestroyWindow;
-
- i = 0;
- for (m = pGlxScreen->fbconfigs; m != NULL; m = m->next) {
- m->fbconfigID = FakeClientID(0);
- m->visualID = 0;
- i++;
- }
- pGlxScreen->numFBConfigs = i;
-
- pGlxScreen->visuals =
- xcalloc(pGlxScreen->numFBConfigs, sizeof (__GLXconfig *));
-
- /* First, try to choose featureful FBconfigs for the existing X visuals.
- * Note that if multiple X visuals end up with the same FBconfig being
- * chosen, the later X visuals don't get GLX visuals (because we want to
- * prioritize the root visual being GLX).
- */
- for (i = 0; i < pScreen->numVisuals; i++) {
- VisualPtr visual = &pScreen->visuals[i];
-
- config = pickFBConfig(pGlxScreen, visual);
- if (config) {
- pGlxScreen->visuals[pGlxScreen->numVisuals++] = config;
- config->visualID = visual->vid;
- }
- }
-
- /* Then, add new visuals corresponding to all FBconfigs that didn't have
- * an existing, appropriate visual.
- */
- for (config = pGlxScreen->fbconfigs; config != NULL; config = config->next) {
- int depth;
-
- VisualPtr visual;
-
- if (config->visualID != 0)
- continue;
-
- /* Only count RGB bits and not alpha, as we're not trying to create
- * visuals for compositing (that's what the 32-bit composite visual
- * set up above is for.
- */
- depth = config->redBits + config->greenBits + config->blueBits;
-
- /* Make sure that our FBconfig's depth can actually be displayed
- * (corresponds to an existing visual).
- */
- for (i = 0; i < pScreen->numVisuals; i++) {
- if (depth == pScreen->visuals[i].nplanes)
- break;
- }
- if (i == pScreen->numVisuals)
- continue;
-
- /* Create a new X visual for our FBconfig. */
- visual = AddScreenVisuals(pScreen, 1, depth);
- if (visual == NULL)
- continue;
-
- pGlxScreen->visuals[pGlxScreen->numVisuals++] = config;
- initGlxVisual(visual, config);
- }
-
- dixSetPrivate(&pScreen->devPrivates, glxScreenPrivateKey, pGlxScreen);
-}
-
-void __glXScreenDestroy(__GLXscreen *screen)
-{
- xfree(screen->GLXvendor);
- xfree(screen->GLXversion);
- xfree(screen->GLXextensions);
- xfree(screen->GLextensions);
-}
+/*
+ * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+ * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice including the dates of first publication and
+ * either this permission notice or a reference to
+ * http://oss.sgi.com/projects/FreeB/
+ * shall be included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Except as contained in this notice, the name of Silicon Graphics, Inc.
+ * shall not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization from
+ * Silicon Graphics, Inc.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#else
+
+#include "glheader.h"
+
+#endif
+
+#include <GL/glxtokens.h>
+#include <string.h>
+#include <windowstr.h>
+#include <os.h>
+#include <colormapst.h>
+
+#include "privates.h"
+#include "glxserver.h"
+#include "glxutil.h"
+#include "glxext.h"
+
+static int glxScreenPrivateKeyIndex;
+static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex;
+
+const char GLServerVersion[] = "1.4";
+static const char GLServerExtensions[] =
+ "GL_ARB_depth_texture "
+ "GL_ARB_draw_buffers "
+ "GL_ARB_fragment_program "
+ "GL_ARB_fragment_program_shadow "
+ "GL_ARB_imaging "
+ "GL_ARB_multisample "
+ "GL_ARB_multitexture "
+ "GL_ARB_occlusion_query "
+ "GL_ARB_point_parameters "
+ "GL_ARB_point_sprite "
+ "GL_ARB_shadow "
+ "GL_ARB_shadow_ambient "
+ "GL_ARB_texture_border_clamp "
+ "GL_ARB_texture_compression "
+ "GL_ARB_texture_cube_map "
+ "GL_ARB_texture_env_add "
+ "GL_ARB_texture_env_combine "
+ "GL_ARB_texture_env_crossbar "
+ "GL_ARB_texture_env_dot3 "
+ "GL_ARB_texture_mirrored_repeat "
+ "GL_ARB_texture_non_power_of_two "
+ "GL_ARB_transpose_matrix "
+ "GL_ARB_vertex_program "
+ "GL_ARB_window_pos "
+ "GL_EXT_abgr "
+ "GL_EXT_bgra "
+ "GL_EXT_blend_color "
+ "GL_EXT_blend_equation_separate "
+ "GL_EXT_blend_func_separate "
+ "GL_EXT_blend_logic_op "
+ "GL_EXT_blend_minmax "
+ "GL_EXT_blend_subtract "
+ "GL_EXT_clip_volume_hint "
+ "GL_EXT_copy_texture "
+ "GL_EXT_draw_range_elements "
+ "GL_EXT_fog_coord "
+ "GL_EXT_framebuffer_object "
+ "GL_EXT_multi_draw_arrays "
+ "GL_EXT_packed_pixels "
+ "GL_EXT_paletted_texture "
+ "GL_EXT_point_parameters "
+ "GL_EXT_polygon_offset "
+ "GL_EXT_rescale_normal "
+ "GL_EXT_secondary_color "
+ "GL_EXT_separate_specular_color "
+ "GL_EXT_shadow_funcs "
+ "GL_EXT_shared_texture_palette "
+ "GL_EXT_stencil_two_side "
+ "GL_EXT_stencil_wrap "
+ "GL_EXT_subtexture "
+ "GL_EXT_texture "
+ "GL_EXT_texture3D "
+ "GL_EXT_texture_compression_dxt1 "
+ "GL_EXT_texture_compression_s3tc "
+ "GL_EXT_texture_edge_clamp "
+ "GL_EXT_texture_env_add "
+ "GL_EXT_texture_env_combine "
+ "GL_EXT_texture_env_dot3 "
+ "GL_EXT_texture_filter_anisotropic "
+ "GL_EXT_texture_lod "
+ "GL_EXT_texture_lod_bias "
+ "GL_EXT_texture_mirror_clamp "
+ "GL_EXT_texture_object "
+ "GL_EXT_texture_rectangle "
+ "GL_EXT_vertex_array "
+ "GL_3DFX_texture_compression_FXT1 "
+ "GL_APPLE_packed_pixels "
+ "GL_ATI_draw_buffers "
+ "GL_ATI_texture_env_combine3 "
+ "GL_ATI_texture_mirror_once "
+ "GL_HP_occlusion_test "
+ "GL_IBM_texture_mirrored_repeat "
+ "GL_INGR_blend_func_separate "
+ "GL_MESA_pack_invert "
+ "GL_MESA_ycbcr_texture "
+ "GL_NV_blend_square "
+ "GL_NV_depth_clamp "
+ "GL_NV_fog_distance "
+ "GL_NV_fragment_program "
+ "GL_NV_fragment_program_option "
+ "GL_NV_fragment_program2 "
+ "GL_NV_light_max_exponent "
+ "GL_NV_multisample_filter_hint "
+ "GL_NV_point_sprite "
+ "GL_NV_texgen_reflection "
+ "GL_NV_texture_compression_vtc "
+ "GL_NV_texture_env_combine4 "
+ "GL_NV_texture_expand_normal "
+ "GL_NV_texture_rectangle "
+ "GL_NV_vertex_program "
+ "GL_NV_vertex_program1_1 "
+ "GL_NV_vertex_program2 "
+ "GL_NV_vertex_program2_option "
+ "GL_NV_vertex_program3 "
+ "GL_OES_compressed_paletted_texture "
+ "GL_SGI_color_matrix "
+ "GL_SGI_color_table "
+ "GL_SGIS_generate_mipmap "
+ "GL_SGIS_multisample "
+ "GL_SGIS_point_parameters "
+ "GL_SGIS_texture_border_clamp "
+ "GL_SGIS_texture_edge_clamp "
+ "GL_SGIS_texture_lod "
+ "GL_SGIX_depth_texture "
+ "GL_SGIX_shadow "
+ "GL_SGIX_shadow_ambient "
+ "GL_SUN_slice_accum "
+ ;
+
+/*
+** We have made the simplifying assuption that the same extensions are
+** supported across all screens in a multi-screen system.
+*/
+static char GLXServerVendorName[] = "SGI";
+static char GLXServerVersion[] = "1.2";
+static char GLXServerExtensions[] =
+ "GLX_ARB_multisample "
+ "GLX_EXT_visual_info "
+ "GLX_EXT_visual_rating "
+ "GLX_EXT_import_context "
+ "GLX_EXT_texture_from_pixmap "
+ "GLX_OML_swap_method "
+ "GLX_SGI_make_current_read "
+#ifndef __APPLE__
+ "GLX_SGIS_multisample "
+ "GLX_SGIX_hyperpipe "
+ "GLX_SGIX_swap_barrier "
+#endif
+ "GLX_SGIX_fbconfig "
+ "GLX_SGIX_pbuffer "
+ "GLX_MESA_copy_sub_buffer "
+ ;
+
+/*
+ * If your DDX driver wants to register support for swap barriers or hyperpipe
+ * topology, it should call __glXHyperpipeInit() or __glXSwapBarrierInit()
+ * with a dispatch table of functions to handle the requests. In the XFree86
+ * DDX, for example, you would call these near the bottom of the driver's
+ * ScreenInit method, after DRI has been initialized.
+ *
+ * This should be replaced with a better method when we teach the server how
+ * to load DRI drivers.
+ */
+
+void __glXHyperpipeInit(int screen, __GLXHyperpipeExtensionFuncs *funcs)
+{
+ __GLXscreen *pGlxScreen = glxGetScreen(screenInfo.screens[screen]);
+
+ pGlxScreen->hyperpipeFuncs = funcs;
+}
+
+void __glXSwapBarrierInit(int screen, __GLXSwapBarrierExtensionFuncs *funcs)
+{
+ __GLXscreen *pGlxScreen = glxGetScreen(screenInfo.screens[screen]);
+
+ pGlxScreen->swapBarrierFuncs = funcs;
+}
+
+static Bool
+glxCloseScreen (int index, ScreenPtr pScreen)
+{
+ __GLXscreen *pGlxScreen = glxGetScreen(pScreen);
+
+ pScreen->CloseScreen = pGlxScreen->CloseScreen;
+ pScreen->DestroyWindow = pGlxScreen->DestroyWindow;
+
+ pGlxScreen->destroy(pGlxScreen);
+
+ return pScreen->CloseScreen(index, pScreen);
+}
+
+__GLXscreen *
+glxGetScreen(ScreenPtr pScreen)
+{
+ return dixLookupPrivate(&pScreen->devPrivates, glxScreenPrivateKey);
+}
+
+_X_EXPORT void GlxSetVisualConfigs(int nconfigs,
+ void *configs, void **privates)
+{
+ /* We keep this stub around for the DDX drivers that still
+ * call it. */
+}
+
+GLint glxConvertToXVisualType(int visualType)
+{
+ static const int x_visual_types[] = {
+ TrueColor, DirectColor,
+ PseudoColor, StaticColor,
+ GrayScale, StaticGray
+ };
+
+ return ( (unsigned) (visualType - GLX_TRUE_COLOR) < 6 )
+ ? x_visual_types[ visualType - GLX_TRUE_COLOR ] : -1;
+}
+
+/* This code inspired by composite/compinit.c. We could move this to
+ * mi/ and share it with composite.*/
+
+static VisualPtr
+AddScreenVisuals(ScreenPtr pScreen, int count, int d)
+{
+ int i;
+ DepthPtr depth;
+
+ depth = NULL;
+ for (i = 0; i < pScreen->numDepths; i++) {
+ if (pScreen->allowedDepths[i].depth == d) {
+ depth = &pScreen->allowedDepths[i];
+ break;
+ }
+ }
+ if (depth == NULL)
+ return NULL;
+
+ if (ResizeVisualArray(pScreen, count, depth) == FALSE)
+ return NULL;
+
+ /* Return a pointer to the first of the added visuals. */
+ return pScreen->visuals + pScreen->numVisuals - count;
+}
+
+static int
+findFirstSet(unsigned int v)
+{
+ int i;
+
+ for (i = 0; i < 32; i++)
+ if (v & (1 << i))
+ return i;
+
+ return -1;
+}
+
+static void
+initGlxVisual(VisualPtr visual, __GLXconfig *config)
+{
+ int maxBits;
+ maxBits = max(config->redBits, max(config->greenBits, config->blueBits));
+
+ config->visualID = visual->vid;
+ visual->class = glxConvertToXVisualType(config->visualType);
+ visual->bitsPerRGBValue = maxBits;
+ visual->ColormapEntries = 1 << maxBits;
+ visual->nplanes = config->redBits + config->greenBits + config->blueBits;
+
+ visual->redMask = config->redMask;
+ visual->greenMask = config->greenMask;
+ visual->blueMask = config->blueMask;
+ visual->offsetRed = findFirstSet(config->redMask);
+ visual->offsetGreen = findFirstSet(config->greenMask);
+ visual->offsetBlue = findFirstSet(config->blueMask);
+}
+
+static __GLXconfig *
+pickFBConfig(__GLXscreen *pGlxScreen, VisualPtr visual)
+{
+ __GLXconfig *best = NULL, *config;
+ int best_score = 0;
+
+ for (config = pGlxScreen->fbconfigs; config != NULL; config = config->next) {
+ int score = 0;
+
+ if (config->redMask != visual->redMask ||
+ config->greenMask != visual->greenMask ||
+ config->blueMask != visual->blueMask)
+ continue;
+ if (config->visualRating != GLX_NONE)
+ continue;
+ if (glxConvertToXVisualType(config->visualType) != visual->class)
+ continue;
+ /* If it's the 32-bit RGBA visual, demand a 32-bit fbconfig. */
+ if (visual->nplanes == 32 && config->rgbBits != 32)
+ continue;
+ /* Can't use the same FBconfig for multiple X visuals. I think. */
+ if (config->visualID != 0)
+ continue;
+
+ if (config->doubleBufferMode > 0)
+ score += 8;
+ if (config->depthBits > 0)
+ score += 4;
+ if (config->stencilBits > 0)
+ score += 2;
+ if (config->alphaBits > 0)
+ score++;
+
+ if (score > best_score) {
+ best = config;
+ best_score = score;
+ }
+ }
+
+ return best;
+}
+
+static Bool
+glxDestroyWindow(WindowPtr pWin)
+{
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ __GLXscreen *pGlxScreen = glxGetScreen(pScreen);
+ Bool retval = TRUE;
+
+ FreeResource(pWin->drawable.id, FALSE);
+
+ /* call lower wrapped functions */
+ if (pGlxScreen->DestroyWindow) {
+ /* unwrap */
+ pScreen->DestroyWindow = pGlxScreen->DestroyWindow;
+
+ /* call lower layers */
+ retval = (*pScreen->DestroyWindow)(pWin);
+
+ /* rewrap */
+ pGlxScreen->DestroyWindow = pScreen->DestroyWindow;
+ pScreen->DestroyWindow = glxDestroyWindow;
+ }
+
+ return retval;
+}
+
+void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
+{
+ __GLXconfig *m;
+ __GLXconfig *config;
+ int i;
+
+ pGlxScreen->pScreen = pScreen;
+ pGlxScreen->GLextensions = xstrdup(GLServerExtensions);
+ pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName);
+ pGlxScreen->GLXversion = xstrdup(GLXServerVersion);
+ pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions);
+
+ pGlxScreen->CloseScreen = pScreen->CloseScreen;
+ pScreen->CloseScreen = glxCloseScreen;
+ pGlxScreen->DestroyWindow = pScreen->DestroyWindow;
+ pScreen->DestroyWindow = glxDestroyWindow;
+
+ i = 0;
+ for (m = pGlxScreen->fbconfigs; m != NULL; m = m->next) {
+ m->fbconfigID = FakeClientID(0);
+ m->visualID = 0;
+ i++;
+ }
+ pGlxScreen->numFBConfigs = i;
+
+ pGlxScreen->visuals =
+ xcalloc(pGlxScreen->numFBConfigs, sizeof (__GLXconfig *));
+
+ /* First, try to choose featureful FBconfigs for the existing X visuals.
+ * Note that if multiple X visuals end up with the same FBconfig being
+ * chosen, the later X visuals don't get GLX visuals (because we want to
+ * prioritize the root visual being GLX).
+ */
+ for (i = 0; i < pScreen->numVisuals; i++) {
+ VisualPtr visual = &pScreen->visuals[i];
+
+ config = pickFBConfig(pGlxScreen, visual);
+ if (config) {
+ pGlxScreen->visuals[pGlxScreen->numVisuals++] = config;
+ config->visualID = visual->vid;
+ }
+ }
+
+ /* Then, add new visuals corresponding to all FBconfigs that didn't have
+ * an existing, appropriate visual.
+ */
+ for (config = pGlxScreen->fbconfigs; config != NULL; config = config->next) {
+ int depth;
+
+ VisualPtr visual;
+
+ if (config->visualID != 0)
+ continue;
+
+ /* Only count RGB bits and not alpha, as we're not trying to create
+ * visuals for compositing (that's what the 32-bit composite visual
+ * set up above is for.
+ */
+ depth = config->redBits + config->greenBits + config->blueBits;
+
+ /* Make sure that our FBconfig's depth can actually be displayed
+ * (corresponds to an existing visual).
+ */
+ for (i = 0; i < pScreen->numVisuals; i++) {
+ if (depth == pScreen->visuals[i].nplanes)
+ break;
+ }
+ if (i == pScreen->numVisuals)
+ continue;
+
+ /* Create a new X visual for our FBconfig. */
+ visual = AddScreenVisuals(pScreen, 1, depth);
+ if (visual == NULL)
+ continue;
+
+ pGlxScreen->visuals[pGlxScreen->numVisuals++] = config;
+ initGlxVisual(visual, config);
+ }
+
+ dixSetPrivate(&pScreen->devPrivates, glxScreenPrivateKey, pGlxScreen);
+}
+
+void __glXScreenDestroy(__GLXscreen *screen)
+{
+ xfree(screen->GLXvendor);
+ xfree(screen->GLXversion);
+ xfree(screen->GLXextensions);
+ xfree(screen->GLextensions);
+}
diff --git a/xorg-server/hw/dmx/Makefile.am b/xorg-server/hw/dmx/Makefile.am
index b31fbb85c..3c59320e1 100644
--- a/xorg-server/hw/dmx/Makefile.am
+++ b/xorg-server/hw/dmx/Makefile.am
@@ -84,10 +84,7 @@ XDMX_LIBS = \
@XDMX_LIBS@ \
$(GLX_LIBS) \
input/libdmxinput.a \
- config/libdmxconfig.a \
- $(MAIN_LIB) \
- $(XSERVER_LIBS) \
- $(top_builddir)/xfixes/libxfixes.la
+ config/libdmxconfig.a
Xdmx_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
Xdmx_DEPENDENCIES= $(XDMX_LIBS)
diff --git a/xorg-server/hw/dmx/Makefile.in b/xorg-server/hw/dmx/Makefile.in
index 3a87107b8..1e9c1693e 100644
--- a/xorg-server/hw/dmx/Makefile.in
+++ b/xorg-server/hw/dmx/Makefile.in
@@ -83,10 +83,9 @@ am_Xdmx_OBJECTS = dmx.$(OBJEXT) dmxcb.$(OBJEXT) dmxcmap.$(OBJEXT) \
dmxsync.$(OBJEXT) dmxvisual.$(OBJEXT) dmxwindow.$(OBJEXT) \
miinitext.$(OBJEXT) fbcmap_mi.$(OBJEXT) $(am__objects_2)
Xdmx_OBJECTS = $(am_Xdmx_OBJECTS)
-am__DEPENDENCIES_1 =
-am__DEPENDENCIES_2 = $(GLX_LIBS) input/libdmxinput.a \
- config/libdmxconfig.a $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(top_builddir)/xfixes/libxfixes.la
+am__DEPENDENCIES_1 = $(GLX_LIBS) input/libdmxinput.a \
+ config/libdmxconfig.a
+am__DEPENDENCIES_2 =
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
@@ -364,10 +363,7 @@ XDMX_LIBS = \
@XDMX_LIBS@ \
$(GLX_LIBS) \
input/libdmxinput.a \
- config/libdmxconfig.a \
- $(MAIN_LIB) \
- $(XSERVER_LIBS) \
- $(top_builddir)/xfixes/libxfixes.la
+ config/libdmxconfig.a
XDMX_SYS_LIBS = @XDMX_SYS_LIBS@
XEPHYR_CFLAGS = @XEPHYR_CFLAGS@
diff --git a/xorg-server/hw/dmx/dmx-config.h b/xorg-server/hw/dmx/dmx-config.h
index 5b7b60593..9791dc0bc 100644
--- a/xorg-server/hw/dmx/dmx-config.h
+++ b/xorg-server/hw/dmx/dmx-config.h
@@ -72,17 +72,4 @@
/* Enable the DMX extension */
#define DMXEXT
-/* Disable the extensions that are not currently supported */
-#undef MULTIBUFFER
-#undef XV
-#undef DBE
-#undef XF86VIDMODE
-#undef XFreeXDGA
-#undef XF86DRI
-#undef SCREENSAVER
-#undef RANDR
-#undef XFIXES
-#undef DAMAGE
-#undef COMPOSITE
-
#endif /* DMX_CONFIG_H */
diff --git a/xorg-server/hw/dmx/input/dmxevents.c b/xorg-server/hw/dmx/input/dmxevents.c
index 5c3d79215..70737b4c4 100644
--- a/xorg-server/hw/dmx/input/dmxevents.c
+++ b/xorg-server/hw/dmx/input/dmxevents.c
@@ -183,7 +183,7 @@ static void enqueueMotion(DevicePtr pDev, int x, int y)
GetEventList(&events);
nevents = GetPointerEvents(events, p, MotionNotify, detail,
- POINTER_ABSOLUTE, 0, 2, valuators);
+ POINTER_ABSOLUTE | POINTER_SCREEN, 0, 2, valuators);
for (i = 0; i < nevents; i++)
mieqEnqueue(p, (InternalEvent*)(events + i)->event);
return;
@@ -688,7 +688,7 @@ void dmxEnqueue(DevicePtr pDev, int type, int detail, KeySym keySym,
detail = dmxGetButtonMapping(dmxLocal, detail);
GetEventList(&events);
nevents = GetPointerEvents(events, p, type, detail,
- POINTER_ABSOLUTE,
+ POINTER_ABSOLUTE | POINTER_SCREEN,
0, /* first_valuator = 0 */
0, /* num_valuators = 0 */
valuators);
@@ -700,9 +700,9 @@ void dmxEnqueue(DevicePtr pDev, int type, int detail, KeySym keySym,
GetEventList(&events);
valuators[0] = e->xmotion.x;
valuators[1] = e->xmotion.y;
- valuators[2] = e->xmotion.state;
+ valuators[2] = e->xmotion.state; /* FIXME: WTF?? */
nevents = GetPointerEvents(events, p, type, detail,
- POINTER_ABSOLUTE, 0, 3, valuators);
+ POINTER_ABSOLUTE | POINTER_SCREEN, 0, 3, valuators);
for (i = 0; i < nevents; i++)
mieqEnqueue(p, (InternalEvent*)(events + i)->event);
return;
diff --git a/xorg-server/hw/kdrive/ephyr/Xephyr.man.pre b/xorg-server/hw/kdrive/ephyr/Xephyr.man.pre
index 008256914..eb80b96b0 100644
--- a/xorg-server/hw/kdrive/ephyr/Xephyr.man.pre
+++ b/xorg-server/hw/kdrive/ephyr/Xephyr.man.pre
@@ -46,6 +46,11 @@ sets the screen size.
.BI -parent " id"
uses exiting window
.I id .
+If a
+.BI -screen
+argument follows a
+.BI -parent
+argument, this screen is embedded into the given window.
.TP 8
.B -host-cursor
set 'cursor acceleration':
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c
index 947a7ff1b..87e48afaf 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyr.c
+++ b/xorg-server/hw/kdrive/ephyr/ephyr.c
@@ -1,1183 +1,1187 @@
-/*
- * Xephyr - A kdrive X server thats runs in a host X window.
- * Authored by Matthew Allum <mallum@openedhand.com>
- *
- * Copyright © 2004 Nokia
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Nokia not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Nokia makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <kdrive-config.h>
-#endif
-#include "ephyr.h"
-
-#include "inputstr.h"
-#include "scrnintstr.h"
-#include "ephyrlog.h"
-
-#ifdef XF86DRI
-#include "ephyrdri.h"
-#include "ephyrdriext.h"
-#include "ephyrglxext.h"
-#endif /* XF86DRI */
-
-extern int KdTsPhyScreen;
-#ifdef GLXEXT
-extern Bool noGlxVisualInit;
-#endif
-
-KdKeyboardInfo *ephyrKbd;
-KdPointerInfo *ephyrMouse;
-EphyrKeySyms ephyrKeySyms;
-Bool ephyrNoDRI=FALSE ;
-Bool ephyrNoXV=FALSE ;
-
-static int mouseState = 0;
-
-typedef struct _EphyrInputPrivate {
- Bool enabled;
-} EphyrKbdPrivate, EphyrPointerPrivate;
-
-Bool EphyrWantGrayScale = 0;
-
-
-Bool
-ephyrInitialize (KdCardInfo *card, EphyrPriv *priv)
-{
-#ifdef _MSC_VER
- __asm int 3;
-#else
- OsSignal(SIGUSR1, hostx_handle_signal);
-#endif
- priv->base = 0;
- priv->bytes_per_line = 0;
- return TRUE;
-}
-
-Bool
-ephyrCardInit (KdCardInfo *card)
-{
- EphyrPriv *priv;
-
- priv = (EphyrPriv *) xalloc (sizeof (EphyrPriv));
- if (!priv)
- return FALSE;
-
- if (!ephyrInitialize (card, priv))
- {
- xfree (priv);
- return FALSE;
- }
- card->driver = priv;
-
- return TRUE;
-}
-
-Bool
-ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
-{
- int width = 640, height = 480;
- CARD32 redMask, greenMask, blueMask;
-
- if (hostx_want_screen_size(screen, &width, &height)
- || !screen->width || !screen->height)
- {
- screen->width = width;
- screen->height = height;
- }
-
- if (EphyrWantGrayScale)
- screen->fb[0].depth = 8;
-
- if (screen->fb[0].depth && screen->fb[0].depth != hostx_get_depth())
- {
- if (screen->fb[0].depth < hostx_get_depth()
- && (screen->fb[0].depth == 24 || screen->fb[0].depth == 16
- || screen->fb[0].depth == 8))
- {
- hostx_set_server_depth(screen, screen->fb[0].depth);
- }
- else
- ErrorF("\nXephyr: requested screen depth not supported, setting to match hosts.\n");
- }
-
- screen->fb[0].depth = hostx_get_server_depth(screen);
- screen->rate = 72;
-
- if (screen->fb[0].depth <= 8)
- {
- if (EphyrWantGrayScale)
- screen->fb[0].visuals = ((1 << StaticGray) | (1 << GrayScale));
- else
- screen->fb[0].visuals = ((1 << StaticGray) |
- (1 << GrayScale) |
- (1 << StaticColor) |
- (1 << PseudoColor) |
- (1 << TrueColor) |
- (1 << DirectColor));
-
- screen->fb[0].redMask = 0x00;
- screen->fb[0].greenMask = 0x00;
- screen->fb[0].blueMask = 0x00;
- screen->fb[0].depth = 8;
- screen->fb[0].bitsPerPixel = 8;
- }
- else
- {
- screen->fb[0].visuals = (1 << TrueColor);
-
- if (screen->fb[0].depth <= 15)
- {
- screen->fb[0].depth = 15;
- screen->fb[0].bitsPerPixel = 16;
- }
- else if (screen->fb[0].depth <= 16)
- {
- screen->fb[0].depth = 16;
- screen->fb[0].bitsPerPixel = 16;
- }
- else if (screen->fb[0].depth <= 24)
- {
- screen->fb[0].depth = 24;
- screen->fb[0].bitsPerPixel = 32;
- }
- else if (screen->fb[0].depth <= 30)
- {
- screen->fb[0].depth = 30;
- screen->fb[0].bitsPerPixel = 32;
- }
- else
- {
- ErrorF("\nXephyr: Unsupported screen depth %d\n",
- screen->fb[0].depth);
- return FALSE;
- }
-
- hostx_get_visual_masks (screen, &redMask, &greenMask, &blueMask);
-
- screen->fb[0].redMask = (Pixel) redMask;
- screen->fb[0].greenMask = (Pixel) greenMask;
- screen->fb[0].blueMask = (Pixel) blueMask;
-
- }
-
- scrpriv->randr = screen->randr;
-
- return ephyrMapFramebuffer (screen);
-}
-
-Bool
-ephyrScreenInit (KdScreenInfo *screen)
-{
- EphyrScrPriv *scrpriv;
-
- scrpriv = xcalloc (1, sizeof (EphyrScrPriv));
-
- if (!scrpriv)
- return FALSE;
-
- screen->driver = scrpriv;
-
- if (!ephyrScreenInitialize (screen, scrpriv))
- {
- screen->driver = 0;
- xfree (scrpriv);
- return FALSE;
- }
-
- return TRUE;
-}
-
-void*
-ephyrWindowLinear (ScreenPtr pScreen,
- CARD32 row,
- CARD32 offset,
- int mode,
- CARD32 *size,
- void *closure)
-{
- KdScreenPriv(pScreen);
- EphyrPriv *priv = pScreenPriv->card->driver;
-
- if (!pScreenPriv->enabled)
- return 0;
-
- *size = priv->bytes_per_line;
- return priv->base + row * priv->bytes_per_line + offset;
-}
-
-Bool
-ephyrMapFramebuffer (KdScreenInfo *screen)
-{
- EphyrScrPriv *scrpriv = screen->driver;
- EphyrPriv *priv = screen->card->driver;
- KdPointerMatrix m;
- int buffer_height;
-
- EPHYR_LOG("screen->width: %d, screen->height: %d index=%d",
- screen->width, screen->height, screen->mynum);
-
- KdComputePointerMatrix (&m, scrpriv->randr, screen->width, screen->height);
- KdSetPointerMatrix (&m);
-
- priv->bytes_per_line = ((screen->width * screen->fb[0].bitsPerPixel + 31) >> 5) << 2;
-
- /* point the framebuffer to the data in an XImage */
- /* If fakexa is enabled, allocate a larger buffer so that fakexa has space to
- * put offscreen pixmaps.
- */
- if (ephyrFuncs.initAccel == NULL)
- buffer_height = screen->height;
- else
- buffer_height = 3 * screen->height;
-
- priv->base = hostx_screen_init (screen, screen->width, screen->height, buffer_height);
-
- screen->memory_base = (CARD8 *) (priv->base);
- screen->memory_size = priv->bytes_per_line * buffer_height;
- screen->off_screen_base = priv->bytes_per_line * screen->height;
-
- if ((scrpriv->randr & RR_Rotate_0) && !(scrpriv->randr & RR_Reflect_All))
- {
- scrpriv->shadow = FALSE;
-
- screen->fb[0].byteStride = priv->bytes_per_line;
- screen->fb[0].pixelStride = screen->width;
- screen->fb[0].frameBuffer = (CARD8 *) (priv->base);
- }
- else
- {
- /* Rotated/Reflected so we need to use shadow fb */
- scrpriv->shadow = TRUE;
-
- EPHYR_LOG("allocing shadow");
-
- KdShadowFbAlloc (screen, 0,
- scrpriv->randr & (RR_Rotate_90|RR_Rotate_270));
- }
-
- return TRUE;
-}
-
-void
-ephyrSetScreenSizes (ScreenPtr pScreen)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
- EphyrScrPriv *scrpriv = screen->driver;
-
- if (scrpriv->randr & (RR_Rotate_0|RR_Rotate_180))
- {
- pScreen->width = screen->width;
- pScreen->height = screen->height;
- pScreen->mmWidth = screen->width_mm;
- pScreen->mmHeight = screen->height_mm;
- }
- else
- {
- pScreen->width = screen->height;
- pScreen->height = screen->width;
- pScreen->mmWidth = screen->height_mm;
- pScreen->mmHeight = screen->width_mm;
- }
-}
-
-Bool
-ephyrUnmapFramebuffer (KdScreenInfo *screen)
-{
- EphyrScrPriv *scrpriv = screen->driver;
-
- if (scrpriv->shadow)
- KdShadowFbFree (screen, 0);
-
- /* Note, priv->base will get freed when XImage recreated */
-
- return TRUE;
-}
-
-void
-ephyrShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
-
- EPHYR_LOG("slow paint");
-
- /* FIXME: Slow Rotated/Reflected updates could be much
- * much faster efficiently updating via tranforming
- * pBuf->pDamage regions
- */
- shadowUpdateRotatePacked(pScreen, pBuf);
- hostx_paint_rect(screen, 0,0,0,0, screen->width, screen->height);
-}
-
-static void
-ephyrInternalDamageRedisplay (ScreenPtr pScreen)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
- EphyrScrPriv *scrpriv = screen->driver;
- RegionPtr pRegion;
-
- if (!scrpriv || !scrpriv->pDamage)
- return;
-
- pRegion = DamageRegion (scrpriv->pDamage);
-
- if (REGION_NOTEMPTY (pScreen, pRegion))
- {
- int nbox;
- BoxPtr pbox;
-
- nbox = REGION_NUM_RECTS (pRegion);
- pbox = REGION_RECTS (pRegion);
-
- while (nbox--)
- {
- hostx_paint_rect(screen,
- pbox->x1, pbox->y1,
- pbox->x1, pbox->y1,
- pbox->x2 - pbox->x1,
- pbox->y2 - pbox->y1);
- pbox++;
- }
- DamageEmpty (scrpriv->pDamage);
- }
-}
-
-static void
-ephyrInternalDamageBlockHandler (pointer data,
- OSTimePtr pTimeout,
- pointer pRead)
-{
- ScreenPtr pScreen = (ScreenPtr) data;
-
- ephyrInternalDamageRedisplay (pScreen);
-}
-
-static void
-ephyrInternalDamageWakeupHandler (pointer data, int i, pointer LastSelectMask)
-{
- /* FIXME: Not needed ? */
-}
-
-Bool
-ephyrSetInternalDamage (ScreenPtr pScreen)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
- EphyrScrPriv *scrpriv = screen->driver;
- PixmapPtr pPixmap = NULL;
-
- scrpriv->pDamage = DamageCreate ((DamageReportFunc) 0,
- (DamageDestroyFunc) 0,
- DamageReportNone,
- TRUE,
- pScreen,
- pScreen);
-
- if (!RegisterBlockAndWakeupHandlers (ephyrInternalDamageBlockHandler,
- ephyrInternalDamageWakeupHandler,
- (pointer) pScreen))
- return FALSE;
-
- pPixmap = (*pScreen->GetScreenPixmap) (pScreen);
-
- DamageRegister (&pPixmap->drawable, scrpriv->pDamage);
-
- return TRUE;
-}
-
-void
-ephyrUnsetInternalDamage (ScreenPtr pScreen)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
- EphyrScrPriv *scrpriv = screen->driver;
- PixmapPtr pPixmap = NULL;
-
- pPixmap = (*pScreen->GetScreenPixmap) (pScreen);
- DamageUnregister (&pPixmap->drawable, scrpriv->pDamage);
- DamageDestroy (scrpriv->pDamage);
-
- RemoveBlockAndWakeupHandlers (ephyrInternalDamageBlockHandler,
- ephyrInternalDamageWakeupHandler,
- (pointer) pScreen);
-}
-
-#ifdef RANDR
-Bool
-ephyrRandRGetInfo (ScreenPtr pScreen, Rotation *rotations)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
- EphyrScrPriv *scrpriv = screen->driver;
- RRScreenSizePtr pSize;
- Rotation randr;
- int n = 0;
-
- struct { int width, height; } sizes[] =
- {
- { 1600, 1200 },
- { 1400, 1050 },
- { 1280, 960 },
- { 1280, 1024 },
- { 1152, 864 },
- { 1024, 768 },
- { 832, 624 },
- { 800, 600 },
- { 720, 400 },
- { 480, 640 },
- { 640, 480 },
- { 640, 400 },
- { 320, 240 },
- { 240, 320 },
- { 160, 160 },
- { 0, 0 }
- };
-
- EPHYR_LOG("mark");
-
- *rotations = RR_Rotate_All|RR_Reflect_All;
-
- if (!hostx_want_preexisting_window (screen)
- && !hostx_want_fullscreen ()) /* only if no -parent switch */
- {
- while (sizes[n].width != 0 && sizes[n].height != 0)
- {
- RRRegisterSize (pScreen,
- sizes[n].width,
- sizes[n].height,
- (sizes[n].width * screen->width_mm)/screen->width,
- (sizes[n].height *screen->height_mm)/screen->height
- );
- n++;
- }
- }
-
- pSize = RRRegisterSize (pScreen,
- screen->width,
- screen->height,
- screen->width_mm,
- screen->height_mm);
-
- randr = KdSubRotation (scrpriv->randr, screen->randr);
-
- RRSetCurrentConfig (pScreen, randr, 0, pSize);
-
- return TRUE;
-}
-
-Bool
-ephyrRandRSetConfig (ScreenPtr pScreen,
- Rotation randr,
- int rate,
- RRScreenSizePtr pSize)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
- EphyrScrPriv *scrpriv = screen->driver;
- Bool wasEnabled = pScreenPriv->enabled;
- EphyrScrPriv oldscr;
- int oldwidth, oldheight, oldmmwidth, oldmmheight;
- Bool oldshadow;
- int newwidth, newheight;
-
- if (screen->randr & (RR_Rotate_0|RR_Rotate_180))
- {
- newwidth = pSize->width;
- newheight = pSize->height;
- }
- else
- {
- newwidth = pSize->height;
- newheight = pSize->width;
- }
-
- if (wasEnabled)
- KdDisableScreen (pScreen);
-
- oldscr = *scrpriv;
-
- oldwidth = screen->width;
- oldheight = screen->height;
- oldmmwidth = pScreen->mmWidth;
- oldmmheight = pScreen->mmHeight;
- oldshadow = scrpriv->shadow;
-
- /*
- * Set new configuration
- */
-
- scrpriv->randr = KdAddRotation (screen->randr, randr);
-
- ephyrUnmapFramebuffer (screen);
-
- screen->width = newwidth;
- screen->height = newheight;
-
- if (!ephyrMapFramebuffer (screen))
- goto bail4;
-
- /* FIXME below should go in own call */
-
- if (oldshadow)
- KdShadowUnset (screen->pScreen);
- else
- ephyrUnsetInternalDamage(screen->pScreen);
-
- if (scrpriv->shadow)
- {
- if (!KdShadowSet (screen->pScreen,
- scrpriv->randr,
- ephyrShadowUpdate,
- ephyrWindowLinear))
- goto bail4;
- }
- else
- {
- /* Without shadow fb ( non rotated ) we need
- * to use damage to efficiently update display
- * via signal regions what to copy from 'fb'.
- */
- if (!ephyrSetInternalDamage(screen->pScreen))
- goto bail4;
- }
-
- ephyrSetScreenSizes (screen->pScreen);
-
- /*
- * Set frame buffer mapping
- */
- (*pScreen->ModifyPixmapHeader) (fbGetScreenPixmap (pScreen),
- pScreen->width,
- pScreen->height,
- screen->fb[0].depth,
- screen->fb[0].bitsPerPixel,
- screen->fb[0].byteStride,
- screen->fb[0].frameBuffer);
-
- /* set the subpixel order */
-
- KdSetSubpixelOrder (pScreen, scrpriv->randr);
-
- if (wasEnabled)
- KdEnableScreen (pScreen);
-
- return TRUE;
-
- bail4:
- EPHYR_LOG("bailed");
-
- ephyrUnmapFramebuffer (screen);
- *scrpriv = oldscr;
- (void) ephyrMapFramebuffer (screen);
-
- pScreen->width = oldwidth;
- pScreen->height = oldheight;
- pScreen->mmWidth = oldmmwidth;
- pScreen->mmHeight = oldmmheight;
-
- if (wasEnabled)
- KdEnableScreen (pScreen);
- return FALSE;
-}
-
-Bool
-ephyrRandRInit (ScreenPtr pScreen)
-{
- rrScrPrivPtr pScrPriv;
-
- if (!RRScreenInit (pScreen))
- return FALSE;
-
- pScrPriv = rrGetScrPriv(pScreen);
- pScrPriv->rrGetInfo = ephyrRandRGetInfo;
- pScrPriv->rrSetConfig = ephyrRandRSetConfig;
- return TRUE;
-}
-#endif
-
-Bool
-ephyrCreateColormap (ColormapPtr pmap)
-{
- return fbInitializeColormap (pmap);
-}
-
-Bool
-ephyrInitScreen (ScreenPtr pScreen)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
-
- EPHYR_LOG ("pScreen->myNum:%d\n", pScreen->myNum) ;
- hostx_set_screen_number (screen, pScreen->myNum);
- hostx_set_win_title (screen, "(ctrl+shift grabs mouse and keyboard)") ;
- pScreen->CreateColormap = ephyrCreateColormap;
-
-#ifdef XV
- if (!ephyrNoXV) {
- if (!ephyrInitVideo (pScreen)) {
- EPHYR_LOG_ERROR ("failed to initialize xvideo\n") ;
- } else {
- EPHYR_LOG ("initialized xvideo okay\n") ;
- }
- }
-#endif /*XV*/
-
-#ifdef XF86DRI
- if (!ephyrNoDRI && !hostx_has_dri ()) {
- EPHYR_LOG ("host x does not support DRI. Disabling DRI forwarding\n") ;
- ephyrNoDRI = TRUE ;
-#ifdef GLXEXT
- noGlxVisualInit = FALSE ;
-#endif
- }
- if (!ephyrNoDRI) {
- ephyrDRIExtensionInit (pScreen) ;
- ephyrHijackGLXExtension () ;
- }
-#endif
-
-#ifdef GLXEXT
- if (ephyrNoDRI) {
- noGlxVisualInit = FALSE ;
- }
-#endif
-
- return TRUE;
-}
-
-Bool
-ephyrFinishInitScreen (ScreenPtr pScreen)
-{
- /* FIXME: Calling this even if not using shadow.
- * Seems harmless enough. But may be safer elsewhere.
- */
- if (!shadowSetup (pScreen))
- return FALSE;
-
-#ifdef RANDR
- if (!ephyrRandRInit (pScreen))
- return FALSE;
-#endif
-
- return TRUE;
-}
-
-Bool
-ephyrCreateResources (ScreenPtr pScreen)
-{
- KdScreenPriv(pScreen);
- KdScreenInfo *screen = pScreenPriv->screen;
- EphyrScrPriv *scrpriv = screen->driver;
-
- EPHYR_LOG("mark pScreen=%p mynum=%d shadow=%d",
- pScreen, pScreen->myNum, scrpriv->shadow);
-
- if (scrpriv->shadow)
- return KdShadowSet (pScreen,
- scrpriv->randr,
- ephyrShadowUpdate,
- ephyrWindowLinear);
- else
- return ephyrSetInternalDamage(pScreen);
-}
-
-void
-ephyrPreserve (KdCardInfo *card)
-{
-}
-
-Bool
-ephyrEnable (ScreenPtr pScreen)
-{
- return TRUE;
-}
-
-Bool
-ephyrDPMS (ScreenPtr pScreen, int mode)
-{
- return TRUE;
-}
-
-void
-ephyrDisable (ScreenPtr pScreen)
-{
-}
-
-void
-ephyrRestore (KdCardInfo *card)
-{
-}
-
-void
-ephyrScreenFini (KdScreenInfo *screen)
-{
- EphyrScrPriv *scrpriv = screen->driver;
- if (scrpriv->shadow) {
- KdShadowFbFree (screen, 0);
- }
- xfree(screen->driver);
- screen->driver = NULL;
-}
-
-/*
- * Port of Mark McLoughlin's Xnest fix for focus in + modifier bug.
- * See https://bugs.freedesktop.org/show_bug.cgi?id=3030
- */
-void
-ephyrUpdateModifierState(unsigned int state)
-{
-#if 0
- DeviceIntPtr pkeydev;
- KeyClassPtr keyc;
- int i;
- CARD8 mask;
-
- pkeydev = inputInfo.keyboard;
-
- if (!pkeydev)
- return;
-
-/* This is pretty broken.
- *
- * What should happen is that focus out should do as a VT switch does in
- * traditional servers: fake releases for all keys (and buttons too, come
- * to think of it) currently down. Then, on focus in, get the state from
- * the host, and fake keypresses for everything currently down.
- *
- * So I'm leaving this broken for a little while. Sorry, folks.
- *
- * -daniels
- */
-
- keyc = pkeydev->key;
-
- state = state & 0xff;
-
- if (keyc->state == state)
- return;
-
- for (i = 0, mask = 1; i < 8; i++, mask <<= 1)
- {
- int key;
-
- /* Modifier is down, but shouldn't be */
- if ((keyc->state & mask) && !(state & mask))
- {
- int count = keyc->modifierKeyCount[i];
-
- for (key = 0; key < MAP_LENGTH; key++)
- if (keyc->xkbInfo->desc->map->modmap[key] & mask)
- {
- int bit;
- BYTE *kptr;
-
- kptr = &keyc->down[key >> 3];
- bit = 1 << (key & 7);
-
- if (*kptr & bit && ephyrKbd &&
- ((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
- KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE); /* release */
-
- if (--count == 0)
- break;
- }
- }
-
- /* Modifier shoud be down, but isn't */
- if (!(keyc->state & mask) && (state & mask))
- for (key = 0; key < MAP_LENGTH; key++)
- if (keyc->xkbInfo->desc->map->modmap[key] & mask)
- {
- if (keyc->xkbInfo->desc->map->modmap[key] & mask && ephyrKbd &&
- ((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
- KdEnqueueKeyboardEvent(ephyrKbd, key, FALSE); /* press */
- break;
- }
- }
-#endif
-}
-
-static void
-ephyrBlockSigio (void)
-{
-#ifdef _MSC_VER
- __asm int 3;
-#else
- sigset_t set;
-
- sigemptyset (&set);
- sigaddset (&set, SIGIO);
- sigprocmask (SIG_BLOCK, &set, 0);
-#endif
-}
-
-static void
-ephyrUnblockSigio (void)
-{
-#ifdef _MSC_VER
- __asm int 3;
-#else
- sigset_t set;
-
- sigemptyset (&set);
- sigaddset (&set, SIGIO);
- sigprocmask (SIG_UNBLOCK, &set, 0);
-#endif
-}
-
-static Bool
-ephyrCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y)
-{
- return FALSE;
-}
-
-static void
-ephyrCrossScreen (ScreenPtr pScreen, Bool entering)
-{
-}
-
-int ephyrCurScreen; /*current event screen*/
-
-static void
-ephyrWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
-{
- ephyrBlockSigio ();
- ephyrCurScreen = pScreen->myNum;
- miPointerWarpCursor (inputInfo.pointer, pScreen, x, y);
- ephyrUnblockSigio ();
-}
-
-miPointerScreenFuncRec ephyrPointerScreenFuncs =
-{
- ephyrCursorOffScreen,
- ephyrCrossScreen,
- ephyrWarpCursor,
- NULL,
- NULL
-};
-
-#ifdef XF86DRI
-/**
- * find if the remote window denoted by a_remote
- * is paired with an internal Window within the Xephyr server.
- * If the remove window is paired with an internal window, send an
- * expose event to the client insterested in the internal window expose event.
- *
- * Pairing happens when a drawable inside Xephyr is associated with
- * a GL surface in a DRI environment.
- * Look at the function ProcXF86DRICreateDrawable in ephyrdriext.c to
- * know a paired window is created.
- *
- * This is useful to make GL drawables (only windows for now) handle
- * expose events and send those events to clients.
- */
-static void
-ephyrExposePairedWindow (int a_remote)
-{
- EphyrWindowPair *pair = NULL;
- RegionRec reg;
- ScreenPtr screen;
-
- if (!findWindowPairFromRemote (a_remote, &pair)) {
- EPHYR_LOG ("did not find a pair for this window\n");
- return;
- }
- screen = pair->local->drawable.pScreen;
- REGION_NULL (screen, &reg);
- REGION_COPY (screen, &reg, &pair->local->clipList);
- screen->WindowExposures (pair->local, &reg, NullRegion);
- REGION_UNINIT (screen, &reg);
-}
-#endif /* XF86DRI */
-
-void
-ephyrPoll(void)
-{
- EphyrHostXEvent ev;
-
- while (hostx_get_event(&ev))
- {
- switch (ev.type)
- {
- case EPHYR_EV_MOUSE_MOTION:
- if (!ephyrMouse ||
- !((EphyrPointerPrivate *)ephyrMouse->driverPrivate)->enabled) {
- EPHYR_LOG ("skipping mouse motion:%d\n", ephyrCurScreen) ;
- continue;
- }
- {
- if (ev.data.mouse_motion.screen >=0
- && (ephyrCurScreen != ev.data.mouse_motion.screen))
- {
- EPHYR_LOG ("warping mouse cursor. "
- "cur_screen%d, motion_screen:%d\n",
- ephyrCurScreen, ev.data.mouse_motion.screen) ;
- if (ev.data.mouse_motion.screen >= 0)
- {
- ephyrWarpCursor
- (inputInfo.pointer, screenInfo.screens[ev.data.mouse_motion.screen],
- ev.data.mouse_motion.x,
- ev.data.mouse_motion.y );
- }
- }
- else
- {
- int x=0, y=0;
-#ifdef XF86DRI
- EphyrWindowPair *pair = NULL;
-#endif
- EPHYR_LOG ("enqueuing mouse motion:%d\n", ephyrCurScreen) ;
- x = ev.data.mouse_motion.x;
- y = ev.data.mouse_motion.y;
- EPHYR_LOG ("initial (x,y):(%d,%d)\n", x, y) ;
-#ifdef XF86DRI
- EPHYR_LOG ("is this window peered by a gl drawable ?\n") ;
- if (findWindowPairFromRemote (ev.data.mouse_motion.window,
- &pair))
- {
- EPHYR_LOG ("yes, it is peered\n") ;
- x += pair->local->drawable.x;
- y += pair->local->drawable.y;
- }
- else
- {
- EPHYR_LOG ("no, it is not peered\n") ;
- }
- EPHYR_LOG ("final (x,y):(%d,%d)\n", x, y) ;
-#endif
- KdEnqueuePointerEvent(ephyrMouse, mouseState, x, y, 0);
- }
- }
- break;
-
- case EPHYR_EV_MOUSE_PRESS:
- if (!ephyrMouse ||
- !((EphyrPointerPrivate *)ephyrMouse->driverPrivate)->enabled) {
- EPHYR_LOG ("skipping mouse press:%d\n", ephyrCurScreen) ;
- continue;
- }
- EPHYR_LOG ("enqueuing mouse press:%d\n", ephyrCurScreen) ;
- ephyrUpdateModifierState(ev.key_state);
- mouseState |= ev.data.mouse_down.button_num;
- KdEnqueuePointerEvent(ephyrMouse, mouseState|KD_MOUSE_DELTA, 0, 0, 0);
- break;
-
- case EPHYR_EV_MOUSE_RELEASE:
- if (!ephyrMouse ||
- !((EphyrPointerPrivate *)ephyrMouse->driverPrivate)->enabled)
- continue;
- ephyrUpdateModifierState(ev.key_state);
- mouseState &= ~ev.data.mouse_up.button_num;
- EPHYR_LOG ("enqueuing mouse release:%d\n", ephyrCurScreen) ;
- KdEnqueuePointerEvent(ephyrMouse, mouseState|KD_MOUSE_DELTA, 0, 0, 0);
- break;
-
- case EPHYR_EV_KEY_PRESS:
- if (!ephyrKbd ||
- !((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
- continue;
- ephyrUpdateModifierState(ev.key_state);
- KdEnqueueKeyboardEvent (ephyrKbd, ev.data.key_down.scancode, FALSE);
- break;
-
- case EPHYR_EV_KEY_RELEASE:
- if (!ephyrKbd ||
- !((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
- continue;
- KdEnqueueKeyboardEvent (ephyrKbd, ev.data.key_up.scancode, TRUE);
- break;
-
-#ifdef XF86DRI
- case EPHYR_EV_EXPOSE:
- /*
- * We only receive expose events when the expose event have
- * be generated for a drawable that is a host X window managed
- * by Xephyr. Host X windows managed by Xephyr exists for instance
- * when Xephyr is asked to create a GL drawable in a DRI environment.
- */
- ephyrExposePairedWindow (ev.data.expose.window);
- break;
-#endif /* XF86DRI */
-
- default:
- break;
- }
- }
-}
-
-void
-ephyrCardFini (KdCardInfo *card)
-{
- EphyrPriv *priv = card->driver;
- xfree (priv);
-}
-
-void
-ephyrGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs)
-{
- /* XXX Not sure if this is right */
-
- EPHYR_LOG("mark");
-
- while (n--)
- {
- pdefs->red = 0;
- pdefs->green = 0;
- pdefs->blue = 0;
- pdefs++;
- }
-
-}
-
-void
-ephyrPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs)
-{
- int min, max, p;
-
- /* XXX Not sure if this is right */
-
- min = 256;
- max = 0;
-
- while (n--)
- {
- p = pdefs->pixel;
- if (p < min)
- min = p;
- if (p > max)
- max = p;
-
- hostx_set_cmap_entry(p,
- pdefs->red >> 8,
- pdefs->green >> 8,
- pdefs->blue >> 8);
- pdefs++;
- }
-}
-
-/* Mouse calls */
-
-static Status
-MouseInit (KdPointerInfo *pi)
-{
- pi->driverPrivate = (EphyrPointerPrivate *)
- xcalloc(sizeof(EphyrPointerPrivate), 1);
- ((EphyrPointerPrivate *)pi->driverPrivate)->enabled = FALSE;
- pi->nAxes = 3;
- pi->nButtons = 32;
- pi->name = strdup("Xephyr virtual mouse");
- ephyrMouse = pi;
- return Success;
-}
-
-static Status
-MouseEnable (KdPointerInfo *pi)
-{
- ((EphyrPointerPrivate *)pi->driverPrivate)->enabled = TRUE;
- return Success;
-}
-
-static void
-MouseDisable (KdPointerInfo *pi)
-{
- ((EphyrPointerPrivate *)pi->driverPrivate)->enabled = FALSE;
- return;
-}
-
-static void
-MouseFini (KdPointerInfo *pi)
-{
- ephyrMouse = NULL;
- return;
-}
-
-KdPointerDriver EphyrMouseDriver = {
- "ephyr",
- MouseInit,
- MouseEnable,
- MouseDisable,
- MouseFini,
- NULL,
-};
-
-/* Keyboard */
-
-static Status
-EphyrKeyboardInit (KdKeyboardInfo *ki)
-{
- ki->driverPrivate = (EphyrKbdPrivate *)
- xcalloc(sizeof(EphyrKbdPrivate), 1);
- hostx_load_keymap();
- if (!ephyrKeySyms.map) {
- ErrorF("Couldn't load keymap from host\n");
- return BadAlloc;
- }
- ki->minScanCode = ephyrKeySyms.minKeyCode;
- ki->maxScanCode = ephyrKeySyms.maxKeyCode;
- ki->name = strdup("Xephyr virtual keyboard");
- ephyrKbd = ki;
- return Success;
-}
-
-static Status
-EphyrKeyboardEnable (KdKeyboardInfo *ki)
-{
- ((EphyrKbdPrivate *)ki->driverPrivate)->enabled = TRUE;
-
- return Success;
-}
-
-static void
-EphyrKeyboardDisable (KdKeyboardInfo *ki)
-{
- ((EphyrKbdPrivate *)ki->driverPrivate)->enabled = FALSE;
-}
-
-static void
-EphyrKeyboardFini (KdKeyboardInfo *ki)
-{
- ephyrKbd = NULL;
- return;
-}
-
-static void
-EphyrKeyboardLeds (KdKeyboardInfo *ki, int leds)
-{
-}
-
-static void
-EphyrKeyboardBell (KdKeyboardInfo *ki, int volume, int frequency, int duration)
-{
-}
-
-
-KdKeyboardDriver EphyrKeyboardDriver = {
- "ephyr",
- EphyrKeyboardInit,
- EphyrKeyboardEnable,
- EphyrKeyboardLeds,
- EphyrKeyboardBell,
- EphyrKeyboardDisable,
- EphyrKeyboardFini,
- NULL,
-};
+/*
+ * Xephyr - A kdrive X server thats runs in a host X window.
+ * Authored by Matthew Allum <mallum@openedhand.com>
+ *
+ * Copyright © 2004 Nokia
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Nokia not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Nokia makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <kdrive-config.h>
+#endif
+#include "ephyr.h"
+
+#include "inputstr.h"
+#include "scrnintstr.h"
+#include "ephyrlog.h"
+
+#ifdef XF86DRI
+#include "ephyrdri.h"
+#include "ephyrdriext.h"
+#include "ephyrglxext.h"
+#endif /* XF86DRI */
+
+extern int KdTsPhyScreen;
+#ifdef GLXEXT
+extern Bool noGlxVisualInit;
+#endif
+
+KdKeyboardInfo *ephyrKbd;
+KdPointerInfo *ephyrMouse;
+EphyrKeySyms ephyrKeySyms;
+Bool ephyrNoDRI=FALSE ;
+Bool ephyrNoXV=FALSE ;
+
+static int mouseState = 0;
+
+typedef struct _EphyrInputPrivate {
+ Bool enabled;
+} EphyrKbdPrivate, EphyrPointerPrivate;
+
+Bool EphyrWantGrayScale = 0;
+
+
+Bool
+ephyrInitialize (KdCardInfo *card, EphyrPriv *priv)
+{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+ OsSignal(SIGUSR1, hostx_handle_signal);
+#endif
+ priv->base = 0;
+ priv->bytes_per_line = 0;
+ return TRUE;
+}
+
+Bool
+ephyrCardInit (KdCardInfo *card)
+{
+ EphyrPriv *priv;
+
+ priv = (EphyrPriv *) xalloc (sizeof (EphyrPriv));
+ if (!priv)
+ return FALSE;
+
+ if (!ephyrInitialize (card, priv))
+ {
+ xfree (priv);
+ return FALSE;
+ }
+ card->driver = priv;
+
+ return TRUE;
+}
+
+Bool
+ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
+{
+ int width = 640, height = 480;
+ CARD32 redMask, greenMask, blueMask;
+
+ if (hostx_want_screen_size(screen, &width, &height)
+ || !screen->width || !screen->height)
+ {
+ screen->width = width;
+ screen->height = height;
+ }
+
+ if (EphyrWantGrayScale)
+ screen->fb[0].depth = 8;
+
+ if (screen->fb[0].depth && screen->fb[0].depth != hostx_get_depth())
+ {
+ if (screen->fb[0].depth < hostx_get_depth()
+ && (screen->fb[0].depth == 24 || screen->fb[0].depth == 16
+ || screen->fb[0].depth == 8))
+ {
+ hostx_set_server_depth(screen, screen->fb[0].depth);
+ }
+ else
+ ErrorF("\nXephyr: requested screen depth not supported, setting to match hosts.\n");
+ }
+
+ screen->fb[0].depth = hostx_get_server_depth(screen);
+ screen->rate = 72;
+
+ if (screen->fb[0].depth <= 8)
+ {
+ if (EphyrWantGrayScale)
+ screen->fb[0].visuals = ((1 << StaticGray) | (1 << GrayScale));
+ else
+ screen->fb[0].visuals = ((1 << StaticGray) |
+ (1 << GrayScale) |
+ (1 << StaticColor) |
+ (1 << PseudoColor) |
+ (1 << TrueColor) |
+ (1 << DirectColor));
+
+ screen->fb[0].redMask = 0x00;
+ screen->fb[0].greenMask = 0x00;
+ screen->fb[0].blueMask = 0x00;
+ screen->fb[0].depth = 8;
+ screen->fb[0].bitsPerPixel = 8;
+ }
+ else
+ {
+ screen->fb[0].visuals = (1 << TrueColor);
+
+ if (screen->fb[0].depth <= 15)
+ {
+ screen->fb[0].depth = 15;
+ screen->fb[0].bitsPerPixel = 16;
+ }
+ else if (screen->fb[0].depth <= 16)
+ {
+ screen->fb[0].depth = 16;
+ screen->fb[0].bitsPerPixel = 16;
+ }
+ else if (screen->fb[0].depth <= 24)
+ {
+ screen->fb[0].depth = 24;
+ screen->fb[0].bitsPerPixel = 32;
+ }
+ else if (screen->fb[0].depth <= 30)
+ {
+ screen->fb[0].depth = 30;
+ screen->fb[0].bitsPerPixel = 32;
+ }
+ else
+ {
+ ErrorF("\nXephyr: Unsupported screen depth %d\n",
+ screen->fb[0].depth);
+ return FALSE;
+ }
+
+ hostx_get_visual_masks (screen, &redMask, &greenMask, &blueMask);
+
+ screen->fb[0].redMask = (Pixel) redMask;
+ screen->fb[0].greenMask = (Pixel) greenMask;
+ screen->fb[0].blueMask = (Pixel) blueMask;
+
+ }
+
+ scrpriv->randr = screen->randr;
+
+ return ephyrMapFramebuffer (screen);
+}
+
+Bool
+ephyrScreenInit (KdScreenInfo *screen)
+{
+ EphyrScrPriv *scrpriv;
+
+ scrpriv = xcalloc (1, sizeof (EphyrScrPriv));
+
+ if (!scrpriv)
+ return FALSE;
+
+ screen->driver = scrpriv;
+
+ if (!ephyrScreenInitialize (screen, scrpriv))
+ {
+ screen->driver = 0;
+ xfree (scrpriv);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void*
+ephyrWindowLinear (ScreenPtr pScreen,
+ CARD32 row,
+ CARD32 offset,
+ int mode,
+ CARD32 *size,
+ void *closure)
+{
+ KdScreenPriv(pScreen);
+ EphyrPriv *priv = pScreenPriv->card->driver;
+
+ if (!pScreenPriv->enabled)
+ return 0;
+
+ *size = priv->bytes_per_line;
+ return priv->base + row * priv->bytes_per_line + offset;
+}
+
+Bool
+ephyrMapFramebuffer (KdScreenInfo *screen)
+{
+ EphyrScrPriv *scrpriv = screen->driver;
+ EphyrPriv *priv = screen->card->driver;
+ KdPointerMatrix m;
+ int buffer_height;
+
+ EPHYR_LOG("screen->width: %d, screen->height: %d index=%d",
+ screen->width, screen->height, screen->mynum);
+
+ KdComputePointerMatrix (&m, scrpriv->randr, screen->width, screen->height);
+ KdSetPointerMatrix (&m);
+
+ priv->bytes_per_line = ((screen->width * screen->fb[0].bitsPerPixel + 31) >> 5) << 2;
+
+ /* point the framebuffer to the data in an XImage */
+ /* If fakexa is enabled, allocate a larger buffer so that fakexa has space to
+ * put offscreen pixmaps.
+ */
+ if (ephyrFuncs.initAccel == NULL)
+ buffer_height = screen->height;
+ else
+ buffer_height = 3 * screen->height;
+
+ priv->base = hostx_screen_init (screen, screen->width, screen->height, buffer_height);
+
+ screen->memory_base = (CARD8 *) (priv->base);
+ screen->memory_size = priv->bytes_per_line * buffer_height;
+ screen->off_screen_base = priv->bytes_per_line * screen->height;
+
+ if ((scrpriv->randr & RR_Rotate_0) && !(scrpriv->randr & RR_Reflect_All))
+ {
+ scrpriv->shadow = FALSE;
+
+ screen->fb[0].byteStride = priv->bytes_per_line;
+ screen->fb[0].pixelStride = screen->width;
+ screen->fb[0].frameBuffer = (CARD8 *) (priv->base);
+ }
+ else
+ {
+ /* Rotated/Reflected so we need to use shadow fb */
+ scrpriv->shadow = TRUE;
+
+ EPHYR_LOG("allocing shadow");
+
+ KdShadowFbAlloc (screen, 0,
+ scrpriv->randr & (RR_Rotate_90|RR_Rotate_270));
+ }
+
+ return TRUE;
+}
+
+void
+ephyrSetScreenSizes (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EphyrScrPriv *scrpriv = screen->driver;
+
+ if (scrpriv->randr & (RR_Rotate_0|RR_Rotate_180))
+ {
+ pScreen->width = screen->width;
+ pScreen->height = screen->height;
+ pScreen->mmWidth = screen->width_mm;
+ pScreen->mmHeight = screen->height_mm;
+ }
+ else
+ {
+ pScreen->width = screen->height;
+ pScreen->height = screen->width;
+ pScreen->mmWidth = screen->height_mm;
+ pScreen->mmHeight = screen->width_mm;
+ }
+}
+
+Bool
+ephyrUnmapFramebuffer (KdScreenInfo *screen)
+{
+ EphyrScrPriv *scrpriv = screen->driver;
+
+ if (scrpriv->shadow)
+ KdShadowFbFree (screen, 0);
+
+ /* Note, priv->base will get freed when XImage recreated */
+
+ return TRUE;
+}
+
+void
+ephyrShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+
+ EPHYR_LOG("slow paint");
+
+ /* FIXME: Slow Rotated/Reflected updates could be much
+ * much faster efficiently updating via tranforming
+ * pBuf->pDamage regions
+ */
+ shadowUpdateRotatePacked(pScreen, pBuf);
+ hostx_paint_rect(screen, 0,0,0,0, screen->width, screen->height);
+}
+
+static void
+ephyrInternalDamageRedisplay (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EphyrScrPriv *scrpriv = screen->driver;
+ RegionPtr pRegion;
+
+ if (!scrpriv || !scrpriv->pDamage)
+ return;
+
+ pRegion = DamageRegion (scrpriv->pDamage);
+
+ if (REGION_NOTEMPTY (pScreen, pRegion))
+ {
+ int nbox;
+ BoxPtr pbox;
+
+ nbox = REGION_NUM_RECTS (pRegion);
+ pbox = REGION_RECTS (pRegion);
+
+ while (nbox--)
+ {
+ hostx_paint_rect(screen,
+ pbox->x1, pbox->y1,
+ pbox->x1, pbox->y1,
+ pbox->x2 - pbox->x1,
+ pbox->y2 - pbox->y1);
+ pbox++;
+ }
+ DamageEmpty (scrpriv->pDamage);
+ }
+}
+
+static void
+ephyrInternalDamageBlockHandler (pointer data,
+ OSTimePtr pTimeout,
+ pointer pRead)
+{
+ ScreenPtr pScreen = (ScreenPtr) data;
+
+ ephyrInternalDamageRedisplay (pScreen);
+}
+
+static void
+ephyrInternalDamageWakeupHandler (pointer data, int i, pointer LastSelectMask)
+{
+ /* FIXME: Not needed ? */
+}
+
+Bool
+ephyrSetInternalDamage (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EphyrScrPriv *scrpriv = screen->driver;
+ PixmapPtr pPixmap = NULL;
+
+ scrpriv->pDamage = DamageCreate ((DamageReportFunc) 0,
+ (DamageDestroyFunc) 0,
+ DamageReportNone,
+ TRUE,
+ pScreen,
+ pScreen);
+
+ if (!RegisterBlockAndWakeupHandlers (ephyrInternalDamageBlockHandler,
+ ephyrInternalDamageWakeupHandler,
+ (pointer) pScreen))
+ return FALSE;
+
+ pPixmap = (*pScreen->GetScreenPixmap) (pScreen);
+
+ DamageRegister (&pPixmap->drawable, scrpriv->pDamage);
+
+ return TRUE;
+}
+
+void
+ephyrUnsetInternalDamage (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EphyrScrPriv *scrpriv = screen->driver;
+ PixmapPtr pPixmap = NULL;
+
+ pPixmap = (*pScreen->GetScreenPixmap) (pScreen);
+ DamageUnregister (&pPixmap->drawable, scrpriv->pDamage);
+ DamageDestroy (scrpriv->pDamage);
+
+ RemoveBlockAndWakeupHandlers (ephyrInternalDamageBlockHandler,
+ ephyrInternalDamageWakeupHandler,
+ (pointer) pScreen);
+}
+
+#ifdef RANDR
+Bool
+ephyrRandRGetInfo (ScreenPtr pScreen, Rotation *rotations)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EphyrScrPriv *scrpriv = screen->driver;
+ RRScreenSizePtr pSize;
+ Rotation randr;
+ int n = 0;
+
+ struct { int width, height; } sizes[] =
+ {
+ { 1600, 1200 },
+ { 1400, 1050 },
+ { 1280, 960 },
+ { 1280, 1024 },
+ { 1152, 864 },
+ { 1024, 768 },
+ { 832, 624 },
+ { 800, 600 },
+ { 720, 400 },
+ { 480, 640 },
+ { 640, 480 },
+ { 640, 400 },
+ { 320, 240 },
+ { 240, 320 },
+ { 160, 160 },
+ { 0, 0 }
+ };
+
+ EPHYR_LOG("mark");
+
+ *rotations = RR_Rotate_All|RR_Reflect_All;
+
+ if (!hostx_want_preexisting_window (screen)
+ && !hostx_want_fullscreen ()) /* only if no -parent switch */
+ {
+ while (sizes[n].width != 0 && sizes[n].height != 0)
+ {
+ RRRegisterSize (pScreen,
+ sizes[n].width,
+ sizes[n].height,
+ (sizes[n].width * screen->width_mm)/screen->width,
+ (sizes[n].height *screen->height_mm)/screen->height
+ );
+ n++;
+ }
+ }
+
+ pSize = RRRegisterSize (pScreen,
+ screen->width,
+ screen->height,
+ screen->width_mm,
+ screen->height_mm);
+
+ randr = KdSubRotation (scrpriv->randr, screen->randr);
+
+ RRSetCurrentConfig (pScreen, randr, 0, pSize);
+
+ return TRUE;
+}
+
+Bool
+ephyrRandRSetConfig (ScreenPtr pScreen,
+ Rotation randr,
+ int rate,
+ RRScreenSizePtr pSize)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EphyrScrPriv *scrpriv = screen->driver;
+ Bool wasEnabled = pScreenPriv->enabled;
+ EphyrScrPriv oldscr;
+ int oldwidth, oldheight, oldmmwidth, oldmmheight;
+ Bool oldshadow;
+ int newwidth, newheight;
+
+ if (screen->randr & (RR_Rotate_0|RR_Rotate_180))
+ {
+ newwidth = pSize->width;
+ newheight = pSize->height;
+ }
+ else
+ {
+ newwidth = pSize->height;
+ newheight = pSize->width;
+ }
+
+ if (wasEnabled)
+ KdDisableScreen (pScreen);
+
+ oldscr = *scrpriv;
+
+ oldwidth = screen->width;
+ oldheight = screen->height;
+ oldmmwidth = pScreen->mmWidth;
+ oldmmheight = pScreen->mmHeight;
+ oldshadow = scrpriv->shadow;
+
+ /*
+ * Set new configuration
+ */
+
+ scrpriv->randr = KdAddRotation (screen->randr, randr);
+
+ ephyrUnmapFramebuffer (screen);
+
+ screen->width = newwidth;
+ screen->height = newheight;
+
+ if (!ephyrMapFramebuffer (screen))
+ goto bail4;
+
+ /* FIXME below should go in own call */
+
+ if (oldshadow)
+ KdShadowUnset (screen->pScreen);
+ else
+ ephyrUnsetInternalDamage(screen->pScreen);
+
+ if (scrpriv->shadow)
+ {
+ if (!KdShadowSet (screen->pScreen,
+ scrpriv->randr,
+ ephyrShadowUpdate,
+ ephyrWindowLinear))
+ goto bail4;
+ }
+ else
+ {
+ /* Without shadow fb ( non rotated ) we need
+ * to use damage to efficiently update display
+ * via signal regions what to copy from 'fb'.
+ */
+ if (!ephyrSetInternalDamage(screen->pScreen))
+ goto bail4;
+ }
+
+ ephyrSetScreenSizes (screen->pScreen);
+
+ /*
+ * Set frame buffer mapping
+ */
+ (*pScreen->ModifyPixmapHeader) (fbGetScreenPixmap (pScreen),
+ pScreen->width,
+ pScreen->height,
+ screen->fb[0].depth,
+ screen->fb[0].bitsPerPixel,
+ screen->fb[0].byteStride,
+ screen->fb[0].frameBuffer);
+
+ /* set the subpixel order */
+
+ KdSetSubpixelOrder (pScreen, scrpriv->randr);
+
+ if (wasEnabled)
+ KdEnableScreen (pScreen);
+
+ return TRUE;
+
+ bail4:
+ EPHYR_LOG("bailed");
+
+ ephyrUnmapFramebuffer (screen);
+ *scrpriv = oldscr;
+ (void) ephyrMapFramebuffer (screen);
+
+ pScreen->width = oldwidth;
+ pScreen->height = oldheight;
+ pScreen->mmWidth = oldmmwidth;
+ pScreen->mmHeight = oldmmheight;
+
+ if (wasEnabled)
+ KdEnableScreen (pScreen);
+ return FALSE;
+}
+
+Bool
+ephyrRandRInit (ScreenPtr pScreen)
+{
+ rrScrPrivPtr pScrPriv;
+
+ if (!RRScreenInit (pScreen))
+ return FALSE;
+
+ pScrPriv = rrGetScrPriv(pScreen);
+ pScrPriv->rrGetInfo = ephyrRandRGetInfo;
+ pScrPriv->rrSetConfig = ephyrRandRSetConfig;
+ return TRUE;
+}
+#endif
+
+Bool
+ephyrCreateColormap (ColormapPtr pmap)
+{
+ return fbInitializeColormap (pmap);
+}
+
+Bool
+ephyrInitScreen (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+
+ EPHYR_LOG ("pScreen->myNum:%d\n", pScreen->myNum) ;
+ hostx_set_screen_number (screen, pScreen->myNum);
+ hostx_set_win_title (screen, "(ctrl+shift grabs mouse and keyboard)") ;
+ pScreen->CreateColormap = ephyrCreateColormap;
+
+#ifdef XV
+ if (!ephyrNoXV) {
+ if (!ephyrInitVideo (pScreen)) {
+ EPHYR_LOG_ERROR ("failed to initialize xvideo\n") ;
+ } else {
+ EPHYR_LOG ("initialized xvideo okay\n") ;
+ }
+ }
+#endif /*XV*/
+
+#ifdef XF86DRI
+ if (!ephyrNoDRI && !hostx_has_dri ()) {
+ EPHYR_LOG ("host x does not support DRI. Disabling DRI forwarding\n") ;
+ ephyrNoDRI = TRUE ;
+#ifdef GLXEXT
+ noGlxVisualInit = FALSE ;
+#endif
+ }
+ if (!ephyrNoDRI) {
+ ephyrDRIExtensionInit (pScreen) ;
+ ephyrHijackGLXExtension () ;
+ }
+#endif
+
+#ifdef GLXEXT
+ if (ephyrNoDRI) {
+ noGlxVisualInit = FALSE ;
+ }
+#endif
+
+ return TRUE;
+}
+
+Bool
+ephyrFinishInitScreen (ScreenPtr pScreen)
+{
+ /* FIXME: Calling this even if not using shadow.
+ * Seems harmless enough. But may be safer elsewhere.
+ */
+ if (!shadowSetup (pScreen))
+ return FALSE;
+
+#ifdef RANDR
+ if (!ephyrRandRInit (pScreen))
+ return FALSE;
+#endif
+
+ return TRUE;
+}
+
+Bool
+ephyrCreateResources (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EphyrScrPriv *scrpriv = screen->driver;
+
+ EPHYR_LOG("mark pScreen=%p mynum=%d shadow=%d",
+ pScreen, pScreen->myNum, scrpriv->shadow);
+
+ if (scrpriv->shadow)
+ return KdShadowSet (pScreen,
+ scrpriv->randr,
+ ephyrShadowUpdate,
+ ephyrWindowLinear);
+ else
+ return ephyrSetInternalDamage(pScreen);
+}
+
+void
+ephyrPreserve (KdCardInfo *card)
+{
+}
+
+Bool
+ephyrEnable (ScreenPtr pScreen)
+{
+ return TRUE;
+}
+
+Bool
+ephyrDPMS (ScreenPtr pScreen, int mode)
+{
+ return TRUE;
+}
+
+void
+ephyrDisable (ScreenPtr pScreen)
+{
+}
+
+void
+ephyrRestore (KdCardInfo *card)
+{
+}
+
+void
+ephyrScreenFini (KdScreenInfo *screen)
+{
+ EphyrScrPriv *scrpriv = screen->driver;
+ if (scrpriv->shadow) {
+ KdShadowFbFree (screen, 0);
+ }
+ xfree(screen->driver);
+ screen->driver = NULL;
+}
+
+/*
+ * Port of Mark McLoughlin's Xnest fix for focus in + modifier bug.
+ * See https://bugs.freedesktop.org/show_bug.cgi?id=3030
+ */
+void
+ephyrUpdateModifierState(unsigned int state)
+{
+#if 0
+ DeviceIntPtr pkeydev;
+ KeyClassPtr keyc;
+ int i;
+ CARD8 mask;
+
+ pkeydev = inputInfo.keyboard;
+
+ if (!pkeydev)
+ return;
+
+/* This is pretty broken.
+ *
+ * What should happen is that focus out should do as a VT switch does in
+ * traditional servers: fake releases for all keys (and buttons too, come
+ * to think of it) currently down. Then, on focus in, get the state from
+ * the host, and fake keypresses for everything currently down.
+ *
+ * So I'm leaving this broken for a little while. Sorry, folks.
+ *
+ * -daniels
+ */
+
+ keyc = pkeydev->key;
+
+ state = state & 0xff;
+
+ if (keyc->state == state)
+ return;
+
+ for (i = 0, mask = 1; i < 8; i++, mask <<= 1)
+ {
+ int key;
+
+ /* Modifier is down, but shouldn't be */
+ if ((keyc->state & mask) && !(state & mask))
+ {
+ int count = keyc->modifierKeyCount[i];
+
+ for (key = 0; key < MAP_LENGTH; key++)
+ if (keyc->xkbInfo->desc->map->modmap[key] & mask)
+ {
+ int bit;
+ BYTE *kptr;
+
+ kptr = &keyc->down[key >> 3];
+ bit = 1 << (key & 7);
+
+ if (*kptr & bit && ephyrKbd &&
+ ((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
+ KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE); /* release */
+
+ if (--count == 0)
+ break;
+ }
+ }
+
+ /* Modifier shoud be down, but isn't */
+ if (!(keyc->state & mask) && (state & mask))
+ for (key = 0; key < MAP_LENGTH; key++)
+ if (keyc->xkbInfo->desc->map->modmap[key] & mask)
+ {
+ if (keyc->xkbInfo->desc->map->modmap[key] & mask && ephyrKbd &&
+ ((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
+ KdEnqueueKeyboardEvent(ephyrKbd, key, FALSE); /* press */
+ break;
+ }
+ }
+#endif
+}
+
+static void
+ephyrBlockSigio (void)
+{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+ sigset_t set;
+
+ sigemptyset (&set);
+ sigaddset (&set, SIGIO);
+ sigprocmask (SIG_BLOCK, &set, 0);
+#endif
+}
+
+static void
+ephyrUnblockSigio (void)
+{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+ sigset_t set;
+
+ sigemptyset (&set);
+ sigaddset (&set, SIGIO);
+ sigprocmask (SIG_UNBLOCK, &set, 0);
+#endif
+}
+
+static Bool
+ephyrCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y)
+{
+ return FALSE;
+}
+
+static void
+ephyrCrossScreen (ScreenPtr pScreen, Bool entering)
+{
+}
+
+int ephyrCurScreen; /*current event screen*/
+
+static void
+ephyrWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
+{
+ ephyrBlockSigio ();
+ ephyrCurScreen = pScreen->myNum;
+ miPointerWarpCursor (inputInfo.pointer, pScreen, x, y);
+ ephyrUnblockSigio ();
+}
+
+miPointerScreenFuncRec ephyrPointerScreenFuncs =
+{
+ ephyrCursorOffScreen,
+ ephyrCrossScreen,
+ ephyrWarpCursor,
+ NULL,
+ NULL
+};
+
+#ifdef XF86DRI
+/**
+ * find if the remote window denoted by a_remote
+ * is paired with an internal Window within the Xephyr server.
+ * If the remove window is paired with an internal window, send an
+ * expose event to the client insterested in the internal window expose event.
+ *
+ * Pairing happens when a drawable inside Xephyr is associated with
+ * a GL surface in a DRI environment.
+ * Look at the function ProcXF86DRICreateDrawable in ephyrdriext.c to
+ * know a paired window is created.
+ *
+ * This is useful to make GL drawables (only windows for now) handle
+ * expose events and send those events to clients.
+ */
+static void
+ephyrExposePairedWindow (int a_remote)
+{
+ EphyrWindowPair *pair = NULL;
+ RegionRec reg;
+ ScreenPtr screen;
+
+ if (!findWindowPairFromRemote (a_remote, &pair)) {
+ EPHYR_LOG ("did not find a pair for this window\n");
+ return;
+ }
+ screen = pair->local->drawable.pScreen;
+ REGION_NULL (screen, &reg);
+ REGION_COPY (screen, &reg, &pair->local->clipList);
+ screen->WindowExposures (pair->local, &reg, NullRegion);
+ REGION_UNINIT (screen, &reg);
+}
+#endif /* XF86DRI */
+
+void
+ephyrPoll(void)
+{
+ EphyrHostXEvent ev;
+
+ while (hostx_get_event(&ev))
+ {
+ switch (ev.type)
+ {
+ case EPHYR_EV_MOUSE_MOTION:
+ if (!ephyrMouse ||
+ !((EphyrPointerPrivate *)ephyrMouse->driverPrivate)->enabled) {
+ EPHYR_LOG ("skipping mouse motion:%d\n", ephyrCurScreen) ;
+ continue;
+ }
+ {
+ if (ev.data.mouse_motion.screen >=0
+ && (ephyrCurScreen != ev.data.mouse_motion.screen))
+ {
+ EPHYR_LOG ("warping mouse cursor. "
+ "cur_screen%d, motion_screen:%d\n",
+ ephyrCurScreen, ev.data.mouse_motion.screen) ;
+ if (ev.data.mouse_motion.screen >= 0)
+ {
+ ephyrWarpCursor
+ (inputInfo.pointer, screenInfo.screens[ev.data.mouse_motion.screen],
+ ev.data.mouse_motion.x,
+ ev.data.mouse_motion.y );
+ }
+ }
+ else
+ {
+ int x=0, y=0;
+#ifdef XF86DRI
+ EphyrWindowPair *pair = NULL;
+#endif
+ EPHYR_LOG ("enqueuing mouse motion:%d\n", ephyrCurScreen) ;
+ x = ev.data.mouse_motion.x;
+ y = ev.data.mouse_motion.y;
+ EPHYR_LOG ("initial (x,y):(%d,%d)\n", x, y) ;
+#ifdef XF86DRI
+ EPHYR_LOG ("is this window peered by a gl drawable ?\n") ;
+ if (findWindowPairFromRemote (ev.data.mouse_motion.window,
+ &pair))
+ {
+ EPHYR_LOG ("yes, it is peered\n") ;
+ x += pair->local->drawable.x;
+ y += pair->local->drawable.y;
+ }
+ else
+ {
+ EPHYR_LOG ("no, it is not peered\n") ;
+ }
+ EPHYR_LOG ("final (x,y):(%d,%d)\n", x, y) ;
+#endif
+ KdEnqueuePointerEvent(ephyrMouse, mouseState, x, y, 0);
+ }
+ }
+ break;
+
+ case EPHYR_EV_MOUSE_PRESS:
+ if (!ephyrMouse ||
+ !((EphyrPointerPrivate *)ephyrMouse->driverPrivate)->enabled) {
+ EPHYR_LOG ("skipping mouse press:%d\n", ephyrCurScreen) ;
+ continue;
+ }
+ EPHYR_LOG ("enqueuing mouse press:%d\n", ephyrCurScreen) ;
+ ephyrUpdateModifierState(ev.key_state);
+ mouseState |= ev.data.mouse_down.button_num;
+ KdEnqueuePointerEvent(ephyrMouse, mouseState|KD_MOUSE_DELTA, 0, 0, 0);
+ break;
+
+ case EPHYR_EV_MOUSE_RELEASE:
+ if (!ephyrMouse ||
+ !((EphyrPointerPrivate *)ephyrMouse->driverPrivate)->enabled)
+ continue;
+ ephyrUpdateModifierState(ev.key_state);
+ mouseState &= ~ev.data.mouse_up.button_num;
+ EPHYR_LOG ("enqueuing mouse release:%d\n", ephyrCurScreen) ;
+ KdEnqueuePointerEvent(ephyrMouse, mouseState|KD_MOUSE_DELTA, 0, 0, 0);
+ break;
+
+ case EPHYR_EV_KEY_PRESS:
+ if (!ephyrKbd ||
+ !((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
+ continue;
+ ephyrUpdateModifierState(ev.key_state);
+ KdEnqueueKeyboardEvent (ephyrKbd, ev.data.key_down.scancode, FALSE);
+ break;
+
+ case EPHYR_EV_KEY_RELEASE:
+ if (!ephyrKbd ||
+ !((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
+ continue;
+ KdEnqueueKeyboardEvent (ephyrKbd, ev.data.key_up.scancode, TRUE);
+ break;
+
+#ifdef XF86DRI
+ case EPHYR_EV_EXPOSE:
+ /*
+ * We only receive expose events when the expose event have
+ * be generated for a drawable that is a host X window managed
+ * by Xephyr. Host X windows managed by Xephyr exists for instance
+ * when Xephyr is asked to create a GL drawable in a DRI environment.
+ */
+ ephyrExposePairedWindow (ev.data.expose.window);
+ break;
+#endif /* XF86DRI */
+
+ default:
+ break;
+ }
+ }
+}
+
+void
+ephyrCardFini (KdCardInfo *card)
+{
+ EphyrPriv *priv = card->driver;
+ xfree (priv);
+}
+
+void
+ephyrGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs)
+{
+ /* XXX Not sure if this is right */
+
+ EPHYR_LOG("mark");
+
+ while (n--)
+ {
+ pdefs->red = 0;
+ pdefs->green = 0;
+ pdefs->blue = 0;
+ pdefs++;
+ }
+
+}
+
+void
+ephyrPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs)
+{
+ int min, max, p;
+
+ /* XXX Not sure if this is right */
+
+ min = 256;
+ max = 0;
+
+ while (n--)
+ {
+ p = pdefs->pixel;
+ if (p < min)
+ min = p;
+ if (p > max)
+ max = p;
+
+ hostx_set_cmap_entry(p,
+ pdefs->red >> 8,
+ pdefs->green >> 8,
+ pdefs->blue >> 8);
+ pdefs++;
+ }
+}
+
+/* Mouse calls */
+
+static Status
+MouseInit (KdPointerInfo *pi)
+{
+ pi->driverPrivate = (EphyrPointerPrivate *)
+ xcalloc(sizeof(EphyrPointerPrivate), 1);
+ ((EphyrPointerPrivate *)pi->driverPrivate)->enabled = FALSE;
+ pi->nAxes = 3;
+ pi->nButtons = 32;
+ if (pi->name)
+ xfree(pi->name);
+ pi->name = strdup("Xephyr virtual mouse");
+ ephyrMouse = pi;
+ return Success;
+}
+
+static Status
+MouseEnable (KdPointerInfo *pi)
+{
+ ((EphyrPointerPrivate *)pi->driverPrivate)->enabled = TRUE;
+ return Success;
+}
+
+static void
+MouseDisable (KdPointerInfo *pi)
+{
+ ((EphyrPointerPrivate *)pi->driverPrivate)->enabled = FALSE;
+ return;
+}
+
+static void
+MouseFini (KdPointerInfo *pi)
+{
+ ephyrMouse = NULL;
+ return;
+}
+
+KdPointerDriver EphyrMouseDriver = {
+ "ephyr",
+ MouseInit,
+ MouseEnable,
+ MouseDisable,
+ MouseFini,
+ NULL,
+};
+
+/* Keyboard */
+
+static Status
+EphyrKeyboardInit (KdKeyboardInfo *ki)
+{
+ ki->driverPrivate = (EphyrKbdPrivate *)
+ xcalloc(sizeof(EphyrKbdPrivate), 1);
+ hostx_load_keymap();
+ if (!ephyrKeySyms.map) {
+ ErrorF("Couldn't load keymap from host\n");
+ return BadAlloc;
+ }
+ ki->minScanCode = ephyrKeySyms.minKeyCode;
+ ki->maxScanCode = ephyrKeySyms.maxKeyCode;
+ if (ki->name)
+ xfree(ki->name);
+ ki->name = strdup("Xephyr virtual keyboard");
+ ephyrKbd = ki;
+ return Success;
+}
+
+static Status
+EphyrKeyboardEnable (KdKeyboardInfo *ki)
+{
+ ((EphyrKbdPrivate *)ki->driverPrivate)->enabled = TRUE;
+
+ return Success;
+}
+
+static void
+EphyrKeyboardDisable (KdKeyboardInfo *ki)
+{
+ ((EphyrKbdPrivate *)ki->driverPrivate)->enabled = FALSE;
+}
+
+static void
+EphyrKeyboardFini (KdKeyboardInfo *ki)
+{
+ ephyrKbd = NULL;
+ return;
+}
+
+static void
+EphyrKeyboardLeds (KdKeyboardInfo *ki, int leds)
+{
+}
+
+static void
+EphyrKeyboardBell (KdKeyboardInfo *ki, int volume, int frequency, int duration)
+{
+}
+
+
+KdKeyboardDriver EphyrKeyboardDriver = {
+ "ephyr",
+ EphyrKeyboardInit,
+ EphyrKeyboardEnable,
+ EphyrKeyboardLeds,
+ EphyrKeyboardBell,
+ EphyrKeyboardDisable,
+ EphyrKeyboardFini,
+ NULL,
+};
diff --git a/xorg-server/hw/kdrive/ephyr/ephyrinit.c b/xorg-server/hw/kdrive/ephyr/ephyrinit.c
index 27c346dd1..dec57b78c 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyrinit.c
+++ b/xorg-server/hw/kdrive/ephyr/ephyrinit.c
@@ -1,407 +1,421 @@
-/*
- * Xephyr - A kdrive X server thats runs in a host X window.
- * Authored by Matthew Allum <mallum@o-hand.com>
- *
- * Copyright © 2004 Nokia
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Nokia not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Nokia makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <kdrive-config.h>
-#endif
-#include "ephyr.h"
-#include "ephyrlog.h"
-
-extern Window EphyrPreExistingHostWin;
-extern Bool EphyrWantGrayScale;
-extern Bool kdHasPointer;
-extern Bool kdHasKbd;
-
-#ifdef GLXEXT
-extern Bool ephyrNoDRI;
-extern Bool noGlxVisualInit;
-#endif
-extern Bool ephyrNoXV;
-
-void processScreenArg (char *screen_size, char *parent_id) ;
-
-void
-InitCard (char *name)
-{
- KdCardAttr attr;
-
- EPHYR_DBG("mark");
-
-
- KdCardInfoAdd (&ephyrFuncs, &attr, 0);
-}
-
-#ifndef _MSC_VER
-void
-InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv)
-{
- KdInitOutput (pScreenInfo, argc, argv);
-}
-
-void
-InitInput (int argc, char **argv)
-{
- KdKeyboardInfo *ki;
- KdPointerInfo *pi;
-
- KdAddKeyboardDriver(&EphyrKeyboardDriver);
-#ifdef linux
- KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
-#endif
- KdAddPointerDriver(&EphyrMouseDriver);
-#ifdef linux
- KdAddPointerDriver(&LinuxEvdevMouseDriver);
-#endif
-
- if (!kdHasKbd) {
- ki = KdNewKeyboard();
- if (!ki)
- FatalError("Couldn't create Xephyr keyboard\n");
- ki->driver = &EphyrKeyboardDriver;
- KdAddKeyboard(ki);
- }
-
- if (!kdHasPointer) {
- pi = KdNewPointer();
- if (!pi)
- FatalError("Couldn't create Xephyr pointer\n");
- pi->driver = &EphyrMouseDriver;
- KdAddPointer(pi);
- }
-
- KdInitInput();
-}
-
-void
-ddxUseMsg (void)
-{
- KdUseMsg();
-
- ErrorF("\nXephyr Option Usage:\n");
- ErrorF("-parent <XID> Use existing window as Xephyr root win\n");
- ErrorF("-host-cursor Re-use exisiting X host server cursor\n");
- ErrorF("-fullscreen Attempt to run Xephyr fullscreen\n");
- ErrorF("-grayscale Simulate 8bit grayscale\n");
- ErrorF("-fakexa Simulate acceleration using software rendering\n");
- ErrorF("-verbosity <level> Set log verbosity level\n");
-#ifdef GLXEXT
- ErrorF("-nodri do not use DRI\n");
-#endif
- ErrorF("-noxv do not use XV\n");
- ErrorF("-name [name] define the name in the WM_CLASS property\n");
- ErrorF("-title [title] set the window title in the WM_NAME property\n");
- ErrorF("\n");
-
- exit(1);
-}
-#endif
-
-void
-processScreenArg (char *screen_size, char *parent_id)
-{
- KdCardInfo *card;
-
- InitCard (0); /*Put each screen on a separate card*/
- card = KdCardInfoLast ();
-
- if (card)
- {
- KdScreenInfo *screen;
- unsigned long p_id = 0;
-
- screen = KdScreenInfoAdd (card);
- KdParseScreen (screen, screen_size);
-
- if (parent_id)
- {
- p_id = strtol (parent_id, NULL, 0);
- }
- EPHYR_DBG ("screen number:%d\n", screen->mynum) ;
- hostx_add_screen (screen, p_id, screen->mynum);
- }
- else
- {
- ErrorF("No matching card found!\n");
- }
-}
-
-#ifndef _MSC_VER
-int
-ddxProcessArgument (int argc, char **argv, int i)
-{
- EPHYR_DBG("mark argv[%d]='%s'", i, argv[i] );
-
- if (i == 1)
- {
- hostx_use_resname(basename(argv[0]), 0);
- }
-
- if (!strcmp (argv[i], "-parent"))
- {
- if(i+1 < argc)
- {
- processScreenArg ("100x100", argv[i+1]);
- return 2;
- }
-
- UseMsg();
- exit(1);
- }
- else if (!strcmp (argv[i], "-screen"))
- {
- if ((i+1) < argc)
- {
- processScreenArg (argv[i+1], NULL);
- return 2;
- }
-
- UseMsg();
- exit(1);
- }
- else if (!strcmp (argv[i], "-host-cursor"))
- {
- hostx_use_host_cursor();
- return 1;
- }
- else if (!strcmp (argv[i], "-fullscreen"))
- {
- hostx_use_fullscreen();
- return 1;
- }
- else if (!strcmp (argv[i], "-grayscale"))
- {
- EphyrWantGrayScale = 1;
- return 1;
- }
- else if (!strcmp (argv[i], "-fakexa"))
- {
- ephyrFuncs.initAccel = ephyrDrawInit;
- ephyrFuncs.enableAccel = ephyrDrawEnable;
- ephyrFuncs.disableAccel = ephyrDrawDisable;
- ephyrFuncs.finiAccel = ephyrDrawFini;
- return 1;
- }
- else if (!strcmp (argv[i], "-verbosity"))
- {
- if(i+1 < argc && argv[i+1][0] != '-')
- {
- int verbosity=atoi (argv[i+1]) ;
- LogSetParameter (XLOG_VERBOSITY, verbosity) ;
- EPHYR_LOG ("set verbosiry to %d\n", verbosity) ;
- return 2 ;
- }
- else
- {
- UseMsg() ;
- exit(1) ;
- }
- }
-#ifdef GLXEXT
- else if (!strcmp (argv[i], "-nodri"))
- {
- noGlxVisualInit = FALSE ;
- ephyrNoDRI = TRUE ;
- EPHYR_LOG ("no direct rendering enabled\n") ;
- return 1 ;
- }
-#endif
- else if (!strcmp (argv[i], "-noxv"))
- {
- ephyrNoXV = TRUE ;
- EPHYR_LOG ("no XVideo enabled\n") ;
- return 1 ;
- }
- else if (!strcmp (argv[i], "-name"))
- {
- if (i+1 < argc && argv[i+1][0] != '-')
- {
- hostx_use_resname(argv[i+1], 1);
- return 2;
- }
- else
- {
- UseMsg();
- return 0;
- }
- }
- else if (!strcmp (argv[i], "-title"))
- {
- if (i+1 < argc && argv[i+1][0] != '-')
- {
- hostx_set_title(argv[i+1]);
- return 2;
- }
- else
- {
- UseMsg();
- return 0;
- }
- }
- else if (argv[i][0] == ':')
- {
- hostx_set_display_name(argv[i]);
- }
- /* Xnest compatibility */
- else if (!strcmp(argv[i], "-display"))
- {
- hostx_set_display_name(argv[i+1]);
- return 2;
- }
- else if (!strcmp(argv[i], "-sync") ||
- !strcmp(argv[i], "-full") ||
- !strcmp(argv[i], "-sss") ||
- !strcmp(argv[i], "-install"))
- {
- return 1;
- }
- else if (!strcmp(argv[i], "-bw") ||
- !strcmp(argv[i], "-class") ||
- !strcmp(argv[i], "-geometry") ||
- !strcmp(argv[i], "-scrns"))
- {
- return 2;
- }
- /* end Xnest compat */
-
- return KdProcessArgument (argc, argv, i);
-}
-
-#ifdef DDXBEFORERESET
-void
-ddxBeforeReset (void)
-{
-}
-#endif
-
-void
-OsVendorInit (void)
-{
- EPHYR_DBG("mark");
-
- if (hostx_want_host_cursor())
- {
- ephyrFuncs.initCursor = &ephyrCursorInit;
- ephyrFuncs.enableCursor = &ephyrCursorEnable;
- }
-
- KdOsInit (&EphyrOsFuncs);
-}
-
-#ifdef DDXOSFATALERROR
-void
-OsVendorFatalError(void)
-{
-}
-#endif
-
-#endif
-
-/* 'Fake' cursor stuff, could be improved */
-
-static Bool
-ephyrRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
-{
- return TRUE;
-}
-
-static Bool
-ephyrUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
-{
- return TRUE;
-}
-
-static void
-ephyrSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
-{
- ;
-}
-
-static void
-ephyrMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
-{
- ;
-}
-
-static Bool
-ephyrDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen)
-{
- return TRUE;
-}
-
-miPointerSpriteFuncRec EphyrPointerSpriteFuncs = {
- ephyrRealizeCursor,
- ephyrUnrealizeCursor,
- ephyrSetCursor,
- ephyrMoveCursor,
- ephyrDeviceCursorInitialize,
- NULL
-};
-
-
-Bool
-ephyrCursorInit(ScreenPtr pScreen)
-{
- miPointerInitialize(pScreen,
- &EphyrPointerSpriteFuncs,
- &ephyrPointerScreenFuncs,
- FALSE);
-
- return TRUE;
-}
-
-void
-ephyrCursorEnable(ScreenPtr pScreen)
-{
- ;
-}
-
-KdCardFuncs ephyrFuncs = {
- ephyrCardInit, /* cardinit */
- ephyrScreenInit, /* scrinit */
- ephyrInitScreen, /* initScreen */
- ephyrFinishInitScreen, /* finishInitScreen */
- ephyrCreateResources, /* createRes */
- ephyrPreserve, /* preserve */
- ephyrEnable, /* enable */
- ephyrDPMS, /* dpms */
- ephyrDisable, /* disable */
- ephyrRestore, /* restore */
- ephyrScreenFini, /* scrfini */
- ephyrCardFini, /* cardfini */
-
- 0, /* initCursor */
- 0, /* enableCursor */
- 0, /* disableCursor */
- 0, /* finiCursor */
- 0, /* recolorCursor */
-
- 0, /* initAccel */
- 0, /* enableAccel */
- 0, /* disableAccel */
- 0, /* finiAccel */
-
- ephyrGetColors,/* getColors */
- ephyrPutColors, /* putColors */
-};
+/*
+ * Xephyr - A kdrive X server thats runs in a host X window.
+ * Authored by Matthew Allum <mallum@o-hand.com>
+ *
+ * Copyright © 2004 Nokia
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Nokia not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Nokia makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <kdrive-config.h>
+#endif
+#include "ephyr.h"
+#include "ephyrlog.h"
+
+extern Window EphyrPreExistingHostWin;
+extern Bool EphyrWantGrayScale;
+extern Bool kdHasPointer;
+extern Bool kdHasKbd;
+
+#ifdef GLXEXT
+extern Bool ephyrNoDRI;
+extern Bool noGlxVisualInit;
+#endif
+extern Bool ephyrNoXV;
+
+void processScreenArg (char *screen_size, char *parent_id) ;
+
+void
+InitCard (char *name)
+{
+ KdCardAttr attr;
+
+ EPHYR_DBG("mark");
+
+
+ KdCardInfoAdd (&ephyrFuncs, &attr, 0);
+}
+
+#ifndef _MSC_VER
+void
+InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv)
+{
+ KdInitOutput (pScreenInfo, argc, argv);
+}
+
+void
+InitInput (int argc, char **argv)
+{
+ KdKeyboardInfo *ki;
+ KdPointerInfo *pi;
+
+ KdAddKeyboardDriver(&EphyrKeyboardDriver);
+#ifdef linux
+ KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
+#endif
+ KdAddPointerDriver(&EphyrMouseDriver);
+#ifdef linux
+ KdAddPointerDriver(&LinuxEvdevMouseDriver);
+#endif
+
+ if (!kdHasKbd) {
+ ki = KdNewKeyboard();
+ if (!ki)
+ FatalError("Couldn't create Xephyr keyboard\n");
+ ki->driver = &EphyrKeyboardDriver;
+ KdAddKeyboard(ki);
+ }
+
+ if (!kdHasPointer) {
+ pi = KdNewPointer();
+ if (!pi)
+ FatalError("Couldn't create Xephyr pointer\n");
+ pi->driver = &EphyrMouseDriver;
+ KdAddPointer(pi);
+ }
+
+ KdInitInput();
+}
+
+void
+ddxUseMsg (void)
+{
+ KdUseMsg();
+
+ ErrorF("\nXephyr Option Usage:\n");
+ ErrorF("-parent <XID> Use existing window as Xephyr root win\n");
+ ErrorF("-host-cursor Re-use exisiting X host server cursor\n");
+ ErrorF("-fullscreen Attempt to run Xephyr fullscreen\n");
+ ErrorF("-grayscale Simulate 8bit grayscale\n");
+ ErrorF("-fakexa Simulate acceleration using software rendering\n");
+ ErrorF("-verbosity <level> Set log verbosity level\n");
+#ifdef GLXEXT
+ ErrorF("-nodri do not use DRI\n");
+#endif
+ ErrorF("-noxv do not use XV\n");
+ ErrorF("-name [name] define the name in the WM_CLASS property\n");
+ ErrorF("-title [title] set the window title in the WM_NAME property\n");
+ ErrorF("\n");
+
+ exit(1);
+}
+#endif
+
+void
+processScreenArg (char *screen_size, char *parent_id)
+{
+ KdCardInfo *card;
+
+ InitCard (0); /*Put each screen on a separate card*/
+ card = KdCardInfoLast ();
+
+ if (card)
+ {
+ KdScreenInfo *screen;
+ unsigned long p_id = 0;
+
+ screen = KdScreenInfoAdd (card);
+ KdParseScreen (screen, screen_size);
+
+ if (parent_id)
+ {
+ p_id = strtol (parent_id, NULL, 0);
+ }
+ EPHYR_DBG ("screen number:%d\n", screen->mynum) ;
+ hostx_add_screen (screen, p_id, screen->mynum);
+ }
+ else
+ {
+ ErrorF("No matching card found!\n");
+ }
+}
+
+#ifndef _MSC_VER
+int
+ddxProcessArgument (int argc, char **argv, int i)
+{
+ static char* parent = NULL;
+ EPHYR_DBG("mark argv[%d]='%s'", i, argv[i] );
+
+ if (i == 1)
+ {
+ hostx_use_resname(basename(argv[0]), 0);
+ }
+
+ if (!strcmp (argv[i], "-parent"))
+ {
+ if(i+1 < argc)
+ {
+ int j;
+ /* If parent is specified and a screen argument follows, don't do
+ * anything, let the -screen handling init the rest */
+ for (j = i; j < argc; j++)
+ {
+ if (!strcmp(argv[j], "-screen"))
+ {
+ parent = argv[i + 1];
+ return 2;
+ }
+ }
+
+ processScreenArg ("100x100", argv[i+1]);
+ return 2;
+ }
+
+ UseMsg();
+ exit(1);
+ }
+ else if (!strcmp (argv[i], "-screen"))
+ {
+ if ((i+1) < argc)
+ {
+ processScreenArg (argv[i+1], parent);
+ parent = NULL;
+ return 2;
+ }
+
+ UseMsg();
+ exit(1);
+ }
+ else if (!strcmp (argv[i], "-host-cursor"))
+ {
+ hostx_use_host_cursor();
+ return 1;
+ }
+ else if (!strcmp (argv[i], "-fullscreen"))
+ {
+ hostx_use_fullscreen();
+ return 1;
+ }
+ else if (!strcmp (argv[i], "-grayscale"))
+ {
+ EphyrWantGrayScale = 1;
+ return 1;
+ }
+ else if (!strcmp (argv[i], "-fakexa"))
+ {
+ ephyrFuncs.initAccel = ephyrDrawInit;
+ ephyrFuncs.enableAccel = ephyrDrawEnable;
+ ephyrFuncs.disableAccel = ephyrDrawDisable;
+ ephyrFuncs.finiAccel = ephyrDrawFini;
+ return 1;
+ }
+ else if (!strcmp (argv[i], "-verbosity"))
+ {
+ if(i+1 < argc && argv[i+1][0] != '-')
+ {
+ int verbosity=atoi (argv[i+1]) ;
+ LogSetParameter (XLOG_VERBOSITY, verbosity) ;
+ EPHYR_LOG ("set verbosiry to %d\n", verbosity) ;
+ return 2 ;
+ }
+ else
+ {
+ UseMsg() ;
+ exit(1) ;
+ }
+ }
+#ifdef GLXEXT
+ else if (!strcmp (argv[i], "-nodri"))
+ {
+ noGlxVisualInit = FALSE ;
+ ephyrNoDRI = TRUE ;
+ EPHYR_LOG ("no direct rendering enabled\n") ;
+ return 1 ;
+ }
+#endif
+ else if (!strcmp (argv[i], "-noxv"))
+ {
+ ephyrNoXV = TRUE ;
+ EPHYR_LOG ("no XVideo enabled\n") ;
+ return 1 ;
+ }
+ else if (!strcmp (argv[i], "-name"))
+ {
+ if (i+1 < argc && argv[i+1][0] != '-')
+ {
+ hostx_use_resname(argv[i+1], 1);
+ return 2;
+ }
+ else
+ {
+ UseMsg();
+ return 0;
+ }
+ }
+ else if (!strcmp (argv[i], "-title"))
+ {
+ if (i+1 < argc && argv[i+1][0] != '-')
+ {
+ hostx_set_title(argv[i+1]);
+ return 2;
+ }
+ else
+ {
+ UseMsg();
+ return 0;
+ }
+ }
+ else if (argv[i][0] == ':')
+ {
+ hostx_set_display_name(argv[i]);
+ }
+ /* Xnest compatibility */
+ else if (!strcmp(argv[i], "-display"))
+ {
+ hostx_set_display_name(argv[i+1]);
+ return 2;
+ }
+ else if (!strcmp(argv[i], "-sync") ||
+ !strcmp(argv[i], "-full") ||
+ !strcmp(argv[i], "-sss") ||
+ !strcmp(argv[i], "-install"))
+ {
+ return 1;
+ }
+ else if (!strcmp(argv[i], "-bw") ||
+ !strcmp(argv[i], "-class") ||
+ !strcmp(argv[i], "-geometry") ||
+ !strcmp(argv[i], "-scrns"))
+ {
+ return 2;
+ }
+ /* end Xnest compat */
+
+ return KdProcessArgument (argc, argv, i);
+}
+
+#ifdef DDXBEFORERESET
+void
+ddxBeforeReset (void)
+{
+}
+#endif
+
+void
+OsVendorInit (void)
+{
+ EPHYR_DBG("mark");
+
+ if (hostx_want_host_cursor())
+ {
+ ephyrFuncs.initCursor = &ephyrCursorInit;
+ ephyrFuncs.enableCursor = &ephyrCursorEnable;
+ }
+
+ KdOsInit (&EphyrOsFuncs);
+}
+
+#ifdef DDXOSFATALERROR
+void
+OsVendorFatalError(void)
+{
+}
+#endif
+
+#endif
+
+/* 'Fake' cursor stuff, could be improved */
+
+static Bool
+ephyrRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
+{
+ return TRUE;
+}
+
+static Bool
+ephyrUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
+{
+ return TRUE;
+}
+
+static void
+ephyrSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
+{
+ ;
+}
+
+static void
+ephyrMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
+{
+ ;
+}
+
+static Bool
+ephyrDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen)
+{
+ return TRUE;
+}
+
+miPointerSpriteFuncRec EphyrPointerSpriteFuncs = {
+ ephyrRealizeCursor,
+ ephyrUnrealizeCursor,
+ ephyrSetCursor,
+ ephyrMoveCursor,
+ ephyrDeviceCursorInitialize,
+ NULL
+};
+
+
+Bool
+ephyrCursorInit(ScreenPtr pScreen)
+{
+ miPointerInitialize(pScreen,
+ &EphyrPointerSpriteFuncs,
+ &ephyrPointerScreenFuncs,
+ FALSE);
+
+ return TRUE;
+}
+
+void
+ephyrCursorEnable(ScreenPtr pScreen)
+{
+ ;
+}
+
+KdCardFuncs ephyrFuncs = {
+ ephyrCardInit, /* cardinit */
+ ephyrScreenInit, /* scrinit */
+ ephyrInitScreen, /* initScreen */
+ ephyrFinishInitScreen, /* finishInitScreen */
+ ephyrCreateResources, /* createRes */
+ ephyrPreserve, /* preserve */
+ ephyrEnable, /* enable */
+ ephyrDPMS, /* dpms */
+ ephyrDisable, /* disable */
+ ephyrRestore, /* restore */
+ ephyrScreenFini, /* scrfini */
+ ephyrCardFini, /* cardfini */
+
+ 0, /* initCursor */
+ 0, /* enableCursor */
+ 0, /* disableCursor */
+ 0, /* finiCursor */
+ 0, /* recolorCursor */
+
+ 0, /* initAccel */
+ 0, /* enableAccel */
+ 0, /* disableAccel */
+ 0, /* finiAccel */
+
+ ephyrGetColors,/* getColors */
+ ephyrPutColors, /* putColors */
+};
diff --git a/xorg-server/hw/kdrive/src/kinfo.c b/xorg-server/hw/kdrive/src/kinfo.c
index cb646130e..4551fd76b 100644
--- a/xorg-server/hw/kdrive/src/kinfo.c
+++ b/xorg-server/hw/kdrive/src/kinfo.c
@@ -166,6 +166,12 @@ KdFreeKeyboard(KdKeyboardInfo *ki)
xfree(ki->name);
if (ki->path)
xfree(ki->path);
+ if (ki->xkbRules)
+ xfree(ki->xkbRules);
+ if (ki->xkbModel)
+ xfree(ki->xkbModel);
+ if (ki->xkbLayout)
+ xfree(ki->xkbLayout);
ki->next = NULL;
xfree(ki);
}
diff --git a/xorg-server/hw/xfree86/common/compiler.h b/xorg-server/hw/xfree86/common/compiler.h
index 71a94c0c8..ae6a4615c 100644
--- a/xorg-server/hw/xfree86/common/compiler.h
+++ b/xorg-server/hw/xfree86/common/compiler.h
@@ -1211,6 +1211,8 @@ extern _X_EXPORT void (*xf86WriteMmio32)(int, void *, unsigned long);
extern _X_EXPORT void (*xf86WriteMmioNB8)(int, void *, unsigned long);
extern _X_EXPORT void (*xf86WriteMmioNB16)(int, void *, unsigned long);
extern _X_EXPORT void (*xf86WriteMmioNB32)(int, void *, unsigned long);
+extern _X_EXPORT void xf86SlowBCopyFromBus(unsigned char *, unsigned char *, int);
+extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
/* Some macros to hide the system dependencies for MMIO accesses */
/* Changed to kill noise generated by gcc's -Wcast-align */
@@ -1342,4 +1344,18 @@ extern _X_EXPORT void (*xf86WriteMmioNB32)(int, void *, unsigned long);
# define MMIO_MOVE32(base, offset, val) MMIO_OUT32(base, offset, val)
# endif /* __alpha__ */
+
+/*
+ * With Intel, the version in os-support/misc/SlowBcopy.s is used.
+ * This avoids port I/O during the copy (which causes problems with
+ * some hardware).
+ */
+# ifdef __alpha__
+# define slowbcopy_tobus(src,dst,count) xf86SlowBCopyToBus(src,dst,count)
+# define slowbcopy_frombus(src,dst,count) xf86SlowBCopyFromBus(src,dst,count)
+# else /* __alpha__ */
+# define slowbcopy_tobus(src,dst,count) xf86SlowBcopy(src,dst,count)
+# define slowbcopy_frombus(src,dst,count) xf86SlowBcopy(src,dst,count)
+# endif /* __alpha__ */
+
#endif /* _COMPILER_H */
diff --git a/xorg-server/hw/xfree86/common/xf86DGA.c b/xorg-server/hw/xfree86/common/xf86DGA.c
index 42b7c5805..804fd37c1 100644
--- a/xorg-server/hw/xfree86/common/xf86DGA.c
+++ b/xorg-server/hw/xfree86/common/xf86DGA.c
@@ -120,8 +120,22 @@ DGAInit(
DGAScreenKey = &DGAScreenKeyIndex;
- if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
- return FALSE;
+ pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen);
+
+ if (!pScreenPriv)
+ {
+ if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
+ return FALSE;
+ dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
+ pScreenPriv->CloseScreen = pScreen->CloseScreen;
+ pScreen->CloseScreen = DGACloseScreen;
+ pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
+ pScreen->DestroyColormap = DGADestroyColormap;
+ pScreenPriv->InstallColormap = pScreen->InstallColormap;
+ pScreen->InstallColormap = DGAInstallColormap;
+ pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
+ pScreen->UninstallColormap = DGAUninstallColormap;
+ }
pScreenPriv->pScrn = pScrn;
pScreenPriv->numModes = num;
@@ -146,17 +160,6 @@ DGAInit(
modes[i].flags &= ~DGA_PIXMAP_AVAILABLE;
#endif
- dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
- pScreenPriv->CloseScreen = pScreen->CloseScreen;
- pScreen->CloseScreen = DGACloseScreen;
- pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
- pScreen->DestroyColormap = DGADestroyColormap;
- pScreenPriv->InstallColormap = pScreen->InstallColormap;
- pScreen->InstallColormap = DGAInstallColormap;
- pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
- pScreen->UninstallColormap = DGAUninstallColormap;
-
-
return TRUE;
}
diff --git a/xorg-server/hw/xfree86/loader/sdksyms.c b/xorg-server/hw/xfree86/loader/sdksyms.c
index df06ef561..12af6b72e 100644
--- a/xorg-server/hw/xfree86/loader/sdksyms.c
+++ b/xorg-server/hw/xfree86/loader/sdksyms.c
@@ -740,6 +740,7 @@ _X_HIDDEN void *xorg_symbols[] = {
(void *) &IsKeyboardDevice,
(void *) &IsPointerEvent,
(void *) &IsMaster,
+ (void *) &CopyKeyClass,
(void *) &CorePointerProc,
(void *) &CoreKeyboardProc,
(void *) &SecurityLookupWindow,
@@ -804,6 +805,7 @@ _X_HIDDEN void *xorg_symbols[] = {
(void *) &FreeColors,
(void *) &StoreColors,
(void *) &IsMapInstalled,
+ (void *) &ResizeVisualArray,
(void *) &screenInfo,
(void *) &InitOutput,
(void *) &FindGlyphHashSet,
diff --git a/xorg-server/hw/xfree86/modes/xf86Crtc.c b/xorg-server/hw/xfree86/modes/xf86Crtc.c
index c1e31e003..506fbb9cb 100644
--- a/xorg-server/hw/xfree86/modes/xf86Crtc.c
+++ b/xorg-server/hw/xfree86/modes/xf86Crtc.c
@@ -806,7 +806,7 @@ xf86CrtcScreenInit (ScreenPtr screen)
screen->CloseScreen = xf86CrtcCloseScreen;
#ifdef XFreeXDGA
- xf86DiDGAInit(screen, 0);
+ _xf86_di_dga_init_internal(screen);
#endif
#ifdef RANDR_13_INTERFACE
return RANDR_INTERFACE_VERSION;
@@ -1928,7 +1928,7 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
scrn->currentMode = scrn->modes;
#ifdef XFreeXDGA
if (scrn->pScreen)
- xf86DiDGAReInit(scrn->pScreen);
+ _xf86_di_dga_reinit_internal(scrn->pScreen);
#endif
}
diff --git a/xorg-server/hw/xfree86/modes/xf86Crtc.h b/xorg-server/hw/xfree86/modes/xf86Crtc.h
index 69afaa5d1..9baa956a3 100644
--- a/xorg-server/hw/xfree86/modes/xf86Crtc.h
+++ b/xorg-server/hw/xfree86/modes/xf86Crtc.h
@@ -833,6 +833,10 @@ xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus);
extern _X_EXPORT Bool
xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
+/* this is the real function, used only internally */
+_X_INTERNAL Bool
+_xf86_di_dga_init_internal (ScreenPtr pScreen);
+
/**
* Re-initialize dga for this screen (as when the set of modes changes)
*/
@@ -841,6 +845,10 @@ extern _X_EXPORT Bool
xf86DiDGAReInit (ScreenPtr pScreen);
#endif
+/* This is the real function, used only internally */
+_X_INTERNAL Bool
+_xf86_di_dga_reinit_internal (ScreenPtr pScreen);
+
/*
* Set the subpixel order reported for the screen using
* the information from the outputs
diff --git a/xorg-server/hw/xfree86/modes/xf86DiDGA.c b/xorg-server/hw/xfree86/modes/xf86DiDGA.c
index 0f7b8342c..60fbdbf05 100644
--- a/xorg-server/hw/xfree86/modes/xf86DiDGA.c
+++ b/xorg-server/hw/xfree86/modes/xf86DiDGA.c
@@ -175,6 +175,12 @@ static DGAFunctionRec xf86_dga_funcs = {
Bool
xf86DiDGAReInit (ScreenPtr pScreen)
{
+ return TRUE;
+}
+
+Bool
+_xf86_di_dga_reinit_internal (ScreenPtr pScreen)
+{
ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -190,12 +196,15 @@ xf86DiDGAReInit (ScreenPtr pScreen)
Bool
xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
{
+ return TRUE;
+}
+
+Bool
+_xf86_di_dga_init_internal (ScreenPtr pScreen)
+{
ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
- if (DGAAvailable(pScreen->myNum))
- return TRUE;
-
xf86_config->dga_flags = 0;
xf86_config->dga_address = 0;
xf86_config->dga_width = 0;
diff --git a/xorg-server/hw/xfree86/modes/xf86EdidModes.c b/xorg-server/hw/xfree86/modes/xf86EdidModes.c
index 6e11f9a3d..2f80070cf 100644
--- a/xorg-server/hw/xfree86/modes/xf86EdidModes.c
+++ b/xorg-server/hw/xfree86/modes/xf86EdidModes.c
@@ -957,7 +957,7 @@ xf86EdidMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC)
quirks = xf86DDCDetectQuirks(scrnIndex, DDC, FALSE);
- if (Monitor->widthmm <= 0 && Monitor->heightmm <= 0) {
+ if (Monitor->widthmm <= 0 || Monitor->heightmm <= 0) {
Monitor->widthmm = 10 * DDC->features.hsize;
Monitor->heightmm = 10 * DDC->features.vsize;
}
diff --git a/xorg-server/hw/xfree86/modes/xf86Rotate.c b/xorg-server/hw/xfree86/modes/xf86Rotate.c
index 9e65c9969..5de6b0c00 100644
--- a/xorg-server/hw/xfree86/modes/xf86Rotate.c
+++ b/xorg-server/hw/xfree86/modes/xf86Rotate.c
@@ -268,13 +268,9 @@ xf86RotateBlockHandler(int screenNum, pointer blockData,
rotation_active = xf86RotateRedisplay(pScreen);
pScreen->BlockHandler = xf86_config->BlockHandler;
(*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask);
- if (rotation_active) {
- /* Re-wrap if rotation is still happening */
- xf86_config->BlockHandler = pScreen->BlockHandler;
- pScreen->BlockHandler = xf86RotateBlockHandler;
- } else {
- xf86_config->BlockHandler = NULL;
- }
+ /* cannot avoid re-wrapping until all wrapping is audited */
+ xf86_config->BlockHandler = pScreen->BlockHandler;
+ pScreen->BlockHandler = xf86RotateBlockHandler;
}
void
diff --git a/xorg-server/hw/xfree86/os-support/hurd/hurd_video.c b/xorg-server/hw/xfree86/os-support/hurd/hurd_video.c
index b8b00c892..4a99db375 100644
--- a/xorg-server/hw/xfree86/os-support/hurd/hurd_video.c
+++ b/xorg-server/hw/xfree86/os-support/hurd/hurd_video.c
@@ -42,7 +42,7 @@
* Video Memory Mapping section
***************************************************************************/
static pointer
-mapVidMem(int ScreenNum,int Flags, unsigned long Base, unsigned long Size)
+mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int Flags)
{
mach_port_t device,iopl_dev;
memory_object_t iopl_mem;
diff --git a/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c b/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
index 8a5017e52..182a3e6ec 100644
--- a/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -1,8 +1,15 @@
+/*******************************************************************************
+ for Alpha Linux
+*******************************************************************************/
+
/*
* Create a dependency that should be immune from the effect of register
* renaming as is commonly seen in superscalar processors. This should
* insert a minimum of 100-ns delays between reads/writes at clock rates
* up to 100 MHz---GGL
+ *
+ * Slowbcopy(char *src, char *dst, int count)
+ *
*/
#ifdef HAVE_XORG_CONFIG_H
@@ -47,3 +54,48 @@ xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
while(len--)
*dst++ = *src++;
}
+
+#ifdef __alpha__
+
+#ifdef linux
+
+#define SPARSE (7)
+
+#else
+
+#define SPARSE 0
+
+#endif
+
+void
+xf86SlowBCopyFromBus(unsigned char *src, unsigned char *dst, int count)
+{
+ unsigned long addr;
+ long result;
+
+ addr = (unsigned long) src;
+ while( count ){
+ result = *(volatile int *) addr;
+ result >>= ((addr>>SPARSE) & 3) * 8;
+ *dst++ = (unsigned char) (0xffUL & result);
+ addr += 1<<SPARSE;
+ count--;
+ outb(0x80, 0x00);
+ }
+}
+
+void
+xf86SlowBCopyToBus(unsigned char *src, unsigned char *dst, int count)
+{
+ unsigned long addr;
+
+ addr = (unsigned long) dst;
+ while(count) {
+ *(volatile unsigned int *) addr = (unsigned short)(*src) * 0x01010101;
+ src++;
+ addr += 1<<SPARSE;
+ count--;
+ outb(0x80, 0x00);
+ }
+}
+#endif
diff --git a/xorg-server/hw/xfree86/os-support/shared/bios_mmap.c b/xorg-server/hw/xfree86/os-support/shared/bios_mmap.c
index a615a1d45..40afd5b8e 100644
--- a/xorg-server/hw/xfree86/os-support/shared/bios_mmap.c
+++ b/xorg-server/hw/xfree86/os-support/shared/bios_mmap.c
@@ -131,7 +131,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
return(-1);
}
- xf86SlowBcopy((unsigned char *)(base+Offset), Buf, Len);
+ xf86SlowBCopyFromBus((unsigned char *)(base+Offset), Buf, Len);
munmap((caddr_t)base, mlen);
close(fd);
diff --git a/xorg-server/hw/xfree86/vgahw/vgaHW.c b/xorg-server/hw/xfree86/vgahw/vgaHW.c
index 025dde2da..004376b75 100644
--- a/xorg-server/hw/xfree86/vgahw/vgaHW.c
+++ b/xorg-server/hw/xfree86/vgahw/vgaHW.c
@@ -793,7 +793,7 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
if (hwp->FontInfo1) {
hwp->writeSeq(hwp, 0x02, 0x04); /* write to plane 2 */
hwp->writeGr(hwp, 0x04, 0x02); /* read plane 2 */
- xf86SlowBcopy(hwp->FontInfo1, hwp->Base, FONT_AMOUNT);
+ slowbcopy_tobus(hwp->FontInfo1, hwp->Base, FONT_AMOUNT);
}
#endif
@@ -801,7 +801,7 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
if (hwp->FontInfo2) {
hwp->writeSeq(hwp, 0x02, 0x08); /* write to plane 3 */
hwp->writeGr(hwp, 0x04, 0x03); /* read plane 3 */
- xf86SlowBcopy(hwp->FontInfo2, hwp->Base, FONT_AMOUNT);
+ slowbcopy_tobus(hwp->FontInfo2, hwp->Base, FONT_AMOUNT);
}
#endif
@@ -809,10 +809,10 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
if (hwp->TextInfo) {
hwp->writeSeq(hwp, 0x02, 0x01); /* write to plane 0 */
hwp->writeGr(hwp, 0x04, 0x00); /* read plane 0 */
- xf86SlowBcopy(hwp->TextInfo, hwp->Base, TEXT_AMOUNT);
+ slowbcopy_tobus(hwp->TextInfo, hwp->Base, TEXT_AMOUNT);
hwp->writeSeq(hwp, 0x02, 0x02); /* write to plane 1 */
hwp->writeGr(hwp, 0x04, 0x01); /* read plane 1 */
- xf86SlowBcopy((unsigned char *)hwp->TextInfo + TEXT_AMOUNT,
+ slowbcopy_tobus((unsigned char *)hwp->TextInfo + TEXT_AMOUNT,
hwp->Base, TEXT_AMOUNT);
}
#endif
@@ -971,24 +971,24 @@ vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save)
if (hwp->FontInfo1 || (hwp->FontInfo1 = xalloc(FONT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x04); /* write to plane 2 */
hwp->writeGr(hwp, 0x04, 0x02); /* read plane 2 */
- xf86SlowBcopy(hwp->Base, hwp->FontInfo1, FONT_AMOUNT);
+ slowbcopy_frombus(hwp->Base, hwp->FontInfo1, FONT_AMOUNT);
}
#endif /* SAVE_FONT1 */
#if SAVE_FONT2
if (hwp->FontInfo2 || (hwp->FontInfo2 = xalloc(FONT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x08); /* write to plane 3 */
hwp->writeGr(hwp, 0x04, 0x03); /* read plane 3 */
- xf86SlowBcopy(hwp->Base, hwp->FontInfo2, FONT_AMOUNT);
+ slowbcopy_frombus(hwp->Base, hwp->FontInfo2, FONT_AMOUNT);
}
#endif /* SAVE_FONT2 */
#if SAVE_TEXT
if (hwp->TextInfo || (hwp->TextInfo = xalloc(2 * TEXT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x01); /* write to plane 0 */
hwp->writeGr(hwp, 0x04, 0x00); /* read plane 0 */
- xf86SlowBcopy(hwp->Base, hwp->TextInfo, TEXT_AMOUNT);
+ slowbcopy_frombus(hwp->Base, hwp->TextInfo, TEXT_AMOUNT);
hwp->writeSeq(hwp, 0x02, 0x02); /* write to plane 1 */
hwp->writeGr(hwp, 0x04, 0x01); /* read plane 1 */
- xf86SlowBcopy(hwp->Base,
+ slowbcopy_frombus(hwp->Base,
(unsigned char *)hwp->TextInfo + TEXT_AMOUNT, TEXT_AMOUNT);
}
#endif /* SAVE_TEXT */
diff --git a/xorg-server/hw/xquartz/GL/capabilities.c b/xorg-server/hw/xquartz/GL/capabilities.c
index 99b9eae61..43064044c 100644
--- a/xorg-server/hw/xquartz/GL/capabilities.c
+++ b/xorg-server/hw/xquartz/GL/capabilities.c
@@ -103,7 +103,7 @@ static void handleStencilModes(struct glCapabilitiesConfig *c, GLint smodes) {
}
static int handleColorAndAccumulation(struct glColorBufCapabilities *c,
- GLint cmodes) {
+ GLint cmodes, int forAccum) {
int offset = 0;
/*1*/
@@ -204,8 +204,9 @@ static int handleColorAndAccumulation(struct glColorBufCapabilities *c,
++offset;
}
-#if 0
- /*
+ if(forAccum) {
+//#if 0
+ /* FIXME
* Disable this path, because some part of libGL, X, or Xplugin
* doesn't work with sizes greater than 8.
* When this is enabled and visuals are chosen using depths
@@ -274,7 +275,8 @@ static int handleColorAndAccumulation(struct glColorBufCapabilities *c,
c[offset].a = 16;
++offset;
}
-#endif
+ }
+//#endif
/* FIXME should we handle the floating point color modes, and if so, how? */
@@ -284,14 +286,14 @@ static int handleColorAndAccumulation(struct glColorBufCapabilities *c,
static void handleColorModes(struct glCapabilitiesConfig *c, GLint cmodes) {
c->total_color_buffers = handleColorAndAccumulation(c->color_buffers,
- cmodes);
+ cmodes, 0);
assert(c->total_color_buffers < GLCAPS_COLOR_BUFFERS);
}
static void handleAccumulationModes(struct glCapabilitiesConfig *c, GLint cmodes) {
c->total_accum_buffers = handleColorAndAccumulation(c->accum_buffers,
- cmodes);
+ cmodes, 1);
assert(c->total_accum_buffers < GLCAPS_COLOR_BUFFERS);
}
diff --git a/xorg-server/hw/xquartz/GL/visualConfigs.c b/xorg-server/hw/xquartz/GL/visualConfigs.c
index fee665d1d..f92677847 100644
--- a/xorg-server/hw/xquartz/GL/visualConfigs.c
+++ b/xorg-server/hw/xquartz/GL/visualConfigs.c
@@ -277,7 +277,7 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
(c-1)->next = NULL;
if (c - visualConfigs != numConfigs) {
- FatalError("numConfigs calculation error in setVisualConfigs! numConfigs is %d i is %d\n", numConfigs, c - visualConfigs);
+ FatalError("numConfigs calculation error in setVisualConfigs! numConfigs is %d i is %d\n", numConfigs, (int)(c - visualConfigs));
}
freeGlCapabilities(&caps);
diff --git a/xorg-server/hw/xquartz/Makefile.am b/xorg-server/hw/xquartz/Makefile.am
index ae8aa7f53..65c70b076 100644
--- a/xorg-server/hw/xquartz/Makefile.am
+++ b/xorg-server/hw/xquartz/Makefile.am
@@ -33,7 +33,6 @@ libXquartz_la_SOURCES = \
quartzAudio.c \
quartzCocoa.m \
quartzKeyboard.c \
- quartzPasteboard.c \
quartzStartup.c \
threadSafety.c
@@ -50,7 +49,6 @@ EXTRA_DIST = \
quartzAudio.h \
quartzCommon.h \
quartzKeyboard.h \
- quartzPasteboard.h \
sanitizedCarbon.h \
sanitizedCocoa.h \
threadSafety.h
diff --git a/xorg-server/hw/xquartz/Makefile.in b/xorg-server/hw/xquartz/Makefile.in
index e63ae0d6a..a5f6a17a1 100644
--- a/xorg-server/hw/xquartz/Makefile.in
+++ b/xorg-server/hw/xquartz/Makefile.in
@@ -61,7 +61,7 @@ am_libXquartz_la_OBJECTS = fbcmap_mi.lo miinitext.lo X11Application.lo \
X11Controller.lo applewm.lo darwin.lo darwinEvents.lo \
darwinXinput.lo keysym2ucs.lo pseudoramiX.lo quartz.lo \
quartzAudio.lo quartzCocoa.lo quartzKeyboard.lo \
- quartzPasteboard.lo quartzStartup.lo threadSafety.lo
+ quartzStartup.lo threadSafety.lo
libXquartz_la_OBJECTS = $(am_libXquartz_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -465,7 +465,6 @@ libXquartz_la_SOURCES = \
quartzAudio.c \
quartzCocoa.m \
quartzKeyboard.c \
- quartzPasteboard.c \
quartzStartup.c \
threadSafety.c
@@ -482,7 +481,6 @@ EXTRA_DIST = \
quartzAudio.h \
quartzCommon.h \
quartzKeyboard.h \
- quartzPasteboard.h \
sanitizedCarbon.h \
sanitizedCocoa.h \
threadSafety.h
@@ -553,7 +551,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quartzAudio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quartzCocoa.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quartzKeyboard.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quartzPasteboard.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quartzStartup.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadSafety.Plo@am__quote@
diff --git a/xorg-server/hw/xquartz/X11Application.m b/xorg-server/hw/xquartz/X11Application.m
index 9fb192648..749a8932b 100644
--- a/xorg-server/hw/xquartz/X11Application.m
+++ b/xorg-server/hw/xquartz/X11Application.m
@@ -184,9 +184,6 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
}
- (void) activateX:(OSX_BOOL)state {
- /* Create a TSM document that supports full Unicode input, and
- have it activated while X is active */
- static TSMDocumentID x11_document;
size_t i;
DEBUG_LOG("state=%d, _x_active=%d, \n", state, _x_active)
if (state) {
@@ -195,16 +192,6 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
bgMouseLocationUpdated = FALSE;
}
DarwinSendDDXEvent(kXquartzActivate, 0);
-
- if (!_x_active) {
- if (x11_document == 0) {
- OSType types[1];
- types[0] = kUnicodeDocument;
- NewTSMDocument (1, types, &x11_document, 0);
- }
-
- if (x11_document != 0) ActivateTSMDocument (x11_document);
- }
} else {
if(darwin_all_modifier_flags)
@@ -217,9 +204,6 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
}
DarwinSendDDXEvent(kXquartzDeactivate, 0);
-
- if (_x_active && x11_document != 0)
- DeactivateTSMDocument (x11_document);
}
_x_active = state;
@@ -259,23 +243,26 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
if(!for_appkit) {
NSPoint NSlocation = [e locationInWindow];
NSWindow *window = [e window];
-
+ NSRect NSframe, NSvisibleFrame;
+ CGRect CGframe, CGvisibleFrame;
+ CGPoint CGlocation;
+
if (window != nil) {
NSRect frame = [window frame];
NSlocation.x += frame.origin.x;
NSlocation.y += frame.origin.y;
}
- NSRect NSframe = [[NSScreen mainScreen] frame];
- NSRect NSvisibleFrame = [[NSScreen mainScreen] visibleFrame];
+ NSframe = [[NSScreen mainScreen] frame];
+ NSvisibleFrame = [[NSScreen mainScreen] visibleFrame];
- CGRect CGframe = CGRectMake(NSframe.origin.x, NSframe.origin.y,
+ CGframe = CGRectMake(NSframe.origin.x, NSframe.origin.y,
NSframe.size.width, NSframe.size.height);
- CGRect CGvisibleFrame = CGRectMake(NSvisibleFrame.origin.x,
+ CGvisibleFrame = CGRectMake(NSvisibleFrame.origin.x,
NSvisibleFrame.origin.y,
NSvisibleFrame.size.width,
NSvisibleFrame.size.height);
- CGPoint CGlocation = CGPointMake(NSlocation.x, NSlocation.y);
+ CGlocation = CGPointMake(NSlocation.x, NSlocation.y);
if(CGRectContainsPoint(CGframe, CGlocation) &&
!CGRectContainsPoint(CGvisibleFrame, CGlocation))
@@ -350,6 +337,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
case NSApplicationActivatedEventType:
for_x = NO;
if ([self modalWindow] == nil) {
+ BOOL switch_on_activate, ok;
for_appkit = NO;
/* FIXME: hack to avoid having to pass the event to appkit,
@@ -360,7 +348,6 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
/* Get the Spaces preference for SwitchOnActivate */
(void)CFPreferencesAppSynchronize(CFSTR(".GlobalPreferences"));
- BOOL switch_on_activate, ok;
switch_on_activate = CFPreferencesGetAppBooleanValue(CFSTR("AppleSpacesSwitchOnActivate"), CFSTR(".GlobalPreferences"), &ok);
if(!ok)
switch_on_activate = YES;
@@ -1180,6 +1167,17 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe
break;
case NSKeyDown: case NSKeyUp:
+ {
+ /* XKB clobbers our keymap at startup, so we need to force it on the first keypress.
+ * TODO: Make this less of a kludge.
+ */
+ static int force_resync_keymap = YES;
+ if(force_resync_keymap) {
+ DarwinSendDDXEvent(kXquartzReloadKeymap, 0);
+ force_resync_keymap = NO;
+ }
+ }
+
if(darwinSyncKeymap) {
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
TISInputSourceRef key_layout = TISCopyCurrentKeyboardLayoutInputSource();
diff --git a/xorg-server/hw/xquartz/X11Controller.m b/xorg-server/hw/xquartz/X11Controller.m
index f58747e15..d8d23ec2f 100644
--- a/xorg-server/hw/xquartz/X11Controller.m
+++ b/xorg-server/hw/xquartz/X11Controller.m
@@ -632,6 +632,8 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
- (IBAction)prefs_changed:sender
{
+ BOOL pbproxy_active;
+
darwinFakeButtons = [fake_buttons intValue];
quartzUseSysBeep = [use_sysbeep intValue];
X11EnableKeyEquivalents = [enable_keyequivs intValue];
@@ -653,7 +655,7 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
[NSApp prefs_set_boolean:@PREFS_NO_TCP value:![enable_tcp intValue]];
[NSApp prefs_set_integer:@PREFS_DEPTH value:[depth selectedTag]];
- BOOL pbproxy_active = [sync_pasteboard intValue];
+ pbproxy_active = [sync_pasteboard intValue];
[NSApp prefs_set_boolean:@PREFS_SYNC_PB value:pbproxy_active];
[NSApp prefs_set_boolean:@PREFS_SYNC_PB_TO_CLIPBOARD value:[sync_pasteboard_to_clipboard intValue]];
diff --git a/xorg-server/hw/xquartz/applewm.c b/xorg-server/hw/xquartz/applewm.c
index 14be180a1..d2cca13f3 100644
--- a/xorg-server/hw/xquartz/applewm.c
+++ b/xorg-server/hw/xquartz/applewm.c
@@ -210,10 +210,7 @@ updateEventMask (WMEventPtr *pHead)
/*ARGSUSED*/
static int
-WMFreeClient (data, id)
- pointer data;
- XID id;
-{
+WMFreeClient (pointer data, XID id) {
WMEventPtr pEvent;
WMEventPtr *pHead, pCur, pPrev;
@@ -237,10 +234,7 @@ WMFreeClient (data, id)
/*ARGSUSED*/
static int
-WMFreeEvents (data, id)
- pointer data;
- XID id;
-{
+WMFreeEvents (pointer data, XID id) {
WMEventPtr *pHead, pCur, pNext;
pHead = (WMEventPtr *) data;
@@ -344,10 +338,7 @@ ProcAppleWMSelectInput (register ClientPtr client)
*/
void
-AppleWMSendEvent (type, mask, which, arg)
- int type, which, arg;
- unsigned int mask;
-{
+AppleWMSendEvent (int type, unsigned int mask, int which, int arg) {
WMEventPtr *pHead, pEvent;
ClientPtr client;
xAppleWMNotifyEvent se;
@@ -712,9 +703,7 @@ ProcAppleWMDispatch (
}
static void
-SNotifyEvent(from, to)
- xAppleWMNotifyEvent *from, *to;
-{
+SNotifyEvent(xAppleWMNotifyEvent *from, xAppleWMNotifyEvent *to) {
to->type = from->type;
to->kind = from->kind;
cpswaps (from->sequenceNumber, to->sequenceNumber);
diff --git a/xorg-server/hw/xquartz/darwin.c b/xorg-server/hw/xquartz/darwin.c
index 7129ac61f..30b890589 100644
--- a/xorg-server/hw/xquartz/darwin.c
+++ b/xorg-server/hw/xquartz/darwin.c
@@ -67,8 +67,7 @@
#include <IOKit/hidsystem/IOHIDLib.h>
#ifdef MITSHM
-#define _XSHM_SERVER_
-#include <X11/extensions/XShm.h>
+#include "shmint.h"
#endif
#include "darwin.h"
@@ -291,8 +290,8 @@ static int DarwinMouseProc(DeviceIntPtr pPointer, int what) {
#define NAXES 2
// 7 buttons: left, right, middle, then four scroll wheel "buttons"
CARD8 map[NBUTTONS + 1] = {0, 1, 2, 3, 4, 5, 6, 7};
- Atom btn_labels[NAXES] = {0};
- Atom axes_labels[NBUTTONS] = {0};
+ Atom btn_labels[NBUTTONS] = {0};
+ Atom axes_labels[NAXES] = {0};
switch (what) {
case DEVICE_INIT:
@@ -341,8 +340,8 @@ static int DarwinTabletProc(DeviceIntPtr pPointer, int what) {
#define NBUTTONS 3
#define NAXES 5
CARD8 map[NBUTTONS + 1] = {0, 1, 2, 3};
- Atom axes_labels[NAXES] = {0};
Atom btn_labels[NBUTTONS] = {0};
+ Atom axes_labels[NAXES] = {0};
switch (what) {
case DEVICE_INIT:
@@ -354,6 +353,9 @@ static int DarwinTabletProc(DeviceIntPtr pPointer, int what) {
axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X);
axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y);
+ axes_labels[2] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_PRESSURE);
+ axes_labels[3] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_TILT_X);
+ axes_labels[4] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_TILT_Y);
// Set button map.
InitPointerDeviceStruct((DevicePtr)pPointer, map, NBUTTONS,
diff --git a/xorg-server/hw/xquartz/darwinEvents.c b/xorg-server/hw/xquartz/darwinEvents.c
index 4822af479..421efcedf 100644
--- a/xorg-server/hw/xquartz/darwinEvents.c
+++ b/xorg-server/hw/xquartz/darwinEvents.c
@@ -43,6 +43,7 @@ in this Software without prior written authorization from The Open Group.
#include "windowstr.h"
#include "pixmapstr.h"
#include "inputstr.h"
+#include "eventstr.h"
#include "mi.h"
#include "scrnintstr.h"
#include "mipointer.h"
@@ -71,7 +72,7 @@ in this Software without prior written authorization from The Open Group.
#include "applewmExt.h"
/* FIXME: Abstract this better */
-void QuartzModeEQInit(void);
+extern Bool QuartzModeEventHandler(int screenNum, XQuartzEvent *e, DeviceIntPtr dev);
int darwin_all_modifier_flags = 0; // last known modifier state
int darwin_all_modifier_mask = 0;
@@ -84,7 +85,7 @@ static pthread_mutex_t fd_add_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t fd_add_ready_cond = PTHREAD_COND_INITIALIZER;
static pthread_t fd_add_tid = NULL;
-static EventList *darwinEvents = NULL;
+static EventListPtr darwinEvents = NULL;
static pthread_mutex_t mieq_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t mieq_ready_cond = PTHREAD_COND_INITIALIZER;
@@ -190,89 +191,98 @@ static void DarwinUpdateModifiers(
be moved into their own individual functions and set as handlers using
mieqSetHandler. */
-static void DarwinEventHandler(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents) {
- int i;
-
+static void DarwinEventHandler(int screenNum, InternalEvent *ie, DeviceIntPtr dev) {
+ XQuartzEvent *e = &(ie->xquartz_event);
+
TA_SERVER();
-// DEBUG_LOG("DarwinEventHandler(%d, %p, %p, %d)\n", screenNum, xe, dev, nevents);
- for (i=0; i<nevents; i++) {
- switch(xe[i].u.u.type) {
- case kXquartzControllerNotify:
- DEBUG_LOG("kXquartzControllerNotify\n");
- AppleWMSendEvent(AppleWMControllerNotify,
- AppleWMControllerNotifyMask,
- xe[i].u.clientMessage.u.l.longs0,
- xe[i].u.clientMessage.u.l.longs1);
- break;
-
- case kXquartzPasteboardNotify:
- DEBUG_LOG("kXquartzPasteboardNotify\n");
- AppleWMSendEvent(AppleWMPasteboardNotify,
- AppleWMPasteboardNotifyMask,
- xe[i].u.clientMessage.u.l.longs0,
- xe[i].u.clientMessage.u.l.longs1);
- break;
-
- case kXquartzActivate:
- DEBUG_LOG("kXquartzActivate\n");
- QuartzShow(xe[i].u.keyButtonPointer.rootX,
- xe[i].u.keyButtonPointer.rootY);
- AppleWMSendEvent(AppleWMActivationNotify,
- AppleWMActivationNotifyMask,
- AppleWMIsActive, 0);
- break;
-
- case kXquartzDeactivate:
- DEBUG_LOG("kXquartzDeactivate\n");
- AppleWMSendEvent(AppleWMActivationNotify,
- AppleWMActivationNotifyMask,
- AppleWMIsInactive, 0);
+ switch(e->subtype) {
+ case kXquartzControllerNotify:
+ DEBUG_LOG("kXquartzControllerNotify\n");
+ AppleWMSendEvent(AppleWMControllerNotify,
+ AppleWMControllerNotifyMask,
+ e->data[0],
+ e->data[1]);
+ break;
+
+ case kXquartzPasteboardNotify:
+ DEBUG_LOG("kXquartzPasteboardNotify\n");
+ AppleWMSendEvent(AppleWMPasteboardNotify,
+ AppleWMPasteboardNotifyMask,
+ e->data[0],
+ e->data[1]);
+ break;
+
+ case kXquartzActivate:
+ DEBUG_LOG("kXquartzActivate\n");
+ QuartzShow();
+ AppleWMSendEvent(AppleWMActivationNotify,
+ AppleWMActivationNotifyMask,
+ AppleWMIsActive, 0);
+ break;
+
+ case kXquartzDeactivate:
+ DEBUG_LOG("kXquartzDeactivate\n");
+ AppleWMSendEvent(AppleWMActivationNotify,
+ AppleWMActivationNotifyMask,
+ AppleWMIsInactive, 0);
+ QuartzHide();
+ break;
+
+ case kXquartzReloadPreferences:
+ DEBUG_LOG("kXquartzReloadPreferences\n");
+ AppleWMSendEvent(AppleWMActivationNotify,
+ AppleWMActivationNotifyMask,
+ AppleWMReloadPreferences, 0);
+ break;
+
+ case kXquartzToggleFullscreen:
+ DEBUG_LOG("kXquartzToggleFullscreen\n");
+ if (quartzEnableRootless)
+ QuartzSetFullscreen(!quartzHasRoot);
+ else if (quartzHasRoot)
QuartzHide();
- break;
-
- case kXquartzReloadPreferences:
- DEBUG_LOG("kXquartzReloadPreferences\n");
- AppleWMSendEvent(AppleWMActivationNotify,
- AppleWMActivationNotifyMask,
- AppleWMReloadPreferences, 0);
- break;
-
- case kXquartzToggleFullscreen:
- DEBUG_LOG("kXquartzToggleFullscreen\n");
- if (quartzEnableRootless)
- QuartzSetFullscreen(!quartzHasRoot);
- else if (quartzHasRoot)
- QuartzHide();
- else
- QuartzShow(xe[i].u.keyButtonPointer.rootX,
- xe[i].u.keyButtonPointer.rootY);
- break;
-
- case kXquartzSetRootless:
- DEBUG_LOG("kXquartzSetRootless\n");
- QuartzSetRootless(xe[i].u.clientMessage.u.l.longs0);
- if (!quartzEnableRootless && !quartzHasRoot)
- QuartzHide();
- break;
-
- case kXquartzSetRootClip:
- QuartzSetRootClip((Bool)xe[i].u.clientMessage.u.l.longs0);
- break;
-
- case kXquartzQuit:
- GiveUp(0);
- break;
-
- case kXquartzSpaceChanged:
- DEBUG_LOG("kXquartzSpaceChanged\n");
- QuartzSpaceChanged(xe[i].u.clientMessage.u.l.longs0);
- break;
-
- default:
- ErrorF("Unknown application defined event type %d.\n", xe[i].u.u.type);
- }
- }
+ else
+ QuartzShow();
+ break;
+
+ case kXquartzSetRootless:
+ DEBUG_LOG("kXquartzSetRootless\n");
+ QuartzSetRootless(e->data[0]);
+ if (!quartzEnableRootless && !quartzHasRoot)
+ QuartzHide();
+ break;
+
+ case kXquartzSetRootClip:
+ QuartzSetRootClip((Bool)e->data[0]);
+ break;
+
+ case kXquartzQuit:
+ GiveUp(0);
+ break;
+
+ case kXquartzSpaceChanged:
+ DEBUG_LOG("kXquartzSpaceChanged\n");
+ QuartzSpaceChanged(e->data[0]);
+ break;
+
+ case kXquartzListenOnOpenFD:
+ ErrorF("Calling ListenOnOpenFD() for new fd: %d\n", (int)e->data[0]);
+ ListenOnOpenFD((int)e->data[0], 1);
+ break;
+
+ case kXquartzReloadKeymap:
+ DarwinKeyboardReloadHandler();
+ break;
+
+ case kXquartzDisplayChanged:
+ QuartzUpdateScreens();
+ break;
+
+ default:
+ if(!QuartzModeEventHandler(screenNum, e, dev))
+ ErrorF("Unknown application defined event type %d.\n", e->subtype);
+ }
}
void DarwinListenOnOpenFD(int fd) {
@@ -298,16 +308,6 @@ static void DarwinProcessFDAdditionQueue_thread(void *args) {
}
}
-static void kXquartzListenOnOpenFDHandler(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents) {
- size_t i;
- TA_SERVER();
-
- for (i=0; i<nevents; i++) {
- ErrorF("Calling ListenOnOpenFD() for new fd: %d\n", (int)xe[i].u.clientMessage.u.l.longs0);
- ListenOnOpenFD((int)xe[i].u.clientMessage.u.l.longs0, 1);
- }
-}
-
Bool DarwinEQInit(void) {
int *p;
@@ -320,23 +320,7 @@ Bool DarwinEQInit(void) {
}
mieqInit();
- mieqSetHandler(kXquartzReloadKeymap, DarwinKeyboardReloadHandler);
- mieqSetHandler(kXquartzActivate, DarwinEventHandler);
- mieqSetHandler(kXquartzDeactivate, DarwinEventHandler);
- mieqSetHandler(kXquartzReloadPreferences, DarwinEventHandler);
- mieqSetHandler(kXquartzSetRootClip, DarwinEventHandler);
- mieqSetHandler(kXquartzQuit, DarwinEventHandler);
- mieqSetHandler(kXquartzReadPasteboard, QuartzReadPasteboard);
- mieqSetHandler(kXquartzWritePasteboard, QuartzWritePasteboard);
- mieqSetHandler(kXquartzToggleFullscreen, DarwinEventHandler);
- mieqSetHandler(kXquartzSetRootless, DarwinEventHandler);
- mieqSetHandler(kXquartzSpaceChanged, DarwinEventHandler);
- mieqSetHandler(kXquartzControllerNotify, DarwinEventHandler);
- mieqSetHandler(kXquartzPasteboardNotify, DarwinEventHandler);
- mieqSetHandler(kXquartzDisplayChanged, QuartzDisplayChangedHandler);
- mieqSetHandler(kXquartzListenOnOpenFD, kXquartzListenOnOpenFDHandler);
-
- QuartzModeEQInit();
+ mieqSetHandler(ET_XQuartz, DarwinEventHandler);
/* Note that this *could* cause a potential async issue, since we're checking
* darwinEvents without holding the lock, but darwinEvents is only ever set
@@ -364,16 +348,16 @@ Bool DarwinEQInit(void) {
* Read and process events from the event queue until it is empty.
*/
void ProcessInputEvents(void) {
- xEvent xe;
- int x = sizeof(xe);
+ char nullbyte;
+ int x = sizeof(nullbyte);
TA_SERVER();
mieqProcessInputEvents();
// Empty the signaling pipe
- while (x == sizeof(xe)) {
- x = read(darwinEventReadFD, &xe, sizeof(xe));
+ while (x == sizeof(nullbyte)) {
+ x = read(darwinEventReadFD, &nullbyte, sizeof(nullbyte));
}
}
@@ -382,7 +366,7 @@ void ProcessInputEvents(void) {
static void DarwinPokeEQ(void) {
char nullbyte=0;
// <daniels> oh, i ... er ... christ.
- write(darwinEventWriteFD, &nullbyte, 1);
+ write(darwinEventWriteFD, &nullbyte, sizeof(nullbyte));
}
/* Convert from Appkit pointer input values to X input values:
@@ -476,7 +460,7 @@ void DarwinSendPointerEvents(DeviceIntPtr pDev, int ev_type, int ev_button, floa
darwinEvents_lock(); {
num_events = GetPointerEvents(darwinEvents, pDev, ev_type, ev_button,
POINTER_ABSOLUTE, 0, pDev==darwinTabletCurrent?5:2, valuators);
- for(i=0; i<num_events; i++) mieqEnqueue (pDev, darwinEvents[i].event);
+ for(i=0; i<num_events; i++) mieqEnqueue (pDev, (InternalEvent*)darwinEvents[i].event);
if(num_events > 0) DarwinPokeEQ();
} darwinEvents_unlock();
}
@@ -491,7 +475,7 @@ void DarwinSendKeyboardEvents(int ev_type, int keycode) {
darwinEvents_lock(); {
num_events = GetKeyboardEvents(darwinEvents, darwinKeyboard, ev_type, keycode + MIN_KEYCODE);
- for(i=0; i<num_events; i++) mieqEnqueue(darwinKeyboard,darwinEvents[i].event);
+ for(i=0; i<num_events; i++) mieqEnqueue(darwinKeyboard, (InternalEvent*)darwinEvents[i].event);
if(num_events > 0) DarwinPokeEQ();
} darwinEvents_unlock();
}
@@ -519,7 +503,7 @@ void DarwinSendProximityEvents(int ev_type, float pointer_x, float pointer_y) {
darwinEvents_lock(); {
num_events = GetProximityEvents(darwinEvents, pDev, ev_type,
0, 5, valuators);
- for(i=0; i<num_events; i++) mieqEnqueue (pDev,darwinEvents[i].event);
+ for(i=0; i<num_events; i++) mieqEnqueue (pDev, (InternalEvent*)darwinEvents[i].event);
if(num_events > 0) DarwinPokeEQ();
} darwinEvents_unlock();
}
@@ -529,13 +513,14 @@ void DarwinSendProximityEvents(int ev_type, float pointer_x, float pointer_y) {
void DarwinSendScrollEvents(float count_x, float count_y,
float pointer_x, float pointer_y,
float pressure, float tilt_x, float tilt_y) {
+ int sign_x, sign_y;
if(!darwinEvents) {
DEBUG_LOG("DarwinSendScrollEvents called before darwinEvents was initialized\n");
return;
}
- int sign_x = count_x > 0.0f ? SCROLLWHEELLEFTFAKE : SCROLLWHEELRIGHTFAKE;
- int sign_y = count_y > 0.0f ? SCROLLWHEELUPFAKE : SCROLLWHEELDOWNFAKE;
+ sign_x = count_x > 0.0f ? SCROLLWHEELLEFTFAKE : SCROLLWHEELRIGHTFAKE;
+ sign_y = count_y > 0.0f ? SCROLLWHEELUPFAKE : SCROLLWHEELDOWNFAKE;
count_x = fabs(count_x);
count_y = fabs(count_y);
@@ -566,27 +551,26 @@ void DarwinUpdateModKeys(int flags) {
* Send the X server thread a message by placing it on the event queue.
*/
void DarwinSendDDXEvent(int type, int argc, ...) {
- xEvent xe;
- INT32 *argv;
- int i, max_args;
+ XQuartzEvent e;
+ int i;
va_list args;
- memset(&xe, 0, sizeof(xe));
- xe.u.u.type = type;
- xe.u.clientMessage.u.l.type = type;
-
- argv = &xe.u.clientMessage.u.l.longs0;
- max_args = 4;
+ memset(&e, 0, sizeof(e));
+ e.header = ET_Internal;
+ e.type = ET_XQuartz;
+ e.length = sizeof(e);
+ e.time = GetTimeInMillis();
+ e.subtype = type;
- if (argc > 0 && argc <= max_args) {
+ if (argc > 0 && argc < XQUARTZ_EVENT_MAXARGS) {
va_start (args, argc);
for (i = 0; i < argc; i++)
- argv[i] = (int) va_arg (args, int);
+ e.data[i] = (uint32_t) va_arg (args, uint32_t);
va_end (args);
}
darwinEvents_lock(); {
- mieqEnqueue(NULL, &xe);
+ mieqEnqueue(NULL, (InternalEvent*)&e);
DarwinPokeEQ();
} darwinEvents_unlock();
}
diff --git a/xorg-server/hw/xquartz/darwinEvents.h b/xorg-server/hw/xquartz/darwinEvents.h
index 126851422..590305f3e 100644
--- a/xorg-server/hw/xquartz/darwinEvents.h
+++ b/xorg-server/hw/xquartz/darwinEvents.h
@@ -45,17 +45,14 @@ void DarwinUpdateModKeys(int flags);
void DarwinListenOnOpenFD(int fd);
/*
- * Special ddx events understood by the X server
+ * Subtypes for the ET_XQuartz event type
*/
enum {
- kXquartzReloadKeymap // Reload system keymap
- = LASTEvent+1, // (from X.h list of event names)
+ kXquartzReloadKeymap, // Reload system keymap
kXquartzActivate, // restore X drawing and cursor
kXquartzDeactivate, // clip X drawing and switch to Aqua cursor
kXquartzSetRootClip, // enable or disable drawing to the X screen
kXquartzQuit, // kill the X server and release the display
- kXquartzReadPasteboard, // copy Mac OS X pasteboard into X cut buffer
- kXquartzWritePasteboard, // copy X cut buffer onto Mac OS X pasteboard
kXquartzBringAllToFront, // bring all X windows to front
kXquartzToggleFullscreen, // Enable/Disable fullscreen mode
kXquartzSetRootless, // Set rootless mode
diff --git a/xorg-server/hw/xquartz/mach-startup/bundle-main.c b/xorg-server/hw/xquartz/mach-startup/bundle-main.c
index e887c469d..917bbafbe 100644
--- a/xorg-server/hw/xquartz/mach-startup/bundle-main.c
+++ b/xorg-server/hw/xquartz/mach-startup/bundle-main.c
@@ -149,15 +149,17 @@ static int accept_fd_handoff(int connected_fd) {
char databuf[] = "display";
struct iovec iov[1];
- iov[0].iov_base = databuf;
- iov[0].iov_len = sizeof(databuf);
-
union {
struct cmsghdr hdr;
char bytes[CMSG_SPACE(sizeof(int))];
} buf;
struct msghdr msg;
+ struct cmsghdr *cmsg;
+
+ iov[0].iov_base = databuf;
+ iov[0].iov_len = sizeof(databuf);
+
msg.msg_iov = iov;
msg.msg_iovlen = 1;
msg.msg_control = buf.bytes;
@@ -166,7 +168,7 @@ static int accept_fd_handoff(int connected_fd) {
msg.msg_namelen = 0;
msg.msg_flags = 0;
- struct cmsghdr *cmsg = CMSG_FIRSTHDR (&msg);
+ cmsg = CMSG_FIRSTHDR (&msg);
cmsg->cmsg_level = SOL_SOCKET;
cmsg->cmsg_type = SCM_RIGHTS;
cmsg->cmsg_len = CMSG_LEN(sizeof(int));
@@ -197,6 +199,7 @@ static void socket_handoff_thread(void *arg) {
socket_handoff_t *handoff_data = (socket_handoff_t *)arg;
int launchd_fd = -1;
int connected_fd;
+ unsigned remain;
/* Now actually get the passed file descriptor from this connection
* If we encounter an error, keep listening.
@@ -229,7 +232,7 @@ static void socket_handoff_thread(void *arg) {
* into it.
*/
- unsigned remain = 3000000;
+ remain = 3000000;
fprintf(stderr, "X11.app: Received new $DISPLAY fd: %d ... sleeping to allow xinitrc to catchup.\n", launchd_fd);
while((remain = usleep(remain)) > 0);
@@ -626,11 +629,11 @@ static char *command_from_prefs(const char *key, const char *default_value) {
if ((PlistRef == NULL) || (CFGetTypeID(PlistRef) != CFStringGetTypeID())) {
CFStringRef cfDefaultValue = CFStringCreateWithCString(NULL, default_value, kCFStringEncodingASCII);
+ int len = strlen(default_value) + 1;
CFPreferencesSetAppValue(cfKey, cfDefaultValue, kCFPreferencesCurrentApplication);
CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
- int len = strlen(default_value) + 1;
command = (char *)malloc(len * sizeof(char));
if(!command)
return NULL;
diff --git a/xorg-server/hw/xquartz/mach-startup/launchd_fd.c b/xorg-server/hw/xquartz/mach-startup/launchd_fd.c
index fa623ea12..6dace8ea1 100644
--- a/xorg-server/hw/xquartz/mach-startup/launchd_fd.c
+++ b/xorg-server/hw/xquartz/mach-startup/launchd_fd.c
@@ -36,7 +36,7 @@
#include "launchd_fd.h"
-int launchd_display_fd() {
+int launchd_display_fd(void) {
launch_data_t sockets_dict, checkin_request, checkin_response;
launch_data_t listening_fd_array, listening_fd;
diff --git a/xorg-server/hw/xquartz/mach-startup/stub.c b/xorg-server/hw/xquartz/mach-startup/stub.c
index 7a557bd3f..3d22db5d1 100644
--- a/xorg-server/hw/xquartz/mach-startup/stub.c
+++ b/xorg-server/hw/xquartz/mach-startup/stub.c
@@ -69,13 +69,12 @@ static char x11_path[PATH_MAX + 1];
static pid_t x11app_pid = 0;
-static void set_x11_path() {
+static void set_x11_path(void) {
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
CFURLRef appURL = NULL;
CFBundleRef bundle = NULL;
OSStatus osstatus = LSFindApplicationForInfo(kLSUnknownCreator, CFSTR(kX11AppBundleId), nil, nil, &appURL);
- UInt32 ver;
switch (osstatus) {
case noErr:
@@ -96,20 +95,6 @@ static void set_x11_path() {
exit(3);
}
- ver = CFBundleGetVersionNumber(bundle);
- if( !(ver >= 0x02308000 || (ver >= 0x02168000 && ver < 0x02208000))) {
- CFStringRef versionStr = CFBundleGetValueForInfoDictionaryKey(bundle, kCFBundleVersionKey);
- const char * versionCStr = "Unknown";
-
- if(versionStr)
- versionCStr = CFStringGetCStringPtr(versionStr, kCFStringEncodingMacRoman);
-
- fprintf(stderr, "Xquartz: Could not find a new enough X11.app LSFindApplicationForInfo() returned\n");
- fprintf(stderr, " X11.app = %s\n", x11_path);
- fprintf(stderr, " Version = %s (%x), Expected Version > 2.3.0 or 2.1.6\n", versionCStr, (unsigned)ver);
- exit(9);
- }
-
strlcat(x11_path, kX11AppBundlePath, sizeof(x11_path));
#ifdef DEBUG
fprintf(stderr, "Xquartz: X11.app = %s\n", x11_path);
@@ -162,15 +147,17 @@ static void send_fd_handoff(int connected_fd, int launchd_fd) {
char databuf[] = "display";
struct iovec iov[1];
- iov[0].iov_base = databuf;
- iov[0].iov_len = sizeof(databuf);
-
union {
struct cmsghdr hdr;
char bytes[CMSG_SPACE(sizeof(int))];
} buf;
struct msghdr msg;
+ struct cmsghdr *cmsg;
+
+ iov[0].iov_base = databuf;
+ iov[0].iov_len = sizeof(databuf);
+
msg.msg_iov = iov;
msg.msg_iovlen = 1;
msg.msg_control = buf.bytes;
@@ -179,7 +166,7 @@ static void send_fd_handoff(int connected_fd, int launchd_fd) {
msg.msg_namelen = 0;
msg.msg_flags = 0;
- struct cmsghdr *cmsg = CMSG_FIRSTHDR (&msg);
+ cmsg = CMSG_FIRSTHDR (&msg);
cmsg->cmsg_level = SOL_SOCKET;
cmsg->cmsg_type = SCM_RIGHTS;
cmsg->cmsg_len = CMSG_LEN(sizeof(int));
@@ -245,10 +232,11 @@ int main(int argc, char **argv, char **envp) {
kr = bootstrap_look_up(bootstrap_port, server_bootstrap_name, &mp);
if(kr != KERN_SUCCESS) {
+ pid_t child;
set_x11_path();
/* This forking is ugly and will be cleaned up later */
- pid_t child = fork();
+ child = fork();
if(child == -1) {
fprintf(stderr, "Xquartz: Could not fork: %s\n", strerror(errno));
return EXIT_FAILURE;
diff --git a/xorg-server/hw/xquartz/quartz.c b/xorg-server/hw/xquartz/quartz.c
index ca8b24595..c4142a801 100644
--- a/xorg-server/hw/xquartz/quartz.c
+++ b/xorg-server/hw/xquartz/quartz.c
@@ -231,7 +231,7 @@ RREditConnectionInfo (ScreenPtr pScreen)
}
#endif
-static void QuartzUpdateScreens(void) {
+void QuartzUpdateScreens(void) {
ScreenPtr pScreen;
WindowPtr pRoot;
int x, y, width, height, sx, sy;
@@ -299,14 +299,6 @@ static void QuartzUpdateScreens(void) {
#endif
}
-/*
- * QuartzDisplayChangeHandler
- * Adjust for screen arrangement changes.
- */
-void QuartzDisplayChangedHandler(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents) {
- QuartzUpdateScreens();
-}
-
void QuartzSetFullscreen(Bool state) {
DEBUG_LOG("QuartzSetFullscreen: state=%d\n", state);
@@ -374,10 +366,7 @@ void QuartzSetRootless(Bool state) {
* Calls mode specific screen resume to restore the X clip regions
* (if needed) and the X server cursor state.
*/
-void QuartzShow(
- int x, // cursor location
- int y )
-{
+void QuartzShow(void) {
int i;
if (quartzServerVisible)
@@ -386,7 +375,7 @@ void QuartzShow(
quartzServerVisible = TRUE;
for (i = 0; i < screenInfo.numScreens; i++) {
if (screenInfo.screens[i]) {
- quartzProcs->ResumeScreen(screenInfo.screens[i], x, y);
+ quartzProcs->ResumeScreen(screenInfo.screens[i]);
}
}
diff --git a/xorg-server/hw/xquartz/quartz.h b/xorg-server/hw/xquartz/quartz.h
index c5da4c510..b1a3f3183 100644
--- a/xorg-server/hw/xquartz/quartz.h
+++ b/xorg-server/hw/xquartz/quartz.h
@@ -33,8 +33,6 @@
#ifndef _QUARTZ_H
#define _QUARTZ_H
-#include "quartzPasteboard.h"
-
#include "screenint.h"
#include "window.h"
@@ -59,7 +57,7 @@ typedef Bool (*InitCursorProc)(ScreenPtr pScreen);
* Suspend and resume X11 activity
*/
typedef void (*SuspendScreenProc)(ScreenPtr pScreen);
-typedef void (*ResumeScreenProc)(ScreenPtr pScreen, int x, int y);
+typedef void (*ResumeScreenProc)(ScreenPtr pScreen);
/*
* Screen state change support
@@ -123,13 +121,15 @@ void QuartzInitInput(int argc, char **argv);
void QuartzInitServer(int argc, char **argv, char **envp);
void QuartzGiveUp(void);
void QuartzProcessEvent(xEvent *xe);
-void QuartzDisplayChangedHandler(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents);
+void QuartzUpdateScreens(void);
-void QuartzShow(int x, int y); // (x, y) = cursor loc
+void QuartzShow(void);
void QuartzHide(void);
void QuartzSetRootClip(BOOL enable);
void QuartzSpaceChanged(uint32_t space_id);
void QuartzSetFullscreen(Bool state);
void QuartzSetRootless(Bool state);
+
+int server_main(int argc, char **argv, char **envp);
#endif
diff --git a/xorg-server/hw/xquartz/quartzAudio.c b/xorg-server/hw/xquartz/quartzAudio.c
index 8cf241738..af63d18f5 100644
--- a/xorg-server/hw/xquartz/quartzAudio.c
+++ b/xorg-server/hw/xquartz/quartzAudio.c
@@ -311,8 +311,10 @@ void QuartzAudioInit(void)
// Prepare for playback
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
+ {
AudioDeviceIOProcID sInputIOProcID = NULL;
status = AudioDeviceCreateIOProcID( outputDevice, QuartzAudioIOProc, &data, &sInputIOProcID );
+ }
#else
status = AudioDeviceAddIOProc(outputDevice, QuartzAudioIOProc, &data);
#endif
diff --git a/xorg-server/hw/xquartz/quartzCocoa.m b/xorg-server/hw/xquartz/quartzCocoa.m
index 0ab94936c..450147207 100644
--- a/xorg-server/hw/xquartz/quartzCocoa.m
+++ b/xorg-server/hw/xquartz/quartzCocoa.m
@@ -40,67 +40,10 @@
#include "quartzCommon.h"
#include "inputstr.h"
-#include "quartzPasteboard.h"
#include "darwin.h"
/*
- * QuartzWriteCocoaPasteboard
- * Write text to the Mac OS X pasteboard.
- */
-void QuartzWriteCocoaPasteboard(
- char *text)
-{
- NSPasteboard *pasteboard;
- NSArray *pasteboardTypes;
- NSString *string;
-
- if (! text) return;
- pasteboard = [NSPasteboard generalPasteboard];
- if (! pasteboard) return;
- string = [NSString stringWithCString:text];
- if (! string) return;
- pasteboardTypes = [NSArray arrayWithObject:NSStringPboardType];
-
- // nil owner because we don't provide type translations
- [pasteboard declareTypes:pasteboardTypes owner:nil];
- [pasteboard setString:string forType:NSStringPboardType];
-}
-
-
-/*
- * QuartzReadCocoaPasteboard
- * Read text from the Mac OS X pasteboard and return it as a heap string.
- * The caller must free the string.
- */
-char *QuartzReadCocoaPasteboard(void)
-{
- NSPasteboard *pasteboard;
- NSArray *pasteboardTypes;
- NSString *existingType;
- char *text = NULL;
-
- pasteboardTypes = [NSArray arrayWithObject:NSStringPboardType];
- pasteboard = [NSPasteboard generalPasteboard];
- if (! pasteboard) return NULL;
-
- existingType = [pasteboard availableTypeFromArray:pasteboardTypes];
- if (existingType) {
- NSString *string = [pasteboard stringForType:existingType];
- char *buffer;
-
- if (! string) return NULL;
- buffer = (char *) [string UTF8String];
- text = (char *) malloc(strlen(buffer)+1);
- if (text)
- strcpy(text, buffer);
- }
-
- return text;
-}
-
-
-/*
* QuartzFSUseQDCursor
* Return whether the screen should use a QuickDraw cursor.
*/
diff --git a/xorg-server/hw/xquartz/quartzKeyboard.c b/xorg-server/hw/xquartz/quartzKeyboard.c
index 4abf4af7f..d36d967a2 100644
--- a/xorg-server/hw/xquartz/quartzKeyboard.c
+++ b/xorg-server/hw/xquartz/quartzKeyboard.c
@@ -251,6 +251,10 @@ static void DarwinBuildModifierMaps(darwinKeyboardInfo *info) {
break;
case XK_Mode_switch:
+ info->modifierKeycodes[NX_MODIFIERKEY_ALTERNATE][0] = i;
+#ifdef NX_MODIFIERKEY_RALTERNATE
+ info->modifierKeycodes[NX_MODIFIERKEY_RALTERNATE][0] = i;
+#endif
info->modMap[MIN_KEYCODE + i] = Mod1Mask;
break;
@@ -296,13 +300,11 @@ static void DarwinLoadKeyboardMapping(KeySymsRec *keySyms) {
static void DarwinKeyboardSetDeviceKeyMap(KeySymsRec *keySyms, CARD8 *modmap) {
DeviceIntPtr pDev;
- pthread_mutex_lock(&keyInfo_mutex);
for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key)
XkbApplyMappingChange(pDev, keySyms, keySyms->minKeyCode,
keySyms->maxKeyCode - keySyms->minKeyCode + 1,
modmap, serverClient);
- pthread_mutex_unlock(&keyInfo_mutex);
}
/*
@@ -356,7 +358,7 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
CopyKeyClass(pDev, inputInfo.keyboard);
}
-void DarwinKeyboardReloadHandler(int screenNum, xEventPtr xe, DeviceIntPtr pDev, int nevents) {
+void DarwinKeyboardReloadHandler(void) {
KeySymsRec keySyms;
DEBUG_LOG("DarwinKeyboardReloadHandler\n");
diff --git a/xorg-server/hw/xquartz/quartzKeyboard.h b/xorg-server/hw/xquartz/quartzKeyboard.h
index 215a4a9a5..1aaec6ef2 100644
--- a/xorg-server/hw/xquartz/quartzKeyboard.h
+++ b/xorg-server/hw/xquartz/quartzKeyboard.h
@@ -53,7 +53,7 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info);
/* Provided for darwinEvents.c */
extern darwinKeyboardInfo keyInfo;
extern pthread_mutex_t keyInfo_mutex;
-void DarwinKeyboardReloadHandler(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents);
+void DarwinKeyboardReloadHandler(void);
int DarwinModifierNXKeycodeToNXKey(unsigned char keycode, int *outSide);
int DarwinModifierNXKeyToNXKeycode(int key, int side);
int DarwinModifierNXKeyToNXMask(int key);
diff --git a/xorg-server/hw/xquartz/xpr/appledri.c b/xorg-server/hw/xquartz/xpr/appledri.c
index 835ccabaf..74a4ec315 100644
--- a/xorg-server/hw/xquartz/xpr/appledri.c
+++ b/xorg-server/hw/xquartz/xpr/appledri.c
@@ -255,10 +255,10 @@ ProcAppleDRIDestroySurface(
register ClientPtr client
)
{
+ int rc;
REQUEST(xAppleDRIDestroySurfaceReq);
DrawablePtr pDrawable;
REQUEST_SIZE_MATCH(xAppleDRIDestroySurfaceReq);
- int rc;
rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
DixReadAccess);
diff --git a/xorg-server/hw/xquartz/xpr/x-hash.h b/xorg-server/hw/xquartz/xpr/x-hash.h
index 78bc7b317..f876b6b71 100644
--- a/xorg-server/hw/xquartz/xpr/x-hash.h
+++ b/xorg-server/hw/xquartz/xpr/x-hash.h
@@ -72,7 +72,7 @@ X_PFX (cvt_vptr_to_uint) (void * val) __attribute__((always_inline));
static __inline__ void *
X_PFX (cvt_uint_to_vptr) (unsigned int val)
{
- return (void*)((size_t)(val));
+ return (void*)((unsigned long)(val));
}
static __inline__ unsigned int
diff --git a/xorg-server/hw/xquartz/xpr/xpr.h b/xorg-server/hw/xquartz/xpr/xpr.h
index c657e1586..af1a90ca0 100644
--- a/xorg-server/hw/xquartz/xpr/xpr.h
+++ b/xorg-server/hw/xquartz/xpr/xpr.h
@@ -45,7 +45,7 @@ void xprHideWindows(Bool hide);
Bool QuartzInitCursor(ScreenPtr pScreen);
void QuartzSuspendXCursor(ScreenPtr pScreen);
-void QuartzResumeXCursor(ScreenPtr pScreen, int x, int y);
+void QuartzResumeXCursor(ScreenPtr pScreen);
/* If we are rooted, we need the root window and desktop levels to be below
* the menubar (24) but above native windows. Normal window level is 0.
diff --git a/xorg-server/hw/xquartz/xpr/xprCursor.c b/xorg-server/hw/xquartz/xpr/xprCursor.c
index 8c47b671c..b577fc099 100644
--- a/xorg-server/hw/xquartz/xpr/xprCursor.c
+++ b/xorg-server/hw/xquartz/xpr/xprCursor.c
@@ -392,7 +392,7 @@ QuartzSuspendXCursor(ScreenPtr pScreen)
* X server is showing. Restore the X cursor.
*/
void
-QuartzResumeXCursor(ScreenPtr pScreen, int x, int y)
+QuartzResumeXCursor(ScreenPtr pScreen)
{
WindowPtr pWin;
CursorPtr pCursor;
@@ -407,5 +407,5 @@ QuartzResumeXCursor(ScreenPtr pScreen, int x, int y)
if (pCursor == NULL)
return;
- QuartzSetCursor(darwinPointer, pScreen, pCursor, x, y);
+ QuartzSetCursor(darwinPointer, pScreen, pCursor, /* x */ 0, /* y */ 0);
}
diff --git a/xorg-server/hw/xquartz/xpr/xprEvent.c b/xorg-server/hw/xquartz/xpr/xprEvent.c
index f8e985aba..6245cce42 100644
--- a/xorg-server/hw/xquartz/xpr/xprEvent.c
+++ b/xorg-server/hw/xquartz/xpr/xprEvent.c
@@ -39,6 +39,7 @@
#include "windowstr.h"
#include "pixmapstr.h"
#include "inputstr.h"
+#include "eventstr.h"
#include "mi.h"
#include "scrnintstr.h"
#include "mipointer.h"
@@ -55,36 +56,26 @@
#include "rootlessWindow.h"
#include "xprEvent.h"
-static void xprEventHandler(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents) {
- int i;
-
+Bool QuartzModeEventHandler(int screenNum, XQuartzEvent *e, DeviceIntPtr dev) {
TA_SERVER();
- DEBUG_LOG("DarwinEventHandler(%d, %p, %p, %d)\n", screenNum, xe, dev, nevents);
- for (i=0; i<nevents; i++) {
- switch(xe[i].u.u.type) {
-
- case kXquartzWindowState:
- DEBUG_LOG("kXquartzWindowState\n");
- RootlessNativeWindowStateChanged(xprGetXWindow(xe[i].u.clientMessage.u.l.longs0),
- xe[i].u.clientMessage.u.l.longs1);
- break;
-
- case kXquartzWindowMoved:
- DEBUG_LOG("kXquartzWindowMoved\n");
- RootlessNativeWindowMoved(xprGetXWindow(xe[i].u.clientMessage.u.l.longs0));
- break;
-
- case kXquartzBringAllToFront:
- DEBUG_LOG("kXquartzBringAllToFront\n");
- RootlessOrderAllWindows();
- break;
- }
+ switch(e->subtype) {
+ case kXquartzWindowState:
+ DEBUG_LOG("kXquartzWindowState\n");
+ RootlessNativeWindowStateChanged(xprGetXWindow(e->data[0]),
+ e->data[1]);
+ return TRUE;
+
+ case kXquartzWindowMoved:
+ DEBUG_LOG("kXquartzWindowMoved\n");
+ RootlessNativeWindowMoved(xprGetXWindow(e->data[0]));
+ return TRUE;
+
+ case kXquartzBringAllToFront:
+ DEBUG_LOG("kXquartzBringAllToFront\n");
+ RootlessOrderAllWindows();
+ return TRUE;
+ default:
+ return FALSE;
}
}
-
-void QuartzModeEQInit(void) {
- mieqSetHandler(kXquartzWindowState, xprEventHandler);
- mieqSetHandler(kXquartzWindowMoved, xprEventHandler);
- mieqSetHandler(kXquartzBringAllToFront, xprEventHandler);
-}
diff --git a/xorg-server/hw/xquartz/xpr/xprEvent.h b/xorg-server/hw/xquartz/xpr/xprEvent.h
index 5af9dfd77..ebfa36bd8 100644
--- a/xorg-server/hw/xquartz/xpr/xprEvent.h
+++ b/xorg-server/hw/xquartz/xpr/xprEvent.h
@@ -29,6 +29,6 @@
#ifndef __XPR_EVENT_H__
#define __XPR_EVENT_H__
-void QuartzModeEQInit(void);
+Bool QuartzModeEventHandler(int screenNum, XQuartzEvent *e, DeviceIntPtr dev);
#endif
diff --git a/xorg-server/hw/xquartz/xpr/xprFrame.c b/xorg-server/hw/xquartz/xpr/xprFrame.c
index 6635f08d8..a3e207616 100644
--- a/xorg-server/hw/xquartz/xpr/xprFrame.c
+++ b/xorg-server/hw/xquartz/xpr/xprFrame.c
@@ -215,10 +215,10 @@ xprDestroyFrame(RootlessFrameID wid)
static void
xprMoveFrame(RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY)
{
- TA_SERVER();
-
xp_window_changes wc;
+ TA_SERVER();
+
wc.x = newX;
wc.y = newY;
// ErrorF("xprMoveFrame(%d, %p, %d, %d)\n", wid, pScreen, newX, newY);
@@ -272,7 +272,7 @@ static void xprRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid) {
}
if(window_hash) {
- RootlessWindowRec *winRec = x_hash_table_lookup(window_hash, x_cvt_uint_to_vptr((xp_window_id)wid), NULL);
+ RootlessWindowRec *winRec = x_hash_table_lookup(window_hash, wid, NULL);
if(winRec) {
if(quartzEnableRootless)
@@ -566,8 +566,8 @@ xprHideWindows(Bool hide)
TA_SERVER();
for (screen = 0; screen < screenInfo.numScreens; screen++) {
- pRoot = WindowTable[screenInfo.screens[screen]->myNum];
RootlessFrameID prevWid = NULL;
+ pRoot = WindowTable[screenInfo.screens[screen]->myNum];
for (pWin = pRoot->firstChild; pWin; pWin = pWin->nextSib) {
RootlessWindowRec *winRec = WINREC(pWin);
diff --git a/xorg-server/hw/xquartz/xpr/xprScreen.c b/xorg-server/hw/xquartz/xpr/xprScreen.c
index 3387ecf0a..22a727e67 100644
--- a/xorg-server/hw/xquartz/xpr/xprScreen.c
+++ b/xorg-server/hw/xquartz/xpr/xprScreen.c
@@ -317,11 +317,11 @@ xprAddScreen(int index, ScreenPtr pScreen)
if (noPseudoramiXExtension)
{
- ErrorF("Warning: noPseudoramiXExtension!\n");
-
CGDirectDisplayID dpy;
CGRect frame;
+ ErrorF("Warning: noPseudoramiXExtension!\n");
+
dpy = displayAtIndex(index);
frame = displayScreenBounds(dpy);
diff --git a/xorg-server/include/colormap.h b/xorg-server/include/colormap.h
index a3467c93f..de48ce8d8 100644
--- a/xorg-server/include/colormap.h
+++ b/xorg-server/include/colormap.h
@@ -179,4 +179,9 @@ extern _X_EXPORT int IsMapInstalled(
Colormap /*map*/,
WindowPtr /*pWin*/);
+extern _X_EXPORT Bool ResizeVisualArray(
+ ScreenPtr /* pScreen */,
+ int /* new_vis_count */,
+ DepthPtr /* depth */);
+
#endif /* CMAP_H */
diff --git a/xorg-server/include/dix.h b/xorg-server/include/dix.h
index 49dfe3774..b1edb6c46 100644
--- a/xorg-server/include/dix.h
+++ b/xorg-server/include/dix.h
@@ -592,6 +592,7 @@ extern Bool IsKeyboardDevice(DeviceIntPtr dev);
extern Bool IsPointerEvent(InternalEvent *event);
extern Bool IsMaster(DeviceIntPtr dev);
+extern _X_HIDDEN void CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
extern _X_HIDDEN int CorePointerProc(DeviceIntPtr dev, int what);
extern _X_HIDDEN int CoreKeyboardProc(DeviceIntPtr dev, int what);
diff --git a/xorg-server/include/events.h b/xorg-server/include/events.h
index 9f6a94c5b..375173adc 100644
--- a/xorg-server/include/events.h
+++ b/xorg-server/include/events.h
@@ -30,6 +30,9 @@ typedef struct _DeviceChangedEvent DeviceChangedEvent;
typedef struct _DGAEvent DGAEvent;
#endif
typedef struct _RawDeviceEvent RawDeviceEvent;
+#ifdef XQUARTZ
+typedef struct _XQuartzEvent XQuartzEvent;
+#endif
typedef union _InternalEvent InternalEvent;
#endif
diff --git a/xorg-server/include/eventstr.h b/xorg-server/include/eventstr.h
index 509982b46..0d5b1c62a 100644
--- a/xorg-server/include/eventstr.h
+++ b/xorg-server/include/eventstr.h
@@ -66,6 +66,9 @@ enum EventType {
ET_RawButtonPress,
ET_RawButtonRelease,
ET_RawMotion,
+#ifdef XQUARTZ
+ ET_XQuartz,
+#endif
ET_Internal = 0xFF /* First byte */
};
@@ -210,6 +213,18 @@ struct _RawDeviceEvent
} valuators;
};
+#ifdef XQUARTZ
+#define XQUARTZ_EVENT_MAXARGS 5
+struct _XQuartzEvent {
+ unsigned char header; /**< Always ET_Internal */
+ enum EventType type; /**< Always ET_XQuartz */
+ int length; /**< Length in bytes */
+ Time time; /**< Time in ms. */
+ int subtype; /**< Subtype defined by XQuartz DDX */
+ uint32_t data[XQUARTZ_EVENT_MAXARGS]; /**< Up to 5 32bit values passed to handler */
+};
+#endif
+
/**
* Event type used inside the X server for input event
* processing.
@@ -227,6 +242,9 @@ union _InternalEvent {
DGAEvent dga_event;
#endif
RawDeviceEvent raw_event;
+#ifdef XQUARTZ
+ XQuartzEvent xquartz_event;
+#endif
};
#endif
diff --git a/xorg-server/mi/mieq.c b/xorg-server/mi/mieq.c
index 4c6c3bdc6..9b6d0c901 100644
--- a/xorg-server/mi/mieq.c
+++ b/xorg-server/mi/mieq.c
@@ -323,7 +323,8 @@ CopyGetMasterEvent(DeviceIntPtr sdev,
CHECKEVENT(original);
- if (!sdev->u.master)
+ /* ET_XQuartz has sdev == NULL */
+ if (!sdev || !sdev->u.master)
return NULL;
switch(original->any.type)
diff --git a/xorg-server/mi/miexpose.c b/xorg-server/mi/miexpose.c
index 6ce56ee85..1c9c3a436 100644
--- a/xorg-server/mi/miexpose.c
+++ b/xorg-server/mi/miexpose.c
@@ -518,6 +518,14 @@ miWindowExposures( WindowPtr pWin, RegionPtr prgn, RegionPtr other_exposed)
REGION_DESTROY( pWin->drawable.pScreen, exposures);
}
+#ifdef ROOTLESS
+/* Ugly, ugly, but we lost our hooks into miPaintWindow... =/ */
+void RootlessSetPixmapOfAncestors(WindowPtr pWin);
+void RootlessStartDrawing(WindowPtr pWin);
+void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn);
+Bool IsFramedWindow(WindowPtr pWin);
+#endif
+
void
miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
{
@@ -543,6 +551,19 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
Bool solid = TRUE;
DrawablePtr drawable = &pWin->drawable;
+#ifdef ROOTLESS
+ if(IsFramedWindow(pWin)) {
+ RootlessStartDrawing(pWin);
+ RootlessDamageRegion(pWin, prgn);
+
+ if(pWin->backgroundState == ParentRelative) {
+ if((what == PW_BACKGROUND) ||
+ (what == PW_BORDER && !pWin->borderIsPixel))
+ RootlessSetPixmapOfAncestors(pWin);
+ }
+ }
+#endif
+
if (what == PW_BACKGROUND)
{
while (pWin->backgroundState == ParentRelative)
diff --git a/xorg-server/mi/miinitext.c b/xorg-server/mi/miinitext.c
index 7f59126a4..0dca390bb 100644
--- a/xorg-server/mi/miinitext.c
+++ b/xorg-server/mi/miinitext.c
@@ -55,6 +55,18 @@ SOFTWARE.
#ifdef HAVE_DMX_CONFIG_H
#include <dmx-config.h>
+#undef MULTIBUFFER
+#undef XV
+#undef DBE
+#undef XF86VIDMODE
+#undef XFreeXDGA
+#undef XF86DRI
+#undef SCREENSAVER
+#undef RANDR
+#undef XFIXES
+#undef DAMAGE
+#undef COMPOSITE
+#undef MITSHM
#endif
#ifdef HAVE_XNEST_CONFIG_H
diff --git a/xorg-server/miext/rootless/rootlessWindow.c b/xorg-server/miext/rootless/rootlessWindow.c
index e273d0e38..d43301fc1 100644
--- a/xorg-server/miext/rootless/rootlessWindow.c
+++ b/xorg-server/miext/rootless/rootlessWindow.c
@@ -1684,3 +1684,29 @@ RootlessShowAllWindows (void)
RootlessScreenExpose (pScreen);
}
}
+
+/*
+ * SetPixmapOfAncestors
+ * Set the Pixmaps on all ParentRelative windows up the ancestor chain.
+ */
+void
+RootlessSetPixmapOfAncestors(WindowPtr pWin)
+{
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ WindowPtr topWin = TopLevelParent(pWin);
+ RootlessWindowRec *topWinRec = WINREC(topWin);
+
+ while (pWin->backgroundState == ParentRelative) {
+ if (pWin == topWin) {
+ // disallow ParentRelative background state on top level
+ XID pixel = 0;
+ ChangeWindowAttributes(pWin, CWBackPixel, &pixel, serverClient);
+ RL_DEBUG_MSG("Cleared ParentRelative on 0x%x.\n", pWin);
+ break;
+ }
+
+ pWin = pWin->parent;
+ pScreen->SetWindowPixmap(pWin, topWinRec->pixmap);
+ }
+}
+
diff --git a/xorg-server/os/Makefile.am b/xorg-server/os/Makefile.am
index f89da6ba2..9ce8ff274 100644
--- a/xorg-server/os/Makefile.am
+++ b/xorg-server/os/Makefile.am
@@ -41,6 +41,7 @@ endif
EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \
$(XDMCP_SRCS) $(STRLCAT_SRCS)
+if !XQUARTZ
if XSERVER_DTRACE
# Generate dtrace object code for probes in libos & libdix
dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS)
@@ -51,6 +52,7 @@ noinst_PROGRAMS = os.O
os.O: dtrace.o $(am_libos_la_OBJECTS)
ld -r -o $@ dtrace.o .libs/*.o
endif
+endif
os.c:
touch $@
diff --git a/xorg-server/os/Makefile.in b/xorg-server/os/Makefile.in
index 5bf1fec05..7409441ec 100644
--- a/xorg-server/os/Makefile.in
+++ b/xorg-server/os/Makefile.in
@@ -38,7 +38,7 @@ host_triplet = @host@
@SECURE_RPC_TRUE@am__append_1 = $(SECURERPC_SRCS)
@XDMCP_TRUE@am__append_2 = $(XDMCP_SRCS)
@NEED_STRLCAT_TRUE@am__append_3 = $(STRLCAT_SRCS)
-@XSERVER_DTRACE_TRUE@noinst_PROGRAMS = os.O$(EXEEXT)
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@noinst_PROGRAMS = os.O$(EXEEXT)
subdir = os
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -473,6 +473,9 @@ clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+@XQUARTZ_TRUE@os.O$(EXEEXT): $(os_O_OBJECTS) $(os_O_DEPENDENCIES)
+@XQUARTZ_TRUE@ @rm -f os.O$(EXEEXT)
+@XQUARTZ_TRUE@ $(AM_V_CCLD)$(LINK) $(os_O_OBJECTS) $(os_O_LDADD) $(LIBS)
@XSERVER_DTRACE_FALSE@os.O$(EXEEXT): $(os_O_OBJECTS) $(os_O_DEPENDENCIES)
@XSERVER_DTRACE_FALSE@ @rm -f os.O$(EXEEXT)
@XSERVER_DTRACE_FALSE@ $(AM_V_CCLD)$(LINK) $(os_O_OBJECTS) $(os_O_LDADD) $(LIBS)
@@ -736,11 +739,11 @@ uninstall-am:
# Generate dtrace object code for probes in libos & libdix
-@XSERVER_DTRACE_TRUE@dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS)
-@XSERVER_DTRACE_TRUE@ $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o ../dix/.libs/*.o
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS)
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@ $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o ../dix/.libs/*.o
-@XSERVER_DTRACE_TRUE@os.O: dtrace.o $(am_libos_la_OBJECTS)
-@XSERVER_DTRACE_TRUE@ ld -r -o $@ dtrace.o .libs/*.o
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@os.O: dtrace.o $(am_libos_la_OBJECTS)
+@XQUARTZ_FALSE@@XSERVER_DTRACE_TRUE@ ld -r -o $@ dtrace.o .libs/*.o
os.c:
touch $@
diff --git a/xorg-server/render/glyph.c b/xorg-server/render/glyph.c
index 7c044aada..7fcdfd9d1 100644
--- a/xorg-server/render/glyph.c
+++ b/xorg-server/render/glyph.c
@@ -272,13 +272,32 @@ CheckDuplicates (GlyphHashPtr hash, char *where)
#define DuplicateRef(a,b)
#endif
+static void
+FreeGlyphPicture(GlyphPtr glyph)
+{
+ PictureScreenPtr ps;
+ int i;
+
+ for (i = 0; i < screenInfo.numScreens; i++)
+ {
+ ScreenPtr pScreen = screenInfo.screens[i];
+
+ if (GlyphPicture(glyph)[i])
+ FreePicture ((pointer) GlyphPicture (glyph)[i], 0);
+
+ ps = GetPictureScreenIfSet (pScreen);
+ if (ps)
+ (*ps->UnrealizeGlyph) (pScreen, glyph);
+ }
+}
+
+
void
FreeGlyph (GlyphPtr glyph, int format)
{
CheckDuplicates (&globalGlyphs[format], "FreeGlyph");
if (--glyph->refcnt == 0)
{
- PictureScreenPtr ps;
GlyphRefPtr gr;
int i;
int first;
@@ -305,17 +324,7 @@ FreeGlyph (GlyphPtr glyph, int format)
globalGlyphs[format].tableEntries--;
}
- for (i = 0; i < screenInfo.numScreens; i++)
- {
- ScreenPtr pScreen = screenInfo.screens[i];
-
- FreePicture ((pointer) GlyphPicture (glyph)[i], 0);
-
- ps = GetPictureScreenIfSet (pScreen);
- if (ps)
- (*ps->UnrealizeGlyph) (pScreen, glyph);
- }
-
+ FreeGlyphPicture(glyph);
FreeGlyphPrivates(glyph);
xfree (glyph);
}
@@ -334,15 +343,7 @@ AddGlyph (GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id)
TRUE, glyph->sha1);
if (gr->glyph && gr->glyph != DeletedGlyph && gr->glyph != glyph)
{
- PictureScreenPtr ps;
- int i;
-
- for (i = 0; i < screenInfo.numScreens; i++)
- {
- ps = GetPictureScreenIfSet (screenInfo.screens[i]);
- if (ps)
- (*ps->UnrealizeGlyph) (screenInfo.screens[i], glyph);
- }
+ FreeGlyphPicture(glyph);
FreeGlyphPrivates(glyph);
xfree (glyph);
glyph = gr->glyph;
@@ -414,6 +415,7 @@ AllocateGlyph (xGlyphInfo *gi, int fdepth)
for (i = 0; i < screenInfo.numScreens; i++)
{
+ GlyphPicture(glyph)[i] = NULL;
ps = GetPictureScreenIfSet (screenInfo.screens[i]);
if (ps)
@@ -721,32 +723,35 @@ miGlyphs (CARD8 op,
glyph = *glyphs++;
pPicture = GlyphPicture (glyph)[pScreen->myNum];
- if (maskFormat)
- {
- CompositePicture (PictOpAdd,
- pPicture,
- None,
- pMask,
- 0, 0,
- 0, 0,
- x - glyph->info.x,
- y - glyph->info.y,
- glyph->info.width,
- glyph->info.height);
- }
- else
+ if (pPicture)
{
- CompositePicture (op,
- pSrc,
- pPicture,
- pDst,
- xSrc + (x - glyph->info.x) - xDst,
- ySrc + (y - glyph->info.y) - yDst,
- 0, 0,
- x - glyph->info.x,
- y - glyph->info.y,
- glyph->info.width,
- glyph->info.height);
+ if (maskFormat)
+ {
+ CompositePicture (PictOpAdd,
+ pPicture,
+ None,
+ pMask,
+ 0, 0,
+ 0, 0,
+ x - glyph->info.x,
+ y - glyph->info.y,
+ glyph->info.width,
+ glyph->info.height);
+ }
+ else
+ {
+ CompositePicture (op,
+ pSrc,
+ pPicture,
+ pDst,
+ xSrc + (x - glyph->info.x) - xDst,
+ ySrc + (y - glyph->info.y) - yDst,
+ 0, 0,
+ x - glyph->info.x,
+ y - glyph->info.y,
+ glyph->info.width,
+ glyph->info.height);
+ }
}
x += glyph->info.xOff;
diff --git a/xorg-server/render/picture.c b/xorg-server/render/picture.c
index a3670778e..e1a297203 100644
--- a/xorg-server/render/picture.c
+++ b/xorg-server/render/picture.c
@@ -223,9 +223,8 @@ PictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp)
b = Ones (pVisual->blueMask);
type = PICT_TYPE_OTHER;
/*
- * Current rendering code supports only two direct formats,
+ * Current rendering code supports only three direct formats,
* fields must be packed together at the bottom of the pixel
- * and must be either RGB or BGR
*/
if (pVisual->offsetBlue == 0 &&
pVisual->offsetGreen == b &&
@@ -322,8 +321,6 @@ PictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp)
PICT_x8r8g8b8, pDepth->depth);
nformats = addFormat (formats, nformats,
PICT_x8b8g8r8, pDepth->depth);
- nformats = addFormat (formats, nformats,
- PICT_b8g8r8x8, pDepth->depth);
}
if (pDepth->depth >= 30)
{
diff --git a/xorg-server/render/render.c b/xorg-server/render/render.c
index a3067665e..a32d797a7 100644
--- a/xorg-server/render/render.c
+++ b/xorg-server/render/render.c
@@ -1043,7 +1043,7 @@ ProcRenderAddGlyphs (ClientPtr client)
CARD32 *gids;
xGlyphInfo *gi;
CARD8 *bits;
- int size;
+ unsigned int size;
int err;
int i, screen;
PicturePtr pSrc = NULL, pDst = NULL;
@@ -1131,6 +1131,10 @@ ProcRenderAddGlyphs (ClientPtr client)
ScreenPtr pScreen;
int error;
+ /* Skip work if it's invisibly small anyway */
+ if (!width || !height)
+ break;
+
pScreen = screenInfo.screens[screen];
pSrcPix = GetScratchPixmapHeader (pScreen,
width, height,
diff --git a/xorg-server/xkbdata.src/ChangeLog b/xorg-server/xkbdata.src/ChangeLog
index 53c9b6db1..5fe30413e 100644
--- a/xorg-server/xkbdata.src/ChangeLog
+++ b/xorg-server/xkbdata.src/ChangeLog
@@ -1,3 +1,7 @@
+2009-09-29 Sergey Udaltsov
+
+ * configure.in, NEWS, po/*.po: preparing 1.7
+
2009-09-15 Sergey Udaltsov
* symbols/es: addind dead_tilde,
diff --git a/xorg-server/xkbdata.src/NEWS b/xorg-server/xkbdata.src/NEWS
index cba14ad17..f01db566b 100644
--- a/xorg-server/xkbdata.src/NEWS
+++ b/xorg-server/xkbdata.src/NEWS
@@ -1,3 +1,4 @@
+1.7 Bugfixes (30). Updated/new translations. Some new layouts and models.
1.6 Bugfixes (36). Updated/new translations. Some new layouts and models.
Added terminate:* group
Dropped locale-specific models
diff --git a/xorg-server/xkbdata.src/compat/compat.dir b/xorg-server/xkbdata.src/compat/compat.dir
index 04a9667d9..c99d7fbaf 100644
--- a/xorg-server/xkbdata.src/compat/compat.dir
+++ b/xorg-server/xkbdata.src/compat/compat.dir
@@ -1,29 +1,29 @@
+-d------ -------- pc98(basic)
+-d------ -------- xtest(xtest)
-dp----- -------- misc(misc)
--dp----- -------- lednum(num_lock)
---p----- -------- lednum(group_lock)
---p----- -------- lednum(shift_lock)
--dp----- -------- pc(pc)
-dp----- -------- mousekeys(mousekeys)
--d------ -------- xtest(xtest)
--d------ -------- pc98(basic)
+-dp----- -------- norepeat(norepeat)
+-dp----- -------- ledcaps(caps_lock)
+--p----- -------- ledcaps(group_lock)
+--p----- -------- ledcaps(shift_lock)
-dp----- -------- japan(japan)
--p----- -------- japan(kana_lock)
--dp----- -------- norepeat(norepeat)
+-d------ -------- default(default)
+-d------ -------- complete(complete)
+-dp----- -------- iso9995(default)
h-p----- -------- keypad(overlay)
h-p----- -------- keypad(overlay1)
h-p----- -------- keypad(overlay2)
--d------ -------- default(default)
--dp----- -------- xfree86(basic)
--dp----- -------- iso9995(default)
--d------ -------- complete(complete)
--d------ -------- olpc(olpc)
--dp----- -------- level5(default)
--dp----- -------- ledcaps(caps_lock)
---p----- -------- ledcaps(group_lock)
---p----- -------- ledcaps(shift_lock)
-d------ -------- basic(basic)
+-dp----- -------- level5(default)
+-dp----- -------- lednum(num_lock)
+--p----- -------- lednum(group_lock)
+--p----- -------- lednum(shift_lock)
-dp----- -------- ledscroll(scroll_lock)
--p----- -------- ledscroll(group_lock)
--p----- -------- ledscroll(shift_lock)
+-dp----- -------- pc(pc)
+-d------ -------- olpc(olpc)
-dp----- -------- accessx(basic)
--p----- -------- accessx(full)
+-dp----- -------- xfree86(basic)
diff --git a/xorg-server/xkbdata.src/configure b/xorg-server/xkbdata.src/configure
index 1fee6dc02..adf3161e4 100644
--- a/xorg-server/xkbdata.src/configure
+++ b/xorg-server/xkbdata.src/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for xkeyboard-config 1.6.99.
+# Generated by GNU Autoconf 2.63 for xkeyboard-config 1.7.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -594,8 +594,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xkeyboard-config'
PACKAGE_TARNAME='xkeyboard-config'
-PACKAGE_VERSION='1.6.99'
-PACKAGE_STRING='xkeyboard-config 1.6.99'
+PACKAGE_VERSION='1.7'
+PACKAGE_STRING='xkeyboard-config 1.7'
PACKAGE_BUGREPORT=''
ac_unique_file="rules/base.xml.in"
@@ -1342,7 +1342,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xkeyboard-config 1.6.99 to adapt to many kinds of systems.
+\`configure' configures xkeyboard-config 1.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1409,7 +1409,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xkeyboard-config 1.6.99:";;
+ short | recursive ) echo "Configuration of xkeyboard-config 1.7:";;
esac
cat <<\_ACEOF
@@ -1506,7 +1506,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xkeyboard-config configure 1.6.99
+xkeyboard-config configure 1.7
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1520,7 +1520,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xkeyboard-config $as_me 1.6.99, which was
+It was created by xkeyboard-config $as_me 1.7, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -2237,7 +2237,7 @@ fi
# Define the identity of the package.
PACKAGE='xkeyboard-config'
- VERSION='1.6.99'
+ VERSION='1.7'
cat >>confdefs.h <<_ACEOF
@@ -7029,7 +7029,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xkeyboard-config $as_me 1.6.99, which was
+This file was extended by xkeyboard-config $as_me 1.7, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7083,7 +7083,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-xkeyboard-config config.status 1.6.99
+xkeyboard-config config.status 1.7
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/xorg-server/xkbdata.src/configure.in b/xorg-server/xkbdata.src/configure.in
index 799ccf87f..74cd522dd 100644
--- a/xorg-server/xkbdata.src/configure.in
+++ b/xorg-server/xkbdata.src/configure.in
@@ -1,4 +1,4 @@
-AC_INIT(xkeyboard-config, 1.6.99)
+AC_INIT(xkeyboard-config, 1.7)
AC_CONFIG_SRCDIR(rules/base.xml.in)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
diff --git a/xorg-server/xkbdata.src/geometry/geometry.dir b/xorg-server/xkbdata.src/geometry/geometry.dir
index 41d54d2b5..fb1c401a3 100644
--- a/xorg-server/xkbdata.src/geometry/geometry.dir
+++ b/xorg-server/xkbdata.src/geometry/geometry.dir
@@ -1,8 +1,31 @@
--d------ -------- everex(STEPnote)
-d------ -------- macintosh(macintosh)
-------- -------- macintosh(applepro)
-------- -------- macintosh(macbook78)
-------- -------- macintosh(macbook79)
+-d------ -------- winbook(XP5)
+-d------ -------- kinesis(model100)
+-------- -------- typematrix(tm2020)
+-------- -------- typematrix(tm2030_shape)
+-------- -------- typematrix(tm2030_MiscDiod_dvk)
+-------- -------- typematrix(tm2030_MiscDiod_102)
+-------- -------- typematrix(tm2030_MiscDiod_106)
+-------- -------- typematrix(tm2030_MiscDiod_off)
+-------- -------- typematrix(tm2030_MiscDiod_on)
+-------- -------- typematrix(tm2030USB_func)
+-------- -------- typematrix(tm2030USB_alpha)
+-------- -------- typematrix(tm2030USB_ctrl)
+-------- -------- typematrix(tm2030PS2)
+-------- -------- typematrix(tm2030USB)
+-------- -------- typematrix(tm2030USB-102)
+-------- -------- typematrix(tm2030USB-106)
+-d------ -------- northgate(omnikey101)
+-d------ -------- sony(nwp5461)
+-------- -------- thinkpad(common)
+-------- -------- thinkpad(us)
+-------- -------- thinkpad(intl)
+-------- -------- thinkpad(60)
+-d------ -------- fujitsu(138)
+-------- -------- fujitsu(140)
-------- -------- sun(type4)
-------- -------- sun(type4tuv)
-------- -------- sun(type4_ca)
@@ -36,8 +59,14 @@
-------- -------- sun(x86)
-------- -------- sun(MS_x86)
-------- -------- sun(x86tuv)
--d------ -------- fujitsu(138)
--------- -------- fujitsu(140)
+-d------ -------- amiga(usa1)
+-------- -------- amiga(de)
+-d------ -------- microsoft(natural)
+-------- -------- microsoft(elite)
+-d------ -------- hp(pc101)
+-------- -------- hp(hil)
+-------- -------- hp(omnibook)
+-------- -------- hp(omnibook_intl)
-d------ -------- pc(pc101)
-------- -------- pc(pc102)
-------- -------- pc(pc104)
@@ -48,6 +77,7 @@
-------- -------- pc(kr106)
-------- -------- pc(latitude)
-------- -------- pc(pc104alt)
+-d------ -------- chicony(us)
-d------ -------- hhk(win1)
-------- -------- hhk(win2)
-------- -------- hhk(win3)
@@ -57,36 +87,27 @@
-------- -------- hhk(jp3)
-------- -------- hhk(jp4)
h-p----- -------- hhk(basic)
--d------ -------- kinesis(model100)
--d------ -------- hp(pc101)
--------- -------- hp(hil)
--------- -------- hp(omnibook)
--------- -------- hp(omnibook_intl)
--d------ -------- microsoft(natural)
--------- -------- microsoft(elite)
--d------ -------- keytronic(FlexPro)
--d------ -------- northgate(omnikey101)
--d------ -------- sgi_vndr/indy(pc101)
--------- -------- sgi_vndr/indy(pc102)
--------- -------- sgi_vndr/indy(jp106)
-d------ -------- sgi_vndr/O2(pc101)
-------- -------- sgi_vndr/O2(pc102)
-------- -------- sgi_vndr/O2(jp106)
-d------ -------- sgi_vndr/indigo(pc101)
-------- -------- sgi_vndr/indigo(pc102)
--d------ -------- sony(nwp5461)
--d------ -------- winbook(XP5)
--d------ -------- ataritt(us)
--------- -------- ataritt(de)
--------- -------- thinkpad(common)
--------- -------- thinkpad(us)
--------- -------- thinkpad(intl)
--------- -------- thinkpad(60)
+-d------ -------- sgi_vndr/indy(pc101)
+-------- -------- sgi_vndr/indy(pc102)
+-------- -------- sgi_vndr/indy(jp106)
+-d------ -------- keytronic(FlexPro)
-d------ -------- dell(dell101)
-------- -------- dell(dell65)
-------- -------- dell(dell65x)
-------- -------- dell(dellm65)
-------- -------- dell(latitude)
+-d------ -------- everex(STEPnote)
+-d------ -------- nec(pc98)
+-------- -------- digital_vndr/lk(lk201)
+-------- -------- digital_vndr/lk(lk401)
+-------- -------- digital_vndr/lk(lk450)
+-------- -------- digital_vndr/lk(lk401bj)
+-------- -------- digital_vndr/lk(lk401jj)
--p----- -------- digital_vndr/pc(common)
--p----- -------- digital_vndr/pc(leds_on_keys)
--p----- -------- digital_vndr/pc(leds_alone)
@@ -95,26 +116,5 @@ h-p----- -------- hhk(basic)
-------- -------- digital_vndr/pc(pcxaj)
-------- -------- digital_vndr/unix(unix)
-------- -------- digital_vndr/unix(lk421jj)
--------- -------- digital_vndr/lk(lk201)
--------- -------- digital_vndr/lk(lk401)
--------- -------- digital_vndr/lk(lk450)
--------- -------- digital_vndr/lk(lk401bj)
--------- -------- digital_vndr/lk(lk401jj)
--------- -------- typematrix(tm2020)
--------- -------- typematrix(tm2030_shape)
--------- -------- typematrix(tm2030_MiscDiod_dvk)
--------- -------- typematrix(tm2030_MiscDiod_102)
--------- -------- typematrix(tm2030_MiscDiod_106)
--------- -------- typematrix(tm2030_MiscDiod_off)
--------- -------- typematrix(tm2030_MiscDiod_on)
--------- -------- typematrix(tm2030USB_func)
--------- -------- typematrix(tm2030USB_alpha)
--------- -------- typematrix(tm2030USB_ctrl)
--------- -------- typematrix(tm2030PS2)
--------- -------- typematrix(tm2030USB)
--------- -------- typematrix(tm2030USB-102)
--------- -------- typematrix(tm2030USB-106)
--d------ -------- chicony(us)
--d------ -------- nec(pc98)
--d------ -------- amiga(usa1)
--------- -------- amiga(de)
+-d------ -------- ataritt(us)
+-------- -------- ataritt(de)
diff --git a/xorg-server/xkbdata.src/keycodes/keycodes.dir b/xorg-server/xkbdata.src/keycodes/keycodes.dir
index f1d572ad5..82b39e37a 100644
--- a/xorg-server/xkbdata.src/keycodes/keycodes.dir
+++ b/xorg-server/xkbdata.src/keycodes/keycodes.dir
@@ -1,6 +1,14 @@
-d------ -------- macintosh(macintosh)
-------- -------- macintosh(old)
-------- -------- macintosh(hhk)
+-d------ -------- aliases(qwerty)
+-------- -------- aliases(azerty)
+-------- -------- aliases(qwertz)
+-------- -------- sony(nwp5461)
+-d------ -------- fujitsu(138)
+-d------ -------- xfree98(pc98)
+-d------ -------- evdev(evdev)
+-------- -------- evdev(pc98)
-d------ -------- sun(type4)
-------- -------- sun(type5)
-------- -------- sun(type4tuv)
@@ -26,12 +34,12 @@
-------- -------- sun(type4__se)
-------- -------- sun(type4_se)
-------- -------- sun(type4_se_swapctl)
--d------ -------- xfree98(pc98)
--d------ -------- fujitsu(138)
+-d------ -------- amiga(usa1)
+-------- -------- amiga(de)
-d------ -------- hp(hp-101)
-------- -------- hp(hil)
--------- -------- ibm(rs6k-101)
--------- -------- ibm(rs6k-102)
+-d------ -------- sgi_vndr/indigo(pc101)
+-------- -------- sgi_vndr/indigo(pc102)
-d------ -------- sgi_vndr/indy(universal)
-------- -------- sgi_vndr/indy(pc101)
-------- -------- sgi_vndr/indy(pc102)
@@ -40,28 +48,9 @@
-------- -------- sgi_vndr/indy(jp106)
h-p----- -------- sgi_vndr/indy(overlayKeypad)
h-p----- -------- sgi_vndr/indy(shiftLock)
--d------ -------- sgi_vndr/indigo(pc101)
--------- -------- sgi_vndr/indigo(pc102)
-d------ -------- sgi_vndr/iris(iris)
--------- -------- sony(nwp5461)
--d------ -------- evdev(evdev)
--------- -------- evdev(pc98)
--d------ -------- xfree86(xfree86)
--------- -------- xfree86(basic)
--------- -------- xfree86(102)
--------- -------- xfree86(thinkpadz60)
--d------ -------- ataritt(us)
--------- -------- ataritt(de)
--------- -------- digital_vndr/pc(pc_common)
--------- -------- digital_vndr/pc(pc10x)
--------- -------- digital_vndr/pc(pc101)
--------- -------- digital_vndr/pc(pc102)
--------- -------- digital_vndr/pc(pc104)
--------- -------- digital_vndr/pc(lk411_common)
--------- -------- digital_vndr/pc(lk411)
--------- -------- digital_vndr/pc(lk450)
--------- -------- digital_vndr/pc(pcxajaa)
--------- -------- digital_vndr/pc(lk411jj)
+-------- -------- ibm(rs6k-101)
+-------- -------- ibm(rs6k-102)
-------- -------- digital_vndr/lk(lk_common)
-------- -------- digital_vndr/lk(lkx01)
-------- -------- digital_vndr/lk(lk201)
@@ -74,8 +63,19 @@ h-p----- -------- sgi_vndr/indy(shiftLock)
-------- -------- digital_vndr/lk(lk421jj)
-------- -------- digital_vndr/lk(lk401bj)
-------- -------- digital_vndr/lk(lk401jj)
--d------ -------- aliases(qwerty)
--------- -------- aliases(azerty)
--------- -------- aliases(qwertz)
--d------ -------- amiga(usa1)
--------- -------- amiga(de)
+-------- -------- digital_vndr/pc(pc_common)
+-------- -------- digital_vndr/pc(pc10x)
+-------- -------- digital_vndr/pc(pc101)
+-------- -------- digital_vndr/pc(pc102)
+-------- -------- digital_vndr/pc(pc104)
+-------- -------- digital_vndr/pc(lk411_common)
+-------- -------- digital_vndr/pc(lk411)
+-------- -------- digital_vndr/pc(lk450)
+-------- -------- digital_vndr/pc(pcxajaa)
+-------- -------- digital_vndr/pc(lk411jj)
+-d------ -------- ataritt(us)
+-------- -------- ataritt(de)
+-d------ -------- xfree86(xfree86)
+-------- -------- xfree86(basic)
+-------- -------- xfree86(102)
+-------- -------- xfree86(thinkpadz60)
diff --git a/xorg-server/xkbdata.src/keymap/keymap.dir b/xorg-server/xkbdata.src/keymap/keymap.dir
index 7b8f07a92..6dbb8f1b7 100644
--- a/xorg-server/xkbdata.src/keymap/keymap.dir
+++ b/xorg-server/xkbdata.src/keymap/keymap.dir
@@ -1,135 +1,11 @@
-d------ -------- macintosh(macintosh)
-------- -------- macintosh(macintosh_old)
--d------ -------- xfree98(jp)
--d------ -------- sgi_vndr/fr(indy)
--------- -------- sgi_vndr/fr(indy_nodeadkeys)
--------- -------- sgi_vndr/fr(indigo)
--------- -------- sgi_vndr/fr(indigo_nodeadkeys)
--d------ -------- sgi_vndr/dvorak(indy)
--------- -------- sgi_vndr/dvorak(indigo)
--d------ -------- sgi_vndr/ch(de_indy)
--------- -------- sgi_vndr/ch(de_indy_nodeadkeys)
--------- -------- sgi_vndr/ch(de_indigo)
--------- -------- sgi_vndr/ch(de_indigo_nodeadkeys)
--------- -------- sgi_vndr/ch(fr_indy)
--------- -------- sgi_vndr/ch(fr_indy_nodeadkeys)
--------- -------- sgi_vndr/ch(fr_indigo)
--------- -------- sgi_vndr/ch(fr_indigo_nodeadkeys)
--d------ -------- sgi_vndr/pl(indy)
--------- -------- sgi_vndr/pl(indy_nodeadkeys)
--------- -------- sgi_vndr/pl(indigo)
--------- -------- sgi_vndr/pl(indigo_nodeadkeys)
--d------ -------- sgi_vndr/th(indy)
--------- -------- sgi_vndr/th(indigo)
--d------ -------- sgi_vndr/no(indy)
--------- -------- sgi_vndr/no(indy_nodeadkeys)
--------- -------- sgi_vndr/no(indigo)
--------- -------- sgi_vndr/no(indigo_nodeadkeys)
--d------ -------- sgi_vndr/es(indy)
--------- -------- sgi_vndr/es(indy_nodeadkeys)
--------- -------- sgi_vndr/es(indigo)
--------- -------- sgi_vndr/es(indigo_nodeadkeys)
--d------ -------- sgi_vndr/cz(indy)
--------- -------- sgi_vndr/cz(indigo)
--------- -------- sgi_vndr/cz(indy_qwerty)
--------- -------- sgi_vndr/cz(indigo_qwerty)
--d------ -------- sgi_vndr/hu(indy)
--------- -------- sgi_vndr/hu(indy_toggle)
--------- -------- sgi_vndr/hu(indy_shift_toggle)
--------- -------- sgi_vndr/hu(indy_ctrl_shift_toggle)
--------- -------- sgi_vndr/hu(indy_ctrl_alt_toggle)
--------- -------- sgi_vndr/hu(indy_caps_toggle)
--------- -------- sgi_vndr/hu(indigo)
--------- -------- sgi_vndr/hu(indigo_toggle)
--------- -------- sgi_vndr/hu(indigo_shift_toggle)
--------- -------- sgi_vndr/hu(indigo_ctrl_shift_toggle)
--------- -------- sgi_vndr/hu(indigo_ctrl_alt_toggle)
--------- -------- sgi_vndr/hu(indigo_caps_toggle)
--d------ -------- sgi_vndr/en_US(indy)
--------- -------- sgi_vndr/en_US(indy_nodeadkeys)
--------- -------- sgi_vndr/en_US(indy101)
--------- -------- sgi_vndr/en_US(indy101_nodeadkeys)
--------- -------- sgi_vndr/en_US(indy104)
--------- -------- sgi_vndr/en_US(indy104_nodeadkeys)
--------- -------- sgi_vndr/en_US(indigo)
--------- -------- sgi_vndr/en_US(indigo_nodeadkeys)
--d------ -------- sgi_vndr/jp(indy)
--d------ -------- sgi_vndr/gb(indy)
--------- -------- sgi_vndr/gb(indy_nodeadkeys)
--------- -------- sgi_vndr/gb(indigo)
--------- -------- sgi_vndr/gb(indigo_nodeadkeys)
--d------ -------- sgi_vndr/se(indy)
--------- -------- sgi_vndr/se(indy_nodeadkeys)
--------- -------- sgi_vndr/se(indigo)
--------- -------- sgi_vndr/se(indigo_nodeadkeys)
--d------ -------- sgi_vndr/dk(indy)
--------- -------- sgi_vndr/dk(indy_nodeadkeys)
--------- -------- sgi_vndr/dk(indigo)
--------- -------- sgi_vndr/dk(indigo_nodeadkeys)
--d------ -------- sgi_vndr/sk(indy)
--------- -------- sgi_vndr/sk(indigo)
--------- -------- sgi_vndr/sk(indy_qwerty)
--------- -------- sgi_vndr/sk(indigo_qwerty)
--d------ -------- sgi_vndr/pt(indy)
--------- -------- sgi_vndr/pt(indy_nodeadkeys)
--------- -------- sgi_vndr/pt(indigo)
--------- -------- sgi_vndr/pt(indigo_nodeadkeys)
--d------ -------- sgi_vndr/us(indy)
--------- -------- sgi_vndr/us(indy101_euro)
--------- -------- sgi_vndr/us(indy_compose)
--------- -------- sgi_vndr/us(indigo)
--------- -------- sgi_vndr/us(indigo_compose)
--------- -------- sgi_vndr/us(indigo101_compose)
--d------ -------- sgi_vndr/ca(indy)
--------- -------- sgi_vndr/ca(indy_nodeadkeys)
--------- -------- sgi_vndr/ca(indigo)
--------- -------- sgi_vndr/ca(indigo_nodeadkeys)
--d------ -------- sgi_vndr/de(indy)
--------- -------- sgi_vndr/de(indy_nodeadkeys)
--------- -------- sgi_vndr/de(indigo)
--------- -------- sgi_vndr/de(indigo_nodeadkeys)
--d------ -------- sgi_vndr/it(indy)
--------- -------- sgi_vndr/it(indy_nodeadkeys)
--------- -------- sgi_vndr/it(indigo)
--------- -------- sgi_vndr/it(indigo_nodeadkeys)
--d------ -------- sgi_vndr/bg(indy)
--------- -------- sgi_vndr/bg(indigo)
--d------ -------- sgi_vndr/be(indy)
--------- -------- sgi_vndr/be(indy_nodeadkeys)
--------- -------- sgi_vndr/be(indigo)
--------- -------- sgi_vndr/be(indigo_nodeadkeys)
--d------ -------- sgi_vndr/ru(indy)
--------- -------- sgi_vndr/ru(indy_toggle)
--------- -------- sgi_vndr/ru(indy_shift_toggle)
--------- -------- sgi_vndr/ru(indy_ctrl_shift_toggle)
--------- -------- sgi_vndr/ru(indy_ctrl_alt_toggle)
--------- -------- sgi_vndr/ru(indy_caps_toggle)
--------- -------- sgi_vndr/ru(indigo)
--------- -------- sgi_vndr/ru(indigo_toggle)
--------- -------- sgi_vndr/ru(indigo_shift_toggle)
--------- -------- sgi_vndr/ru(indigo_ctrl_shift_toggle)
--------- -------- sgi_vndr/ru(indigo_ctrl_alt_toggle)
--------- -------- sgi_vndr/ru(indigo_caps_toggle)
--d------ -------- sgi_vndr/fi(indy)
--------- -------- sgi_vndr/fi(indy_nodeadkeys)
--------- -------- sgi_vndr/fi(indigo)
--------- -------- sgi_vndr/fi(indigo_nodeadkeys)
--------- -------- sun_vndr/fr(type4_fr)
--------- -------- sun_vndr/fr(type4_fr_openlook)
--d------ -------- sun_vndr/fr(type5_fr)
--------- -------- sun_vndr/fr(type5_fr_openlook)
--------- -------- sun_vndr/pl(type4_pl)
--------- -------- sun_vndr/pl(type4_pl_openlook)
--d------ -------- sun_vndr/pl(type5_pl)
--------- -------- sun_vndr/pl(type5_pl_openlook)
--------- -------- sun_vndr/no(type4_no)
--------- -------- sun_vndr/no(type4_no_openlook)
--d------ -------- sun_vndr/no(type5_no)
--------- -------- sun_vndr/no(type5_no_openlook)
--------- -------- sun_vndr/es(type4_es)
--------- -------- sun_vndr/es(type4_es_openlook)
--d------ -------- sun_vndr/es(type5_es)
--------- -------- sun_vndr/es(type5_es_openlook)
+-------- -------- sun_vndr/de(type4_de)
+-------- -------- sun_vndr/de(type4_de_nodeadkeys)
+-------- -------- sun_vndr/de(type4_de_openlook)
+-d------ -------- sun_vndr/de(type5_de)
+-------- -------- sun_vndr/de(type5_de_nodeadkeys)
+-------- -------- sun_vndr/de(type5_de_openlook)
-------- -------- sun_vndr/all(Belgian6)
-------- -------- sun_vndr/all(Belgian6_usb)
-------- -------- sun_vndr/all(Canada4)
@@ -264,6 +140,22 @@
-------- -------- sun_vndr/uk(type4_uk_openlook)
-d------ -------- sun_vndr/uk(type5_uk)
-------- -------- sun_vndr/uk(type5_uk_openlook)
+-------- -------- sun_vndr/fi(type4_fi)
+-------- -------- sun_vndr/fi(type4_fi_openlook)
+-d------ -------- sun_vndr/fi(type5_fi)
+-------- -------- sun_vndr/fi(type5_fi_openlook)
+-------- -------- sun_vndr/no(type4_no)
+-------- -------- sun_vndr/no(type4_no_openlook)
+-d------ -------- sun_vndr/no(type5_no)
+-------- -------- sun_vndr/no(type5_no_openlook)
+-------- -------- sun_vndr/pl(type4_pl)
+-------- -------- sun_vndr/pl(type4_pl_openlook)
+-d------ -------- sun_vndr/pl(type5_pl)
+-------- -------- sun_vndr/pl(type5_pl_openlook)
+-------- -------- sun_vndr/fr(type4_fr)
+-------- -------- sun_vndr/fr(type4_fr_openlook)
+-d------ -------- sun_vndr/fr(type5_fr)
+-------- -------- sun_vndr/fr(type5_fr_openlook)
-d------ -------- sun_vndr/se(type5c_se_fixdollar)
-------- -------- sun_vndr/se(type5c_se)
-------- -------- sun_vndr/se(type5_se)
@@ -276,21 +168,147 @@
-------- -------- sun_vndr/us(type5_us_openlook)
-------- -------- sun_vndr/us(type5_unix)
-------- -------- sun_vndr/us(type5_unix_openlook)
--------- -------- sun_vndr/de(type4_de)
--------- -------- sun_vndr/de(type4_de_nodeadkeys)
--------- -------- sun_vndr/de(type4_de_openlook)
--d------ -------- sun_vndr/de(type5_de)
--------- -------- sun_vndr/de(type5_de_nodeadkeys)
--------- -------- sun_vndr/de(type5_de_openlook)
+-------- -------- sun_vndr/es(type4_es)
+-------- -------- sun_vndr/es(type4_es_openlook)
+-d------ -------- sun_vndr/es(type5_es)
+-------- -------- sun_vndr/es(type5_es_openlook)
-------- -------- sun_vndr/ru(type4_ru)
-------- -------- sun_vndr/ru(type4_ru_openlook)
-d------ -------- sun_vndr/ru(type5_ru)
-------- -------- sun_vndr/ru(type5_ru_openlook)
--------- -------- sun_vndr/fi(type4_fi)
--------- -------- sun_vndr/fi(type4_fi_openlook)
--d------ -------- sun_vndr/fi(type5_fi)
--------- -------- sun_vndr/fi(type5_fi_openlook)
-------- -------- sony(news5000-nwp5461)
+-d------ -------- xfree98(jp)
+-d------ -------- amiga(usa1)
+-------- -------- amiga(de)
+-d------ -------- sgi_vndr/de(indy)
+-------- -------- sgi_vndr/de(indy_nodeadkeys)
+-------- -------- sgi_vndr/de(indigo)
+-------- -------- sgi_vndr/de(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/fi(indy)
+-------- -------- sgi_vndr/fi(indy_nodeadkeys)
+-------- -------- sgi_vndr/fi(indigo)
+-------- -------- sgi_vndr/fi(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/be(indy)
+-------- -------- sgi_vndr/be(indy_nodeadkeys)
+-------- -------- sgi_vndr/be(indigo)
+-------- -------- sgi_vndr/be(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/dk(indy)
+-------- -------- sgi_vndr/dk(indy_nodeadkeys)
+-------- -------- sgi_vndr/dk(indigo)
+-------- -------- sgi_vndr/dk(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/hu(indy)
+-------- -------- sgi_vndr/hu(indy_toggle)
+-------- -------- sgi_vndr/hu(indy_shift_toggle)
+-------- -------- sgi_vndr/hu(indy_ctrl_shift_toggle)
+-------- -------- sgi_vndr/hu(indy_ctrl_alt_toggle)
+-------- -------- sgi_vndr/hu(indy_caps_toggle)
+-------- -------- sgi_vndr/hu(indigo)
+-------- -------- sgi_vndr/hu(indigo_toggle)
+-------- -------- sgi_vndr/hu(indigo_shift_toggle)
+-------- -------- sgi_vndr/hu(indigo_ctrl_shift_toggle)
+-------- -------- sgi_vndr/hu(indigo_ctrl_alt_toggle)
+-------- -------- sgi_vndr/hu(indigo_caps_toggle)
+-d------ -------- sgi_vndr/cz(indy)
+-------- -------- sgi_vndr/cz(indigo)
+-------- -------- sgi_vndr/cz(indy_qwerty)
+-------- -------- sgi_vndr/cz(indigo_qwerty)
+-d------ -------- sgi_vndr/bg(indy)
+-------- -------- sgi_vndr/bg(indigo)
+-d------ -------- sgi_vndr/sk(indy)
+-------- -------- sgi_vndr/sk(indigo)
+-------- -------- sgi_vndr/sk(indy_qwerty)
+-------- -------- sgi_vndr/sk(indigo_qwerty)
+-d------ -------- sgi_vndr/en_US(indy)
+-------- -------- sgi_vndr/en_US(indy_nodeadkeys)
+-------- -------- sgi_vndr/en_US(indy101)
+-------- -------- sgi_vndr/en_US(indy101_nodeadkeys)
+-------- -------- sgi_vndr/en_US(indy104)
+-------- -------- sgi_vndr/en_US(indy104_nodeadkeys)
+-------- -------- sgi_vndr/en_US(indigo)
+-------- -------- sgi_vndr/en_US(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/jp(indy)
+-d------ -------- sgi_vndr/no(indy)
+-------- -------- sgi_vndr/no(indy_nodeadkeys)
+-------- -------- sgi_vndr/no(indigo)
+-------- -------- sgi_vndr/no(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/pl(indy)
+-------- -------- sgi_vndr/pl(indy_nodeadkeys)
+-------- -------- sgi_vndr/pl(indigo)
+-------- -------- sgi_vndr/pl(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/gb(indy)
+-------- -------- sgi_vndr/gb(indy_nodeadkeys)
+-------- -------- sgi_vndr/gb(indigo)
+-------- -------- sgi_vndr/gb(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/ch(de_indy)
+-------- -------- sgi_vndr/ch(de_indy_nodeadkeys)
+-------- -------- sgi_vndr/ch(de_indigo)
+-------- -------- sgi_vndr/ch(de_indigo_nodeadkeys)
+-------- -------- sgi_vndr/ch(fr_indy)
+-------- -------- sgi_vndr/ch(fr_indy_nodeadkeys)
+-------- -------- sgi_vndr/ch(fr_indigo)
+-------- -------- sgi_vndr/ch(fr_indigo_nodeadkeys)
+-d------ -------- sgi_vndr/pt(indy)
+-------- -------- sgi_vndr/pt(indy_nodeadkeys)
+-------- -------- sgi_vndr/pt(indigo)
+-------- -------- sgi_vndr/pt(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/ca(indy)
+-------- -------- sgi_vndr/ca(indy_nodeadkeys)
+-------- -------- sgi_vndr/ca(indigo)
+-------- -------- sgi_vndr/ca(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/fr(indy)
+-------- -------- sgi_vndr/fr(indy_nodeadkeys)
+-------- -------- sgi_vndr/fr(indigo)
+-------- -------- sgi_vndr/fr(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/se(indy)
+-------- -------- sgi_vndr/se(indy_nodeadkeys)
+-------- -------- sgi_vndr/se(indigo)
+-------- -------- sgi_vndr/se(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/us(indy)
+-------- -------- sgi_vndr/us(indy101_euro)
+-------- -------- sgi_vndr/us(indy_compose)
+-------- -------- sgi_vndr/us(indigo)
+-------- -------- sgi_vndr/us(indigo_compose)
+-------- -------- sgi_vndr/us(indigo101_compose)
+-d------ -------- sgi_vndr/dvorak(indy)
+-------- -------- sgi_vndr/dvorak(indigo)
+-d------ -------- sgi_vndr/es(indy)
+-------- -------- sgi_vndr/es(indy_nodeadkeys)
+-------- -------- sgi_vndr/es(indigo)
+-------- -------- sgi_vndr/es(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/it(indy)
+-------- -------- sgi_vndr/it(indy_nodeadkeys)
+-------- -------- sgi_vndr/it(indigo)
+-------- -------- sgi_vndr/it(indigo_nodeadkeys)
+-d------ -------- sgi_vndr/th(indy)
+-------- -------- sgi_vndr/th(indigo)
+-d------ -------- sgi_vndr/ru(indy)
+-------- -------- sgi_vndr/ru(indy_toggle)
+-------- -------- sgi_vndr/ru(indy_shift_toggle)
+-------- -------- sgi_vndr/ru(indy_ctrl_shift_toggle)
+-------- -------- sgi_vndr/ru(indy_ctrl_alt_toggle)
+-------- -------- sgi_vndr/ru(indy_caps_toggle)
+-------- -------- sgi_vndr/ru(indigo)
+-------- -------- sgi_vndr/ru(indigo_toggle)
+-------- -------- sgi_vndr/ru(indigo_shift_toggle)
+-------- -------- sgi_vndr/ru(indigo_ctrl_shift_toggle)
+-------- -------- sgi_vndr/ru(indigo_ctrl_alt_toggle)
+-------- -------- sgi_vndr/ru(indigo_caps_toggle)
+-------- -------- digital_vndr/us(lk201)
+-------- -------- digital_vndr/us(lk401)
+-------- -------- digital_vndr/us(lk411)
+-------- -------- digital_vndr/us(lk421)
+-------- -------- digital_vndr/us(lk441)
+-------- -------- digital_vndr/us(lk443)
+-------- -------- digital_vndr/us(lk44x)
+-------- -------- digital_vndr/us(lk450)
+-------- -------- digital_vndr/us(pcxalaa)
+-------- -------- digital_vndr/us(pcxalfa)
+-------- -------- digital_vndr/us(pcxalga)
+-------- -------- digital_vndr/us(pcxalka)
+-------- -------- digital_vndr/us(pcxal)
+-------- -------- digital_vndr/us(mnk)
+-d------ -------- ataritt(us)
+-------- -------- ataritt(de)
-d------ -------- xfree86(us)
-------- -------- xfree86(ar)
-------- -------- xfree86(be)
@@ -342,21 +360,3 @@
-------- -------- xfree86(fr_CH)
-------- -------- xfree86(mt_us)
-------- -------- xfree86(sk_qwerty)
--d------ -------- ataritt(us)
--------- -------- ataritt(de)
--------- -------- digital_vndr/us(lk201)
--------- -------- digital_vndr/us(lk401)
--------- -------- digital_vndr/us(lk411)
--------- -------- digital_vndr/us(lk421)
--------- -------- digital_vndr/us(lk441)
--------- -------- digital_vndr/us(lk443)
--------- -------- digital_vndr/us(lk44x)
--------- -------- digital_vndr/us(lk450)
--------- -------- digital_vndr/us(pcxalaa)
--------- -------- digital_vndr/us(pcxalfa)
--------- -------- digital_vndr/us(pcxalga)
--------- -------- digital_vndr/us(pcxalka)
--------- -------- digital_vndr/us(pcxal)
--------- -------- digital_vndr/us(mnk)
--d------ -------- amiga(usa1)
--------- -------- amiga(de)
diff --git a/xorg-server/xkbdata.src/po/bg.po b/xorg-server/xkbdata.src/po/bg.po
index 4263f655f..351b69f66 100644
--- a/xorg-server/xkbdata.src/po/bg.po
+++ b/xorg-server/xkbdata.src/po/bg.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-1.6pre1\n"
+"Project-Id-Version: xkeyboard-config-1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-14 06:15+0300\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-19 11:42+0300\n"
"Last-Translator: Alexander Shopov <ash@contact.bg>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"MIME-Version: 1.0\n"
@@ -369,2378 +369,2422 @@ msgid "Bangladesh"
msgstr "бангладешÑка"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "башкирÑка"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Бел"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "беларуÑка"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "белгийÑка"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "бенгалÑка"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "бенгалÑка — пробхат"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ергономична, по Дворак"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ергономична, по Дворак, Ñамо латиница-9"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Бъл"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Бут"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "бутанÑка"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "библейÑки иврит (Тиро)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "БиХ"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Бел"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "боÑненÑка"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Двата Alt-а заедно"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Двата Ctrl-а заедно"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Двата Shift-а заедно"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Бра"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "брайл"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "бразилÑка"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "бретонÑка"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Брй"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "българÑка"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP (урду)"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "камбоджанÑка"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Кан"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "канадÑка"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "CapsLock (към първата подредба), Shift+CapsLock (към поÑледната)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "CapsLock (докато е натиÑнат), Alt+CapsLock замеÑтва CapsLock"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "CapsLock работи като Shift ÑÑŠÑ Ð·Ð°ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½Ðµ. Shift временно Ð¾Ñ‚Ð¼ÐµÐ½Ñ CapsLock"
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "CapsLock работи като Shift ÑÑŠÑ Ð·Ð°ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½Ðµ. Shift не влиÑе на CapsLock"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock е изключен"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Поведение на CapsLock"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "CapsLock ÑÐ¼ÐµÐ½Ñ ÑÑŠÑтоÑнието Shift за вÑички клавиши"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock ÑÐ¼ÐµÐ½Ñ ÑÑŠÑтоÑнието Shift Ñамо на буквените клавиши"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "CapsLock използва вътрешна промÑна на региÑтъра. Shift временно Ð¾Ñ‚Ð¼ÐµÐ½Ñ CapsLock"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "CapsLock използва вътрешна промÑна на региÑтъра. Shift не влиÑе на CapsLock"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "каталунÑки вариант Ñ Ä¿ (Ñ Ñ‚Ð¾Ñ‡ÐºÐ° в Ñредата)"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Ñедий"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Чех"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "черокÑка"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (алтернативен вариант)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Кит"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "чувашка"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "чувашка, латиница"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "клаÑичеÑка"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "клаÑичеÑка, Дворак"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "коулмак"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard (за леÑен доÑтъп)"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (за Интернет, 13 допълнителни клавиша)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (за Интернет, 18 допълнителни клавиша)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (за Интернет, 7 допълнителни клавиша)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Положение на Compose"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "конгоанÑка (ДРК)"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
msgstr "Control+Alt+Backspace"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "И двата Alt-а Ñа Control, Win е Alt"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "И двата Win-а Ñа Control (както и клавишите Ctrl)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000 (безжична)"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "татарÑка (Крим) (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "татарÑка (Крим) (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "татарÑка (Крим) (турÑко Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "татарÑка (Крим) (турÑко F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "татарÑка (Крим) (турÑко Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "хърватÑка"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Положение на Ctrl"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "кирилÑка"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "кирилÑка Ñ Ñ„Ñ€ÐµÐ½Ñки кавички"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "кирилÑка Ñ Ñ€Ð°Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸ „З“ и „Ж“"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Чеч"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "чеченÑка"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "Кнг"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Дат"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "„мъртво“ ударение"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "„мъртво“ тежко ударение"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Стандартни клавиши на цифровата клавиатура"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Клавиатура на Dell ÑÑŠÑ 101 клавиша за PC"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Laptop/notebook Inspiron 6xxx/8xxx (за мобилен компютър)"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Laptop/notebook Precision M series (за мобилен компютър)"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "За преноÑим компютър Dell Latitude"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia Keybard (за мултимедиÑ)"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "датÑка"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Ðем"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard (безжична)"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801/9802 series"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Дворак"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Дворак, (Ð¿ÑƒÐ½ÐºÑ‚ÑƒÐ°Ñ†Ð¸Ñ Ð½Ð° Обединеното кралÑтво)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Дворак, международна"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Дворак, полÑки кавички на клавиша „1“"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Дворак, полÑки кавички на клавиша за кавички"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "източна"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Допълнителни типографÑки знаци"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "английÑка"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Enter на цифровата клавиатура"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "ЕÑп"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "ергономична"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "ИÑп"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "еÑперантÑка"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "ЕÑÑ‚"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "еÑтонÑка"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Ети"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "етиопÑка"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Клавиатура управлÑвана от Evdev"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "еве"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "разширена"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "разширена — Winkeys"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "удължен Backslash"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "вариант Ñ Ð±ÑƒÐºÐ²Ð° F (F)"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Фар"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "фарьорÑка"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Фин"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "финландÑка"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Клавиш на четири нива Ñ Ð°Ð±Ñтрактни разделители"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Клавиш на четири нива Ñ Ð´ÐµÑетична запетаÑ"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Клавиш на четири нива Ñ Ð´ÐµÑетична точка"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Клавиш на четири нива Ñ Ð´ÐµÑетична точка, Ñамо латиница-9"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Клавиш на четири нива Ñ Ð°Ñ€Ð°Ð±Ñка деÑетична запетаÑ"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Фре"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "френÑка"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "френÑка"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "френÑка (за Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "френÑка (оÑтарÑла)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "френÑка Дворак"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "френÑка, Ñ â€žÐ¼ÑŠÑ€Ñ‚Ð²Ð¸Ñ‚Ðµâ€œ клавиши на Sun"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "френÑка, без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO laptop (за мобилен компютър)"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "фула"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "ВБр"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "га"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Стандартна клавиатура за PC ÑÑŠÑ 101 клавиша"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Стандартна клавиатура за PC ÑÑŠÑ 102 клавиша (международна)"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Стандартна клавиатура за PC ÑÑŠÑ 104 клавиша"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Стандартна клавиатура за PC ÑÑŠÑ 105 клавиша (международна)"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M/Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Гру"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "грузинÑка"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "грузинÑка"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "грузинÑка, цкапо azerty"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "немÑка (за Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "немÑка, Ñ â€žÐ¼ÑŠÑ€Ñ‚Ð²Ð¸â€œ клавиши на Sun"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "немÑка, без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "немÑка"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Ган"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "ганийÑка"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Гръ"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "гръцка"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "ÑменÑне на ÑÑŠÑтоÑнието при натиÑкането на умножение/деление"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "гвй"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "гвинейÑка"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "гуджарати"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "гурмуки"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "гурмуки джелум"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking Keyboard (за веÑело хакерÑтване)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking Keyboard for Mac (за веÑело хакерÑтване)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "хауÑка"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x Multimedia Keyboard (за мултимедиÑ)"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "шеÑтнадеÑетична"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "фонетична Болнагри за хинди"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "хинди Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "фонетична"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Хър"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Унг"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "унгарÑка"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "И двата Win-а Ñа Hyper"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl (международна)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO (алтернативна)"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "иÑландÑка"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "игбо"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "включване на „мъртва“ тилда"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Инд"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "индийÑка"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "международна, Ñ â€žÐ¼ÑŠÑ€Ñ‚Ð²Ð¸â€œ клавиши чрез AltGr"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "международна, Ñ â€žÐ¼ÑŠÑ€Ñ‚Ð²Ð¸â€œ клавиши"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "еÑкимоÑка"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "иранÑка"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "иракÑка"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "ирландÑка"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Ирл"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Ирн"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Ирк"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "ИÑл"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Изр"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "израелÑка"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ита"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "италианÑка"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "ÑпонÑка"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "ÑпонÑка, Ñерии PC-98xx"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "ÐаÑтройки за ÑпонÑка клавиатура"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Япо"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "калмишка"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "ÑпонÑка Ñричкова (кана)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Клавишът Lock на кана заключва"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "канареÑка"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "кашубÑка"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Каз"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "казахÑка Ñ Ñ€ÑƒÑки букви"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "казахÑка"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð·Ð° убиването на X Ñървъра"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Клавиш за избор третото ниво"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Клавиш(и) за ÑмÑна на подредбата"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "цифрова клавиатура"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "Крг"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Кам"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "комÑка"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Кор"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "корейÑка (Република КореÑ)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "ктунакÑа"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "кюрдÑка, (Ф)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "кюрдÑка, арабÑки и латинÑки букви"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "кюрдÑка, латинÑко Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "кюрдÑка, латинÑко Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "киргиÑтанÑка"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "ЛÐм"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Лао"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "лаоÑка"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Laptop/notebook Compaq Laptop Keyboard (за мобилен компютър, напр. Armada)"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Laptop/notebook Compaq Internet Keyboard (за мобилен компютър, напр. Presario, и Интернет)"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Laptop/notebook eMachines m68xx (за мобилен компютър)"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "латинÑка"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "латиноамериканÑка"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "латинÑка за Уникод"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "латинÑка за Уникод (qwerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "латинÑка (qwerty)"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "латинÑка за Уникод"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "латинÑка за Уникод, qwerty"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "латинÑка Ñ Ñ„Ñ€ÐµÐ½Ñки кавички"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "латвийÑка"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Лат"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "ЛевиÑÑ‚ Alt"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "ЛевиÑÑ‚ Alt (докато е натиÑнат)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "ЛевиÑÑ‚ Alt е разменен Ñ Ð»ÐµÐ²Ð¸Ñ Win"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "ЛевиÑÑ‚ Ctrl"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "ЛевиÑÑ‚ Ctrl+левиÑÑ‚ Shift"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "ЛевиÑÑ‚ Shift"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "ЛевиÑÑ‚ Win"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "CapsLock (към първата подредба), деÑниÑÑ‚ Win/Menu (към поÑледната)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "ЛевиÑÑ‚ Win (докато е натиÑнат)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "за левичари"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Дворак за левичари"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "оÑтарÑла"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "ОÑтарÑла Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "ОÑтарÑл клавиш Ñ Ð´ÐµÑетична запетаÑ"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "ОÑтарÑл клавиш Ñ Ð´ÐµÑетична точка"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "По-малко/по-голÑмо"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "литовÑка"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop (безжична)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (алтернативен вариант)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300 (безжична)"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator (безжична)"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical (оптична)"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (алтернативен вариант 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch (безжична)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator (безжична)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15, допълнителни клавиши чрез G15daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech Generic Keyboard (Ñтандартна)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard (безжична, за мултимедиÑ)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (model Y-RB6) (безжична)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (за Интернет)"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB) (за Интернет)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "долно ÑорбÑка"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "долно ÑорбÑка (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Лит"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "Чгр"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (международна)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "македонÑка"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh Old (Ñтар вариант)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, Ñ â€žÐ¼ÑŠÑ€Ñ‚Ð²Ð¸â€œ клавиши на Sun"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "CapsLock е допълнителен Backspace"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "CapsLock е допълнителен Ctrl"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "CapsLock е допълнителен Esc"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "CapsLock е допълнителен Hyper"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "CapsLock е допълнителен NumLock"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "CapsLock е допълнителен Super"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Млд"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "малаÑламÑка"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "малаÑламÑка лалита"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "малдивÑка"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "малтийÑка"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "малтийÑка Ñ Ð°Ð¼ÐµÑ€Ð¸ÐºÐ°Ð½Ñка подредба"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Мао"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "маорÑка"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard (за леÑен доÑтъп)"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "ЛевиÑÑ‚ Win е Meta"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "И двата Win-а Ñа Meta"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, Swedish (за Интернет, шведÑка)"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro/Microsoft Internet Keyboard Pro (за Интернет)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB/Microsoft Internet Keyboard Pro (за Интернет)"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000 (безжична, ергономична)"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard (за офиÑа)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A (безжична, за мултимедиÑ)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Разни наÑтройки за ÑъвмеÑтимоÑÑ‚"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Мак"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Мал"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Миа"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Мон"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "монголÑка"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "черногорÑка"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "мароканÑка"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "многоезична"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "многоезична, първа чаÑÑ‚"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "многоезична, втора чаÑÑ‚"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "мианмарÑка"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Backspace на мÑÑтото определено от подредбата NICOLA-F"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "нативна"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "нативна за еÑперанто"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "нативна за СÐЩ"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Ðеп"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "непалÑка"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "холандÑка"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "фонетична, нова"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Ðиг"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "нигерийÑка"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Хол"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Интервал без разделÑне на четвърто ниво"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Интервал без разделÑне на четвърто ниво и теÑен интервал без разделÑне на шеÑто ниво"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Интервал без разделÑне на четвърто ниво и теÑен интервал без разделÑне на шеÑто ниво (Ñ Ctrl+Shift)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Интервал без разделÑне на второ ниво"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Интервал без разделÑне на трето ниво"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Интервал без разделÑне на трето ниво и нищо на четвърто ниво"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Интервал без разделÑне на трето ниво и теÑен интервал без разделÑне на четвърто ниво"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Ðор"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "ÑеверноÑамÑка (ÐорвегиÑ)"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "ÑеверноÑамÑка, без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "норвежка"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Поведение на клавиша за триене на цифровата клавиатура"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Цифровата клавиатура функционира като в Macintosh"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Избор на подредбата на цифровата клавиатура"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "дарийÑка за OLPC (фарÑи)"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "пащунÑка за OLPC"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "южно узбекÑка за OLPC"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "прованÑалÑка"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "огамÑка"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "огамÑка IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "орийÑка"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "оÑетинÑка"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "оÑетинÑка, клавиши Win"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "оÑетинÑка, оÑтарÑла"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "Серии PC-98xx"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Пак"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "пакиÑтанÑка"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "пащунÑка"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "патачотÑка"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "перÑийÑка, Ñ Ð¿ÐµÑ€ÑийÑка цифрова клавиатура"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "фонетична"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "фонетична, клавиши Win"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Пол"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "полÑка"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "политонална"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "португалÑка"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "про"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "цифрова клавиатура про"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "пробхатÑка"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Дворак за програмиÑти"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Пор"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "ДеÑниÑÑ‚ Alt"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "ДеÑниÑÑ‚ Alt (докато е натиÑнат)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "ДеÑниÑÑ‚ Alt никога не избира третото ниво"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "ДеÑниÑÑ‚ Alt, Shift+деÑниÑÑ‚ Alt Ñа Multi"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "ДеÑниÑÑ‚ Ctrl"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "ДеÑниÑÑ‚ Ctrl (докато е натиÑнат)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "ДеÑниÑÑ‚ Ctrl е деÑен Alt"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "ДеÑниÑÑ‚ Shift"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "ДеÑниÑÑ‚ Win"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "ДеÑниÑÑ‚ Win (докато е натиÑнат)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "за деÑничари"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Дворак за деÑничари"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "румънÑка"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "румънÑка клавиатура Ñ Ð½ÐµÐ¼Ñки букви"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "румънÑка клавиатура Ñ Ð½ÐµÐ¼Ñки букви, без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Рум"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "РуÑ"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "руÑка"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "руÑка"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "руÑка фонетична"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "руÑка фонетична, Дворак"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "руÑка фонетична, без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "руÑка Ñ ÐºÐ°Ð·Ð°Ñ…Ñки букви"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard (безжична, за мултимедиÑ)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "Срб"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500 (ергономична)"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "шъкуъпмъктчин"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Точка и Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ Ð½Ð° третото ниво"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "ÑръбÑка"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Shift Ð¾Ñ‚Ð¼ÐµÐ½Ñ CapsLock"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Shift не Ð¾Ñ‚Ð¼ÐµÐ½Ñ CapsLock, а избира третото ниво"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Shift за цифровата клавиатура както в MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Shift+CapsLock"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Обикновена"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Ñловашка"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "ÑловенÑка"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "южноафриканÑка"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "южно узбекÑка"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "иÑпанÑка"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Специалните комбинации (Ctrl+Alt+&lt;клавиш&gt;) Ñе обработват от Ñървъра"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "Шри"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "шриланкÑка"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Ñтандартна"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Ñтандартна (Ñедий)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Ñтандартна фонетична"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Ñтандартна украинÑка"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Ñтандартна украинÑка, руÑка подредба"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Ðа Sun, вид 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sun, без „мъртви“ клавиши"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard (за мултимедиÑ)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Свдворак"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Свш"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Свн"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "РазмÑна на Ctrl и CapsLock"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "РазмÑна на Esc и CapsLock"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Шве"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "шведÑка"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "швейцарÑка"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (за таблет)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Сир"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "ÑирийÑка"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "ÑириакÑка (арамейÑка)"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "ÑириакÑка фонетична (арамейÑка)"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "таджикÑка"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "тамилÑка"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "тамилÑка машинопиÑна Ñ Ñ‚Ð°Ð±ÑƒÐ»Ð°Ñ†Ð¸Ñ"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "тамилÑка машинопиÑна — TSCII"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "тамилÑка за Уникод"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "татарÑка"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "телугу"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Тай"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "тайландÑка"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "тибетÑка"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "тибетÑка (Ñ Ñ†Ð¸Ñ„Ñ€Ð¸ от ASCII)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "тифинах"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "алтернативна за тифинах"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "алтернативна, фонетична за тифинах"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "разширена за тифинах"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "разширена фонетична за тифинах"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "фонетична за тифинах"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "вариант Ñ Ñ‚Ð¸Ð»Ð´Ð° (~)"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Тдж"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "към ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ в Dvorak"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "към ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ Qwerty"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "фонетична, традиционна"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic (безжична)"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Тур"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "турÑка"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "туркмениÑтанÑка"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "машинопиÑна"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "Подредба UCW (Ñамо ударени букви)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "американÑка Ñ Ð±Ð¾ÑненÑки диграфи"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "американÑка Ñ Ð±Ð¾ÑненÑки букви"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "американÑка Ñ Ñ…ÑŠÑ€Ð²Ð°Ñ‚Ñки диграфи"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "американÑка Ñ Ñ…ÑŠÑ€Ð²Ð°Ñ‚Ñки букви"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "американÑка Ñ ÐµÑтонÑки букви"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "американÑка Ñ Ð¸Ñ‚Ð°Ð»Ð¸Ð°Ð½Ñки букви"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "американÑка Ñ Ð»Ð¸Ñ‚Ð¾Ð²Ñки букви"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "американÑка ÑÑŠÑ ÑловенÑки букви"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "Ðме"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "удмурт"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Укр"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "украинÑка"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "ДопълнениÑта от Уникод (Ñтрелки и математичеÑки операции)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "ДопълнениÑта от Уникод (Ñтрелки и математичеÑки операции). Операциите Ñа на Ñтандартното ниво"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "екÑпертна за Уникод"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "британÑка"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "урду, фонетична, алтернативна"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "урду, фонетична"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "урду, клавиши Win"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Ñ Ð±Ð¾ÑненÑки диграфи"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Ñ Ñ…ÑŠÑ€Ð²Ð°Ñ‚Ñки диграфи"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "ÑÑŠÑ Ñ„Ñ€ÐµÐ½Ñки кавички"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Ð˜Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· клавиатурен Ñветодиод за ÑмÑна на подредбата"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Генериране на интервал без разделÑне Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆa за интервал"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Ðормален интервал на вÑички нива"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Узб"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "узбекиÑтанÑка"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "виетнамÑка"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Вие"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Цифрова клавиатура — Wang 724, Ñ Ð´Ð¾Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ñта от Уникод (Ñтрелки и математичеÑки операции)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Цифрова клавиатура Wang 724, Ñ Ð´Ð¾Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ñта от Уникод (Ñтрелки и математичеÑки операции). Операциите Ñа на Ñтандартното ниво"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang model 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "западна"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "клавиши Win"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "клавиш &lt;\\|&gt;"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "€ е при „5“"
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "френÑки кавички"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard (за Интернет)"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "ÑкутÑка"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "йоруба"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "разменени „З“ и „Ж“"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "ЮÐÑ„"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/цифри"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "цифри"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "разменени точка и Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ Ð¸ кавички (оÑтарÑла)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty Ñ ÑƒÐ´ÑŠÐ»Ð¶ÐµÐ½ Backslash"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/цифри"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "ацинÑка"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "комбиниращи ÑƒÐ´Ð°Ñ€ÐµÐ½Ð¸Ñ Ð²Ð¼ÐµÑто „мъртви“ клавиши"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Ñелиш на кор дален"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "международна, Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ð¸ по Уникод чрез AltGr"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "международна, Ñ Ð°Ð»Ñ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¸ комбинации по Уникод чрез AltGr"
diff --git a/xorg-server/xkbdata.src/po/ca.po b/xorg-server/xkbdata.src/po/ca.po
index 5ae16fa2e..a293b5509 100644
--- a/xorg-server/xkbdata.src/po/ca.po
+++ b/xorg-server/xkbdata.src/po/ca.po
@@ -1,14 +1,14 @@
-# Translation of xkeyboard-config-1.6pre1.po to Catalan
+# Translation of xkeyboard-config-1.6.99.po to Catalan
# Copyright © 2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the xkeyboard-config package.
#
# Josep Ma. Ferrer <txemaq@gmail.com>, 2007, 2008, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-1.6pre1\n"
+"Project-Id-Version: xkeyboard-config-1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-13 21:19+0200\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-17 20:33+0200\n"
"Last-Translator: Josep Ma. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"MIME-Version: 1.0\n"
@@ -370,2379 +370,2423 @@ msgid "Bangladesh"
msgstr "Bangladesh"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Baixkir"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Bielorússia"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Bèlgica"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengalí"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengalí Probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonòmic, tipus Dvorak"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonòmic, tipus Dvorak, només latin-9"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Hebreu bíblic (Tiro)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bòsnia i Hercegovina"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Les dues tecles Alt juntes"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Les dues tecles Ctrl juntes"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Les dues tecles Maj juntes"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brasil"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bretó"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Teclat Brother Internet"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgària"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Cambodja"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Canadà"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Bloq Majús"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "BloqMaj"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "BloqMaj (a la primera disposició), Maj+BloqMaj (a la darrera disposició)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "BloqMaj (mentre està premuda), Alt+BloqMaj efectua l'acció de BloqMaj original"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "BloqMaj actua com a Maj amb bloqueig. Maj «pausa» BloqMaj"
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "BloqMaj actua com a Maj amb bloqueig. Maj no afecta a BloqMaj"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "BloqMaj està deshabilitat"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Comportament de la tecla BloqMaj"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "BloqMaj commuta Maj, de manera que afecta totes les tecles"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "BloqMaj commuta les majúscules normals dels caràcters alfabètics"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "BloqMaj usa internament les majúscules. Maj «pausa» BloqMaj"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "BloqMaj usa internament les majúscules. Maj no afecta BloqMaj"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Variant catalana amb L amb punt volat"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Trencat"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (opció alternativa)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Teclat Chicony Internet"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Xina"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Chuvash llatí"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Clàssic"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Dvorak clàssic"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Teclat Compaq Easy Access"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Teclat Compaq Internet (13 tecles)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Teclat Compaq Internet (18 tecles)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Teclat Compaq Internet (7 tecles)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Teclat Compaq iPaq"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Posició de la tecla Compose"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Congo, República Democràtica del"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
msgstr "Control + Alt + Retrocés"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Control s'assigna a les tecles Alt, Alt s'assigna a les tecles Win"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Control s'assigna a les tecles Win (i a les tecles Ctrl habituals)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Tàtar de Crimea (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Tàtar de Crimea (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Tàtar de Crimea (Turc Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Tàtar de Crimea (Turc F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Tàtar de Crimea (Turc Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Croàcia"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Posició de la tecla Ctrl"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Maj"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Ciríl·lic"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Ciríl·lic amb cometes angulars"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Ciríl·lic, Z i ZHE intercanviades"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Txèquia"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Accent mort"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Accent greu mort"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Tecles predeterminades del teclat numèric"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell PC 101 tecles"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Portàtil Dell Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Portàtil Dell sèrie Precision M"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Portàtil Dell sèrie Latitude"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Teclat Dell USB Multimedia"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Dinamarca"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Teclat Dexxa Wireless Desktop"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond sèries 9801 / 9802"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (Puntuació UK)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak internacional"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, cometes poloneses a la tecla 1"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, cometes poloneses a la tecla cometes"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Oriental"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Elimina les tecles mortes"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Habilita els caràcters tipogràfics extres"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Anglès"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Retorn en el teclat numèric"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonòmic"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estònia"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiòpia"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Teclat gestionat per «evdev»"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Estés"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Estés - Tecles Win"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Barra inversa estesa"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "Variant de lletra F (F)"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Illes Faroe"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finlàndia"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Tecla de quatre nivells amb separadors abstractes"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Tecla de quatre nivells amb coma"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Tecla de quatre nivells amb punt"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Tecla de quatre nivells amb punt, restricció de latin-9"
# Què collons és momayyez? jm
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Tecla de quatre nivells amb momayyez"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "França"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Francès"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Francès (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Francès (llegat)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Francès Dvorak"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Francès, tecles mortes de Sun"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Francès, sense tecles mortes"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO portàtil"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "PC genèric de 101 tecles"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "PC genèric de 102 tecles (intl)"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "PC genèric de 104 tecles"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "PC genèric de 105 tecles (intl)"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Teclat Genius MM KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Geòrgia"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgià"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgià AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Alemany (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Alemany, tecles mortes de Sun"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Alemany, sense tecles mortes"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Alemanya"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Grècia"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Commutació de grup en la tecla de multiplicació/divisió"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujarati"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Teclat Happy Hacking"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Teclat Happy Hacking per a Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Haussa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Teclat Hewlett-Packard Internet"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Teclat Hewlett-Packard SK-250x Multimedia"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Hexadecimal"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hindi Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homofònic"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Hongria"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper s'assigna a les tecles Win"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "Alternativa ISO"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Islàndia"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Inclou la titlla morta"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Ãndia"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Internacional (tecles mortes AltGr)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Internacional (amb tecles mortes)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Iraq"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irlanda"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israel"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Itàlia"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japó"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japó (sèries PC-98xx)"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Opcions del teclat japonès"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Calmuc"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "La tecla de bloqueig Kana està blocant"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Caixubi"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazakh amb rus"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazakhstan"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Seqüència de tecles per a matar el servidor X"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Tecla per a seleccionar el 3r nivell"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Tecla(es) per a canviar la disposició"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Teclat numèric"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "Kgz"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Corea, República de"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Kutenai (Ktunaxa)"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurd, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurd, aràbic-llatí"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurd, llatí Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurd, llatí Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirguizistan"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Laosià"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Teclat de portàtil Compaq (p.ex. Armada)"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Teclat Internet de portàtil Compaq (p.ex. Presario)"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Portàtil eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Llatí"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Llatinoamericà"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Llatí Unicode"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Llatí Unicode qwerty"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Llatí qwerty"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Llatí unicode"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Llatí unicode qwerty"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Llatí amb cometes angulars"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Letònia"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Alt esquerra"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Alt esquerra (mentre està premuda)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Alt esquerra està intercanviada amb la tecla Win esquerra"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Ctrl esquerra"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl esquerra + Maj esquerra"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Maj esquerra"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Win esquerra"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Win esquerraj (a la primera disposició), Win/Menú dreta (a la darrera disposició)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Win esquerra (mentre està premuda)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Esquerrà"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Dvorak esquerrà"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Llegat"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Wang 724 llegat"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Tecla llegada amb coma"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Tecla llegada amb punt"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Més petit-que/Més gran-que"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Lituània"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Teclat Logitech Access"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (opció alternativa)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (opció alternativa 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 amb tecles extres via G15daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Teclat Logitech genèric"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Teclat Logitech Internet 350"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Teclat Logitech Internet"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Teclat Logitech Internet Navigator"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Teclat Logitech Media Elite"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Teclat Logitech Ultra-X Cordless Media Desktop"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Teclat Logitech Ultra-X"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Teclat Logitech diNovo Edge"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Teclat Logitech diNovo"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Teclat Logitech iTouch Cordless (model Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Teclat Logitech iTouch Internet Navigator SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Teclat Logitech iTouch Internet Navigator SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Baix sòrab"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Baix sòrab (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Macedònia"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh antic"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, tecles mortes de Sun"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, sense tecles mortes"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Converteix BloqMaj en un Retrocés addicional"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Converteix BloqMaj en un Ctrl addicional"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Converteix BloqMaj en un Esc addicional"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Converteix BloqMaj en un Hyper addicional"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Converteix BloqMaj en un BloqNúm addicional"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Converteix BloqMaj en un Super addicional"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malaialam"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malaialam Lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldives"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Teclat maltès amb disposició US"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Teclat Memorex MX2500 EZ-Access"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menú"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta s'assigna a la tecla Win esquerra"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta s'assigna a les tecles Win"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Teclat Microsoft Internet"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, Suec"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Teclat Microsoft Natural Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Teclat Microsoft Natural Pro / Teclat Microsoft Internet Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Teclat Microsoft Natural Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Teclat Microsoft Natural Pro USB / Teclat Microsoft Internet Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Teclat Microsoft Office"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Teclat Microsoft Wireless Multimedia 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Opcions de compatibilitat diverses"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongòlia"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marroc"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Multilingüe"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Multilingüe, primera part"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Multilingüe, segona part"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Retrocés estil NICOLA-F"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo per a l'Esperanto"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo per als teclats EUA"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Països Baixos"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Fonètic nou"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigèria"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Caràcter d'espai sense salt al nivell quart"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Caràcter d'espai sense salt al nivell quart, i un caràcter d'espai fi sense salt al nivell sisè"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Caràcter d'espai sense salt al nivell quart, un caràcter d'espai fi sense salt al nivell sisè (via Ctrl+Maj)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "La tecla d'espai produeix un caràcter d'espai sense salt al nivell segon"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "La tecla d'espai produeix un caràcter d'espai sense salt al nivell tercer"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "La tecla d'espai produeix un caràcter d'espai sense salt al nivell tercer, i res al nivell quart"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "La tecla d'espai produeix un caràcter d'espai sense salt al nivell tercer, i un caràcter d'espai fi sense salt al nivell quart"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Saami del nord"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Saami del nord, sense tecles mortes"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Noruega"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "BloqNúm"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Comportament de la tecla de supressió del teclat numèric"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Les tecles del teclat numèric funcionen com al Mac"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Selecció de la disposició del teclat numèric"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Paixtu"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Uzbek del sud"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Occità"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Teclat Ortek MCK-800 MM/Internet"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Osset"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Osset, tecles Win"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Osset, llegat"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "Sèries PC-98xx"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Paixtu"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Farsi, amb teclat farsi"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonètic"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "Tecles Win fonètiques"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polònia"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Politònic"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugal"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pro Keypad"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Dvorak de programador"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Alt dreta"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Alt dreta (mentre està premuda)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "La tecla Alt dreta mai selecciona el 3r nivell"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Alt dreta, Maj+Alt dreta és la Multi_Key"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Ctrl dreta"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl dreta (mentre està premuda)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl dreta com a Alt dreta"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Maj dreta"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Win dreta"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Win dreta (mentre està premuda)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Dretà"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Dvorak dretà"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Romania"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Teclat romanès amb lletres alemanyes"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Teclat romanès amb lletres alemanyes, sense tecles mortes"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Rússia"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Rus"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Rus fonètic"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Rus fonètic Dvorak"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Rus fonètic, sense tecles mortes"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Rus amb Kazakh"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "Teclat SILVERCREST Multimedia Wireless"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Bloq Despl"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "BloqDespl"
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Punt i coma al tercer nivell"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Sèrbia"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Maj cancel·la BloqMaj"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Maj no cancel·la BloqNúm, en el seu lloc selecciona el 3r nivell"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Maj amb el teclat numèric funciona com al MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Maj+BloqMaj"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Senzill"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Eslovàquia"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Eslovènia"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Sudàfrica"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Uzbek del sud"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Espanya"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Tecles especials (Ctrl+Alt+&lt;tecla&gt;) gestionades en un servidor"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Estàndard"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Estàndard (ce trencada)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Fonètic estàndard"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Estàndard RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Estàndard RSTU en una disposició russa"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Tecles mortes de Sun"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Teclat Super Power Multimedia"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Intercanvia Ctrl i BloqMaj"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Intercanvia Esc i BloqMaj"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Suècia"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Suïssa"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Síria"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Siri"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Siri fonètic"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tadjikistan"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tàmil"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tàmil TAB Typewriter"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tàmil TSCII Typewriter"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tàmil Unicode"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tàtar"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Tailàndia"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetà"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetà (amb nombres ASCII)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh alternativa"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh fonètic alternativa"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh ampliada"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh fonètic ampliada"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh fonètica"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Variant titlla (~)"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "A la tecla corresponent en un teclat Dvorak."
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "A la tecla corresponent en un teclat Qwerty."
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "Fonètic tradicional"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Teclat Trust Direct Access"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Teclat Trust Wireless Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turquia"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Turkmenistan"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Màquina d'escriure"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "Disposició UCW (només lletres accentuades)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Teclat US amb dígrafs bosnians"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Teclat US amb lletres bosnianes"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Teclat US amb dígrafs croats"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Teclat US amb lletres croates"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Teclat US amb lletres estònies"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Teclat US amb lletres italianes"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Teclat US amb dígrafs lituans"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Teclat US amb lletres eslovenes"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "EUA"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ucraïna"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Addicions Unicode (fletxes i operadors matemàtics)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Addicions Unicode (fletxes i operadors matemàtics). Els operadors matemàtics al nivell predeterminat"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Regne Unit"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdú, fonètic alternatiu"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdú, fonètic"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdú, tecles Win"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Usa dígrafs bosnians"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Usa dígrafs croats"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Usa cometes angulars per les cometes"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Usa el LED del teclat per a mostrar la disposició alternativa"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Usa la tecla d'espai per a introduir un caràcter d'espai sense salt"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Espai normal en qualsevol nivell"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekistan"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "Teclat ViewSonic KU-306 Internet"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Teclat numèric Wang 724 amb addicions Unicode (fletxes i operadors matemàtics)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Teclat numèric Wang 724 amb addicions Unicode (fletxes i operadors matemàtics). Els operadors matemàtics en el nivell per defecte"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang model 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Occidental"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Tecles Win"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Amb la tecla &lt;\\|&gt;"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Amb el signe de l'euro al 5"
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Amb cometes angulars"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Teclat Yahoo! Internet"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Iacut"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Ioruba"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z i ZHE intercanviades"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/dígits"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "dígits"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "punt i coma i cometa desplaçats (obsolet)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, barra inversa ampliada"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/dígits"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Combinació d'accents en lloc de tecles mortes"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Internacional (combinació Unicode AltGr)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Internacional (combinació Unicode AltGr, alternativa)"
diff --git a/xorg-server/xkbdata.src/po/cs.po b/xorg-server/xkbdata.src/po/cs.po
index 573dcda46..027eaec31 100644
--- a/xorg-server/xkbdata.src/po/cs.po
+++ b/xorg-server/xkbdata.src/po/cs.po
@@ -3,20 +3,18 @@
# This file is distributed under the same license as the xkeyboard-config package.
# Michal Bukovjan <bukm@centrum.cz>, 2003.
# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009.
-#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-1.6pre1\n"
+"Project-Id-Version: xkeyboard-config-1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-15 19:52+0200\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-21 01:35+0200\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: KBabel 1.11.4\n"
#: ../rules/base.xml.in.h:1
msgid "(F)"
@@ -371,2378 +369,2422 @@ msgid "Bangladesh"
msgstr "Bangladéš"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Baškirské"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "BEL"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Bělorusko"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgie"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengálské"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengálské Probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomické, typ Dvorak"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomické, typ Dvorak, pouze Latin-9"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "BGR"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "BHU"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhútán"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Biblická hebrejština (Tiro)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "BIH"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "BLR"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosna a Hercegovina"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Obě klávesy Alt dohromady"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Obě klávesy Ctrl dohromady"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Obě klávesy Shift dohromady"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "BRA"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braillovo písmo"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brazílie"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bretonské"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "BRL"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulharsko"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Kambodža"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "CAN"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanada"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "Caps Lock (na první rozložení), Shift+Caps Lock (na poslední rozložení)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "Caps Lock (při stisknutí), Alt+Caps Lock provádí původní akci Caps Lock"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "Caps Lock funguje jako Shift s uzamÄením. Shift pÅ™eruÅ¡uje Caps Lock."
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "Caps Lock funguje jako Shift s uzamÄením. Shift neovlivňuje Caps Lock."
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "Klávesa Caps Lock je vypnuta"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Chování klávesy Caps Lock"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "Caps Lock pÅ™epne Shift, takže budou dotÄeny vÅ¡echny klávesy"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "Caps Lock přepne běžný převod abecedních znaků na verzálky"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "Caps Lock používá vnitřní převod na verzálky. Shift přerušuje Caps Lock."
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "Caps Lock používá vnitřní převod na verzálky. Shift neovlivňuje Caps Lock."
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Katalánská varianta s ela geminada"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cédille"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "CHE"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Čerokí"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternativní volba)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Čína"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Čuvašské"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Čuvašské latinské"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Klasické"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Klasické Dvorak"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 kláves)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 kláves)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 kláves)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Umístění klávesy Compose"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Konžská demokratická republika"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
msgstr "Ctrl + Alt + Backspace"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl je přiřazena ke klávesám Alt, Alt je přiřazena ke klávesám Win"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl je přiřazena ke klávesám Win (a obvyklým klávesám Ctrl)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Krymskotatarské (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Krymskotatarské (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krymskotatarské (turecké Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Krymskotatarské (turecké F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krymskotatarské (turecké Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Chorvatsko"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Umístění klávesy Ctrl"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Cyrilice"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Cyrilice s francouzskými uvozovkami"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Cyrilice, prohozené Z a Ž"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "CZE"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "ÄŒesko"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "DAN"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Mrtvá Äárka"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Mrtvá opaÄná Äárka (gravis)"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Výchozí numerická klávesnice"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell PC 101klávesové"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Notebook Dell Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Notebook Dell řady Precision M"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Notebook řady Dell Latitude"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia Keyboard"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Dánsko"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "DEU"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Řada Diamond 9801 / 9802"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (britská interpunkce)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak mezinárodní"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, polské uvozovky na klávese 1"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, polské uvozovky na klávese uvozovky"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Východní"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "VylouÄit mrtvé klávesy"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Povolit přídavné znaky hladké sazby"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Anglické"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Enter na numerické klávesnici"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "EPO"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomické"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "ESP"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "EST"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estonsko"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "ETH"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiopie"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Klávesnice spravovaná pomocí Evdev"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Rozšířené"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Rozšířené - klávesy Win"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Rozšířená klávesa zpětného lomítka"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "Varianta se znakem F"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "FAO"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Faerské ostrovy"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "FIN"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finsko"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Klávesa Ätvrté úrovnÄ› s abstraktními oddÄ›lovaÄi"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Klávesa Ätvrté úrovnÄ› s Äárkou"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Klávesa Ätvrté úrovnÄ› s teÄkou"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Klávesa Ätvrté úrovnÄ› s teÄkou, omezení Latin-9"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Klávesa Ätvrté úrovnÄ› se znakem momajjez"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "FRA"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Francie"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Francouzské"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Francouzské (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Francouzské (zděděné)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Francouzské Dvorak"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Francouzské, mrtvé klávesy Sun"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Francouzské, vylouÄit mrtvé klávesy"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Notebook Fujitsu-Siemens Computers AMILO"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBR"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "GA"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Obecné PC 101klávesové"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Obecné PC 102klávesové (mez.)"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Obecné PC 104klávesové"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Obecné PC 105klávesové (mez.)"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "GEO"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Gruzie"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Gruzínské"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Gruzínské AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Německé (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Německé, mrtvé klávesy Sun"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "NÄ›mecké, vylouÄit mrtvé klávesy"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Německo"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "GHA"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "GRE"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Řecko"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Přepínání skupiny klávesou násobení/dělení"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "GUI"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gudžarátské"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmuchské"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmuchské (Jhelum)"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking Keyboard"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking Keyboard for Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x Multimedia Keyboard"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Hexadecimální"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindské bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hindské Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Stejně znějící"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "HRV"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "HUN"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "MaÄarsko"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper je přiřazena ke klávesám Win"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, mez."
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO alternativní"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Island"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Zahrnout mrtvou klávesu vlnovky"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "IND"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Indie"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Mezinárodní (mrtvé klávesy AltGr)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Mezinárodní (s mrtvými klávesami)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Ãrán"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irák"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irsko"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "IRL"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "IRN"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "IRQ"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "ISL"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "ISR"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Izrael"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "ITA"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Itálie"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japonsko"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japonsko (řada PC-98xx)"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Volby japonské klávesnice"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "JPN"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmycké"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Klávesa Kana Lock uzamyká"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannadské"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kašubské"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "KAZ"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazašská s ruštinou"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazachstán"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Pořadí kláves zabíjející server X"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Klávesa umožňující výběr 3. úrovně"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Klávesa měnící rozložení"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Numerická klávesnice"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "KGZ"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "KHM"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "KOR"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Korejská republika"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurdské, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurdské, arabsko-latinské"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurdské, latinské Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurdské, latinské Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kyrgyzstán"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "LAO"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Laptop Keyboard pro notebook Compaq (napÅ™. Armada)"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Internet Keyboard pro notebook Compaq (napÅ™. Presario)"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Notebook eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latinské"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latinskoamerické"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latinské Unicode"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latinské Unicode qwerty"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latinské qwerty"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latinské Unicode"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latinské Unicode qwerty"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latinské s francouzskými uvozovkami"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Lotyšsko"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "LAV"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Levá klávesa Alt"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Levá klávesa Alt (při stisknutí)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Levá klávesa Alt je prohozena s levou klávesou Win"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Levá klávesa Ctrl"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Levá klávesa Ctrl + levá klávesa Shift"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Levá klávesa Shift"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Levá klávesa Win"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Levá klávesa Win (na první rozložení), pravá klávesa Win/Menu (na poslední rozložení)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Levá klávesa Win (při stisknutí)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Levoruké"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Levoruké Dvorak"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Zděděné"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Zděděná Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "ZdÄ›dÄ›ná klávesa s Äárkou"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "ZdÄ›dÄ›ná klávesa s teÄkou"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Menší než/větší než"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Litva"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (alternativní volba)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (alternativní volba 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Přídavné klávesy Logitech G15 pomocí G15daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech Generic Keyboard"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (model Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Dolnolužické"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Dolnolužické (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "LTU"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (mez.)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Makedonie"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh staré"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, mrtvé klávesy Sun"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, vylouÄit mrtvé klávesy"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Vytvořit z klávesy Caps Lock další Backspace"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Vytvořit z klávesy Caps Lock další Ctrl"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Vytvořit z klávesy Caps Lock další Esc"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Vytvořit z klávesy Caps Lock další Hyper"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Vytvořit z klávesy Caps Lock další Num Lock"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Vytvořit z klávesy Caps Lock další Super"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "MAL"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malajálamské"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malajálamské lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maledivy"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Maltézská klávesnice s americkým rozložením"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "MAO"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maorské"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta je přiřazena k levé klávese Win"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta je přiřazena ke klávesám Win"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, švédská"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "DodateÄné volby kompatibility"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "MKD"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "MLT"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "MMR"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "MNG"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolsko"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Černá Hora"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Maroko"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "VícejazyÄné"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "VícejazyÄné, první Äást"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "VícejazyÄné, druhá Äást"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Barma"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Backspace typu NICOLA-F"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo pro esperanto"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo pro americké klávesnice"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "NEP"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepál"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Nizozemsko"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Nové fonetické"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "NIG"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigérie"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "NLD"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Na Ätvrté úrovni znak nedÄ›litelné mezery"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Na Ätvrté úrovni znak nedÄ›litelné mezery, tenká nedÄ›litelná mezera na Å¡esté úrovni"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Na Ätvrté úrovni znak nedÄ›litelné mezery, tenká nedÄ›litelná mezera na Å¡esté úrovni (pÅ™es Ctrl+Shift)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Na druhé úrovni znak nedělitelné mezery"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Na třetí úrovni znak nedělitelné mezery"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Na tÅ™etí úrovni znak nedÄ›litelné mezery, nic na úrovni Ätvrté"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Na tÅ™etí úrovni znak nedÄ›litelné mezery, tenká nedÄ›litelná mezera na Ätvrté úrovni"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "NOR"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Severolaponské"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Severolaponské, vylouÄit mrtvé klávesy"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norsko"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "Num Lock"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Chování klávesy Delete na numerické klávesnici"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Klávesy numerické klávesnice fungují stejnÄ› jako u poÄítaÄe Mac"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Výběr rozložení numerické klávesnice"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC, darí"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC, paštó"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC, jihouzbecké"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Okcitánské"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogam"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Urijské"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Internet keyboard pro Ortek MCK-800 MM"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Osetinské"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Osetinské, klávesy Win"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Osetinské, zděděné"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "Řada PC-98xx"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "PAK"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pákistán"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Paštské"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Perské, s perskou numerickou klávesnicí"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetické"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "Fonetické klávesy Win"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "POL"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polsko"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytonické"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugalsko"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pro Keypad"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Prt"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Programátorské Dvorak"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "PRT"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Pravá klávesa Alt"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Pravá klávesa Alt (při stisknutí)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Pravá klávesa Alt nikdy neumožní výběr 3. úrovně"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Pravá klávesa Alt, Shift a pravá klávesa Alt je Multi_Key"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Pravá klávesa Ctrl"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Pravá klávesa Ctrl (při stisknutí)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Pravá klávesa Ctrl funguje jako pravá klávesa Alt"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Pravá klávesa Shift"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Pravá klávesa Win"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Pravá klávesa Win (při stisknutí)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Pravoruké"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Pravoruké Dvorak"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rumunsko"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Rumunská klávesnice s německými znaky"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Rumunská klávesnice s nÄ›meckými znaky, vylouÄit mrtvé klávesy"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "ROU"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "RUS"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Rusko"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Ruské"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Ruské fonetické"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Ruské fonetické Dvorak"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Ruské fonetické, vylouÄit mrtvé klávesy"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Ruská s kazaštinou"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Středník na třetí úrovni"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Srbsko"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Shift ruší Caps Lock"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Shift neruší Num Lock, namísto toho vybírá 3. úroveň"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Shift s numerickými klávesami funguje jako v MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Shift+Caps Lock"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Jednoduché"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovensko"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovinsko"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Jižní Afrika"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Jihouzbecké"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Španělsko"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Speciální klávesy (Ctrl+Alt+&lt;klávesa&gt;) zpracovány v serveru"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SRL"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Srí Lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standardní"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standardní (cédille)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Standardní fonetické"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standardní RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standardní RSTU s ruským rozložením"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Mrtvé klávesy Sun"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "SVK"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "SVN"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Zaměnit Ctrl a Caps Lock"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Zaměnit Esc a Caps Lock"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "SWE"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Švédsko"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Švýcarsko"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "SYR"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Sýrie"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syrské"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Syrské fonetické"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tádžikistán"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamilské"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamil TAB Typewriter"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamil TSCII Typewriter"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamilské Unicode"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatarské"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Tegulské"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "THA"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thajsko"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetské"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetské (s Äíslicemi ASCII)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh, alternativní"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh, alternativní fonetické"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh, rozšířené"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh, rozšířené fonetické"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh, fonetické"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Varianta s vlnovkou (~)"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "TJK"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "K odpovídající klávese na klávesnici Dvorak."
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "K odpovídající klávese na klávesnici Qwerty."
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "TradiÄní fonetické"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "TUR"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turecko"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Turkmenistán"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Psací stroj"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "Rozložení UCW (pouze znaky s diakritikou)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Americká klávesnice s bosenskými spřežkami"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Americká klávesnice s bosenskými znaky"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Americká klávesnice s chorvatskými spřežkami"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Americká klávesnice s chorvatskými znaky"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Americká klávesnice s estonskými znaky"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Americká klávesnice s italskými znaky"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Americká klávesnice s litevskými znaky"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Americká klávesnice se slovinskými znaky"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurtské"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "UKR"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukrajina"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Doplňky Unicode (šipky a matematické operátory)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Doplňky Unicode (šipky a matematické operátory). Matematické operátory na výchozí úrovni."
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Spojené království"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdské, alternativní fonetické"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdské, fonetické"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdské, klávesy Win"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Používat bosenské spřežky"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Používat chorvatské spřežky"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Používat francouzské uvozovky"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Použít LED klávesnice k zobrazení alternativního rozložení"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Používání mezerníku k zadávání znaku nedělitelné mezery"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Na jakékoliv úrovni znak běžné mezery"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "UZB"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekistán"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "VNM"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Numerická klávesnice Wang 724 s doplňky Unicode (šipky a matematické operátory)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Numerická klávesnice Wang 724 s doplňky Unicode (šipky a matematické operátory). Matematické operátory na výchozí úrovni."
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang, model 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Západní"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Klávesy Win"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "S klávesou &lt;\\|&gt;"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Se znakem eura na klávese 5"
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "S francouzskými uvozovkami"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "jakutské"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Jorubské"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Prohozené Z a Ž"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "ZAR"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/Äíslice"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "Äíslice"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "posunutý středník a uvozovka (zastaralé)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, rozšířená klávesa zpětného lomítka"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/Äíslice"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Místo mrtvých kláves kombinovaná diakritika"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Salishské (Coeur d'Alene)"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Mezinárodní (AltGr kombinované Unicode)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Mezinárodní (AltGr kombinované Unicode, alternativní)"
diff --git a/xorg-server/xkbdata.src/po/da.po b/xorg-server/xkbdata.src/po/da.po
index a404aef5e..7ea60f675 100644
--- a/xorg-server/xkbdata.src/po/da.po
+++ b/xorg-server/xkbdata.src/po/da.po
@@ -11,7 +11,7 @@
# en specialtast til at skrive en email med "Compose email", derfor
# synes jeg at det vil være det bedste at kalde det en "Skriv e-mail
# tast" og så skrive "compose" bagefter i parentes. (kenneths besked, se også Kelds)
-#
+#
# delete key = slettetast
# digraph = digraf (En digraf er to bogstaver, der repræsenterer én lyd.
# En digraf er ikke det samme som en ligatur.) Eksempler: "hj" og "hv"
@@ -24,10 +24,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-1.6pre1\n"
+"Project-Id-Version: xkeyboard-config-1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-15 23:06+0100\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-17 23:06+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"MIME-Version: 1.0\n"
@@ -392,970 +392,983 @@ msgid "Bangladesh"
msgstr "Bangladesh"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Bashkirian"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Hviderusland"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgien"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengali"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengali probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomisk, Dvorakmåde"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomisk, Dvorakmåde, kun latin-9"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Bibelsk hebraisk (Tiro)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnien-herzegovina"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Begge Alt-taster sammen"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Begge Ctrl-taster sammen"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Begge skiftetaster sammen"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Blindskrift"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brasilien"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Breton"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgarien"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Cambodia"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Canada"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
-msgstr "Caps Lock (skifter til første layout), Skift+Caps Lock (skifter til sidste layout)"
+msgstr "CapsLock (skifter til første layout), Skift+CapsLock (skifter til sidste layout)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "CapsLock (mens presset ned), Alt+CapsLock udfører den oprindleige capslockhandling"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
-msgstr "CapsLock agerer som skiftetasten med lås. Skift »pauser« Caps Lock"
+msgstr "CapsLock agerer som skiftetasten med lås. Skift »pauser« CapsLock"
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
-msgstr "CapsLock agerer som skiftetasten med lås. Skift påvirker ikke Caps Lock"
+msgstr "CapsLock agerer som skiftetasten med lås. Skift påvirker ikke CapsLock"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock er slået fra"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
-msgstr "Opførsel for Caps Lock-tast"
+msgstr "Opførsel for CapsLock-tast"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
-msgstr "Caps Lock ændrer Skift så alle taster bliver påvirket"
+msgstr "CapsLock ændrer Skift så alle taster bliver påvirket"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock slår små/store bogstaver til/fra"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
-msgstr "Bruger intern forstørrelse af bogstaver. Skift sætter Caps Lock »på hold«"
+msgstr "Bruger intern forstørrelse af bogstaver. Skift sætter CapsLock »på hold«"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
-msgstr "Bruger intern forstørrelse af bogstaver. Skift påvirker ikke Caps Lock"
+msgstr "Bruger intern forstørrelse af bogstaver. Skift påvirker ikke CapsLock"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Katalansk variant med midterpunktum L"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cedille"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UBEGRÆNSET"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternativ)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Kina"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Chusvash"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Chuvash latin"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Klassisk"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Klassisk Dvorak"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 taster)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 taster)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 taster)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Placering af Composetast"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Congo, Den Demokratiske Republik"
-#: ../rules/base.xml.in.h:162
+# Backspace kunne også være Slet tilbage
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
-msgstr "Control + Alt + Slet tilbage"
+msgstr "Control + Alt + Rettelsestast"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Kontrol ligger på Alt-tasterne, Alt ligger på Win-tasterne"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Kontrol ligger på Win-tasterne (og de normale Ctrl-taster)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Krimsk tatar (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Krimsk tatar (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krimsk tatar (Tyrkisk Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Krimsk tatar (Tyrkisk F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krimsk tatar (Tyrkisk Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Kroatien"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Ctrl-tast placering"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Skift"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Kyrillisk"
# guillemets er dem her: »«
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Kyrillisk med guillemeter"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Kyrillisk, Z og ZHE ombyttet"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Tje"
# engelsk fejl her? Hedder det ikke Czech Republic
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Tjekkiet"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Død accent"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Død accent grave"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Standard numerisk tastatur taster"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-taster PC"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell bærbar/notebook Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell bærbar/notebook Precision M series"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude series bærbar"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell Sk-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia tastatur"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Danmark"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Tys"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802-serien"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (UK tegnsætning)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak international"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, polske anførelsestegn på tast 1"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, polske anførelsestegn på anførelsestast"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "Ø"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Østlig"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Slå døde taster fra"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Slå ekstra typografiske karakterer til"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Engelsk"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Retur på numerisk tastatur"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomisk"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estland"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eti"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiopien"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev-håndteret tastatur"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Udvidet"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Udvidet - Wintaster"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Udvidet omvendt skråstreg"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F-bogstav (F) variant"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fær"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Færøerne"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finland"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Niveau fire tast med abstrakt adskillelser"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Niveau fire tast med komma"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Niveau fire tast med punktum"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Niveau fire tast med punktum, latin-9 begrænsning"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Niveau fire tast med momayyez"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Frankrig"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Fransk"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Fransk (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Fransk (forældet)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Fransk dvorak"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Fransk, Sun døde taster"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Fransk, slå døde taster fra"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO bærbar"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Generisk 101-taster PC"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Generisk 102-taster (Intl) PC"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Generisk 104-taster PC"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Generisk 105-taster (Intl) PC"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Georgien"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgisk"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgisk AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Tysk (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Tysk, Sun døde taster"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Tysk, slå døde taster fra"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Tyskland"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Græ"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Grækenland"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Samlet ændring på division-/divideretast"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujarati"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Roteren"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Glædelig hacking tastatur"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Glædelig hacking tastatur til Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x Multimedia tastatur"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Sekstentals"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hindi Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homofonisk"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Ung"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Ungarn"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper ligger på Win-tasterne"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, intl"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO-alternativ"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Island"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Inkludere død tilde"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Indien"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "International (AltGr døde taster)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "International (med døde taster)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irland"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irk"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israel"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italien"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japan"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japan (PC-98xx serier)"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Japanske tastaturvalg"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
@@ -1364,1741 +1377,1447 @@ msgstr "Jpn"
# Weilate, Western Mongol) is the language spoken by the
# Kalmyks, that is, the Oirats of Kalmykia (Russian Federation).
# Kalmyk belongs to the Oirat subgroup of the Mongolic language family.
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Kana låsetast låser"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kashubian"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazakh med russisk"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazakstan"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Tastsekvens for at slå X-serveren ned"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Tast for at vælge tredje niveau"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Tast(er) for at skifte layout"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Numerisk tastatur"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "Kgz"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Republikken Korea"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurdisk, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurdisk, arabisk-latin"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurdisk, latin Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurdisk, latin Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kyrgyzstan"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Bærbar Compaq (fx Armada) Laptop Keyboard"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Bærbar/notebook Compaq (fx Presario) Internet Keyboard"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Bærbar/notebook eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latin"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latinamerika"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latin unicode"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latin unicode qwerty"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latin qwerty"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latin unicode"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latin unicode qwerty"
# guillemets er dem her: »«
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latin med gullemeter"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Letland"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Venstre Alt"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Venstre Alt (mens trykket ned)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Venstre Alt ombyttes med venstre Win-tast"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Venstre Ctrl"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Venstre Ctrl+Venstre Skift"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Venstre Skift"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Venstre Win"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Venstre Win (skifter til første layout), Højre Win/Menu (skifter til sidste layout)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Venstre Win-tast (mens trykket ned)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Venstre hånd"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Venstrehåndet dvorak"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Forældet"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Forældet Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Forældet tast med komma"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Forældet tast med punktum"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Mindre end/Større end"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Litauen"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (alternativ valg)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (alternativ tilvalg 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 ekstra taster via G15daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech Generic Keyboard"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (model Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Nedre Sorbian"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Nedre Sorbian (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Lit"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Makedonien"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh gammel"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, sun døde taster"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, slå døde taster fra"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
-msgstr "Gør Caps Lock til en ekstra rettelsestast"
+msgstr "Gør CapsLock til en ekstra rettelsestast"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
-msgstr "Gør Caps Lock til en ekstra Ctrl"
+msgstr "Gør CapsLock til en ekstra Ctrl"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
-msgstr "Gør Caps Lock til en ekstra Esc"
+msgstr "Gør CapsLock til en ekstra Esc"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Gør CapsLock til en ekstra Hyper"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Gør CapsLock til en ekstra NumLock"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Gør CapsLock til en ekstra Super"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldiverne"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Maltesisk tastatur med US-layout"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta ligger på venstre Win-tast"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta ligger på Win-tasterne"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, svensk"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Diverse kompatibilitetsvalg"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongoliet"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marokko"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Flersproget"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Flersproget, første del"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Flersproget, anden del"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Burma"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F-stil rettelsestast"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo for esperanto"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo for USA-tastaturer"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Holland"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Ny fonetisk"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigeria"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Hollandsk"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Ubrydelig mellemrumskarakter på fjerde niveau"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Ubrydelig mellemrumskarakter på fjerde niveau, tynd ubrydelige mellemrumskarakter på sjette niveau"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Ubrydelig mellemrumskarakter på fjerde niveau, tynd ubrydelige mellemrumskarakter på sjette niveau (via Ctrl+Skift)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Ubrydelig mellemrumskarakter på andet niveau"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Ubrydelig mellemrumskarakter på tredje niveau"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Ubrydelig mellemrumskarakter på tredje niveau, intet på fjerde niveau"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Ubrydelig mellemrumskarakter på tredje niveau, tynd ubrydelig mellemrumskarakter på fjerde niveau"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Nordligt saami"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Nordligt saami, slå døde taster fra"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norge"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Numerisk tastatur slettetast opførsel"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Numerisk tastatur taster fungerer som med Mac"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Numerisk tastatur layout udvælgelse"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pashto"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC sydlig uzbek"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Occitansk"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet keyboard"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Ossetisk"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Ossetisk, Winkeys"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Ossetisk, forældet"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx-serien"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pashto"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persisk, med persisk numerisk tastatur"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetisk"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
-msgstr "Fonetisk Wintaster"
+msgstr "Fonetiske Wintaster"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polen"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytonisk"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugal"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pro numerisk tastatur"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Programmørdvorak"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Højre Alt"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Højre Alt (mens trykket ned)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Højre Alt-tast vælger aldrig tredje niveau"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Højre Alt-tast, Skift+højre Alt-tast er fler_tast"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Højre Ctrl"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Højre Ctrl-tast (mens trykket ned)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Højre Ctrl-tast virker som højre Alt"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Højre Skift"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Højre Win"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Højre Win-tast (mens trykket ned)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Højre hånd"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Højre hånd dvorak"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rumænien"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Rumænsk tastatur med tyske bogstaver"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Rumænsk tastatur med tyske bogstaver, eliminer døde taster"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rum"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Rusland"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Russisk"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Russisk fonetisk"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Russisk fonetisk dvorak"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Russisk fonetisk, slå døde taster fra"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Russisk med kazakh"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Semikolon på tredje niveau"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbien"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
-msgstr "Skift afbryder Caps Lock"
+msgstr "Skift afbryder CapsLock"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Skift afbryder ikke NumLock, vælger tredje niveau i steden for"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Skift med numeriske taster virker som i MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
-msgstr "Skift+Caps Lock"
+msgstr "Skift+CapsLock"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Simpel"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovakiet"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovenien"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Sydafrika"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Sydlig uzbek"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Spanien"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Specialtaster (Ctrl+Alt+&lt;key&gt;) håndteret i en server"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standard"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standard (Cedilla)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Standard fonetisk"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standard RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standard-RSTU på russisk layout"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun type 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sun døde taster"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
-msgstr "Ombyt Ctrl og Caps Lock"
+msgstr "Ombyt Ctrl og CapsLock"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
-msgstr "Ombyt Ctrl og Caps Lock"
+msgstr "Ombyt Ctrl og CapsLock"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Sve"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Sverige"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Schweiz"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet-pc)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Syrien"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syrisk"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Syrisk fonetisk"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tadjikistan"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamil"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamil TAB-skrivemaskine"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamil TSCII-skrivemaskine"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamil unicode"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thailand"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetansk"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetansk (med ASCII-numre)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh alternativ"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh alternativ fonetisk"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh udvidet"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh udvidet fonetisk"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh fonetisk"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Tilde (~) variant"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Til den tilsvarende tast i et Dvoraktastatur."
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Til den tilsvarende tast på et Qwertytastatur."
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "Traditionel fonetisk"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tyr"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Tyrkiet"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Turkmenistan"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Skrivemaskine"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "UCW-layout (kun bogstaver med accent)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "US-tastatur med bosniske digrafer"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "US-tastatur med bosniske bogstaver"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "US-tastatur med kroatiske digrafer"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "US-tastatur med kroatiske bogstaver"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "US-tastatur med esttiske bogstaver"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "US-tastatur med italienske bogstaver"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "US-tastatur med litauiske bogstaver"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "US-tastatur med slovenske bogstaver"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukraine"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode tilføjelser (pile og matematiske tegn)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Unicode tilføjelser (pile og matematiske tegn). Matematiske tegn på standardniveau"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "United Kingdom"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, alternativ fonetisk"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, fonetisk"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, Win-taster"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Anvend bosniske digrafer"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Anvend kroatiske digrafer"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Anvend guillemeter som anførelsestegn"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Brug tastatur-LED til at vise alternativ layout"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Brug mellemrum for at indtaste ubrydelig mellemrumskarakter"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Normal mellemrum på alle niveauer"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Usbekistan"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 numerisk tastatur med unicode tilføjelser (pile og matematiske tegn)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Wang 724 numerisk tastatur med unicode tilføjelser (pile og matematiske tegn). Matematiske tegn på standardniveau"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang model 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Vestlig"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Win-taster"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Med &lt;\\|&gt; tast"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Med eurotegn på 5"
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Med guillemeter"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Yakut"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoruba"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z og ZHE ombyttet"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/cifre"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "cifre"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "forkert placeret semikolon og anførelsestegn (forældet)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, udvidet omvendt skråstreg"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/cifre"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
-#~ msgid "Brazilian ABNT2"
-#~ msgstr "Brasiliansk ABNT2"
-
-#~ msgid "Japanese 106-key"
-#~ msgstr "Japansk 106-taster"
-
-#~ msgid "Kir"
-#~ msgstr "Kir"
-
-#~ msgid "Korean 106-key"
-#~ msgstr "Koreansk 106-tast"
-
-#~ msgid "Super is mapped to Win keys"
-#~ msgstr "Super ligger på Win-tasterne"
-
-#~ msgid "US keyboard with Slovenian digraphs"
-#~ msgstr "US-tastatur med slovenske digrafer"
-
-#~ msgid "Unicode"
-#~ msgstr "Unicode"
-
-#~ msgid "Use Slovenian digraphs"
-#~ msgstr "Anvend slovenske digrafer"
-
-#~ msgid "Add the EuroSign to the 2 key."
-#~ msgstr "Tilføj eurotegnet til 2-tasten."
-
-#~ msgid "Add the EuroSign to the 4 key."
-#~ msgstr "Tilføj eurotegnet til 4-tasten."
-
-#~ msgid "Add the EuroSign to the 5 key."
-#~ msgstr "Tilføj eurotegnet til 5-tasten."
-
-#~ msgid "Add the EuroSign to the E key."
-#~ msgstr "Tilføj eurotegnet til E-tasten."
-
-#~ msgid "Alt+Ctrl change layout."
-#~ msgstr "Alt+Ctrl skifter layout."
-
-#~ msgid "Alt+Shift change layout."
-#~ msgstr "Alt+skift skifter layout."
-
-#~ msgid "CapsLock LED shows alternative layout."
-#~ msgstr "Caps Lock LED viser alternativ layout."
-
-#~ msgid "CapsLock just locks the Shift modifier."
-#~ msgstr "Caps Lock låser kun skift-ændreren."
-
-#~ msgid "CapsLock key changes layout."
-#~ msgstr "Caps Lock-tast skifter layout."
-
-#~ msgid "Ctrl+Shift change layout."
-#~ msgstr "Ctrl+skift skifter layout."
-
-#~ msgid "Hewlett-Packard Internet Keyboard 5181"
-#~ msgstr "Hewlett-Packard Internet Keyboard 5181"
-
-#~ msgid "Hewlett-Packard Internet Keyboard 5185"
-#~ msgstr "Hewlett-Packard Internet Keyboard 5185"
-
-#~ msgid "Hewlett-Packard SK-2505 Internet Keyboard"
-#~ msgstr "Hewlett-Packard SK-2505 Internet Keyboard"
-
-#~ msgid "IBM Rapid Access II (alternate option)"
-#~ msgstr "IBM Rapid Access II (alternativ)"
-
-#~ msgid "LCtrl+LShift change layout."
-#~ msgstr "Venstre Ctrl+skift skifter layout."
-
-#~ msgid "Layout switching"
-#~ msgstr "Layout ombytning"
-
-#~ msgid "Left Alt key changes layout."
-#~ msgstr "Venstre Alt-tast skifter layout."
-
-#~ msgid "Left Ctrl key changes layout."
-#~ msgstr "Venstre Ctrl-tast skifter layout."
-
-#~ msgid "Left Shift key changes layout."
-#~ msgstr "Venstre skiftetast skifter layout."
-
-#~ msgid "Left Win-key changes layout."
-#~ msgstr "Venstre Win-tast skifter layout."
-
-#~ msgid "Neostyle"
-#~ msgstr "Neostil"
-
-#~ msgid "NumLock LED shows alternative layout."
-#~ msgstr "Num Lock LED viser alternativ layout."
-
-#~ msgid "Press Left Alt key to choose 3rd level."
-#~ msgstr "Tryk venstre Alt-tast for at vælge tredje niveau."
-
-#~ msgid "Press Left Win-key to choose 3rd level."
-#~ msgstr "Tryk venstre Win-tast for at vælge tredje niveau."
-
-#~ msgid "Press Right Alt key to choose 3rd level."
-#~ msgstr "Tryk højre Alt-tast for at vælge tredje niveau."
-
-#~ msgid "Press Right Ctrl to choose 3rd level."
-#~ msgstr "Tryk højre Ctrl-tast for at vælge tredje niveau."
-
-#~ msgid "Press Right Win-key to choose 3rd level."
-#~ msgstr "Tryk højre Win-tast for at vælge tredje niveau."
-
-#~ msgid "Press any of Alt keys to choose 3rd level."
-#~ msgstr "Tryk på en af Alt-tasterne for at vælge tredje niveau."
-
-#~ msgid "Press any of Win-keys to choose 3rd level."
-#~ msgstr "Tryk på en af Win-tasterne for at vælge tredje niveau."
-
-#~ msgid "Right Alt key changes layout."
-#~ msgstr "Højre Alt-tast skifter gruppe."
-
-#~ msgid "Right Ctrl key changes layout."
-#~ msgstr "Højre Ctrl-tast skifter layout."
-
-#~ msgid "Right Shift key changes layout."
-#~ msgstr "Højre skiftetast skifter gruppe"
-
-#~ msgid "Right Win-key changes layout."
-#~ msgstr "Højre Win-tast skifter layout."
-
-#~ msgid "ScrollLock LED shows alternative layout."
-#~ msgstr "Scroll Lock LED viser alternativ layout."
-
-#~ msgid "Shift+CapsLock changes layout."
-#~ msgstr "Skift+Caps Lock-tast skifter layout."
-
-#~ msgid "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
-#~ msgstr "Ombyt tastkoder på to taster når Mac-tastaturer fejlopfanges af kerne."
-
-#~ msgid "Third level choosers"
-#~ msgstr "Tredje niveaus vælgere"
-
-#~ msgid "Urdu"
-#~ msgstr "Urdu"
-
-#~ msgid "A Tamil typewrite-style keymap; TAB encoding"
-#~ msgstr "En tamilsk skrivemaskine-tastaturudlægning; TAB-kodning"
-
-#~ msgid "A Tamil typewrite-style keymap; TSCII encoding"
-#~ msgstr "En tamilsk skrivemaskine-tastaturudlægning; TSCII-kodning"
-
-#~ msgid "A Tamil typewrite-style keymap; Unicode encoding"
-#~ msgstr "En tamilsk skrivemaskine-tastaturudlægning; Unicode-kodning"
-
-#~ msgid "Arb"
-#~ msgstr "Arb"
-
-#~ msgid "Bosnian"
-#~ msgstr "Bosnisk"
-
-#~ msgid "Burmese"
-#~ msgstr "Burmesisk"
-
-#~ msgid "CloGaelach Laptop"
-#~ msgstr "CloGaelach-bærbar"
-
-#~ msgid "Czech (qwerty)"
-#~ msgstr "Tjekkisk (qwerty)"
-
-#~ msgid "Danish"
-#~ msgstr "Dansk"
-
-#~ msgid "Dutch"
-#~ msgstr "Hollandsk"
-
-#~ msgid "Dvo"
-#~ msgstr "Dvo"
-
-#~ msgid "Finnish"
-#~ msgstr "Finsk"
-
-#~ msgid "French Canadian"
-#~ msgstr "Fransk-canadisk"
-
-#~ msgid "Georgian (latin)"
-#~ msgstr "Georgisk (latinsk)"
-
-#~ msgid "Georgian (russian)"
-#~ msgstr "Georgisk (russisk)"
-
-#~ msgid "Grc"
-#~ msgstr "Græ"
-
-#~ msgid "Group Shift/Lock behavior"
-#~ msgstr "Gruppeskift/-lås-opførsel"
-
-#~ msgid "Hin"
-#~ msgstr "Hin"
-
-#~ msgid "INSCRIPT layout"
-#~ msgstr "INSCRIPT-layout"
-
-#~ msgid "IS434 laptop"
-#~ msgstr "IS434-bærbar"
-
-#~ msgid "Iku"
-#~ msgstr "Iku"
-
-#~ msgid "Irish"
-#~ msgstr "Irsk"
-
-#~ msgid "Italian"
-#~ msgstr "Italiensk"
-
-#~ msgid "Lithuanian azerty standard"
-#~ msgstr "Litauisk azerty-standard"
-
-#~ msgid "Lithuanian qwerty \"numeric\""
-#~ msgstr "Litauisk qwerty-numerisk"
-
-#~ msgid "Logitech iTouch keyboard Internet Navigator"
-#~ msgstr "Logitech iTouch keyboard Internet Navigator"
-
-#~ msgid "Northern Saami (Finland)"
-#~ msgstr "Nordligt Saami (Finland)"
-
-#~ msgid "Northern Saami (Sweden)"
-#~ msgstr "Nordligt Saami (Sverige)"
-
-#~ msgid "Ogh"
-#~ msgstr "Ogh"
-
-#~ msgid "Ori"
-#~ msgstr "Ori"
-
-#~ msgid "PC104"
-#~ msgstr "PC104"
-
-#~ msgid "Polish"
-#~ msgstr "Polsk"
-
-#~ msgid "Polish (qwertz)"
-#~ msgstr "Polsk (qwertz)"
-
-#~ msgid "PowerPC PS/2"
-#~ msgstr "PowerPC PS/2"
-
-#~ msgid "Sapmi"
-#~ msgstr "Sapmi"
-
-#~ msgid "Scg"
-#~ msgstr "Scg"
-
-#~ msgid "Slovak (qwerty)"
-#~ msgstr "Slovakisk (qwerty)"
-
-#~ msgid "Sv"
-#~ msgstr "Sv"
-
-#~ msgid "Swedish"
-#~ msgstr "Svensk"
-
-#~ msgid "Swiss French"
-#~ msgstr "Schweizisk-fransk"
-
-#~ msgid "Tel"
-#~ msgstr "Tel"
-
-#~ msgid "Thai (Kedmanee)"
-#~ msgstr "Thai (Kedmanee)"
-
-#~ msgid "Tml"
-#~ msgstr "Tml"
-
-#~ msgid "Turkish"
-#~ msgstr "Tyrkisk"
-
-#~ msgid "Turkish Alt-Q Layout"
-#~ msgstr "Tyrkisk Alt-Q-layout"
-
-#~ msgid "U.S. English w/ ISO9995-3"
-#~ msgstr "U.S. Engelsk w/ ISO9995-3"
-
-#~ msgid "U.S. English w/ dead keys"
-#~ msgstr "U.S. Engelsk m. døde taster"
-
-#~ msgid "US"
-#~ msgstr "US"
-
-#~ msgid "Yug"
-#~ msgstr "Yug"
-
-#~ msgid "Yugoslavian"
-#~ msgstr "Yugoslavisk"
-
-#~ msgid "abnt2"
-#~ msgstr "abnt2"
-
-#~ msgid "bksl"
-#~ msgstr "omsk"
-
-#~ msgid "laptop"
-#~ msgstr "bæbar"
-
-#~ msgid "sefi"
-#~ msgstr "sefi"
-
-#~ msgid "si1452"
-#~ msgstr "si1452"
-
-#~ msgid "uni/101/qwerty/comma"
-#~ msgstr "uni/101/qwerty/komma"
-
-#~ msgid "uni/101/qwerty/dot"
-#~ msgstr "uni/101/qwerty/punktum"
-
-#~ msgid "uni/101/qwertz/comma"
-#~ msgstr "uni/101/qwertz/komma"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
-#~ msgid "uni/101/qwertz/dot"
-#~ msgstr "uni/101/qwertz/punktum"
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
-#~ msgid "uni/102/qwerty/comma"
-#~ msgstr "uni/102/qwerty/komma"
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Sammensætte accenter fremfor døde taster"
-#~ msgid "uni/102/qwerty/dot"
-#~ msgstr "uni/102/qwerty/punktum"
+# http://en.wikipedia.org/wiki/Interior_Salish_languages
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
-#~ msgid "uni/102/qwertz/comma"
-#~ msgstr "uni/102/qwertz/komma"
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "International (AltGr Unicode sammensætning)"
-#~ msgid "uni/102/qwertz/dot"
-#~ msgstr "uni/102/qwertz/punktum"
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "International (AltGr Unicode sammensætning, alternativ)"
diff --git a/xorg-server/xkbdata.src/po/de.po b/xorg-server/xkbdata.src/po/de.po
index 962483568..872ca67db 100644
--- a/xorg-server/xkbdata.src/po/de.po
+++ b/xorg-server/xkbdata.src/po/de.po
@@ -1,15 +1,15 @@
# German translation of xkeyboard-config.
# This file is distributed under the same license as the xkeyboard-config package.
-# Mario Blättermann <mariobl@gnome.org>, 2009.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009.
+# Mario Blättermann <mariobl@gnome.org>, 2009.
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-1.6pre1\n"
+"Project-Id-Version: xkeyboard-config-1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-13 21:02+0100\n"
-"Last-Translator: Mario Blättermann <mario.blaettermann@t-online.de>\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-16 21:08+0100\n"
+"Last-Translator: Mario Blättermann <mariobl@gnome.org>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -370,2383 +370,2439 @@ msgid "Bangladesh"
msgstr "Bangladesch"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Baschkirisch"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Weißrussland"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgien"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengalisch"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengali Probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomisch, Dvorak-ähnlich"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomisch, Dvorak-ähnlich, nur latin-9"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Althebräisch (Tiro)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnien-Herzegowina"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Beide Alt-Tasten gleichzeitig"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Beide Steuerungstasten gleichzeitig"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Beide Umschalttasten gleichzeitig"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brasilien"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bretonisch"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgarien"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Kambodscha"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanada"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Feststelltaste"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "Feststelltaste"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "Feststelltaste (zur ersten Belegung), Umschalttaste+Feststelltaste (zur letzten Belegung)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "Feststelltaste (gedrückt halten), Alt+Feststelltaste führen die normale Feststelltasten-Aktion aus"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "Feststelltaste arbeitet als Umschalttaste mit Sperrung. Umschalttaste »unterbricht« Feststelltaste"
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "Feststelltaste arbeitet als Umschalttaste mit Sperrung. Umschalttaste beeinflusst Feststelltaste nicht"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "Feststelltaste ist deaktiviert"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Verhalten der Feststelltaste"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "Feststelltaste kehrt Umschalttaste um, so dass alle Tasten beeinflusst werden"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "Feststelltaste kehrt die normale Großschreibung alphabetischer Zeichen um"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "Feststelltaste verwendet interne Großschreibung. Umschalttaste »unterbricht« Feststelltaste"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "Feststelltaste verwendet interne Großschreibung. Umschalttaste beeinflusst Feststelltaste nicht"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Katalanische Variante mit mittelpunktiertem L"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cedilla"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternative Option)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "China"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Tschuwaschisch"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Tschuwaschisch (lateinische Schrift)"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Klassisch"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Dvorak (klassisch)"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 Tasten)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 Tasten)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 Tasten)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Position der Compose-Taste"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Demokratische Republik Kongo"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
-msgstr "Strg + Alt + Entf"
+msgstr "Strg + Alt + Löschtaste"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Strg ist den Alt-Tasten zugeordnet, Alt ist den Windows-Tasten zugeordnet"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Strg ist den Win-Tasten zugeordnet (und den üblichen Strg-Tasten)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Krimtatarisch (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Krimtatarisch (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krimtatarisch (Türkisch Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Krimtatarisch (Türkisch F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krimtatarisch (Türkisch Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Kroatien"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Position der Strg-Taste"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Strg+Umschalttaste"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Kyrillisch"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Kyrillisch mit Anführungszeichen"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Kyrillisch, »З« und »Ж« vertauscht"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Tschechien"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Ohne Acute-(')Akzentzeichen"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Ohne Grave-(`) und Acute-(')Akzentzeichen"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Vorgegebene Nummernblocktasten"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell PC-Tastatur mit 101 Tasten"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Laptop/Notebook Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Laptop/Notebook Precision-M-Serie"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude-Laptop"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia Keybard"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Dänemark"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802-Serie"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (britische Punktierung)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak international"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, polnische Anführungszeichen auf Taste 1"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, polnische Anführungszeichen auf Taste mit Zitatzeichen"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Östlich"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
-msgstr "Akzenttatsen deaktivieren"
+msgstr "Akzenttasten deaktivieren"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Typographische Sonderzeichen aktivieren"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Englisch"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Eingabetaste im Nummernblock"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomic"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estland"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Äthiopien"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev-verwaltete Tastatur"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Erweitert"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Erweitert - Windows-Tasten"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Erweiterter Backslash"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F-Variante"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Färöer-Inseln"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finnland"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Taste der vierten Ebene mit abstrakten Trennern"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Taste der vierten Ebene mit Komma"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Taste der vierten Ebene mit Punkt"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Taste der vierten Ebene mit Punkt, latin-9-Einschränkung"
# momayyez? Was ist das?
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Taste der vierten Ebene mit »momayyez«"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Frankreich"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Französisch"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Französisch (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Französisch (veraltet)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Französisch (Dvorak)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Französisch, Sun-Akzenttasten"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Französisch, ohne Akzenttasten"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO Laptop"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Generische PC-Tastatur mit 101 Tasten"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Generische PC-Tastatur mit 102 Tasten (Intl)"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Generische PC-Tastatur mit 104 Tasten"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Generische PC-Tastatur mit 105 Tasten (Intl)"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Georgien"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgisch"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgisch, AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Deutsch (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Deutsch, Sun-Akzenttasten"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Deutsch, ohne Akzenttasten"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Deutschland"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Griechenland"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Gruppenumschalter auf der Multiplikations-/Divisionstaste"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujarati"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking Keyboard"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "»Happy Hacking Keyboard« für Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Haussa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x Multimedia Keyboard"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Hexadezimal"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hindi Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homophonic"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Ungarn"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper ist den Win-Tasten zugeordnet"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO-Alternative"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Island"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Akzent-Tilde einschließen"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Indien"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "International (AltGr-Akzenttasten)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "International (mit Akzenttasten)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irland"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israel"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italien"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japan"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japan (PC-98xx-Serie)"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Japanische Tastaturoptionen"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmückisch"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Kana-Sperrtaste ist gesperrt"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kaschubisch"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kasachisch mit russischer Belegung"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kasachstan"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Tastenkombination zum erzwungenen Beenden des X-Servers"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Taste zum Wechsel in die dritte Tastaturebene"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Taste(n) zum Wechseln der Belegung"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Nummernblock"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "Kgz"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Korea, Republik"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurdisch, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurdisch, Arabisch-Lateinisch"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurdisch, Lateinisches Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurdisch, Lateinisches Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirgisistan"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Compaq Laptop/Notebook-Tastatur (z.B. Armada) Laptop-Tastatur"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Compaq Laptop/Notebook-Tastatur (z.B. Presario) Laptop-Tastatur"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Laptop/notebook eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latein"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Lateinamerikanisch"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latein (Unicode)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Lateinische qwerty-Tastatur (Unicode)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Lateinische qwerty-Tastatur"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latein (Unicode)"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Lateinische qwerty-Tastatur (Unicode)"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Lateinisch mit Anführungszeichen"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Lettland"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Linke Alt-Taste"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Linke Alt-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Linke Alt-Taste ist gegen linke Windows-Taste vertauscht"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Linke Strg-Taste"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Linke Strg-Taste+Linke Umschalttaste"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Linke Umschalttaste"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Linke Windows-Taste"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Linke Windows-Taste (zur ersten Belegung), rechte Windows/Menütaste (zur letzten Belegung)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Linke Windows-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Linkshändig"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Dvorak (linkshändig)"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Veraltet"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Wang 724 (veraltet)"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Veraltete Taste mit Komma"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Veraltete Taste mit Punkt"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Kleiner als/größer als"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Litauen"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (alternative Option)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (alternative Option 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15-Sondertasten über den G1-Daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Generische Logitech-Tastatur"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (Modell Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Niedersorbisch"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Niedersorbisch (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Mazedonien"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh (Alt)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, Sun-Akzenttasten"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Feststelltaste als zusätzliche Löschtaste verwenden"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Feststelltaste als zusätzliche Strg-Taste verwenden"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Feststelltaste als zusätzliche Esc-Taste verwenden."
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Feststelltaste als zusätzliche Hyper-Taste verwenden"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Feststelltaste als zusätzliche NumLock-Taste verwenden."
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Feststelltaste als zusätzliche Super-Taste verwenden."
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Malediven"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Maltesische Tastatur mit US-Belegung"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menü"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta ist der linken Windows-Taste zugeordnet"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta ist den Windows-Tasten zugeordnet"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, Schwedisch"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Verschiedene Optionen zur Kompatibilität"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolei"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marokko"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Mehrsprachig"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Mehrsprachig, erster Teil"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Mehrsprachig, zweiter Teil"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Löschtaste wie NICOLA-F"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo für Esperanto"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo für US-Tastaturen"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Niederlande"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Phonetisch, neu"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigeria"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Nicht umbrechbares Leerzeichen in der vierten Tastaturebene"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Nicht umbrechbares Leerzeichen in der vierten Tastaturebene, schmales nicht umbrechbares Leerzeichen in der sechsten Ebene"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Nicht umbrechbares Leerzeichen in der vierten Tastaturebene, schmales nicht umbrechbares Leerzeichen in der sechsten Ebene (mit Strg + Umschalttaste)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Nicht umbrechbares Leerzeichen in der zweiten Tastaturebene"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Nicht umbrechbares Leerzeichen in der dritten Tastaturebene"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Nicht umbrechbares Leerzeichen in der dritten Tastaturebene, nichts in der vierten Ebene"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Nicht umbrechbares Leerzeichen in der dritten Tastaturebene, schmales nicht umbrechbares Leerzeichen in der vierten Ebene"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Nördliches Saami"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Nördliches Saami, ohne Akzenttasten"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norwegen"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Verhalten der Löschtaste des Nummernblocks"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Tasten des Nummernblocks arbeiten wie bei Mac"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Belegungsauswahl des Nummernblocks"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Paschtunisch"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Süd-Usbekisch"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Okzitanisch"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internettastatur"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Ossetisch"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Ossetisch, Windows-Tasten"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Ossetisch, veraltet"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx-Serie"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Paschtunisch"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persisch. mit persischem Nummernblock"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Phonetisch"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "Phonetisch, Windows-Tasten"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polen"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytonic"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugal"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pro Keypad"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Dvorak für Programmierer"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Rechte Alt-Taste"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Rechte Alt-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Rechte Alt-Taste wählt niemals die dritte Tastaturebene."
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Rechte Alt-Taste, Umschalttaste+rechte Alt-Taste ist Multi-Taste"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Rechte Strg-Taste"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Rechte Strg-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Rechte Strg-Taste wie rechte Alt-Taste"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Rechte Umschalttaste"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Rechte Windows-Taste"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Rechte Windows-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Rechtshändig"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Dvorak (rechtshändig)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rumänien"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Rumänische Tastatur mit deutschen Buchstaben"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Rumänische Tastatur mit deutschen Buchstaben, ohne Akzenttasten"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Russland"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Russisch"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Russisch (phonetisch)"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Russisch (phonetisch, Dvorak)"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Russisch (phonetisch), ohne Akzenttasten"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Russisch mit kasachischer Belegung"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Rollen"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "Rollen"
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Semikolon in der dritten Tastaturebene"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbien"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Umschalttaste deaktiviert Feststelltaste"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Umschalttaste deaktiviert NumLock nicht, wechselt stattdessen in die dritte Tastaturebene"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Unschalttaste funktioniert mit den Tasten des Nummernblocks wie in MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Umschalt-+Feststelltaste"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Einfach"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slowakei"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slowenien"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Südafrika"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Süd-Usbekisch"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Spanien"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Spezialtasten für Server (Strg+Alt+&lt;Taste&gt;)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standard"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standard (Cedilla)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Standard, phonetisch"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standard RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standard-RSTU mit russischer Belegung"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Typ 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sun-Akzenttasten"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Strg-Taste und Feststelltaste vertauschen"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Esc und Feststelltaste vertauschen"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Schweden"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Schweiz"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Syrien"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syrisch"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Syrisch (phonetisch)"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "Thai (TIS-620)"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tadschikistan"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamilisch"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamilisch (TAB Schreibmaschine)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamilisch (TSCII Schreibmaschine)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamilisch (Unicode)"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatarisch"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thailand"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetisch"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetanisch (mit ASCII-Ziffern)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh (alternativ)"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh (alternativ, phonetisch)"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh (erweitert)"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh (erweitert, phonetisch)"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh (phonetisch)"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Tilde-Variante (~)"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Zur entsprechenden Taste einer Dvorak-Tastatur."
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Zur entsprechenden Taste einer Qwerty-Tastatur."
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "Traditionell (phonetisch)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Türkei"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Turkmenien"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Schreibmaschine"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "UCW-Belegung (nur akzentuierte Buchstaben)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "US-Tastatur mit bosnischen Digraphen"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "US-Tastatur mit bosnischen Buchstaben"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "US-Tastatur mit kroatischen Digraphen"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "US-Tastatur mit kroatischen Buchstaben"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "US-Tastatur mit estnischen Buchstaben"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "US-Tastatur mit italienischen Buchstaben"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "US-Tastatur mit litauischen Buchstaben"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "US-Tastatur mit slowenischen Buchstaben"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurtisch"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukraine"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode-Ergänzungen (Pfeile und mathematische Operatoren)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Unicode-Ergänzungen (Pfeile und mathematische Operatoren). Mathematische Operatoren befinden sich in der Standardebene."
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Vereinigtes Königreich"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, Alternative (phonetisch)"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, phonetisch"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, Windows-Tasten"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Bosnische Digraphen verwenden"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Kroatische Digraphen verwenden"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Anführungszeichen für Zitate verwenden"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Tastatur-LED zur Anzeige der alternativen Belegung verwenden"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Leertaste zur Eingabe nicht umbrechbarer Zeichen verwenden"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Leertaste gibt in jeder Ebene stets Leerzeichen aus"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Usbekistan"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 mit Unicode-Ergänzungen (Pfeile und mathematische Operatoren)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Wang 724 mit Unicode-Ergänzungen (Pfeile und mathematische Operatoren). Mathematische Operatoren in der Standardebene"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang Modell 724 (azerty)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Westlich"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Modell XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Win-Tasten"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Mit &lt;\\|&gt;-Taste"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "mit Euro-Symbol auf »5«"
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Mit Anführungszeichen"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Jakutisch"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Joruba"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "»З« und »Ж« sind vertauscht"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/Ziffern"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "Ziffern"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "Falsch platziertes Semikolon und Anführungszeichen (veraltet)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "LyX"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, erweiterter Backslash"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/Ziffern"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Akzente kombinieren, anstelle von Akzenttasten"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "International (AltGr-Unicode-Kombination)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "International (AltGr-Unicode-Kombination, alternativ)"
+
+#~ msgid "Keypad"
+#~ msgstr "Nummernblock"
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Pro Keypad"
+#~ msgstr "Pro Keypad"
+
+#~ msgid "Standard Phonetic"
+#~ msgstr "Standard, phonetisch"
+
#~ msgid "Brazilian ABNT2"
#~ msgstr "ABNT2 (Brasilianisch)"
diff --git a/xorg-server/xkbdata.src/po/eo.po b/xorg-server/xkbdata.src/po/eo.po
index 3f9a5c3fd..710c37ca7 100644
--- a/xorg-server/xkbdata.src/po/eo.po
+++ b/xorg-server/xkbdata.src/po/eo.po
@@ -1,2689 +1,2829 @@
# Esperanta traduko por 'xkeyboard-config'
-# Copyright (C) 2008 Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the xkeyboard-config package.
-# Felipe Castro <fefcas@gmail.com>, 2008.
+# Felipe Castro <fefcas@gmail.com>, 2008, 2009.
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.5\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-01-13 23:12+0000\n"
-"PO-Revision-Date: 2009-01-16 18:26-0300\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-19 19:59-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../rules/base.xml.in.h:1 ../rules/evdev.xml.in.h:1
+#: ../rules/base.xml.in.h:1
msgid "(F)"
msgstr "(F)"
-#: ../rules/base.xml.in.h:2 ../rules/evdev.xml.in.h:2
+#: ../rules/base.xml.in.h:2
msgid "(Legacy) Alternative"
msgstr "(Malmoderna) Alternativa"
-#: ../rules/base.xml.in.h:3 ../rules/evdev.xml.in.h:3
+#: ../rules/base.xml.in.h:3
msgid "(Legacy) Alternative, Sun dead keys"
msgstr "(Malmoderna) Alternativa, senpaÅaj klavoj de 'Sun'"
-#: ../rules/base.xml.in.h:4 ../rules/evdev.xml.in.h:4
+#: ../rules/base.xml.in.h:4
msgid "(Legacy) Alternative, eliminate dead keys"
msgstr "(Malmoderna) Alternativa, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:5 ../rules/evdev.xml.in.h:5
+#: ../rules/base.xml.in.h:5
msgid "101/104 key Compatible"
msgstr "Kongrua al 101/104 klavoj"
-#: ../rules/base.xml.in.h:6 ../rules/evdev.xml.in.h:6
+#: ../rules/base.xml.in.h:6
msgid "101/qwerty/comma/Dead keys"
msgstr "101/qwerty/komo/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:7 ../rules/evdev.xml.in.h:7
+#: ../rules/base.xml.in.h:7
msgid "101/qwerty/comma/Eliminate dead keys"
msgstr "101/qwerty/komo/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:8 ../rules/evdev.xml.in.h:8
+#: ../rules/base.xml.in.h:8
msgid "101/qwerty/dot/Dead keys"
msgstr "101/qwerty/punkto/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:9 ../rules/evdev.xml.in.h:9
+#: ../rules/base.xml.in.h:9
msgid "101/qwerty/dot/Eliminate dead keys"
msgstr "101/qwerty/punkto/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:10 ../rules/evdev.xml.in.h:10
+#: ../rules/base.xml.in.h:10
msgid "101/qwertz/comma/Dead keys"
msgstr "101/qwertz/komo/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:11 ../rules/evdev.xml.in.h:11
+#: ../rules/base.xml.in.h:11
msgid "101/qwertz/comma/Eliminate dead keys"
msgstr "101/qwertz/komo/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:12 ../rules/evdev.xml.in.h:12
+#: ../rules/base.xml.in.h:12
msgid "101/qwertz/dot/Dead keys"
msgstr "101/qwertz/punkto/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:13 ../rules/evdev.xml.in.h:13
+#: ../rules/base.xml.in.h:13
msgid "101/qwertz/dot/Eliminate dead keys"
msgstr "101/qwertz/punkto/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:14 ../rules/evdev.xml.in.h:14
+#: ../rules/base.xml.in.h:14
msgid "102/qwerty/comma/Dead keys"
msgstr "102/qwerty/komo/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:15 ../rules/evdev.xml.in.h:15
+#: ../rules/base.xml.in.h:15
msgid "102/qwerty/comma/Eliminate dead keys"
msgstr "102/qwerty/komo/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:16 ../rules/evdev.xml.in.h:16
+#: ../rules/base.xml.in.h:16
msgid "102/qwerty/dot/Dead keys"
msgstr "102/qwerty/punkto/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:17 ../rules/evdev.xml.in.h:17
+#: ../rules/base.xml.in.h:17
msgid "102/qwerty/dot/Eliminate dead keys"
msgstr "102/qwerty/punkto/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:18 ../rules/evdev.xml.in.h:18
+#: ../rules/base.xml.in.h:18
msgid "102/qwertz/comma/Dead keys"
msgstr "102/qwertz/komo/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:19 ../rules/evdev.xml.in.h:19
+#: ../rules/base.xml.in.h:19
msgid "102/qwertz/comma/Eliminate dead keys"
msgstr "102/qwertz/komo/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:20 ../rules/evdev.xml.in.h:20
+#: ../rules/base.xml.in.h:20
msgid "102/qwertz/dot/Dead keys"
msgstr "102/qwertz/punkto/SenpaÅaj klavoj"
-#: ../rules/base.xml.in.h:21 ../rules/evdev.xml.in.h:21
+#: ../rules/base.xml.in.h:21
msgid "102/qwertz/dot/Eliminate dead keys"
msgstr "102/qwertz/punkto/Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:22 ../rules/evdev.xml.in.h:22
+#: ../rules/base.xml.in.h:22
msgid "2"
msgstr "2"
-#: ../rules/base.xml.in.h:23 ../rules/evdev.xml.in.h:23
+#: ../rules/base.xml.in.h:23
msgid "4"
msgstr "4"
-#: ../rules/base.xml.in.h:24 ../rules/evdev.xml.in.h:24
+#: ../rules/base.xml.in.h:24
msgid "5"
msgstr "5"
-#: ../rules/base.xml.in.h:25 ../rules/evdev.xml.in.h:25
+#: ../rules/base.xml.in.h:25
msgid "A4Tech KB-21"
msgstr "A4Tech KB-21"
-#: ../rules/base.xml.in.h:26 ../rules/evdev.xml.in.h:26
+#: ../rules/base.xml.in.h:26
msgid "A4Tech KBS-8"
msgstr "A4Tech KBS-8"
-#: ../rules/base.xml.in.h:27 ../rules/evdev.xml.in.h:27
+#: ../rules/base.xml.in.h:27
msgid "A4Tech Wireless Desktop RFKB-23"
msgstr "A4Tech Wireless Desktop RFKB-23"
-#: ../rules/base.xml.in.h:28 ../rules/evdev.xml.in.h:28
+#: ../rules/base.xml.in.h:28
msgid "ACPI Standard"
msgstr "ACPI LaÅ­norma"
-#: ../rules/base.xml.in.h:29 ../rules/evdev.xml.in.h:29
+#: ../rules/base.xml.in.h:29
msgid "ATM/phone-style"
msgstr "ATM/telefon-stilo"
-#: ../rules/base.xml.in.h:30 ../rules/evdev.xml.in.h:30
+#: ../rules/base.xml.in.h:30
msgid "Acer AirKey V"
msgstr "Acer AirKey V"
-#: ../rules/base.xml.in.h:31 ../rules/evdev.xml.in.h:31
+#: ../rules/base.xml.in.h:31
msgid "Acer C300"
msgstr "Acer C300"
-#: ../rules/base.xml.in.h:32 ../rules/evdev.xml.in.h:32
+#: ../rules/base.xml.in.h:32
msgid "Acer Ferrari 4000"
msgstr "Acer Ferrari 4000"
-#: ../rules/base.xml.in.h:33 ../rules/evdev.xml.in.h:33
+#: ../rules/base.xml.in.h:33
msgid "Acer Laptop"
msgstr "Acer Laptop"
-#: ../rules/base.xml.in.h:34 ../rules/evdev.xml.in.h:34
+#: ../rules/base.xml.in.h:34
msgid "Add the standard behavior to Menu key"
msgstr "Aldoni laÅ­norman funkciadon al la klavo Menu"
-#: ../rules/base.xml.in.h:35 ../rules/evdev.xml.in.h:35
+#: ../rules/base.xml.in.h:35
msgid "Adding Esperanto circumflexes (supersigno)"
msgstr "Aldonado de Esperantaj supersignoj"
-#: ../rules/base.xml.in.h:36 ../rules/evdev.xml.in.h:36
+#: ../rules/base.xml.in.h:36
msgid "Adding EuroSign to certain keys"
msgstr "Aldonado de EÅ­roSigno al iuj klavoj"
-#: ../rules/base.xml.in.h:37 ../rules/evdev.xml.in.h:37
+#: ../rules/base.xml.in.h:37
msgid "Advance Scorpius KI"
msgstr "Advance Scorpius KI"
-#: ../rules/base.xml.in.h:38 ../rules/evdev.xml.in.h:38
+#: ../rules/base.xml.in.h:38
msgid "Afg"
msgstr "Afg"
-#: ../rules/base.xml.in.h:39 ../rules/evdev.xml.in.h:39
+#: ../rules/base.xml.in.h:39
msgid "Afghanistan"
msgstr "Afganujo"
-#: ../rules/base.xml.in.h:40 ../rules/evdev.xml.in.h:40
+#: ../rules/base.xml.in.h:40
msgid "Akan"
msgstr "Akan"
-#: ../rules/base.xml.in.h:41 ../rules/evdev.xml.in.h:41
+#: ../rules/base.xml.in.h:41
msgid "Alb"
msgstr "Alb"
-#: ../rules/base.xml.in.h:42 ../rules/evdev.xml.in.h:42
+#: ../rules/base.xml.in.h:42
msgid "Albania"
msgstr "Albanujo"
-#: ../rules/base.xml.in.h:43 ../rules/evdev.xml.in.h:43
+#: ../rules/base.xml.in.h:43
msgid "Alt and Meta are on Alt keys"
msgstr "Alt kaj Meta estas ĉe la klavoj Alt"
-#: ../rules/base.xml.in.h:44 ../rules/evdev.xml.in.h:44
+#: ../rules/base.xml.in.h:44
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt estas mapita al la dekstra klavo Win kaj Super al Menu"
-#: ../rules/base.xml.in.h:45 ../rules/evdev.xml.in.h:45
+#: ../rules/base.xml.in.h:45
msgid "Alt+CapsLock"
msgstr "Alt+CapsLock"
-#: ../rules/base.xml.in.h:46 ../rules/evdev.xml.in.h:46
+#: ../rules/base.xml.in.h:46
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:47 ../rules/evdev.xml.in.h:47
+#: ../rules/base.xml.in.h:47
msgid "Alt+Shift"
msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:48 ../rules/evdev.xml.in.h:48
+#: ../rules/base.xml.in.h:48
msgid "Alt+Space"
msgstr "Alt+Space"
-#: ../rules/base.xml.in.h:49 ../rules/evdev.xml.in.h:49
+#: ../rules/base.xml.in.h:49
msgid "Alt-Q"
msgstr "Alt-Q"
-#: ../rules/base.xml.in.h:50 ../rules/evdev.xml.in.h:50
+#: ../rules/base.xml.in.h:50
msgid "Alt/Win key behavior"
msgstr "Alt/Win, klava funkciado"
-#: ../rules/base.xml.in.h:51 ../rules/evdev.xml.in.h:51
+#: ../rules/base.xml.in.h:51
msgid "Alternative"
msgstr "Alternativa"
-#: ../rules/base.xml.in.h:52 ../rules/evdev.xml.in.h:52
+#: ../rules/base.xml.in.h:52
msgid "Alternative Eastern"
msgstr "Alternativa Orienta"
-#: ../rules/base.xml.in.h:53 ../rules/evdev.xml.in.h:53
+#: ../rules/base.xml.in.h:53
msgid "Alternative Phonetic"
msgstr "Alternativa Fonetika"
-#: ../rules/base.xml.in.h:54 ../rules/evdev.xml.in.h:54
+#: ../rules/base.xml.in.h:54
msgid "Alternative international (former us_intl)"
msgstr "Alternativa internacia (antaÅ­e us_intl)"
-#: ../rules/base.xml.in.h:55 ../rules/evdev.xml.in.h:55
+#: ../rules/base.xml.in.h:55
msgid "Alternative, Sun dead keys"
msgstr "Alternava, senpaÅaj klavoj de 'Sun'"
-#: ../rules/base.xml.in.h:56 ../rules/evdev.xml.in.h:56
+#: ../rules/base.xml.in.h:56
msgid "Alternative, eliminate dead keys"
msgstr "Alternativa, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:57 ../rules/evdev.xml.in.h:57
+#: ../rules/base.xml.in.h:57
msgid "Alternative, latin-9 only"
msgstr "Alternativa, nur latin-9"
-#: ../rules/base.xml.in.h:58 ../rules/evdev.xml.in.h:58
+#: ../rules/base.xml.in.h:58
msgid "And"
msgstr "And"
-#: ../rules/base.xml.in.h:59 ../rules/evdev.xml.in.h:59
+#: ../rules/base.xml.in.h:59
msgid "Andorra"
msgstr "Andoro"
-#: ../rules/base.xml.in.h:60 ../rules/evdev.xml.in.h:60
+#: ../rules/base.xml.in.h:60
msgid "Any Alt key"
msgstr "Iu ajn klavo Alt"
-#: ../rules/base.xml.in.h:61 ../rules/evdev.xml.in.h:61
+#: ../rules/base.xml.in.h:61
msgid "Any Win key"
msgstr "Iu ajn klavo Win"
-#: ../rules/base.xml.in.h:62 ../rules/evdev.xml.in.h:62
+#: ../rules/base.xml.in.h:62
msgid "Any Win key (while pressed)"
msgstr "Iu ajn klavo Win (dum premata)"
-#: ../rules/base.xml.in.h:63 ../rules/evdev.xml.in.h:63
+#: ../rules/base.xml.in.h:63
msgid "Apostrophe (') variant"
msgstr "Variaĵo de citilo (')"
-#: ../rules/base.xml.in.h:64 ../rules/evdev.xml.in.h:64
+#: ../rules/base.xml.in.h:64
msgid "Apple"
msgstr "Apple"
-#: ../rules/base.xml.in.h:65 ../rules/evdev.xml.in.h:65
+#: ../rules/base.xml.in.h:65
msgid "Apple Laptop"
msgstr "Apple Laptop"
-#: ../rules/base.xml.in.h:66 ../rules/evdev.xml.in.h:66
+#: ../rules/base.xml.in.h:66
msgid "Ara"
msgstr "Ara"
-#: ../rules/base.xml.in.h:67 ../rules/evdev.xml.in.h:67
+#: ../rules/base.xml.in.h:67
msgid "Arabic"
msgstr "Araba"
-#: ../rules/base.xml.in.h:68 ../rules/evdev.xml.in.h:68
+#: ../rules/base.xml.in.h:68
msgid "Arm"
msgstr "Arm"
-#: ../rules/base.xml.in.h:69 ../rules/evdev.xml.in.h:69
+#: ../rules/base.xml.in.h:69
msgid "Armenia"
msgstr "Armenujo"
-#: ../rules/base.xml.in.h:70 ../rules/evdev.xml.in.h:70
+#: ../rules/base.xml.in.h:70
msgid "Asturian variant with bottom-dot H and bottom-dot L"
msgstr "Asturia variaĵo kun subpunktita H kaj subpunktita L"
-#: ../rules/base.xml.in.h:71 ../rules/evdev.xml.in.h:71
+#: ../rules/base.xml.in.h:71
msgid "Asus Laptop"
msgstr "Asus Laptop"
-#: ../rules/base.xml.in.h:72 ../rules/evdev.xml.in.h:72
+#: ../rules/base.xml.in.h:72
msgid "At bottom left"
msgstr "Malsupre maldekstre"
-#: ../rules/base.xml.in.h:73 ../rules/evdev.xml.in.h:73
+#: ../rules/base.xml.in.h:73
msgid "At left of 'A'"
msgstr "Maldekstre de 'A'"
-#: ../rules/base.xml.in.h:74 ../rules/evdev.xml.in.h:74
+#: ../rules/base.xml.in.h:74
msgid "Aze"
msgstr "Aze"
-#: ../rules/base.xml.in.h:75 ../rules/evdev.xml.in.h:75
+#: ../rules/base.xml.in.h:75
msgid "Azerbaijan"
msgstr "AzerbajÄano"
-#: ../rules/base.xml.in.h:76 ../rules/evdev.xml.in.h:76
+#: ../rules/base.xml.in.h:76
msgid "Azona RF2300 wireless Internet Keyboard"
msgstr "Azona RF2300 sendrata Internet Keyboard"
-#: ../rules/base.xml.in.h:77 ../rules/evdev.xml.in.h:77
+#: ../rules/base.xml.in.h:77
msgid "BTC 5090"
msgstr "BTC 5090"
-#: ../rules/base.xml.in.h:78 ../rules/evdev.xml.in.h:78
+#: ../rules/base.xml.in.h:78
msgid "BTC 5113RF Multimedia"
msgstr "BTC 5113RF Multimedia"
-#: ../rules/base.xml.in.h:79 ../rules/evdev.xml.in.h:79
+#: ../rules/base.xml.in.h:79
msgid "BTC 5126T"
msgstr "BTC 5126T"
-#: ../rules/base.xml.in.h:80 ../rules/evdev.xml.in.h:80
+#: ../rules/base.xml.in.h:80
msgid "BTC 6301URF"
msgstr "BTC 6301URF"
-#: ../rules/base.xml.in.h:81 ../rules/evdev.xml.in.h:81
+#: ../rules/base.xml.in.h:81
msgid "BTC 9000"
msgstr "BTC 9000"
-#: ../rules/base.xml.in.h:82 ../rules/evdev.xml.in.h:82
+#: ../rules/base.xml.in.h:82
msgid "BTC 9000A"
msgstr "BTC 9000A"
-#: ../rules/base.xml.in.h:83 ../rules/evdev.xml.in.h:83
+#: ../rules/base.xml.in.h:83
msgid "BTC 9001AH"
msgstr "BTC 9001AH"
-#: ../rules/base.xml.in.h:84 ../rules/evdev.xml.in.h:84
+#: ../rules/base.xml.in.h:84
msgid "BTC 9019U"
msgstr "BTC 9019U"
-#: ../rules/base.xml.in.h:85 ../rules/evdev.xml.in.h:85
+#: ../rules/base.xml.in.h:85
msgid "BTC 9116U Mini Wireless Internet and Gaming"
msgstr "BTC 9116U Mini Wireless Internet and Gaming"
-#: ../rules/base.xml.in.h:86 ../rules/evdev.xml.in.h:86
+#: ../rules/base.xml.in.h:86
+msgid "Baltic+"
+msgstr "Balta+"
+
+#: ../rules/base.xml.in.h:87
msgid "Ban"
msgstr "Ban"
-#: ../rules/base.xml.in.h:87 ../rules/evdev.xml.in.h:87
+#: ../rules/base.xml.in.h:88
msgid "Bangladesh"
msgstr "BangladeÅo"
-#: ../rules/base.xml.in.h:88 ../rules/evdev.xml.in.h:88
+#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "BaÅkira"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:89 ../rules/evdev.xml.in.h:89
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Belorusujo"
-#: ../rules/base.xml.in.h:90 ../rules/evdev.xml.in.h:90
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgujo"
-#: ../rules/base.xml.in.h:91 ../rules/evdev.xml.in.h:91
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:92 ../rules/evdev.xml.in.h:92
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:93 ../rules/evdev.xml.in.h:93
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:94 ../rules/evdev.xml.in.h:94
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengala"
-#: ../rules/base.xml.in.h:95 ../rules/evdev.xml.in.h:95
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengala Probhat"
-#: ../rules/base.xml.in.h:96 ../rules/evdev.xml.in.h:96
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, komforteca, Dvorake"
-#: ../rules/base.xml.in.h:97 ../rules/evdev.xml.in.h:97
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, komforteca, Dvorake, nur latin-9"
-#: ../rules/base.xml.in.h:98 ../rules/evdev.xml.in.h:98
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:99 ../rules/evdev.xml.in.h:99
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:100 ../rules/evdev.xml.in.h:100
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutano"
-#: ../rules/base.xml.in.h:101 ../rules/evdev.xml.in.h:101
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Biblia Hebrea (Tiro)"
-#: ../rules/base.xml.in.h:102 ../rules/evdev.xml.in.h:102
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:103 ../rules/evdev.xml.in.h:103
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:104 ../rules/evdev.xml.in.h:104
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnujo kaj Hercegovino"
-#: ../rules/base.xml.in.h:105 ../rules/evdev.xml.in.h:105
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "AmbaÅ­ klavoj Alt kune"
-#: ../rules/base.xml.in.h:106 ../rules/evdev.xml.in.h:106
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "AmbaÅ­ klavoj Ctrl kune"
-#: ../rules/base.xml.in.h:107 ../rules/evdev.xml.in.h:107
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "AmbaÅ­ klavoj Shift kune"
-#: ../rules/base.xml.in.h:108 ../rules/evdev.xml.in.h:108
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:109 ../rules/evdev.xml.in.h:109
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Brajla"
-#: ../rules/base.xml.in.h:110 ../rules/evdev.xml.in.h:110
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brazilo"
-#: ../rules/base.xml.in.h:111 ../rules/evdev.xml.in.h:111
-msgid "Brazilian ABNT2"
-msgstr "Brazila ABNT2"
-
-#: ../rules/base.xml.in.h:112 ../rules/evdev.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bretona"
-#: ../rules/base.xml.in.h:113 ../rules/evdev.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114 ../rules/evdev.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:115 ../rules/evdev.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116 ../rules/evdev.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgarujo"
-#: ../rules/base.xml.in.h:117 ../rules/evdev.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118 ../rules/evdev.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "KamboÄo"
-#: ../rules/base.xml.in.h:119 ../rules/evdev.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120 ../rules/evdev.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanado"
-#: ../rules/base.xml.in.h:121 ../rules/evdev.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:122 ../rules/evdev.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:123 ../rules/evdev.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "CapsLock (al la unua aranÄo), Shift+CapsLock (al la lasta aranÄo)"
-#: ../rules/base.xml.in.h:124 ../rules/evdev.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "CapsLock (dum premata), Alt+CapsLock restarigas la originalan uskligon"
-#: ../rules/base.xml.in.h:125 ../rules/evdev.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "CapsLock funkcias kiel Shift kun Ålosado. Shift \"paÅ­zas\" CapsLock"
-#: ../rules/base.xml.in.h:126 ../rules/evdev.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "CapsLock funkcias kiel Shift kun Ålosado. Shift ne influas CapsLock"
-#: ../rules/base.xml.in.h:127 ../rules/evdev.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock estas malebligita"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Funkciado de la klavo CapsLock"
-#: ../rules/base.xml.in.h:128 ../rules/evdev.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "CapsLock alternigas Shift, influante ĉiujn klavojn"
-#: ../rules/base.xml.in.h:129 ../rules/evdev.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock alternigas la ordinaran uskligon de alfabetaj signoj"
-#: ../rules/base.xml.in.h:130 ../rules/evdev.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "CapsLock uzas internan uskligon. Shift \"paÅ­zas\" CapsLock"
-#: ../rules/base.xml.in.h:131 ../rules/evdev.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "CapsLock uzas internan uskligon. Shift ne influas CapsLock"
-#: ../rules/base.xml.in.h:132 ../rules/evdev.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Kataluna variaĵo kun centro-punktita L"
-#: ../rules/base.xml.in.h:133 ../rules/evdev.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Subhoketo"
-#: ../rules/base.xml.in.h:134 ../rules/evdev.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135 ../rules/evdev.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Ĉeroka"
-#: ../rules/base.xml.in.h:136 ../rules/evdev.xml.in.h:136
+#: ../rules/base.xml.in.h:138
+msgid "Cherry B.UNLIMITED"
+msgstr "Cherry B.UNLIMITED"
+
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:137 ../rules/evdev.xml.in.h:137
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternativa opcio)"
-#: ../rules/base.xml.in.h:138 ../rules/evdev.xml.in.h:138
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:139 ../rules/evdev.xml.in.h:139
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:140 ../rules/evdev.xml.in.h:140
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:141 ../rules/evdev.xml.in.h:141
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:142 ../rules/evdev.xml.in.h:142
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:143 ../rules/evdev.xml.in.h:143
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:144 ../rules/evdev.xml.in.h:144
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:145 ../rules/evdev.xml.in.h:145
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:146 ../rules/evdev.xml.in.h:146
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Ĉinujo"
-#: ../rules/base.xml.in.h:147 ../rules/evdev.xml.in.h:147
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "ĈuvaÅa"
-#: ../rules/base.xml.in.h:148 ../rules/evdev.xml.in.h:148
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "ĈuvaÅa Latine"
-#: ../rules/base.xml.in.h:149 ../rules/evdev.xml.in.h:149
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Klasike"
-#: ../rules/base.xml.in.h:150 ../rules/evdev.xml.in.h:150
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Klasika Dvorako"
-#: ../rules/base.xml.in.h:151 ../rules/evdev.xml.in.h:151
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:152 ../rules/evdev.xml.in.h:152
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:153 ../rules/evdev.xml.in.h:153
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:154 ../rules/evdev.xml.in.h:154
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:155 ../rules/evdev.xml.in.h:155
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 klavoj)"
-#: ../rules/base.xml.in.h:156 ../rules/evdev.xml.in.h:156
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 klavoj)"
-#: ../rules/base.xml.in.h:157 ../rules/evdev.xml.in.h:157
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 klavoj)"
-#: ../rules/base.xml.in.h:158 ../rules/evdev.xml.in.h:158
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:159 ../rules/evdev.xml.in.h:159
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Pozicio de la klavo 'Compose'"
-#: ../rules/base.xml.in.h:160 ../rules/evdev.xml.in.h:160
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Kongo, Demokratia Respubliko de"
-#: ../rules/base.xml.in.h:161 ../rules/evdev.xml.in.h:161
+#: ../rules/base.xml.in.h:164
+msgid "Control + Alt + Backspace"
+msgstr "Control + Alt + Backspace"
+
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "'Control' estas mapita al klavoj 'Alt', 'Alt' estas mapita al klavoj 'Win'"
-#: ../rules/base.xml.in.h:162 ../rules/evdev.xml.in.h:162
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "'Control' estas mapita al klavoj 'Win' (kaj al la kutimaj klavoj 'Ctrl')"
-#: ../rules/base.xml.in.h:163 ../rules/evdev.xml.in.h:163
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
+msgid "Crimean Tatar (Dobruca-1 Q)"
+msgstr "Krime-tatara (Dobruca-1 Q)"
+
+#: ../rules/base.xml.in.h:169
+msgid "Crimean Tatar (Dobruca-2 Q)"
+msgstr "Krime-tatara (Dobruca-2 Q)"
+
+#: ../rules/base.xml.in.h:170
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr "Krime-tatara (Turka Alt-Q)"
+
+#: ../rules/base.xml.in.h:171
+msgid "Crimean Tatar (Turkish F)"
+msgstr "Krime-tatara (Turka F)"
+
+#: ../rules/base.xml.in.h:172
+msgid "Crimean Tatar (Turkish Q)"
+msgstr "Krime-tatara (Turka Q)"
+
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Kroata"
-#: ../rules/base.xml.in.h:164 ../rules/evdev.xml.in.h:164
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Pozicio de la klavo 'Ctrl'"
-#: ../rules/base.xml.in.h:165 ../rules/evdev.xml.in.h:165
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:166 ../rules/evdev.xml.in.h:166
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Cirila"
-#: ../rules/base.xml.in.h:167 ../rules/evdev.xml.in.h:167
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Cirila kun angul-citiloj"
-#: ../rules/base.xml.in.h:168 ../rules/evdev.xml.in.h:168
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Cirila, Z kaj ZHE interÅanÄita"
-#: ../rules/base.xml.in.h:169 ../rules/evdev.xml.in.h:169
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:170 ../rules/evdev.xml.in.h:170
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Ĉeĥa"
-#: ../rules/base.xml.in.h:171 ../rules/evdev.xml.in.h:171
+#: ../rules/base.xml.in.h:181
+msgid "DOS"
+msgstr "DOS"
+
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:172 ../rules/evdev.xml.in.h:172
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:173 ../rules/evdev.xml.in.h:173
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:174 ../rules/evdev.xml.in.h:174
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "SenpaÅa dekstra korno"
-#: ../rules/base.xml.in.h:175 ../rules/evdev.xml.in.h:175
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "SenpaÅa maldekstra korno"
-#: ../rules/base.xml.in.h:176 ../rules/evdev.xml.in.h:176
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Implicitaj ciferoj en cifer-klavaro"
-#: ../rules/base.xml.in.h:177 ../rules/evdev.xml.in.h:177
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:178 ../rules/evdev.xml.in.h:178
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-klava PC"
-#: ../rules/base.xml.in.h:179 ../rules/evdev.xml.in.h:179
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Laptop/notebook Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:180 ../rules/evdev.xml.in.h:180
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Laptop/notebook Precision M series"
-#: ../rules/base.xml.in.h:181 ../rules/evdev.xml.in.h:181
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude series laptop"
-#: ../rules/base.xml.in.h:182 ../rules/evdev.xml.in.h:182
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:183 ../rules/evdev.xml.in.h:183
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:184 ../rules/evdev.xml.in.h:184
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:185 ../rules/evdev.xml.in.h:185
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia Keyboard"
-#: ../rules/base.xml.in.h:186 ../rules/evdev.xml.in.h:186
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Danujo"
-#: ../rules/base.xml.in.h:187 ../rules/evdev.xml.in.h:187
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:188 ../rules/evdev.xml.in.h:188
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:189 ../rules/evdev.xml.in.h:189
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802 serio"
-#: ../rules/base.xml.in.h:190 ../rules/evdev.xml.in.h:190
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorako"
-#: ../rules/base.xml.in.h:191 ../rules/evdev.xml.in.h:191
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorako (Interpunkcio de UK)"
-#: ../rules/base.xml.in.h:192 ../rules/evdev.xml.in.h:192
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Internacia Dvorako"
-#: ../rules/base.xml.in.h:193 ../rules/evdev.xml.in.h:193
-msgid "Dvorak, Polish quotes on key \"1/!\""
-msgstr "Dvorako, Polaj citiloj ĉe la klavo \"1/!\""
+#: ../rules/base.xml.in.h:204
+msgid "Dvorak, Polish quotes on key 1"
+msgstr "Dvorako, Polaj citiloj ĉe klavo 1"
-#: ../rules/base.xml.in.h:194 ../rules/evdev.xml.in.h:194
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorako, Polaj citiloj ĉe citila klavo"
-#: ../rules/base.xml.in.h:195 ../rules/evdev.xml.in.h:195
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:196 ../rules/evdev.xml.in.h:196
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Orienta"
-#: ../rules/base.xml.in.h:197 ../rules/evdev.xml.in.h:197
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:198 ../rules/evdev.xml.in.h:198
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Ebligi kromajn tipografiajn signojn"
-#: ../rules/base.xml.in.h:199 ../rules/evdev.xml.in.h:199
+#: ../rules/base.xml.in.h:210
+msgid "English"
+msgstr "Angla"
+
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:200 ../rules/evdev.xml.in.h:200
+#: ../rules/base.xml.in.h:212
+msgid "Enter on keypad"
+msgstr "Enen-klavo en ciferklavaro"
+
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:201 ../rules/evdev.xml.in.h:201
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomia"
-#: ../rules/base.xml.in.h:202 ../rules/evdev.xml.in.h:202
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:203 ../rules/evdev.xml.in.h:203
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:204 ../rules/evdev.xml.in.h:204
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:205 ../rules/evdev.xml.in.h:205
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estonujo"
-#: ../rules/base.xml.in.h:206 ../rules/evdev.xml.in.h:206
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:207 ../rules/evdev.xml.in.h:207
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiopujo"
-#: ../rules/base.xml.in.h:208 ../rules/evdev.xml.in.h:208
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Klavaro traktita per 'Evdev'"
-#: ../rules/base.xml.in.h:209 ../rules/evdev.xml.in.h:209
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:210 ../rules/evdev.xml.in.h:210
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:211 ../rules/evdev.xml.in.h:211
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Etendite"
-#: ../rules/base.xml.in.h:212 ../rules/evdev.xml.in.h:212
+#: ../rules/base.xml.in.h:225
+msgid "Extended - Winkeys"
+msgstr "Etendite - Win-klavoj"
+
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Etendita Malsuprenstreko"
-#: ../rules/base.xml.in.h:213 ../rules/evdev.xml.in.h:213
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F-litero (F) variaĵo"
-#: ../rules/base.xml.in.h:214 ../rules/evdev.xml.in.h:214
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:215 ../rules/evdev.xml.in.h:215
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:216 ../rules/evdev.xml.in.h:216
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Ferooj"
-#: ../rules/base.xml.in.h:217 ../rules/evdev.xml.in.h:217
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:218 ../rules/evdev.xml.in.h:218
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finlando"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:221 ../rules/evdev.xml.in.h:221
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Kvar-nivela klavo kun abstraktaj apartigiloj"
-#: ../rules/base.xml.in.h:222 ../rules/evdev.xml.in.h:222
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Kvar-nivela klavo kun komo"
-#: ../rules/base.xml.in.h:223 ../rules/evdev.xml.in.h:223
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Kvar-nivela klavo kun punkto"
-#: ../rules/base.xml.in.h:224 ../rules/evdev.xml.in.h:224
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Kvar-nivela klavo kun punkto, limigite al latin-9"
-#: ../rules/base.xml.in.h:225 ../rules/evdev.xml.in.h:225
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Kvar-nivela klavo kun 'momayyez'"
-#: ../rules/base.xml.in.h:226 ../rules/evdev.xml.in.h:226
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:227 ../rules/evdev.xml.in.h:227
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Francujo"
-#: ../rules/base.xml.in.h:228 ../rules/evdev.xml.in.h:228
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Franca"
-#: ../rules/base.xml.in.h:229 ../rules/evdev.xml.in.h:229
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Franca (Macintosh)"
-#: ../rules/base.xml.in.h:230 ../rules/evdev.xml.in.h:230
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Franca (malmoderna)"
-#: ../rules/base.xml.in.h:231 ../rules/evdev.xml.in.h:231
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Franca Dvorako"
-#: ../rules/base.xml.in.h:232 ../rules/evdev.xml.in.h:232
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Franca, senpaÅaj klavoj de 'Sun'"
-#: ../rules/base.xml.in.h:233 ../rules/evdev.xml.in.h:233
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Franca, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:234 ../rules/evdev.xml.in.h:234
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Tekokomputilo Fujitsu-Siemens Computers AMILO"
-#: ../rules/base.xml.in.h:235 ../rules/evdev.xml.in.h:235
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fulba"
-#: ../rules/base.xml.in.h:236 ../rules/evdev.xml.in.h:236
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:237 ../rules/evdev.xml.in.h:237
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:238 ../rules/evdev.xml.in.h:238
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Äœenerala 101-klava PC"
-#: ../rules/base.xml.in.h:239 ../rules/evdev.xml.in.h:239
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Äœenerala 102-klava (Intl) PC"
-#: ../rules/base.xml.in.h:240 ../rules/evdev.xml.in.h:240
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Äœenerala 104-klava PC"
-#: ../rules/base.xml.in.h:241 ../rules/evdev.xml.in.h:241
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Äœenerala 105-klava (Intl) PC"
-#: ../rules/base.xml.in.h:242 ../rules/evdev.xml.in.h:242
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:243 ../rules/evdev.xml.in.h:243
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:244 ../rules/evdev.xml.in.h:244
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:245 ../rules/evdev.xml.in.h:245
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:246 ../rules/evdev.xml.in.h:246
+#: ../rules/base.xml.in.h:260
+msgid "Genius KKB-2050HS"
+msgstr "Genius KKB-2050HS"
+
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:247 ../rules/evdev.xml.in.h:247
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Kartvelujo"
-#: ../rules/base.xml.in.h:248 ../rules/evdev.xml.in.h:248
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Kartvela"
-#: ../rules/base.xml.in.h:249 ../rules/evdev.xml.in.h:249
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Kartvela AZERTY Tskapo"
-#: ../rules/base.xml.in.h:250 ../rules/evdev.xml.in.h:250
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Germana (Macintosh)"
-#: ../rules/base.xml.in.h:251 ../rules/evdev.xml.in.h:251
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Germana, senpaÅaj klavoj de 'Sun'"
-#: ../rules/base.xml.in.h:252 ../rules/evdev.xml.in.h:252
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Germana, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:253 ../rules/evdev.xml.in.h:253
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Germanujo"
-#: ../rules/base.xml.in.h:254 ../rules/evdev.xml.in.h:254
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:255 ../rules/evdev.xml.in.h:255
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ganao"
-#: ../rules/base.xml.in.h:256 ../rules/evdev.xml.in.h:256
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:257 ../rules/evdev.xml.in.h:257
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Grekujo"
-#: ../rules/base.xml.in.h:258 ../rules/evdev.xml.in.h:258
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Grup-alternado en la klavo multipliko/divido"
-#: ../rules/base.xml.in.h:259 ../rules/evdev.xml.in.h:259
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:260 ../rules/evdev.xml.in.h:260
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Gvineo"
-#: ../rules/base.xml.in.h:261 ../rules/evdev.xml.in.h:261
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "GuÄarata"
-#: ../rules/base.xml.in.h:262 ../rules/evdev.xml.in.h:262
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukia"
-#: ../rules/base.xml.in.h:263 ../rules/evdev.xml.in.h:263
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukia de Jhelum"
-#: ../rules/base.xml.in.h:264 ../rules/evdev.xml.in.h:264
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:265 ../rules/evdev.xml.in.h:265
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking Keyboard"
-#: ../rules/base.xml.in.h:266 ../rules/evdev.xml.in.h:266
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking Keyboard por Mac"
-#: ../rules/base.xml.in.h:267 ../rules/evdev.xml.in.h:267
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "HaÅ­sa"
-#: ../rules/base.xml.in.h:268 ../rules/evdev.xml.in.h:268
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:269 ../rules/evdev.xml.in.h:269
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:270 ../rules/evdev.xml.in.h:270
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:271 ../rules/evdev.xml.in.h:271
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:272 ../rules/evdev.xml.in.h:272
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:273 ../rules/evdev.xml.in.h:273
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:274 ../rules/evdev.xml.in.h:274
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:275 ../rules/evdev.xml.in.h:275
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:276 ../rules/evdev.xml.in.h:276
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:277 ../rules/evdev.xml.in.h:277
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x Multimedia Keyboard"
-#: ../rules/base.xml.in.h:278 ../rules/evdev.xml.in.h:278
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:279 ../rules/evdev.xml.in.h:279
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Deksesume"
-#: ../rules/base.xml.in.h:280 ../rules/evdev.xml.in.h:280
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hinda per Bolnagri"
-#: ../rules/base.xml.in.h:281 ../rules/evdev.xml.in.h:281
+#: ../rules/base.xml.in.h:296
+msgid "Hindi Wx"
+msgstr "Hinda Wx"
+
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homofonia"
-#: ../rules/base.xml.in.h:282 ../rules/evdev.xml.in.h:282
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:283 ../rules/evdev.xml.in.h:283
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:284 ../rules/evdev.xml.in.h:284
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:285 ../rules/evdev.xml.in.h:285
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Hungarujo"
-#: ../rules/base.xml.in.h:286 ../rules/evdev.xml.in.h:286
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "'Hyper' estas mapita al la klavoj 'Win'"
-#: ../rules/base.xml.in.h:287 ../rules/evdev.xml.in.h:287
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:288 ../rules/evdev.xml.in.h:288
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:289 ../rules/evdev.xml.in.h:289
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:290 ../rules/evdev.xml.in.h:290
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:291 ../rules/evdev.xml.in.h:291
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:292 ../rules/evdev.xml.in.h:292
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#: ../rules/base.xml.in.h:293 ../rules/evdev.xml.in.h:293
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:294 ../rules/evdev.xml.in.h:294
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:295 ../rules/evdev.xml.in.h:295
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "Alternativa ISO"
-#: ../rules/base.xml.in.h:296 ../rules/evdev.xml.in.h:296
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Islando"
-#: ../rules/base.xml.in.h:297 ../rules/evdev.xml.in.h:297
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:298 ../rules/evdev.xml.in.h:298
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Inkluzivi senpaÅan tildon"
-#: ../rules/base.xml.in.h:299 ../rules/evdev.xml.in.h:299
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:300 ../rules/evdev.xml.in.h:300
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Bharato"
-#: ../rules/base.xml.in.h:301 ../rules/evdev.xml.in.h:301
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Internacia (senpaÅaj klavoj per 'AltGr')"
-#: ../rules/base.xml.in.h:302 ../rules/evdev.xml.in.h:302
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Internacia (senpaÅaj klavoj)"
-#: ../rules/base.xml.in.h:303 ../rules/evdev.xml.in.h:303
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuita"
-#: ../rules/base.xml.in.h:304 ../rules/evdev.xml.in.h:304
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Irano"
-#: ../rules/base.xml.in.h:305 ../rules/evdev.xml.in.h:305
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irako"
-#: ../rules/base.xml.in.h:306 ../rules/evdev.xml.in.h:306
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irlando"
-#: ../rules/base.xml.in.h:307 ../rules/evdev.xml.in.h:307
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:308 ../rules/evdev.xml.in.h:308
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:309 ../rules/evdev.xml.in.h:309
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:310 ../rules/evdev.xml.in.h:310
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:311 ../rules/evdev.xml.in.h:311
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:312 ../rules/evdev.xml.in.h:312
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israelo"
-#: ../rules/base.xml.in.h:313 ../rules/evdev.xml.in.h:313
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:314 ../rules/evdev.xml.in.h:314
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italujo"
-#: ../rules/base.xml.in.h:315 ../rules/evdev.xml.in.h:315
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Nipono"
-#: ../rules/base.xml.in.h:316 ../rules/evdev.xml.in.h:316
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Nipono (Serio PC-98xx)"
-#: ../rules/base.xml.in.h:317 ../rules/evdev.xml.in.h:317
-msgid "Japanese 106-key"
-msgstr "Nipono 106-klava"
-
-#: ../rules/base.xml.in.h:318 ../rules/evdev.xml.in.h:318
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Opcioj de nipona klavaro"
-#: ../rules/base.xml.in.h:319 ../rules/evdev.xml.in.h:319
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:320 ../rules/evdev.xml.in.h:320
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:321 ../rules/evdev.xml.in.h:321
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kanao"
-#: ../rules/base.xml.in.h:322 ../rules/evdev.xml.in.h:322
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Kanaa klavo 'Lock' Ålosigas"
-#: ../rules/base.xml.in.h:323 ../rules/evdev.xml.in.h:323
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kanara"
-#: ../rules/base.xml.in.h:324 ../rules/evdev.xml.in.h:324
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "KaÅuba"
-#: ../rules/base.xml.in.h:325 ../rules/evdev.xml.in.h:325
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:326 ../rules/evdev.xml.in.h:326
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazaĥa kaj Rusa"
-#: ../rules/base.xml.in.h:327 ../rules/evdev.xml.in.h:327
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazaĥujo"
-#: ../rules/base.xml.in.h:328 ../rules/evdev.xml.in.h:328
+#: ../rules/base.xml.in.h:343
+msgid "Key sequence to kill the X server"
+msgstr "Klav-sekvo por formortigi la X-servilon"
+
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Klavo por elekti 3-an nivelon"
-#: ../rules/base.xml.in.h:329 ../rules/evdev.xml.in.h:329
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Klavo(j) por ÅanÄi la aranÄon"
-#: ../rules/base.xml.in.h:330 ../rules/evdev.xml.in.h:330
-msgid "Keypad"
-msgstr "Cifer-klavaro"
-
-#: ../rules/base.xml.in.h:331 ../rules/evdev.xml.in.h:331
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:332 ../rules/evdev.xml.in.h:332
+#: ../rules/base.xml.in.h:347
+msgid "Kgz"
+msgstr "Kgz"
+
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:333 ../rules/evdev.xml.in.h:333
-msgid "Kir"
-msgstr "Kir"
-
-#: ../rules/base.xml.in.h:334 ../rules/evdev.xml.in.h:334
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komia"
-#: ../rules/base.xml.in.h:335 ../rules/evdev.xml.in.h:335
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:336 ../rules/evdev.xml.in.h:336
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Koreujo, Respubliko de"
-#: ../rules/base.xml.in.h:337 ../rules/evdev.xml.in.h:337
-msgid "Korean 106-key"
-msgstr "Korea 106-klava"
-
-#: ../rules/base.xml.in.h:338 ../rules/evdev.xml.in.h:338
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:339 ../rules/evdev.xml.in.h:339
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurda, (F)"
-#: ../rules/base.xml.in.h:340 ../rules/evdev.xml.in.h:340
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurda, Araba-Latina"
-#: ../rules/base.xml.in.h:341 ../rules/evdev.xml.in.h:341
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurda, Latina Alt-Q"
-#: ../rules/base.xml.in.h:342 ../rules/evdev.xml.in.h:342
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurda, Lania Q"
-#: ../rules/base.xml.in.h:343 ../rules/evdev.xml.in.h:343
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirgizujo"
-#: ../rules/base.xml.in.h:344 ../rules/evdev.xml.in.h:344
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:345 ../rules/evdev.xml.in.h:345
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:346 ../rules/evdev.xml.in.h:346
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:347 ../rules/evdev.xml.in.h:347
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:348 ../rules/evdev.xml.in.h:348
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laoso"
-#: ../rules/base.xml.in.h:349 ../rules/evdev.xml.in.h:349
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
-#: ../rules/base.xml.in.h:350 ../rules/evdev.xml.in.h:350
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
-#: ../rules/base.xml.in.h:351 ../rules/evdev.xml.in.h:351
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Laptop/notebook eMachines m68xx"
-#: ../rules/base.xml.in.h:352 ../rules/evdev.xml.in.h:352
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latineca"
-#: ../rules/base.xml.in.h:353 ../rules/evdev.xml.in.h:353
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latin-amerika"
-#: ../rules/base.xml.in.h:354 ../rules/evdev.xml.in.h:354
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latineca Unikoda"
-#: ../rules/base.xml.in.h:355 ../rules/evdev.xml.in.h:355
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latineca Unikoda qwerty"
-#: ../rules/base.xml.in.h:356 ../rules/evdev.xml.in.h:356
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latineca qwerty"
-#: ../rules/base.xml.in.h:357 ../rules/evdev.xml.in.h:357
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latineca unikoda"
-#: ../rules/base.xml.in.h:358 ../rules/evdev.xml.in.h:358
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latineca unikoda qwerty"
-#: ../rules/base.xml.in.h:359 ../rules/evdev.xml.in.h:359
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latineca kun angul-citiloj"
-#: ../rules/base.xml.in.h:360 ../rules/evdev.xml.in.h:360
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Latvujo"
-#: ../rules/base.xml.in.h:361 ../rules/evdev.xml.in.h:361
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:362 ../rules/evdev.xml.in.h:362
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Maldekstra Alt"
-#: ../rules/base.xml.in.h:363 ../rules/evdev.xml.in.h:363
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Maldekstra 'Alt' (dum premata)"
-#: ../rules/base.xml.in.h:364 ../rules/evdev.xml.in.h:364
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "La maldekstra 'Alt' estas permutita kun la maldekstra klavo 'Win'"
-#: ../rules/base.xml.in.h:365 ../rules/evdev.xml.in.h:365
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Maldekstra Ctrl"
-#: ../rules/base.xml.in.h:366 ../rules/evdev.xml.in.h:366
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Maldekstra Ctrl+Maldekstra Shift"
-#: ../rules/base.xml.in.h:367 ../rules/evdev.xml.in.h:367
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Maldekstra Shift"
-#: ../rules/base.xml.in.h:368 ../rules/evdev.xml.in.h:368
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Maldekstra Win"
-#: ../rules/base.xml.in.h:369 ../rules/evdev.xml.in.h:369
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Maldekstra Win (al la unua aranÄo), Dekstra Win/Menu (al la lasta aranÄo)"
-#: ../rules/base.xml.in.h:370 ../rules/evdev.xml.in.h:370
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Maldekstra Win (dum premata)"
-#: ../rules/base.xml.in.h:371 ../rules/evdev.xml.in.h:371
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Maldekstra mano"
-#: ../rules/base.xml.in.h:372 ../rules/evdev.xml.in.h:372
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Maldekstreca Dvorako"
-#: ../rules/base.xml.in.h:373 ../rules/evdev.xml.in.h:373
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Malmoderna"
-#: ../rules/base.xml.in.h:374 ../rules/evdev.xml.in.h:374
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Malmoderna Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:376 ../rules/evdev.xml.in.h:376
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Malmoderna klavo kun komo"
-#: ../rules/base.xml.in.h:377 ../rules/evdev.xml.in.h:377
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Malmoderna klavo kun punkto"
-#: ../rules/base.xml.in.h:378 ../rules/evdev.xml.in.h:378
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Pli-signo/Malpli-signo"
-#: ../rules/base.xml.in.h:379 ../rules/evdev.xml.in.h:379
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Litovujo"
-#: ../rules/base.xml.in.h:380 ../rules/evdev.xml.in.h:380
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:381 ../rules/evdev.xml.in.h:381
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:382 ../rules/evdev.xml.in.h:382
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (alternativa opcio)"
-#: ../rules/base.xml.in.h:383 ../rules/evdev.xml.in.h:383
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:384 ../rules/evdev.xml.in.h:384
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:385 ../rules/evdev.xml.in.h:385
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:386 ../rules/evdev.xml.in.h:386
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:387 ../rules/evdev.xml.in.h:387
-msgid "Logitech Cordless Desktop Pro (alternate option2)"
+#: ../rules/base.xml.in.h:401
+msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (alternativa opcio 2)"
-#: ../rules/base.xml.in.h:388 ../rules/evdev.xml.in.h:388
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:389 ../rules/evdev.xml.in.h:389
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:390 ../rules/evdev.xml.in.h:390
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 extra keys via G15daemon"
-#: ../rules/base.xml.in.h:391 ../rules/evdev.xml.in.h:391
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech - Äœenerala Klavaro"
-#: ../rules/base.xml.in.h:392 ../rules/evdev.xml.in.h:392
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:393 ../rules/evdev.xml.in.h:393
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:394 ../rules/evdev.xml.in.h:394
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:395 ../rules/evdev.xml.in.h:395
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:396 ../rules/evdev.xml.in.h:396
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:397 ../rules/evdev.xml.in.h:397
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:398 ../rules/evdev.xml.in.h:398
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:399 ../rules/evdev.xml.in.h:399
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:400 ../rules/evdev.xml.in.h:400
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:401 ../rules/evdev.xml.in.h:401
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (model Y-RB6)"
-#: ../rules/base.xml.in.h:402 ../rules/evdev.xml.in.h:402
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:403 ../rules/evdev.xml.in.h:403
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:404 ../rules/evdev.xml.in.h:404
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Malsupra Soraba"
-#: ../rules/base.xml.in.h:405 ../rules/evdev.xml.in.h:405
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Malsupra Soraba (qwertz)"
-#: ../rules/base.xml.in.h:406 ../rules/evdev.xml.in.h:406
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:407 ../rules/evdev.xml.in.h:407
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:408 ../rules/evdev.xml.in.h:408
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:409 ../rules/evdev.xml.in.h:409
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:410 ../rules/evdev.xml.in.h:410
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:411 ../rules/evdev.xml.in.h:411
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Makedonujo"
-#: ../rules/base.xml.in.h:412 ../rules/evdev.xml.in.h:412
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:413 ../rules/evdev.xml.in.h:413
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh 'Malnova'"
-#: ../rules/base.xml.in.h:414 ../rules/evdev.xml.in.h:414
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, senpaÅaj klavoj de 'Sun'"
-#: ../rules/base.xml.in.h:415 ../rules/evdev.xml.in.h:415
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:416 ../rules/evdev.xml.in.h:416
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Igi CapsLock kroman Backspace"
-#: ../rules/base.xml.in.h:417 ../rules/evdev.xml.in.h:417
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Igi CapsLock kroman Ctrl"
-#: ../rules/base.xml.in.h:418 ../rules/evdev.xml.in.h:418
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Igi CapsLock kroman ESC"
-#: ../rules/base.xml.in.h:419 ../rules/evdev.xml.in.h:419
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Igi CapsLock kroman Hyper"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Igi CapsLock kroman NumLock"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Igi CapsLock kroman Super"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:420 ../rules/evdev.xml.in.h:420
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malajala"
-#: ../rules/base.xml.in.h:421 ../rules/evdev.xml.in.h:421
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malajala 'Lalitha'"
-#: ../rules/base.xml.in.h:422 ../rules/evdev.xml.in.h:422
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldivoj"
-#: ../rules/base.xml.in.h:423 ../rules/evdev.xml.in.h:423
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Maltolando"
-#: ../rules/base.xml.in.h:424 ../rules/evdev.xml.in.h:424
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Malta klavaro kun usona aranÄo"
-#: ../rules/base.xml.in.h:425 ../rules/evdev.xml.in.h:425
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:426 ../rules/evdev.xml.in.h:426
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maoria"
-#: ../rules/base.xml.in.h:427 ../rules/evdev.xml.in.h:427
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:428 ../rules/evdev.xml.in.h:428
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:429 ../rules/evdev.xml.in.h:429
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:430 ../rules/evdev.xml.in.h:430
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:431 ../rules/evdev.xml.in.h:431
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta estas mapita al la Maldekstra Win"
-#: ../rules/base.xml.in.h:432 ../rules/evdev.xml.in.h:432
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta estas mapita al la klavoj Win"
-#: ../rules/base.xml.in.h:433 ../rules/evdev.xml.in.h:433
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:434 ../rules/evdev.xml.in.h:434
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:435 ../rules/evdev.xml.in.h:435
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, Sveda"
-#: ../rules/base.xml.in.h:436 ../rules/evdev.xml.in.h:436
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:437 ../rules/evdev.xml.in.h:437
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:438 ../rules/evdev.xml.in.h:438
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:439 ../rules/evdev.xml.in.h:439
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:440 ../rules/evdev.xml.in.h:440
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:441 ../rules/evdev.xml.in.h:441
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:442 ../rules/evdev.xml.in.h:442
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:443 ../rules/evdev.xml.in.h:443
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:444 ../rules/evdev.xml.in.h:444
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Ceteraj kongruaj opcioj"
-#: ../rules/base.xml.in.h:445 ../rules/evdev.xml.in.h:445
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:446 ../rules/evdev.xml.in.h:446
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:447 ../rules/evdev.xml.in.h:447
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:448 ../rules/evdev.xml.in.h:448
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:449 ../rules/evdev.xml.in.h:449
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolujo"
-#: ../rules/base.xml.in.h:450 ../rules/evdev.xml.in.h:450
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:451 ../rules/evdev.xml.in.h:451
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Maroko"
-#: ../rules/base.xml.in.h:452 ../rules/evdev.xml.in.h:452
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Plurlingva"
-#: ../rules/base.xml.in.h:453 ../rules/evdev.xml.in.h:453
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Plurlingva, unua parto"
-#: ../rules/base.xml.in.h:454 ../rules/evdev.xml.in.h:454
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Plurlingva, dua parto"
-#: ../rules/base.xml.in.h:455 ../rules/evdev.xml.in.h:455
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Birmo"
-#: ../rules/base.xml.in.h:456 ../rules/evdev.xml.in.h:456
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "RetropaÅo laÅ­ estilo NICOLA-F"
-#: ../rules/base.xml.in.h:457 ../rules/evdev.xml.in.h:457
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:458 ../rules/evdev.xml.in.h:458
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:459 ../rules/evdev.xml.in.h:459
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo por Esperanto"
-#: ../rules/base.xml.in.h:460 ../rules/evdev.xml.in.h:460
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo por usonaj klavaroj"
-#: ../rules/base.xml.in.h:461 ../rules/evdev.xml.in.h:461
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:462 ../rules/evdev.xml.in.h:462
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:463 ../rules/evdev.xml.in.h:463
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepalo"
-#: ../rules/base.xml.in.h:464 ../rules/evdev.xml.in.h:464
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Nederlando"
-#: ../rules/base.xml.in.h:465 ../rules/evdev.xml.in.h:465
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Nova fonetika"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:466 ../rules/evdev.xml.in.h:466
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "NiÄerujo"
-#: ../rules/base.xml.in.h:467 ../rules/evdev.xml.in.h:467
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:468 ../rules/evdev.xml.in.h:468
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Ne-rompebla spaco-signo ĉe la 4-a nivelo"
-#: ../rules/base.xml.in.h:469 ../rules/evdev.xml.in.h:469
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Ne-rompebla spaco-signo ĉe la 4-a nivelo, maldika ne-rompebla spaco-signo ĉe la 6-a nivelo"
-#: ../rules/base.xml.in.h:470 ../rules/evdev.xml.in.h:470
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Ne-rompebla spaco-signo ĉe la 4-a nivelo, maldika ne-rompebla spaco-signo ĉe la 6-a nivelo (per Ctrl+Shift)"
-#: ../rules/base.xml.in.h:471 ../rules/evdev.xml.in.h:471
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Ne-rompebla spaco-signo ĉe la 2-a nivelo"
-#: ../rules/base.xml.in.h:472 ../rules/evdev.xml.in.h:472
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Ne-rompebla spaco-signo ĉe la 3-a nivelo"
-#: ../rules/base.xml.in.h:473 ../rules/evdev.xml.in.h:473
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Ne-rompebla spaco-signo ĉe la 3-a nivelo, nenio ĉe la 4-a nivelo"
-#: ../rules/base.xml.in.h:474 ../rules/evdev.xml.in.h:474
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Ne-rompebla spaco-signo ĉe la 3-a nivelo, maldika ne-rompebla spaco-signo ĉe la 4-a nivelo"
-#: ../rules/base.xml.in.h:475 ../rules/evdev.xml.in.h:475
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:476 ../rules/evdev.xml.in.h:476
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Norda Samea"
-#: ../rules/base.xml.in.h:477 ../rules/evdev.xml.in.h:477
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Norda Samea, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:478 ../rules/evdev.xml.in.h:478
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:479 ../rules/evdev.xml.in.h:479
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norvegujo"
-#: ../rules/base.xml.in.h:480 ../rules/evdev.xml.in.h:480
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:481 ../rules/evdev.xml.in.h:481
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Funkciado de la forig-klavo de la ciferklavaro"
-#: ../rules/base.xml.in.h:482 ../rules/evdev.xml.in.h:482
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "La klavoj de la ciferklavaro funkcias same kiel en Mac"
-#: ../rules/base.xml.in.h:483 ../rules/evdev.xml.in.h:483
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Elektado de aranÄo por la ciferklavaro"
-#: ../rules/base.xml.in.h:484 ../rules/evdev.xml.in.h:484
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:485 ../rules/evdev.xml.in.h:485
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:486 ../rules/evdev.xml.in.h:486
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Daria"
-#: ../rules/base.xml.in.h:487 ../rules/evdev.xml.in.h:487
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC PaÅtoa"
-#: ../rules/base.xml.in.h:488 ../rules/evdev.xml.in.h:488
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Suda Uzbekujo"
-#: ../rules/base.xml.in.h:489 ../rules/evdev.xml.in.h:489
+#: ../rules/base.xml.in.h:507
+msgid "Occitan"
+msgstr "Okcitana"
+
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogamo"
-#: ../rules/base.xml.in.h:490 ../rules/evdev.xml.in.h:490
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogamo IS434"
-#: ../rules/base.xml.in.h:491 ../rules/evdev.xml.in.h:491
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Orija"
-#: ../rules/base.xml.in.h:492 ../rules/evdev.xml.in.h:492
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet keyboard"
-#: ../rules/base.xml.in.h:493 ../rules/evdev.xml.in.h:493
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Oseta"
-#: ../rules/base.xml.in.h:494 ../rules/evdev.xml.in.h:494
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Oseta, klavoj 'Win'"
-#: ../rules/base.xml.in.h:495 ../rules/evdev.xml.in.h:495
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Oseta, malmoderna"
-#: ../rules/base.xml.in.h:496 ../rules/evdev.xml.in.h:496
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx Series"
-#: ../rules/base.xml.in.h:497 ../rules/evdev.xml.in.h:497
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:498 ../rules/evdev.xml.in.h:498
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistano"
-#: ../rules/base.xml.in.h:499 ../rules/evdev.xml.in.h:499
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "PaÅtoa"
-#: ../rules/base.xml.in.h:500 ../rules/evdev.xml.in.h:500
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:501 ../rules/evdev.xml.in.h:501
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persa, kun Persa Ciferklavaro"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetika"
-#: ../rules/base.xml.in.h:502 ../rules/evdev.xml.in.h:502
+#: ../rules/base.xml.in.h:522
+msgid "Phonetic Winkeys"
+msgstr "Fonetikaj Win-klavoj"
+
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:503 ../rules/evdev.xml.in.h:503
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polujo"
-#: ../rules/base.xml.in.h:504 ../rules/evdev.xml.in.h:504
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Plurtona"
-#: ../rules/base.xml.in.h:505 ../rules/evdev.xml.in.h:505
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugalujo"
-#: ../rules/base.xml.in.h:506 ../rules/evdev.xml.in.h:506
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:507 ../rules/evdev.xml.in.h:507
-msgid "Pro Keypad"
-msgstr "Pro Keypad"
-
-#: ../rules/base.xml.in.h:508 ../rules/evdev.xml.in.h:508
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:509 ../rules/evdev.xml.in.h:509
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Dvorako por programistoj"
-#: ../rules/base.xml.in.h:510 ../rules/evdev.xml.in.h:510
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:511 ../rules/evdev.xml.in.h:511
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:512 ../rules/evdev.xml.in.h:512
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:513 ../rules/evdev.xml.in.h:513
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Dekstra Alt"
-#: ../rules/base.xml.in.h:514 ../rules/evdev.xml.in.h:514
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Dekstra Alt (dum premata)"
-#: ../rules/base.xml.in.h:515 ../rules/evdev.xml.in.h:515
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Dekstra Alt neniam elektas la 3-an nivelon"
-#: ../rules/base.xml.in.h:516 ../rules/evdev.xml.in.h:516
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Dekstra Alt, Shift+Dekstra Alt estas Multi_Key"
-#: ../rules/base.xml.in.h:517 ../rules/evdev.xml.in.h:517
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Dekstra Ctrl"
-#: ../rules/base.xml.in.h:518 ../rules/evdev.xml.in.h:518
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Dekstra Ctrl (dum premata)"
-#: ../rules/base.xml.in.h:519 ../rules/evdev.xml.in.h:519
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Dekstra Ctrl kiel Dekstran Alt"
-#: ../rules/base.xml.in.h:520 ../rules/evdev.xml.in.h:520
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Dekstra Shift"
-#: ../rules/base.xml.in.h:521 ../rules/evdev.xml.in.h:521
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Dekstra Win"
-#: ../rules/base.xml.in.h:522 ../rules/evdev.xml.in.h:522
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Dekstra Win (dum premata)"
-#: ../rules/base.xml.in.h:523 ../rules/evdev.xml.in.h:523
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Dekstra mano"
-#: ../rules/base.xml.in.h:524 ../rules/evdev.xml.in.h:524
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Dekstreca Dvorako"
-#: ../rules/base.xml.in.h:525 ../rules/evdev.xml.in.h:525
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rumanujo"
-#: ../rules/base.xml.in.h:526 ../rules/evdev.xml.in.h:526
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Rumana klavaro kun germanaj literoj"
-#: ../rules/base.xml.in.h:527 ../rules/evdev.xml.in.h:527
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Rumana klavaro kun germanaj literoj, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:528 ../rules/evdev.xml.in.h:528
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:529 ../rules/evdev.xml.in.h:529
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:530 ../rules/evdev.xml.in.h:530
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Rusujo"
-#: ../rules/base.xml.in.h:531 ../rules/evdev.xml.in.h:531
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Rusa"
-#: ../rules/base.xml.in.h:532 ../rules/evdev.xml.in.h:532
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Rusa fonetika"
-#: ../rules/base.xml.in.h:533 ../rules/evdev.xml.in.h:533
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Rusa fonetika Dvorako"
-#: ../rules/base.xml.in.h:534 ../rules/evdev.xml.in.h:534
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Rusa fonetika, forigi senpaÅajn klavojn"
-#: ../rules/base.xml.in.h:535 ../rules/evdev.xml.in.h:535
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Rusa kun Kazaĥa"
-#: ../rules/base.xml.in.h:536 ../rules/evdev.xml.in.h:536
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:537 ../rules/evdev.xml.in.h:537
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:538 ../rules/evdev.xml.in.h:538
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:539 ../rules/evdev.xml.in.h:539
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:540 ../rules/evdev.xml.in.h:540
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:541 ../rules/evdev.xml.in.h:541
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:542 ../rules/evdev.xml.in.h:542
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:543 ../rules/evdev.xml.in.h:543
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:544 ../rules/evdev.xml.in.h:544
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:545 ../rules/evdev.xml.in.h:545
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:546 ../rules/evdev.xml.in.h:546
+#: ../rules/base.xml.in.h:565
+msgid "Scroll Lock"
+msgstr "Ruluma Baskulo"
+
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:547 ../rules/evdev.xml.in.h:547
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:548 ../rules/evdev.xml.in.h:548
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Punkto-komo ĉe la 3-a nivelo"
-#: ../rules/base.xml.in.h:549 ../rules/evdev.xml.in.h:549
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbujo"
-#: ../rules/base.xml.in.h:550 ../rules/evdev.xml.in.h:550
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Shift nuligas CapsLock"
-#: ../rules/base.xml.in.h:551 ../rules/evdev.xml.in.h:551
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Shift ne nuligas NumLock, Äi elektigas la 3-a nivelon anstataÅ­e"
-#: ../rules/base.xml.in.h:552 ../rules/evdev.xml.in.h:552
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Shift kun la ciferklavaro funkcias same kiel en MS Windows"
-#: ../rules/base.xml.in.h:553 ../rules/evdev.xml.in.h:553
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Shift+CapsLock"
-#: ../rules/base.xml.in.h:554 ../rules/evdev.xml.in.h:554
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Simpla"
-#: ../rules/base.xml.in.h:555 ../rules/evdev.xml.in.h:555
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovakujo"
-#: ../rules/base.xml.in.h:556 ../rules/evdev.xml.in.h:556
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovenujo"
-#: ../rules/base.xml.in.h:557 ../rules/evdev.xml.in.h:557
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Sud-Afriko"
-#: ../rules/base.xml.in.h:558 ../rules/evdev.xml.in.h:558
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Suda Uzbekujo"
-#: ../rules/base.xml.in.h:559 ../rules/evdev.xml.in.h:559
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Hispanio"
-#: ../rules/base.xml.in.h:560 ../rules/evdev.xml.in.h:560
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Specialaj klavoj (Ctrl+Alt+&lt;klavo&gt;) traktotaj en servilo"
-#: ../rules/base.xml.in.h:561 ../rules/evdev.xml.in.h:561
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:562 ../rules/evdev.xml.in.h:562
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri-Lanko"
-#: ../rules/base.xml.in.h:563 ../rules/evdev.xml.in.h:563
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "LaÅ­norma"
-#: ../rules/base.xml.in.h:564 ../rules/evdev.xml.in.h:564
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "LaÅ­norma (Subhoko)"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:566 ../rules/evdev.xml.in.h:566
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "LaÅ­norma RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:568 ../rules/evdev.xml.in.h:568
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "LaÅ­norma RSTU en Rusa aranÄo"
-#: ../rules/base.xml.in.h:569 ../rules/evdev.xml.in.h:569
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:570 ../rules/evdev.xml.in.h:570
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "SenpaÅaj klavoj de 'Sun'"
-#: ../rules/base.xml.in.h:571 ../rules/evdev.xml.in.h:571
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:572 ../rules/evdev.xml.in.h:572
-msgid "Super is mapped to Win keys"
-msgstr "'Super' estas mapita al la klavoj Win"
-
-#: ../rules/base.xml.in.h:573 ../rules/evdev.xml.in.h:573
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:574 ../rules/evdev.xml.in.h:574
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:575 ../rules/evdev.xml.in.h:575
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:576 ../rules/evdev.xml.in.h:576
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Permuti Ctrl kaj CapsLock"
-#: ../rules/base.xml.in.h:577 ../rules/evdev.xml.in.h:577
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Permuti ESC kaj CapsLock"
-#: ../rules/base.xml.in.h:578 ../rules/evdev.xml.in.h:578
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:579 ../rules/evdev.xml.in.h:579
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Svedujo"
-#: ../rules/base.xml.in.h:580 ../rules/evdev.xml.in.h:580
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Svislando"
-#: ../rules/base.xml.in.h:581 ../rules/evdev.xml.in.h:581
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tabuleta PC)"
-#: ../rules/base.xml.in.h:582 ../rules/evdev.xml.in.h:582
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:583 ../rules/evdev.xml.in.h:583
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Sirio"
-#: ../rules/base.xml.in.h:584 ../rules/evdev.xml.in.h:584
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Siria"
-#: ../rules/base.xml.in.h:585 ../rules/evdev.xml.in.h:585
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Siria fonetika"
-#: ../rules/base.xml.in.h:586 ../rules/evdev.xml.in.h:586
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:587 ../rules/evdev.xml.in.h:587
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "TaÄikujo"
-#: ../rules/base.xml.in.h:588 ../rules/evdev.xml.in.h:588
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamila"
-#: ../rules/base.xml.in.h:589 ../rules/evdev.xml.in.h:589
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamila TAB Typewriter"
-#: ../rules/base.xml.in.h:590 ../rules/evdev.xml.in.h:590
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamila TSCII Typewriter"
-#: ../rules/base.xml.in.h:591 ../rules/evdev.xml.in.h:591
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamila Unikodo"
-#: ../rules/base.xml.in.h:592 ../rules/evdev.xml.in.h:592
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:593 ../rules/evdev.xml.in.h:593
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatara"
-#: ../rules/base.xml.in.h:594 ../rules/evdev.xml.in.h:594
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugua"
-#: ../rules/base.xml.in.h:595 ../rules/evdev.xml.in.h:595
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:596 ../rules/evdev.xml.in.h:596
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Tajlando"
-#: ../rules/base.xml.in.h:597 ../rules/evdev.xml.in.h:597
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibeta"
-#: ../rules/base.xml.in.h:598 ../rules/evdev.xml.in.h:598
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibeta (kun ASCII ciferoj)"
-#: ../rules/base.xml.in.h:599 ../rules/evdev.xml.in.h:599
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:600 ../rules/evdev.xml.in.h:600
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh Alternativa"
-#: ../rules/base.xml.in.h:601 ../rules/evdev.xml.in.h:601
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh Alternativa Fonetika"
-#: ../rules/base.xml.in.h:602 ../rules/evdev.xml.in.h:602
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh Etendita"
-#: ../rules/base.xml.in.h:603 ../rules/evdev.xml.in.h:603
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh Etendita Fonetika"
-#: ../rules/base.xml.in.h:604 ../rules/evdev.xml.in.h:604
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh Fonetika"
-#: ../rules/base.xml.in.h:605 ../rules/evdev.xml.in.h:605
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Tilda (~) variaĵo"
-#: ../rules/base.xml.in.h:606 ../rules/evdev.xml.in.h:606
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:607 ../rules/evdev.xml.in.h:607
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Al la ekvivalenta klavo en Dvoraka klavaro."
-#: ../rules/base.xml.in.h:608 ../rules/evdev.xml.in.h:608
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Al la ekvivalenta klavo en klavaro Qwerty."
-#: ../rules/base.xml.in.h:609 ../rules/evdev.xml.in.h:609
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:610 ../rules/evdev.xml.in.h:610
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Tradicia fonetika"
+
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:611 ../rules/evdev.xml.in.h:611
+#: ../rules/base.xml.in.h:631
+msgid "Trust Slimline"
+msgstr "Trust Slimline"
+
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:612 ../rules/evdev.xml.in.h:612
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:613 ../rules/evdev.xml.in.h:613
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turkujo"
-#: ../rules/base.xml.in.h:614 ../rules/evdev.xml.in.h:614
+#: ../rules/base.xml.in.h:635
+msgid "Turkmenistan"
+msgstr "Turkmenujo"
+
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "SkribmaÅino"
-#: ../rules/base.xml.in.h:615 ../rules/evdev.xml.in.h:615
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "AranÄo UCW (nur diakritaĵoj)"
-#: ../rules/base.xml.in.h:616 ../rules/evdev.xml.in.h:616
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Usona klavaro kun bosnaj duliteraĵoj"
-#: ../rules/base.xml.in.h:617 ../rules/evdev.xml.in.h:617
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Usona klavaro kun bosnaj literoj"
-#: ../rules/base.xml.in.h:618 ../rules/evdev.xml.in.h:618
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Usona klavaro kun kroataj duliteraĵoj"
-#: ../rules/base.xml.in.h:619 ../rules/evdev.xml.in.h:619
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Usona klavaro kun kroataj literoj"
-#: ../rules/base.xml.in.h:620 ../rules/evdev.xml.in.h:620
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Usona klavaro kun estonaj literoj"
-#: ../rules/base.xml.in.h:621 ../rules/evdev.xml.in.h:621
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Usona klavaro kun italaj literoj"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Usona klavaro kun litovaj literoj"
-#: ../rules/base.xml.in.h:622 ../rules/evdev.xml.in.h:622
-msgid "US keyboard with Slovenian digraphs"
-msgstr "Usona klavaro kun slovenaj duliteraĵoj"
-
-#: ../rules/base.xml.in.h:623 ../rules/evdev.xml.in.h:623
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Usona klavaro kun slovenaj literoj"
-#: ../rules/base.xml.in.h:624 ../rules/evdev.xml.in.h:624
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "Usono"
-#: ../rules/base.xml.in.h:625 ../rules/evdev.xml.in.h:625
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurta"
-#: ../rules/base.xml.in.h:626 ../rules/evdev.xml.in.h:626
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:627 ../rules/evdev.xml.in.h:627
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukrajnujo"
-#: ../rules/base.xml.in.h:628 ../rules/evdev.xml.in.h:628
-msgid "Unicode"
-msgstr "Unikodo"
-
-#: ../rules/base.xml.in.h:629 ../rules/evdev.xml.in.h:629
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Unikodaj aldonoj (sagoj kaj operaci-simboloj)"
-#: ../rules/base.xml.in.h:630 ../rules/evdev.xml.in.h:630
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Unikodaj aldonoj (sagoj kaj operaci-simboloj). Operaci-simboloj en la implicita nivelo."
-#: ../rules/base.xml.in.h:631 ../rules/evdev.xml.in.h:631
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:632 ../rules/evdev.xml.in.h:632
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "UnuiÄinta ReÄlando"
-#: ../rules/base.xml.in.h:633 ../rules/evdev.xml.in.h:633
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:634 ../rules/evdev.xml.in.h:634
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, Alternativa fonetika"
-#: ../rules/base.xml.in.h:635 ../rules/evdev.xml.in.h:635
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, Fonetike"
-#: ../rules/base.xml.in.h:636 ../rules/evdev.xml.in.h:636
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, Win-klavoj"
-#: ../rules/base.xml.in.h:637 ../rules/evdev.xml.in.h:637
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Uzi bosnajn duliteraĵojn"
-#: ../rules/base.xml.in.h:638 ../rules/evdev.xml.in.h:638
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Uzi kroatajn duliteraĵojn"
-#: ../rules/base.xml.in.h:639 ../rules/evdev.xml.in.h:639
-msgid "Use Slovenian digraphs"
-msgstr "Uzi slovenajn duliteraĵojn"
-
-#: ../rules/base.xml.in.h:640 ../rules/evdev.xml.in.h:640
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Uzi angul-citilojn por citiloj"
-#: ../rules/base.xml.in.h:641 ../rules/evdev.xml.in.h:641
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Uzi la LED de klavaro por indiki alternativan aranÄon"
-#: ../rules/base.xml.in.h:642 ../rules/evdev.xml.in.h:642
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Uzado de spac-klavo por enmeti ne-rompeblan spaco-signon"
-#: ../rules/base.xml.in.h:643 ../rules/evdev.xml.in.h:643
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Kutima spaco-signo ĉe iu ajn nivelo"
-#: ../rules/base.xml.in.h:644 ../rules/evdev.xml.in.h:644
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:645 ../rules/evdev.xml.in.h:645
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekujo"
-#: ../rules/base.xml.in.h:646 ../rules/evdev.xml.in.h:646
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vjetnamujo"
-#: ../rules/base.xml.in.h:647 ../rules/evdev.xml.in.h:647
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard"
-#: ../rules/base.xml.in.h:648 ../rules/evdev.xml.in.h:648
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:649 ../rules/evdev.xml.in.h:649
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 ciferklavaro kun unikodaj aldonoj (sagoj kaj operaci-simboloj)"
-#: ../rules/base.xml.in.h:650 ../rules/evdev.xml.in.h:650
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Wang 724 ciferklavaro kun unikodaj aldonoj (sagoj kaj operaci-simboloj). Operaci-simboloj en la implicita nivelo"
-#: ../rules/base.xml.in.h:651 ../rules/evdev.xml.in.h:651
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang modelo 724 azerty"
-#: ../rules/base.xml.in.h:652 ../rules/evdev.xml.in.h:652
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Okcidenta"
-#: ../rules/base.xml.in.h:653 ../rules/evdev.xml.in.h:653
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:654 ../rules/evdev.xml.in.h:654
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Win-klavoj"
-#: ../rules/base.xml.in.h:655 ../rules/evdev.xml.in.h:655
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Kun klavo &lt;\\|&gt;"
-#: ../rules/base.xml.in.h:656 ../rules/evdev.xml.in.h:656
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Kun EŭroSigno ĉe 5"
-#: ../rules/base.xml.in.h:657 ../rules/evdev.xml.in.h:657
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Kun angul-citiloj"
-#: ../rules/base.xml.in.h:658 ../rules/evdev.xml.in.h:658
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:659 ../rules/evdev.xml.in.h:659
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Yakut"
-#: ../rules/base.xml.in.h:660 ../rules/evdev.xml.in.h:660
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Joruba"
-#: ../rules/base.xml.in.h:661 ../rules/evdev.xml.in.h:661
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z kaj ZHE permutitaj"
-#: ../rules/base.xml.in.h:662 ../rules/evdev.xml.in.h:662
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:663 ../rules/evdev.xml.in.h:663
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:664 ../rules/evdev.xml.in.h:664
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/ciferoj"
-#: ../rules/base.xml.in.h:665 ../rules/evdev.xml.in.h:665
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "ciferoj"
-#: ../rules/base.xml.in.h:666 ../rules/evdev.xml.in.h:666
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "translokitaj punktokomo kaj citilo (malaktuale)"
-#: ../rules/base.xml.in.h:667 ../rules/evdev.xml.in.h:667
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:668 ../rules/evdev.xml.in.h:668
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:669 ../rules/evdev.xml.in.h:669
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, etendita Malsuprenstreko"
-#: ../rules/base.xml.in.h:670 ../rules/evdev.xml.in.h:670
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/ciferoj"
-#: ../rules/base.xml.in.h:671 ../rules/evdev.xml.in.h:671
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Kunmiksado de diakritaĵoj anstataÅ­ senpaÅaj klavoj"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Internacia (AltGr-Unikodo kunmiksado)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Internacia (AltGr-Unikodo kunmiksado, alternativa)"
+
+#~ msgid "Keypad"
+#~ msgstr "Cifer-klavaro"
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Pro Keypad"
+#~ msgstr "Pro Keypad"
+
+#~ msgid "Standard Phonetic"
+#~ msgstr "LaÅ­norma Fonetika"
+
+#~ msgid "Brazilian ABNT2"
+#~ msgstr "Brazila ABNT2"
+
+#~ msgid "Japanese 106-key"
+#~ msgstr "Nipono 106-klava"
+
+#~ msgid "Kir"
+#~ msgstr "Kir"
+
+#~ msgid "Korean 106-key"
+#~ msgstr "Korea 106-klava"
+
+#~ msgid "Super is mapped to Win keys"
+#~ msgstr "'Super' estas mapita al la klavoj Win"
+
+#~ msgid "US keyboard with Slovenian digraphs"
+#~ msgstr "Usona klavaro kun slovenaj duliteraĵoj"
+
+#~ msgid "Unicode"
+#~ msgstr "Unikodo"
+
+#~ msgid "Use Slovenian digraphs"
+#~ msgstr "Uzi slovenajn duliteraĵojn"
+
#~ msgid "Add the EuroSign to the 2 key."
#~ msgstr "Aldoni la EÅ­roSignon al la klavo 2."
@@ -2702,9 +2842,6 @@ msgstr "qwertz"
#~ msgid "Alt+Shift change layout."
#~ msgstr "Alt+Shift ÅanÄas la aranÄon."
-#~ msgid "Baltic+"
-#~ msgstr "Balta+"
-
#~ msgid "CapsLock LED shows alternative layout."
#~ msgstr "LED de CapsLock indikas alternativan aranÄon."
diff --git a/xorg-server/xkbdata.src/po/fi.po b/xorg-server/xkbdata.src/po/fi.po
index ff5be340e..024d4f762 100644
--- a/xorg-server/xkbdata.src/po/fi.po
+++ b/xorg-server/xkbdata.src/po/fi.po
@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.5\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-01-13 23:12+0000\n"
-"PO-Revision-Date: 2009-01-16 08:05+0200\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-17 11:26+0300\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -17,2679 +17,2813 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../rules/base.xml.in.h:1 ../rules/evdev.xml.in.h:1
+#: ../rules/base.xml.in.h:1
msgid "(F)"
msgstr "(F)"
-#: ../rules/base.xml.in.h:2 ../rules/evdev.xml.in.h:2
+#: ../rules/base.xml.in.h:2
msgid "(Legacy) Alternative"
msgstr "(Perinteinen) vaihtoehtoinen"
-#: ../rules/base.xml.in.h:3 ../rules/evdev.xml.in.h:3
+#: ../rules/base.xml.in.h:3
msgid "(Legacy) Alternative, Sun dead keys"
msgstr "(Perinteinen) vaihtoehtoinen, Sunin kuolleet näppäimet"
-#: ../rules/base.xml.in.h:4 ../rules/evdev.xml.in.h:4
+#: ../rules/base.xml.in.h:4
msgid "(Legacy) Alternative, eliminate dead keys"
msgstr "(Perinteinen) vaihtoehtoinen, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:5 ../rules/evdev.xml.in.h:5
+#: ../rules/base.xml.in.h:5
msgid "101/104 key Compatible"
msgstr "101/104-näppäiminen tai yhteensopiva"
-#: ../rules/base.xml.in.h:6 ../rules/evdev.xml.in.h:6
+#: ../rules/base.xml.in.h:6
msgid "101/qwerty/comma/Dead keys"
msgstr "101/qwerty/pilkku/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:7 ../rules/evdev.xml.in.h:7
+#: ../rules/base.xml.in.h:7
msgid "101/qwerty/comma/Eliminate dead keys"
msgstr "101/qwerty/pilkku/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:8 ../rules/evdev.xml.in.h:8
+#: ../rules/base.xml.in.h:8
msgid "101/qwerty/dot/Dead keys"
msgstr "101/qwerty/piste/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:9 ../rules/evdev.xml.in.h:9
+#: ../rules/base.xml.in.h:9
msgid "101/qwerty/dot/Eliminate dead keys"
msgstr "101/qwerty/piste/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:10 ../rules/evdev.xml.in.h:10
+#: ../rules/base.xml.in.h:10
msgid "101/qwertz/comma/Dead keys"
msgstr "101/qwertz/pilkku/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:11 ../rules/evdev.xml.in.h:11
+#: ../rules/base.xml.in.h:11
msgid "101/qwertz/comma/Eliminate dead keys"
msgstr "101/qwertz/pilkku/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:12 ../rules/evdev.xml.in.h:12
+#: ../rules/base.xml.in.h:12
msgid "101/qwertz/dot/Dead keys"
msgstr "101/qwertz/piste/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:13 ../rules/evdev.xml.in.h:13
+#: ../rules/base.xml.in.h:13
msgid "101/qwertz/dot/Eliminate dead keys"
msgstr "101/qwertz/piste/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:14 ../rules/evdev.xml.in.h:14
+#: ../rules/base.xml.in.h:14
msgid "102/qwerty/comma/Dead keys"
msgstr "102/qwerty/pilkku/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:15 ../rules/evdev.xml.in.h:15
+#: ../rules/base.xml.in.h:15
msgid "102/qwerty/comma/Eliminate dead keys"
msgstr "102/qwerty/pilkku/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:16 ../rules/evdev.xml.in.h:16
+#: ../rules/base.xml.in.h:16
msgid "102/qwerty/dot/Dead keys"
msgstr "102/qwerty/piste/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:17 ../rules/evdev.xml.in.h:17
+#: ../rules/base.xml.in.h:17
msgid "102/qwerty/dot/Eliminate dead keys"
msgstr "102/qwerty/piste/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:18 ../rules/evdev.xml.in.h:18
+#: ../rules/base.xml.in.h:18
msgid "102/qwertz/comma/Dead keys"
msgstr "102/qwertz/pilkku/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:19 ../rules/evdev.xml.in.h:19
+#: ../rules/base.xml.in.h:19
msgid "102/qwertz/comma/Eliminate dead keys"
msgstr "102/qwertz/pilkku/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:20 ../rules/evdev.xml.in.h:20
+#: ../rules/base.xml.in.h:20
msgid "102/qwertz/dot/Dead keys"
msgstr "102/qwertz/piste/Kuolleet näppäimet"
-#: ../rules/base.xml.in.h:21 ../rules/evdev.xml.in.h:21
+#: ../rules/base.xml.in.h:21
msgid "102/qwertz/dot/Eliminate dead keys"
msgstr "102/qwertz/piste/Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:22 ../rules/evdev.xml.in.h:22
+#: ../rules/base.xml.in.h:22
msgid "2"
msgstr "2"
-#: ../rules/base.xml.in.h:23 ../rules/evdev.xml.in.h:23
+#: ../rules/base.xml.in.h:23
msgid "4"
msgstr "4"
-#: ../rules/base.xml.in.h:24 ../rules/evdev.xml.in.h:24
+#: ../rules/base.xml.in.h:24
msgid "5"
msgstr "5"
-#: ../rules/base.xml.in.h:25 ../rules/evdev.xml.in.h:25
+#: ../rules/base.xml.in.h:25
msgid "A4Tech KB-21"
msgstr "A4Tech KB-21"
-#: ../rules/base.xml.in.h:26 ../rules/evdev.xml.in.h:26
+#: ../rules/base.xml.in.h:26
msgid "A4Tech KBS-8"
msgstr "A4Tech KBS-8"
-#: ../rules/base.xml.in.h:27 ../rules/evdev.xml.in.h:27
+#: ../rules/base.xml.in.h:27
msgid "A4Tech Wireless Desktop RFKB-23"
msgstr "A4Tech-langaton työpöytänäppäimistö RFKB-23"
-#: ../rules/base.xml.in.h:28 ../rules/evdev.xml.in.h:28
+#: ../rules/base.xml.in.h:28
msgid "ACPI Standard"
msgstr "ACPI-standardi"
-#: ../rules/base.xml.in.h:29 ../rules/evdev.xml.in.h:29
+#: ../rules/base.xml.in.h:29
msgid "ATM/phone-style"
-msgstr ""
+msgstr "ATM/puhelintyyppi"
-#: ../rules/base.xml.in.h:30 ../rules/evdev.xml.in.h:30
+#: ../rules/base.xml.in.h:30
msgid "Acer AirKey V"
msgstr "Acer AirKey V"
-#: ../rules/base.xml.in.h:31 ../rules/evdev.xml.in.h:31
+#: ../rules/base.xml.in.h:31
msgid "Acer C300"
msgstr "Acer C300"
-#: ../rules/base.xml.in.h:32 ../rules/evdev.xml.in.h:32
+#: ../rules/base.xml.in.h:32
msgid "Acer Ferrari 4000"
msgstr "Acer Ferrari 4000"
-#: ../rules/base.xml.in.h:33 ../rules/evdev.xml.in.h:33
+#: ../rules/base.xml.in.h:33
msgid "Acer Laptop"
msgstr "Acer-kannettava"
-#: ../rules/base.xml.in.h:34 ../rules/evdev.xml.in.h:34
+#: ../rules/base.xml.in.h:34
msgid "Add the standard behavior to Menu key"
msgstr "Lisää standardi toiminta valikkonäppäimeen"
# Tulkitsin asiaa pikaisella tutkimuksella siten, että supersigno on
# esperantoa ja tarkoittaa noin suunnilleen korkomerkkiä.
-#: ../rules/base.xml.in.h:35 ../rules/evdev.xml.in.h:35
+#: ../rules/base.xml.in.h:35
msgid "Adding Esperanto circumflexes (supersigno)"
msgstr "Esperanton tarkkeiden lisäys (supersigno)"
-#: ../rules/base.xml.in.h:36 ../rules/evdev.xml.in.h:36
+#: ../rules/base.xml.in.h:36
msgid "Adding EuroSign to certain keys"
msgstr "Euro-merkin lisäys haluttuun näppäimeen"
-#: ../rules/base.xml.in.h:37 ../rules/evdev.xml.in.h:37
+#: ../rules/base.xml.in.h:37
msgid "Advance Scorpius KI"
msgstr "Advance Scorpius KI"
-#: ../rules/base.xml.in.h:38 ../rules/evdev.xml.in.h:38
+#: ../rules/base.xml.in.h:38
msgid "Afg"
msgstr "Afg"
-#: ../rules/base.xml.in.h:39 ../rules/evdev.xml.in.h:39
+#: ../rules/base.xml.in.h:39
msgid "Afghanistan"
msgstr "Afganistan"
-#: ../rules/base.xml.in.h:40 ../rules/evdev.xml.in.h:40
+#: ../rules/base.xml.in.h:40
msgid "Akan"
msgstr "Akan"
-#: ../rules/base.xml.in.h:41 ../rules/evdev.xml.in.h:41
+#: ../rules/base.xml.in.h:41
msgid "Alb"
msgstr "Alb"
-#: ../rules/base.xml.in.h:42 ../rules/evdev.xml.in.h:42
+#: ../rules/base.xml.in.h:42
msgid "Albania"
msgstr "Albania"
-#: ../rules/base.xml.in.h:43 ../rules/evdev.xml.in.h:43
+#: ../rules/base.xml.in.h:43
msgid "Alt and Meta are on Alt keys"
msgstr "Alt ja Meta ovat Alt-näppäimissä"
-#: ../rules/base.xml.in.h:44 ../rules/evdev.xml.in.h:44
+#: ../rules/base.xml.in.h:44
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt tulee oikeasta Win-näppäimestä, Super valikkonäppäimestä"
-#: ../rules/base.xml.in.h:45 ../rules/evdev.xml.in.h:45
+#: ../rules/base.xml.in.h:45
msgid "Alt+CapsLock"
msgstr "Alt+CapsLock"
-#: ../rules/base.xml.in.h:46 ../rules/evdev.xml.in.h:46
+#: ../rules/base.xml.in.h:46
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:47 ../rules/evdev.xml.in.h:47
+#: ../rules/base.xml.in.h:47
msgid "Alt+Shift"
msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:48 ../rules/evdev.xml.in.h:48
+#: ../rules/base.xml.in.h:48
msgid "Alt+Space"
msgstr "Alt+Välilyönti"
-#: ../rules/base.xml.in.h:49 ../rules/evdev.xml.in.h:49
+#: ../rules/base.xml.in.h:49
msgid "Alt-Q"
msgstr "Alt-Q"
-#: ../rules/base.xml.in.h:50 ../rules/evdev.xml.in.h:50
+#: ../rules/base.xml.in.h:50
msgid "Alt/Win key behavior"
msgstr "Alt- ja Win-näppäinten toiminta"
-#: ../rules/base.xml.in.h:51 ../rules/evdev.xml.in.h:51
+#: ../rules/base.xml.in.h:51
msgid "Alternative"
msgstr "Vaihtoehtoinen"
-#: ../rules/base.xml.in.h:52 ../rules/evdev.xml.in.h:52
+#: ../rules/base.xml.in.h:52
msgid "Alternative Eastern"
msgstr "Vaihtoehtoinen itäinen"
-#: ../rules/base.xml.in.h:53 ../rules/evdev.xml.in.h:53
+#: ../rules/base.xml.in.h:53
msgid "Alternative Phonetic"
msgstr "Vaihtoehtoinen foneettinen"
-#: ../rules/base.xml.in.h:54 ../rules/evdev.xml.in.h:54
+#: ../rules/base.xml.in.h:54
msgid "Alternative international (former us_intl)"
msgstr "Vaihtoehtoinen kansainvälinen (aiempi us_intl)"
-#: ../rules/base.xml.in.h:55 ../rules/evdev.xml.in.h:55
+#: ../rules/base.xml.in.h:55
msgid "Alternative, Sun dead keys"
msgstr "Vaihtoehtoinen, Sunin kuolleet näppäimet"
-#: ../rules/base.xml.in.h:56 ../rules/evdev.xml.in.h:56
+#: ../rules/base.xml.in.h:56
msgid "Alternative, eliminate dead keys"
msgstr "Vaihtoehtoinen, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:57 ../rules/evdev.xml.in.h:57
+#: ../rules/base.xml.in.h:57
msgid "Alternative, latin-9 only"
msgstr "Vaihtoehtoinen, vain latin-9"
-#: ../rules/base.xml.in.h:58 ../rules/evdev.xml.in.h:58
+#: ../rules/base.xml.in.h:58
msgid "And"
msgstr "And"
-#: ../rules/base.xml.in.h:59 ../rules/evdev.xml.in.h:59
+#: ../rules/base.xml.in.h:59
msgid "Andorra"
msgstr "Andorra"
-#: ../rules/base.xml.in.h:60 ../rules/evdev.xml.in.h:60
+#: ../rules/base.xml.in.h:60
msgid "Any Alt key"
msgstr "Mikä tahansa Alt-näppäin"
-#: ../rules/base.xml.in.h:61 ../rules/evdev.xml.in.h:61
+#: ../rules/base.xml.in.h:61
msgid "Any Win key"
msgstr "Mikä tahansa Win-näppäin"
-#: ../rules/base.xml.in.h:62 ../rules/evdev.xml.in.h:62
+#: ../rules/base.xml.in.h:62
msgid "Any Win key (while pressed)"
msgstr "Mikä tahansa Win-näppäin (painettaessa)"
-#: ../rules/base.xml.in.h:63 ../rules/evdev.xml.in.h:63
+#: ../rules/base.xml.in.h:63
msgid "Apostrophe (') variant"
msgstr "Heittomerkkimuunnos (')"
-#: ../rules/base.xml.in.h:64 ../rules/evdev.xml.in.h:64
+#: ../rules/base.xml.in.h:64
msgid "Apple"
msgstr "Apple"
-#: ../rules/base.xml.in.h:65 ../rules/evdev.xml.in.h:65
+#: ../rules/base.xml.in.h:65
msgid "Apple Laptop"
msgstr "Apple-kannettava"
-#: ../rules/base.xml.in.h:66 ../rules/evdev.xml.in.h:66
+#: ../rules/base.xml.in.h:66
msgid "Ara"
msgstr "Ara"
-#: ../rules/base.xml.in.h:67 ../rules/evdev.xml.in.h:67
+#: ../rules/base.xml.in.h:67
msgid "Arabic"
msgstr "Arabia"
-#: ../rules/base.xml.in.h:68 ../rules/evdev.xml.in.h:68
+#: ../rules/base.xml.in.h:68
msgid "Arm"
msgstr "Arm"
-#: ../rules/base.xml.in.h:69 ../rules/evdev.xml.in.h:69
+#: ../rules/base.xml.in.h:69
msgid "Armenia"
msgstr "Armenia"
-#: ../rules/base.xml.in.h:70 ../rules/evdev.xml.in.h:70
+#: ../rules/base.xml.in.h:70
msgid "Asturian variant with bottom-dot H and bottom-dot L"
msgstr "Asturia-vaihtoehto keskipilkullisella H-kirjaimella ja alapilkullisella L-kirjaimella"
-#: ../rules/base.xml.in.h:71 ../rules/evdev.xml.in.h:71
+#: ../rules/base.xml.in.h:71
msgid "Asus Laptop"
msgstr "Asus-kannettava"
-#: ../rules/base.xml.in.h:72 ../rules/evdev.xml.in.h:72
+#: ../rules/base.xml.in.h:72
msgid "At bottom left"
msgstr "Alhaalla vasemmalla"
-#: ../rules/base.xml.in.h:73 ../rules/evdev.xml.in.h:73
+#: ../rules/base.xml.in.h:73
msgid "At left of 'A'"
msgstr "\"A\"-näppäimestä vasemmalla"
-#: ../rules/base.xml.in.h:74 ../rules/evdev.xml.in.h:74
+#: ../rules/base.xml.in.h:74
msgid "Aze"
msgstr "Aze"
-#: ../rules/base.xml.in.h:75 ../rules/evdev.xml.in.h:75
+#: ../rules/base.xml.in.h:75
msgid "Azerbaijan"
msgstr "Azerbaidzan"
-#: ../rules/base.xml.in.h:76 ../rules/evdev.xml.in.h:76
+#: ../rules/base.xml.in.h:76
msgid "Azona RF2300 wireless Internet Keyboard"
msgstr "Azona RF2300 -langaton Internet-näppäimistö"
-#: ../rules/base.xml.in.h:77 ../rules/evdev.xml.in.h:77
+#: ../rules/base.xml.in.h:77
msgid "BTC 5090"
msgstr "BTC 5090"
-#: ../rules/base.xml.in.h:78 ../rules/evdev.xml.in.h:78
+#: ../rules/base.xml.in.h:78
msgid "BTC 5113RF Multimedia"
msgstr "BTC 5113RF Multimedia"
-#: ../rules/base.xml.in.h:79 ../rules/evdev.xml.in.h:79
+#: ../rules/base.xml.in.h:79
msgid "BTC 5126T"
msgstr "BTC 5126T"
-#: ../rules/base.xml.in.h:80 ../rules/evdev.xml.in.h:80
+#: ../rules/base.xml.in.h:80
msgid "BTC 6301URF"
msgstr "BTC 6301URF"
-#: ../rules/base.xml.in.h:81 ../rules/evdev.xml.in.h:81
+#: ../rules/base.xml.in.h:81
msgid "BTC 9000"
msgstr "BTC 9000"
-#: ../rules/base.xml.in.h:82 ../rules/evdev.xml.in.h:82
+#: ../rules/base.xml.in.h:82
msgid "BTC 9000A"
msgstr "BTC 9000A"
-#: ../rules/base.xml.in.h:83 ../rules/evdev.xml.in.h:83
+#: ../rules/base.xml.in.h:83
msgid "BTC 9001AH"
msgstr "BTC 9001AH"
-#: ../rules/base.xml.in.h:84 ../rules/evdev.xml.in.h:84
+#: ../rules/base.xml.in.h:84
msgid "BTC 9019U"
msgstr "BTC 9019U"
-#: ../rules/base.xml.in.h:85 ../rules/evdev.xml.in.h:85
+#: ../rules/base.xml.in.h:85
msgid "BTC 9116U Mini Wireless Internet and Gaming"
msgstr "BTC 9116U Mini Wireless Internet and Gaming"
-#: ../rules/base.xml.in.h:86 ../rules/evdev.xml.in.h:86
+#: ../rules/base.xml.in.h:86
+msgid "Baltic+"
+msgstr "Baltic+"
+
+#: ../rules/base.xml.in.h:87
msgid "Ban"
msgstr "Ban"
-#: ../rules/base.xml.in.h:87 ../rules/evdev.xml.in.h:87
+#: ../rules/base.xml.in.h:88
msgid "Bangladesh"
msgstr "Bangladesh"
-#: ../rules/base.xml.in.h:88 ../rules/evdev.xml.in.h:88
+#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "baškiiri"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:89 ../rules/evdev.xml.in.h:89
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Valko-Venäjä"
-#: ../rules/base.xml.in.h:90 ../rules/evdev.xml.in.h:90
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgia"
-#: ../rules/base.xml.in.h:91 ../rules/evdev.xml.in.h:91
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:92 ../rules/evdev.xml.in.h:92
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:93 ../rules/evdev.xml.in.h:93
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:94 ../rules/evdev.xml.in.h:94
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengali"
-#: ../rules/base.xml.in.h:95 ../rules/evdev.xml.in.h:95
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengali probhat"
-#: ../rules/base.xml.in.h:96 ../rules/evdev.xml.in.h:96
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonominen, Dvorak-tavalla"
-#: ../rules/base.xml.in.h:97 ../rules/evdev.xml.in.h:97
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonominen, Dvorak-tavalla, pelkkä latin-9"
-#: ../rules/base.xml.in.h:98 ../rules/evdev.xml.in.h:98
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:99 ../rules/evdev.xml.in.h:99
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:100 ../rules/evdev.xml.in.h:100
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
-#: ../rules/base.xml.in.h:101 ../rules/evdev.xml.in.h:101
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Raamatullinen Heprea (Tiro)"
-#: ../rules/base.xml.in.h:102 ../rules/evdev.xml.in.h:102
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:103 ../rules/evdev.xml.in.h:103
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:104 ../rules/evdev.xml.in.h:104
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnia-Hertsegovina"
-#: ../rules/base.xml.in.h:105 ../rules/evdev.xml.in.h:105
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Molemmat Alt-näppäimet"
-#: ../rules/base.xml.in.h:106 ../rules/evdev.xml.in.h:106
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Molemmat Ctrl-näppäimet"
-#: ../rules/base.xml.in.h:107 ../rules/evdev.xml.in.h:107
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Molemmat Shift-näppäimet"
-#: ../rules/base.xml.in.h:108 ../rules/evdev.xml.in.h:108
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:109 ../rules/evdev.xml.in.h:109
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:110 ../rules/evdev.xml.in.h:110
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brasilia"
-#: ../rules/base.xml.in.h:111 ../rules/evdev.xml.in.h:111
-msgid "Brazilian ABNT2"
-msgstr "Brasilialainen ABNT2"
-
-#: ../rules/base.xml.in.h:112 ../rules/evdev.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bretoni"
-#: ../rules/base.xml.in.h:113 ../rules/evdev.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114 ../rules/evdev.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother-Internet-näppäimistö"
-#: ../rules/base.xml.in.h:115 ../rules/evdev.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116 ../rules/evdev.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgaria"
-#: ../rules/base.xml.in.h:117 ../rules/evdev.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118 ../rules/evdev.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Kambodža"
-#: ../rules/base.xml.in.h:119 ../rules/evdev.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120 ../rules/evdev.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanada"
-#: ../rules/base.xml.in.h:121 ../rules/evdev.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:122 ../rules/evdev.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:123 ../rules/evdev.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "CapsLock (ensimmäiselle tasolle), Shift+CapsLock (viimeiselle tasolle)"
-#: ../rules/base.xml.in.h:124 ../rules/evdev.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "CapsLock (painettaessa), Alt+CapsLock tekee normaalin CapsLock-toiminnon"
-#: ../rules/base.xml.in.h:125 ../rules/evdev.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "CapsLock toimii lukitsevana Shiftinä. Shift kumoaa CapsLockin"
-#: ../rules/base.xml.in.h:126 ../rules/evdev.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "CapsLock toimii lukitsevana Shiftinä. Shift ei kumoa CapsLockia"
-#: ../rules/base.xml.in.h:127 ../rules/evdev.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "Caps Lock ei käytössä"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "CapsLock-näppäimen toiminta"
-#: ../rules/base.xml.in.h:128 ../rules/evdev.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "CapsLock vaihtaa Shiftiä vaikuttaen kaikkiin näppäimiin"
-#: ../rules/base.xml.in.h:129 ../rules/evdev.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock vaihtaa normaalin suuraakkostuksen aakkosille"
-#: ../rules/base.xml.in.h:130 ../rules/evdev.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "CapsLock käyttää sisäistä suuraakkostusta. Shift kumoaa CapsLockin"
-#: ../rules/base.xml.in.h:131 ../rules/evdev.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "CapsLock käyttää sisäistä suuraakkostusta. Shift ei kumoa CapsLockia"
-#: ../rules/base.xml.in.h:132 ../rules/evdev.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Katalaani-vaihtoehto keskipilkullisella L-kirjaimella"
-#: ../rules/base.xml.in.h:133 ../rules/evdev.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Sedilji"
-#: ../rules/base.xml.in.h:134 ../rules/evdev.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135 ../rules/evdev.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:136 ../rules/evdev.xml.in.h:136
+#: ../rules/base.xml.in.h:138
+msgid "Cherry B.UNLIMITED"
+msgstr "Cherry B.UNLIMITED"
+
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:137 ../rules/evdev.xml.in.h:137
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (vaihtoehtoinen valinta)"
-#: ../rules/base.xml.in.h:138 ../rules/evdev.xml.in.h:138
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:139 ../rules/evdev.xml.in.h:139
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:140 ../rules/evdev.xml.in.h:140
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:141 ../rules/evdev.xml.in.h:141
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:142 ../rules/evdev.xml.in.h:142
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony-Internet-näppäimistö"
-#: ../rules/base.xml.in.h:143 ../rules/evdev.xml.in.h:143
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:144 ../rules/evdev.xml.in.h:144
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:145 ../rules/evdev.xml.in.h:145
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:146 ../rules/evdev.xml.in.h:146
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Kiina"
-#: ../rules/base.xml.in.h:147 ../rules/evdev.xml.in.h:147
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:148 ../rules/evdev.xml.in.h:148
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Chuvash latinalainen"
-#: ../rules/base.xml.in.h:149 ../rules/evdev.xml.in.h:149
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Perinteinen"
-#: ../rules/base.xml.in.h:150 ../rules/evdev.xml.in.h:150
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Perinteinen dvorak"
-#: ../rules/base.xml.in.h:151 ../rules/evdev.xml.in.h:151
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:152 ../rules/evdev.xml.in.h:152
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:153 ../rules/evdev.xml.in.h:153
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:154 ../rules/evdev.xml.in.h:154
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access -näppäimistö"
-#: ../rules/base.xml.in.h:155 ../rules/evdev.xml.in.h:155
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq-Internet-näppäimistö (13 näppäintä)"
-#: ../rules/base.xml.in.h:156 ../rules/evdev.xml.in.h:156
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq-Internet-näppäimistö (18 näppäintä)"
-#: ../rules/base.xml.in.h:157 ../rules/evdev.xml.in.h:157
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq-Internet-näppäimistö (7 näppäintä)"
-#: ../rules/base.xml.in.h:158 ../rules/evdev.xml.in.h:158
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq-näppäimistö"
-#: ../rules/base.xml.in.h:159 ../rules/evdev.xml.in.h:159
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Compose-näppäimen sijainti"
-#: ../rules/base.xml.in.h:160 ../rules/evdev.xml.in.h:160
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Kongon tasavalta"
-#: ../rules/base.xml.in.h:161 ../rules/evdev.xml.in.h:161
+#: ../rules/base.xml.in.h:164
+msgid "Control + Alt + Backspace"
+msgstr "Control + Alt + Backspace"
+
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Contol on liitetty Alt-näppäimiin, Alt Win-näppäimiin"
-#: ../rules/base.xml.in.h:162 ../rules/evdev.xml.in.h:162
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Contol on liitetty Win-näppäimiin (ja tavalliset Ctrl-näppämet)"
-#: ../rules/base.xml.in.h:163 ../rules/evdev.xml.in.h:163
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
+msgid "Crimean Tatar (Dobruca-1 Q)"
+msgstr "Krimintataari (Dobruca-1 Q)"
+
+#: ../rules/base.xml.in.h:169
+msgid "Crimean Tatar (Dobruca-2 Q)"
+msgstr "Krimintataari (Dobruca-2 Q)"
+
+#: ../rules/base.xml.in.h:170
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr "Krimintataari (turkkilainen Alt-Q)"
+
+#: ../rules/base.xml.in.h:171
+msgid "Crimean Tatar (Turkish F)"
+msgstr "Krimintataari (turkkilainen F)"
+
+#: ../rules/base.xml.in.h:172
+msgid "Crimean Tatar (Turkish Q)"
+msgstr "Krimintataari (turkkilainen Q)"
+
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Kroatia"
-#: ../rules/base.xml.in.h:164 ../rules/evdev.xml.in.h:164
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Ctrl-näppäimen sijainti"
-#: ../rules/base.xml.in.h:165 ../rules/evdev.xml.in.h:165
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:166 ../rules/evdev.xml.in.h:166
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Kyrillinen"
-#: ../rules/base.xml.in.h:167 ../rules/evdev.xml.in.h:167
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Kyrillinen guillemot-lainausmerkeillä"
-#: ../rules/base.xml.in.h:168 ../rules/evdev.xml.in.h:168
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Kyrillinen, Z ja ZHE vaihdettu"
-#: ../rules/base.xml.in.h:169 ../rules/evdev.xml.in.h:169
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:170 ../rules/evdev.xml.in.h:170
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "TÅ¡ekki"
-#: ../rules/base.xml.in.h:171 ../rules/evdev.xml.in.h:171
+#: ../rules/base.xml.in.h:181
+msgid "DOS"
+msgstr "DOS"
+
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:172 ../rules/evdev.xml.in.h:172
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:173 ../rules/evdev.xml.in.h:173
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:174 ../rules/evdev.xml.in.h:174
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Kuollut akuutti"
-#: ../rules/base.xml.in.h:175 ../rules/evdev.xml.in.h:175
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Kuollut gravis"
-#: ../rules/base.xml.in.h:176 ../rules/evdev.xml.in.h:176
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Oletussormionäppäimet"
-#: ../rules/base.xml.in.h:177 ../rules/evdev.xml.in.h:177
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:178 ../rules/evdev.xml.in.h:178
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-näppäiminen PC"
-#: ../rules/base.xml.in.h:179 ../rules/evdev.xml.in.h:179
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Kannettava Dell Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:180 ../rules/evdev.xml.in.h:180
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Kannettava Dell Precision M -sarja"
-#: ../rules/base.xml.in.h:181 ../rules/evdev.xml.in.h:181
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Kannettava Dell Latitude-sarja"
-#: ../rules/base.xml.in.h:182 ../rules/evdev.xml.in.h:182
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:183 ../rules/evdev.xml.in.h:183
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:184 ../rules/evdev.xml.in.h:184
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:185 ../rules/evdev.xml.in.h:185
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB -multimedianäppäimistö"
-#: ../rules/base.xml.in.h:186 ../rules/evdev.xml.in.h:186
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Tanska"
-#: ../rules/base.xml.in.h:187 ../rules/evdev.xml.in.h:187
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:188 ../rules/evdev.xml.in.h:188
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa-langaton työpöytänäppäimistö"
-#: ../rules/base.xml.in.h:189 ../rules/evdev.xml.in.h:189
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801/9802-sarja"
-#: ../rules/base.xml.in.h:190 ../rules/evdev.xml.in.h:190
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:191 ../rules/evdev.xml.in.h:191
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (UK-pilkutus)"
-#: ../rules/base.xml.in.h:192 ../rules/evdev.xml.in.h:192
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak kansainvälinen"
-#: ../rules/base.xml.in.h:193 ../rules/evdev.xml.in.h:193
-msgid "Dvorak, Polish quotes on key \"1/!\""
-msgstr "Dvorak, puolalaiset lainausmerkit \"1/!\"-näppäimistä"
+#: ../rules/base.xml.in.h:204
+msgid "Dvorak, Polish quotes on key 1"
+msgstr "Dvorak, puolalaiset lainausmerkit \"1\"-näppäimistä"
-#: ../rules/base.xml.in.h:194 ../rules/evdev.xml.in.h:194
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, puolalaiset lainausmerkit lainausmerkkinäppäimestä"
-#: ../rules/base.xml.in.h:195 ../rules/evdev.xml.in.h:195
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:196 ../rules/evdev.xml.in.h:196
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Itäinen"
-#: ../rules/base.xml.in.h:197 ../rules/evdev.xml.in.h:197
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:198 ../rules/evdev.xml.in.h:198
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Ota käyttöön ylimääräiset typografiset merkit"
-#: ../rules/base.xml.in.h:199 ../rules/evdev.xml.in.h:199
+#: ../rules/base.xml.in.h:210
+msgid "English"
+msgstr "englanti"
+
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:200 ../rules/evdev.xml.in.h:200
+#: ../rules/base.xml.in.h:212
+msgid "Enter on keypad"
+msgstr "Enter sormiossa"
+
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:201 ../rules/evdev.xml.in.h:201
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "ergonominen"
-#: ../rules/base.xml.in.h:202 ../rules/evdev.xml.in.h:202
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:203 ../rules/evdev.xml.in.h:203
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:204 ../rules/evdev.xml.in.h:204
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:205 ../rules/evdev.xml.in.h:205
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Viro"
-#: ../rules/base.xml.in.h:206 ../rules/evdev.xml.in.h:206
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:207 ../rules/evdev.xml.in.h:207
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiopia"
-#: ../rules/base.xml.in.h:208 ../rules/evdev.xml.in.h:208
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev-hallittu näppäimistö"
-#: ../rules/base.xml.in.h:209 ../rules/evdev.xml.in.h:209
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:210 ../rules/evdev.xml.in.h:210
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:211 ../rules/evdev.xml.in.h:211
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Laajennettu"
-#: ../rules/base.xml.in.h:212 ../rules/evdev.xml.in.h:212
+#: ../rules/base.xml.in.h:225
+msgid "Extended - Winkeys"
+msgstr "Laajennettu - Win-näppäimet"
+
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Laajennettu kenoviiva"
-#: ../rules/base.xml.in.h:213 ../rules/evdev.xml.in.h:213
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F-kirjainmuunnos (F)"
-#: ../rules/base.xml.in.h:214 ../rules/evdev.xml.in.h:214
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:215 ../rules/evdev.xml.in.h:215
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:216 ../rules/evdev.xml.in.h:216
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Färsaaret"
-#: ../rules/base.xml.in.h:217 ../rules/evdev.xml.in.h:217
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:218 ../rules/evdev.xml.in.h:218
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Suomi"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:221 ../rules/evdev.xml.in.h:221
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
-msgstr ""
+msgstr "Neljännen tason näppäin abstrakteilla erottimilla"
-#: ../rules/base.xml.in.h:222 ../rules/evdev.xml.in.h:222
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
-msgstr ""
+msgstr "Neljännen tason näppäin pilkulla"
-#: ../rules/base.xml.in.h:223 ../rules/evdev.xml.in.h:223
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
-msgstr ""
+msgstr "Neljännen tason näppäin pisteellä"
-#: ../rules/base.xml.in.h:224 ../rules/evdev.xml.in.h:224
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
-msgstr ""
+msgstr "Neljännen tason näppäin pisteellä, latin-9-rajoituksella"
-#: ../rules/base.xml.in.h:225 ../rules/evdev.xml.in.h:225
+# Wikipediasta katsoin, että momayyez on persialainen desimaalierotin, joka näyttää kauttaviivalta
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
-msgstr ""
+msgstr "Neljännen tason näppäin persialaisella desimaalierottimella (momayyez)"
-#: ../rules/base.xml.in.h:226 ../rules/evdev.xml.in.h:226
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:227 ../rules/evdev.xml.in.h:227
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Ranska"
-#: ../rules/base.xml.in.h:228 ../rules/evdev.xml.in.h:228
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Ranskalainen"
-#: ../rules/base.xml.in.h:229 ../rules/evdev.xml.in.h:229
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Ranskalainen (Macintosh)"
-#: ../rules/base.xml.in.h:230 ../rules/evdev.xml.in.h:230
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Ranskalainen (vanha)"
-#: ../rules/base.xml.in.h:231 ../rules/evdev.xml.in.h:231
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Ranskalainen dvorak"
-#: ../rules/base.xml.in.h:232 ../rules/evdev.xml.in.h:232
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Ranskalainen, Sunin kuolleet näppäimet"
-#: ../rules/base.xml.in.h:233 ../rules/evdev.xml.in.h:233
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Ranskalainen, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:234 ../rules/evdev.xml.in.h:234
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO-kannettava"
-#: ../rules/base.xml.in.h:235 ../rules/evdev.xml.in.h:235
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:236 ../rules/evdev.xml.in.h:236
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:237 ../rules/evdev.xml.in.h:237
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:238 ../rules/evdev.xml.in.h:238
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Yleinen 101-näppäiminen PC"
-#: ../rules/base.xml.in.h:239 ../rules/evdev.xml.in.h:239
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Yleinen 102-näppäiminen (kansainvälinen) PC"
-#: ../rules/base.xml.in.h:240 ../rules/evdev.xml.in.h:240
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Yleinen 104-näppäiminen PC"
-#: ../rules/base.xml.in.h:241 ../rules/evdev.xml.in.h:241
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Yleinen 105-näppäiminen (kansainvälinen) PC"
-#: ../rules/base.xml.in.h:242 ../rules/evdev.xml.in.h:242
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-21e"
-#: ../rules/base.xml.in.h:243 ../rules/evdev.xml.in.h:243
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM-näppäimistö KWD-910"
-#: ../rules/base.xml.in.h:244 ../rules/evdev.xml.in.h:244
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-rulla"
-#: ../rules/base.xml.in.h:245 ../rules/evdev.xml.in.h:245
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:246 ../rules/evdev.xml.in.h:246
+#: ../rules/base.xml.in.h:260
+msgid "Genius KKB-2050HS"
+msgstr "Genius KKB-2050HS"
+
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:247 ../rules/evdev.xml.in.h:247
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Georgia"
-#: ../rules/base.xml.in.h:248 ../rules/evdev.xml.in.h:248
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgia"
-#: ../rules/base.xml.in.h:249 ../rules/evdev.xml.in.h:249
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgian AZERTY Tskapo"
-#: ../rules/base.xml.in.h:250 ../rules/evdev.xml.in.h:250
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Saksalainen (Macintosh)"
-#: ../rules/base.xml.in.h:251 ../rules/evdev.xml.in.h:251
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Saksalainen, Sunin kuolleet näppäimet"
-#: ../rules/base.xml.in.h:252 ../rules/evdev.xml.in.h:252
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Saksalainen, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:253 ../rules/evdev.xml.in.h:253
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Saksa"
-#: ../rules/base.xml.in.h:254 ../rules/evdev.xml.in.h:254
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:255 ../rules/evdev.xml.in.h:255
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:256 ../rules/evdev.xml.in.h:256
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:257 ../rules/evdev.xml.in.h:257
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Kreikka"
-#: ../rules/base.xml.in.h:258 ../rules/evdev.xml.in.h:258
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
-msgstr ""
+msgstr "Ryhmän vaihto kerto/jako-näppäimellä"
-#: ../rules/base.xml.in.h:259 ../rules/evdev.xml.in.h:259
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:260 ../rules/evdev.xml.in.h:260
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:261 ../rules/evdev.xml.in.h:261
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujarati"
-#: ../rules/base.xml.in.h:262 ../rules/evdev.xml.in.h:262
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:263 ../rules/evdev.xml.in.h:263
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
# Lienee tuotemerkki
-#: ../rules/base.xml.in.h:264 ../rules/evdev.xml.in.h:264
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:265 ../rules/evdev.xml.in.h:265
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking -näppäimistö"
-#: ../rules/base.xml.in.h:266 ../rules/evdev.xml.in.h:266
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking -näppäimistö, Mac-versio"
-#: ../rules/base.xml.in.h:267 ../rules/evdev.xml.in.h:267
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:268 ../rules/evdev.xml.in.h:268
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard-Internet-näppäimistö"
-#: ../rules/base.xml.in.h:269 ../rules/evdev.xml.in.h:269
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:270 ../rules/evdev.xml.in.h:270
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:271 ../rules/evdev.xml.in.h:271
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:272 ../rules/evdev.xml.in.h:272
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:273 ../rules/evdev.xml.in.h:273
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:274 ../rules/evdev.xml.in.h:274
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:275 ../rules/evdev.xml.in.h:275
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:276 ../rules/evdev.xml.in.h:276
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:277 ../rules/evdev.xml.in.h:277
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x-multimedianäppäimistö"
-#: ../rules/base.xml.in.h:278 ../rules/evdev.xml.in.h:278
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:279 ../rules/evdev.xml.in.h:279
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Heksadesimaali"
-#: ../rules/base.xml.in.h:280 ../rules/evdev.xml.in.h:280
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:281 ../rules/evdev.xml.in.h:281
+#: ../rules/base.xml.in.h:296
+msgid "Hindi Wx"
+msgstr "Hindi Wx"
+
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homofoninen"
-#: ../rules/base.xml.in.h:282 ../rules/evdev.xml.in.h:282
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:283 ../rules/evdev.xml.in.h:283
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:284 ../rules/evdev.xml.in.h:284
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:285 ../rules/evdev.xml.in.h:285
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Unkari"
-#: ../rules/base.xml.in.h:286 ../rules/evdev.xml.in.h:286
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper tulee Win-näppäimistä"
-#: ../rules/base.xml.in.h:287 ../rules/evdev.xml.in.h:287
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IMB (LST 1205-92)"
-#: ../rules/base.xml.in.h:288 ../rules/evdev.xml.in.h:288
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:289 ../rules/evdev.xml.in.h:289
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:290 ../rules/evdev.xml.in.h:290
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:291 ../rules/evdev.xml.in.h:291
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:292 ../rules/evdev.xml.in.h:292
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, kansainvälinen"
-#: ../rules/base.xml.in.h:293 ../rules/evdev.xml.in.h:293
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:294 ../rules/evdev.xml.in.h:294
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:295 ../rules/evdev.xml.in.h:295
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO vaihtoehtoinen"
-#: ../rules/base.xml.in.h:296 ../rules/evdev.xml.in.h:296
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Islanti"
-#: ../rules/base.xml.in.h:297 ../rules/evdev.xml.in.h:297
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:298 ../rules/evdev.xml.in.h:298
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Sisällytä kuollut tilde"
-#: ../rules/base.xml.in.h:299 ../rules/evdev.xml.in.h:299
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:300 ../rules/evdev.xml.in.h:300
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Intia"
-#: ../rules/base.xml.in.h:301 ../rules/evdev.xml.in.h:301
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Kansainvälinen (AltGr -kuolleet näppäimet)"
-#: ../rules/base.xml.in.h:302 ../rules/evdev.xml.in.h:302
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Kansainvälinen (ilman kuolleita näppäimiä)"
-#: ../rules/base.xml.in.h:303 ../rules/evdev.xml.in.h:303
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:304 ../rules/evdev.xml.in.h:304
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:305 ../rules/evdev.xml.in.h:305
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:306 ../rules/evdev.xml.in.h:306
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irlanti"
-#: ../rules/base.xml.in.h:307 ../rules/evdev.xml.in.h:307
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:308 ../rules/evdev.xml.in.h:308
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:309 ../rules/evdev.xml.in.h:309
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:310 ../rules/evdev.xml.in.h:310
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:311 ../rules/evdev.xml.in.h:311
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:312 ../rules/evdev.xml.in.h:312
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israel"
-#: ../rules/base.xml.in.h:313 ../rules/evdev.xml.in.h:313
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:314 ../rules/evdev.xml.in.h:314
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italia"
-#: ../rules/base.xml.in.h:315 ../rules/evdev.xml.in.h:315
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japani"
-#: ../rules/base.xml.in.h:316 ../rules/evdev.xml.in.h:316
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japani (PC-98xx-sarja)"
-#: ../rules/base.xml.in.h:317 ../rules/evdev.xml.in.h:317
-msgid "Japanese 106-key"
-msgstr "Japanilainen 106-näppäiminen"
-
-#: ../rules/base.xml.in.h:318 ../rules/evdev.xml.in.h:318
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "japanilaisen näppäimistön valinnat"
-#: ../rules/base.xml.in.h:319 ../rules/evdev.xml.in.h:319
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:320 ../rules/evdev.xml.in.h:320
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
-msgstr ""
+msgstr "kalmukki"
-#: ../rules/base.xml.in.h:321 ../rules/evdev.xml.in.h:321
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:322 ../rules/evdev.xml.in.h:322
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Kana, lukitusnäppäin lukitseva"
-#: ../rules/base.xml.in.h:323 ../rules/evdev.xml.in.h:323
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:324 ../rules/evdev.xml.in.h:324
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kashubia"
-#: ../rules/base.xml.in.h:325 ../rules/evdev.xml.in.h:325
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:326 ../rules/evdev.xml.in.h:326
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazakstan venäjän kanssa"
-#: ../rules/base.xml.in.h:327 ../rules/evdev.xml.in.h:327
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazakstan"
-#: ../rules/base.xml.in.h:328 ../rules/evdev.xml.in.h:328
+#: ../rules/base.xml.in.h:343
+msgid "Key sequence to kill the X server"
+msgstr "Näppäinyhdistelmä, joka tappaa X-palvelimen"
+
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Kolmannen tason valintanäppäin"
-#: ../rules/base.xml.in.h:329 ../rules/evdev.xml.in.h:329
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Asettelunvaihtonäppäimet"
-#: ../rules/base.xml.in.h:330 ../rules/evdev.xml.in.h:330
-msgid "Keypad"
-msgstr "Sormio"
-
-#: ../rules/base.xml.in.h:331 ../rules/evdev.xml.in.h:331
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:332 ../rules/evdev.xml.in.h:332
+#: ../rules/base.xml.in.h:347
+msgid "Kgz"
+msgstr "Kgz"
+
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:333 ../rules/evdev.xml.in.h:333
-msgid "Kir"
-msgstr "Kir"
-
-#: ../rules/base.xml.in.h:334 ../rules/evdev.xml.in.h:334
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:335 ../rules/evdev.xml.in.h:335
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:336 ../rules/evdev.xml.in.h:336
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Etelä-Korea"
-#: ../rules/base.xml.in.h:337 ../rules/evdev.xml.in.h:337
-msgid "Korean 106-key"
-msgstr "Korealainen 106-näppäiminen"
-
-#: ../rules/base.xml.in.h:338 ../rules/evdev.xml.in.h:338
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
-msgstr ""
+msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:339 ../rules/evdev.xml.in.h:339
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurdi, (F)"
-#: ../rules/base.xml.in.h:340 ../rules/evdev.xml.in.h:340
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurdi, arabia-latinalainen"
-#: ../rules/base.xml.in.h:341 ../rules/evdev.xml.in.h:341
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurdi, latinalainen Alt-Q"
-#: ../rules/base.xml.in.h:342 ../rules/evdev.xml.in.h:342
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurdi, latinalainen Q"
-#: ../rules/base.xml.in.h:343 ../rules/evdev.xml.in.h:343
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirgisia"
-#: ../rules/base.xml.in.h:344 ../rules/evdev.xml.in.h:344
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:345 ../rules/evdev.xml.in.h:345
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
-msgstr ""
+msgstr "LEKP"
-#: ../rules/base.xml.in.h:346 ../rules/evdev.xml.in.h:346
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
-msgstr ""
+msgstr "LEKPa"
-#: ../rules/base.xml.in.h:347 ../rules/evdev.xml.in.h:347
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:348 ../rules/evdev.xml.in.h:348
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:349 ../rules/evdev.xml.in.h:349
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Kannettava Compaq (esim. Armada) kannettavan näppäimistö "
-#: ../rules/base.xml.in.h:350 ../rules/evdev.xml.in.h:350
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Kannettava Compaq (esim. Armada) Internet-näppäimistö "
-#: ../rules/base.xml.in.h:351 ../rules/evdev.xml.in.h:351
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Kannettava eMachines m68xx"
-#: ../rules/base.xml.in.h:352 ../rules/evdev.xml.in.h:352
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latinalainen"
-#: ../rules/base.xml.in.h:353 ../rules/evdev.xml.in.h:353
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latinalainen amerikka"
-#: ../rules/base.xml.in.h:354 ../rules/evdev.xml.in.h:354
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latinalainen Unicode"
-#: ../rules/base.xml.in.h:355 ../rules/evdev.xml.in.h:355
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latinalainen Unicode-qwerty"
-#: ../rules/base.xml.in.h:356 ../rules/evdev.xml.in.h:356
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latinalainen qwerty"
-#: ../rules/base.xml.in.h:357 ../rules/evdev.xml.in.h:357
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latinalainen Unicode"
-#: ../rules/base.xml.in.h:358 ../rules/evdev.xml.in.h:358
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latinalainen Unicode-qwerty"
-#: ../rules/base.xml.in.h:359 ../rules/evdev.xml.in.h:359
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latinalainen guillemot-lainausmerkeillä"
-#: ../rules/base.xml.in.h:360 ../rules/evdev.xml.in.h:360
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Latvia"
-#: ../rules/base.xml.in.h:361 ../rules/evdev.xml.in.h:361
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:362 ../rules/evdev.xml.in.h:362
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Vasen Alt"
-#: ../rules/base.xml.in.h:363 ../rules/evdev.xml.in.h:363
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Vasen Alt-näppäin (painettaessa)"
-#: ../rules/base.xml.in.h:364 ../rules/evdev.xml.in.h:364
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Vaihda vasen Alt-näppän vasemman Win-näppäimen kanssa"
-#: ../rules/base.xml.in.h:365 ../rules/evdev.xml.in.h:365
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Vasen Ctrl"
-#: ../rules/base.xml.in.h:366 ../rules/evdev.xml.in.h:366
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Vasen Ctrl+Vasen Shift"
-#: ../rules/base.xml.in.h:367 ../rules/evdev.xml.in.h:367
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Vasen Shift"
-#: ../rules/base.xml.in.h:368 ../rules/evdev.xml.in.h:368
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Vasen Win"
-#: ../rules/base.xml.in.h:369 ../rules/evdev.xml.in.h:369
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Vasen Win (ensimmäiselle asettelulle), Oikea Win/valikko (viimeiselle asettelulle)"
-#: ../rules/base.xml.in.h:370 ../rules/evdev.xml.in.h:370
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Vasen Win (painettaessa)"
-#: ../rules/base.xml.in.h:371 ../rules/evdev.xml.in.h:371
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Vasenkätinen"
-#: ../rules/base.xml.in.h:372 ../rules/evdev.xml.in.h:372
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Vasenkätinen dvorak"
-#: ../rules/base.xml.in.h:373 ../rules/evdev.xml.in.h:373
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Perinteinen"
-#: ../rules/base.xml.in.h:374 ../rules/evdev.xml.in.h:374
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Perinteinen Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:376 ../rules/evdev.xml.in.h:376
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
-msgstr ""
+msgstr "Perinteinen näppäin pilkulla"
-#: ../rules/base.xml.in.h:377 ../rules/evdev.xml.in.h:377
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
-msgstr ""
+msgstr "Perinteinen näppäin pisteellä"
-#: ../rules/base.xml.in.h:378 ../rules/evdev.xml.in.h:378
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Pienempi-kuin/suurempi-kuin"
-#: ../rules/base.xml.in.h:379 ../rules/evdev.xml.in.h:379
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Liettua"
-#: ../rules/base.xml.in.h:380 ../rules/evdev.xml.in.h:380
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:381 ../rules/evdev.xml.in.h:381
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:382 ../rules/evdev.xml.in.h:382
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (vaihtoehtoinen)"
-#: ../rules/base.xml.in.h:383 ../rules/evdev.xml.in.h:383
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:384 ../rules/evdev.xml.in.h:384
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:385 ../rules/evdev.xml.in.h:385
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:386 ../rules/evdev.xml.in.h:386
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:387 ../rules/evdev.xml.in.h:387
-msgid "Logitech Cordless Desktop Pro (alternate option2)"
-msgstr "Logitech Cordless Desktop Pro (vaihtoehtoinen2)"
+#: ../rules/base.xml.in.h:401
+msgid "Logitech Cordless Desktop Pro (alternate option 2)"
+msgstr "Logitech Cordless Desktop Pro (vaihtoehtoinen 2)"
-#: ../rules/base.xml.in.h:388 ../rules/evdev.xml.in.h:388
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:389 ../rules/evdev.xml.in.h:389
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:390 ../rules/evdev.xml.in.h:390
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 -lisänäppäimet G15daemon-ohjelmasta"
-#: ../rules/base.xml.in.h:391 ../rules/evdev.xml.in.h:391
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech-yleisnäppäimistö"
-#: ../rules/base.xml.in.h:392 ../rules/evdev.xml.in.h:392
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 -näppämistö"
-#: ../rules/base.xml.in.h:393 ../rules/evdev.xml.in.h:393
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet -näppämistö"
-#: ../rules/base.xml.in.h:394 ../rules/evdev.xml.in.h:394
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator -näppämistö"
-#: ../rules/base.xml.in.h:395 ../rules/evdev.xml.in.h:395
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite -näppäimistö"
-#: ../rules/base.xml.in.h:396 ../rules/evdev.xml.in.h:396
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop -näppäimistö"
-#: ../rules/base.xml.in.h:397 ../rules/evdev.xml.in.h:397
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X-näppäimistö"
-#: ../rules/base.xml.in.h:398 ../rules/evdev.xml.in.h:398
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge -näppäimistö"
-#: ../rules/base.xml.in.h:399 ../rules/evdev.xml.in.h:399
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo-näppäimistö"
-#: ../rules/base.xml.in.h:400 ../rules/evdev.xml.in.h:400
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:401 ../rules/evdev.xml.in.h:401
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (malli Y-RB6)"
-#: ../rules/base.xml.in.h:402 ../rules/evdev.xml.in.h:402
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:403 ../rules/evdev.xml.in.h:403
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:404 ../rules/evdev.xml.in.h:404
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
-msgstr ""
+msgstr "alasorbi"
-#: ../rules/base.xml.in.h:405 ../rules/evdev.xml.in.h:405
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
-msgstr ""
+msgstr "alasorbi (qwertz)"
-#: ../rules/base.xml.in.h:406 ../rules/evdev.xml.in.h:406
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:407 ../rules/evdev.xml.in.h:407
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:408 ../rules/evdev.xml.in.h:408
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:409 ../rules/evdev.xml.in.h:409
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:410 ../rules/evdev.xml.in.h:410
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (kansainvälinen)"
-#: ../rules/base.xml.in.h:411 ../rules/evdev.xml.in.h:411
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Makedonia"
-#: ../rules/base.xml.in.h:412 ../rules/evdev.xml.in.h:412
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:413 ../rules/evdev.xml.in.h:413
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh vanha"
-#: ../rules/base.xml.in.h:414 ../rules/evdev.xml.in.h:414
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, Sunin kuolleet näppäimet"
-#: ../rules/base.xml.in.h:415 ../rules/evdev.xml.in.h:415
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:416 ../rules/evdev.xml.in.h:416
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Tee CapsLockista ylimääräinen askelpalautin"
-#: ../rules/base.xml.in.h:417 ../rules/evdev.xml.in.h:417
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Tee CapsLockista ylimääräinen Ctrl"
-#: ../rules/base.xml.in.h:418 ../rules/evdev.xml.in.h:418
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Tee CapsLockista ylimääräinen Esc"
-#: ../rules/base.xml.in.h:419 ../rules/evdev.xml.in.h:419
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Tee CapsLockista ylimääräinen Hyper"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Tee CapsLockista ylimääräinen NumLock"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Tee CapsLockista ylimääräinen Super"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:420 ../rules/evdev.xml.in.h:420
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:421 ../rules/evdev.xml.in.h:421
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
-#: ../rules/base.xml.in.h:422 ../rules/evdev.xml.in.h:422
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Malediivit"
-#: ../rules/base.xml.in.h:423 ../rules/evdev.xml.in.h:423
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:424 ../rules/evdev.xml.in.h:424
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Maltalainen näppäimistö US-asettelulla"
-#: ../rules/base.xml.in.h:425 ../rules/evdev.xml.in.h:425
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:426 ../rules/evdev.xml.in.h:426
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:427 ../rules/evdev.xml.in.h:427
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:428 ../rules/evdev.xml.in.h:428
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access-näppäimistö"
-#: ../rules/base.xml.in.h:429 ../rules/evdev.xml.in.h:429
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:430 ../rules/evdev.xml.in.h:430
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Valikko"
-#: ../rules/base.xml.in.h:431 ../rules/evdev.xml.in.h:431
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta tulee vasemmasta Win-näppäimestä"
-#: ../rules/base.xml.in.h:432 ../rules/evdev.xml.in.h:432
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta tulee Win-näppäimistä"
-#: ../rules/base.xml.in.h:433 ../rules/evdev.xml.in.h:433
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve 2000 -näppäimistö"
-#: ../rules/base.xml.in.h:434 ../rules/evdev.xml.in.h:434
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft-Internet-näppäimistö"
-#: ../rules/base.xml.in.h:435 ../rules/evdev.xml.in.h:435
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft-Internet-näppäimistö Pro, ruotsalainen"
-#: ../rules/base.xml.in.h:436 ../rules/evdev.xml.in.h:436
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:437 ../rules/evdev.xml.in.h:437
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural-näppäimistö Elite"
-#: ../rules/base.xml.in.h:438 ../rules/evdev.xml.in.h:438
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural-näppäimistö Pro / Microsoft-Internet-näppäimistö Pro"
-#: ../rules/base.xml.in.h:439 ../rules/evdev.xml.in.h:439
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural-näppäimistö Pro OEM"
-#: ../rules/base.xml.in.h:440 ../rules/evdev.xml.in.h:440
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural-näppäimistö Pro USB / Microsoft-Internet-näppäimistö Pro"
-#: ../rules/base.xml.in.h:441 ../rules/evdev.xml.in.h:441
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic -näppäimistö 7000"
-#: ../rules/base.xml.in.h:442 ../rules/evdev.xml.in.h:442
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office-näppäimistö"
-#: ../rules/base.xml.in.h:443 ../rules/evdev.xml.in.h:443
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft-langaton multimedianäppämistö 1.0A"
-#: ../rules/base.xml.in.h:444 ../rules/evdev.xml.in.h:444
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Sekalaisia yhteensopivuusvalintoja"
-#: ../rules/base.xml.in.h:445 ../rules/evdev.xml.in.h:445
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:446 ../rules/evdev.xml.in.h:446
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:447 ../rules/evdev.xml.in.h:447
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:448 ../rules/evdev.xml.in.h:448
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:449 ../rules/evdev.xml.in.h:449
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolia"
-#: ../rules/base.xml.in.h:450 ../rules/evdev.xml.in.h:450
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:451 ../rules/evdev.xml.in.h:451
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marokko"
-#: ../rules/base.xml.in.h:452 ../rules/evdev.xml.in.h:452
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Monikielinen"
-#: ../rules/base.xml.in.h:453 ../rules/evdev.xml.in.h:453
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Monikielinen, ensimmäinen osa"
-#: ../rules/base.xml.in.h:454 ../rules/evdev.xml.in.h:454
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Monikielinen, toinen osa"
-#: ../rules/base.xml.in.h:455 ../rules/evdev.xml.in.h:455
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:456 ../rules/evdev.xml.in.h:456
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F-tyylin Backspace"
-#: ../rules/base.xml.in.h:457 ../rules/evdev.xml.in.h:457
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:458 ../rules/evdev.xml.in.h:458
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
-msgstr ""
+msgstr "Nativo"
-#: ../rules/base.xml.in.h:459 ../rules/evdev.xml.in.h:459
-#, fuzzy
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
-msgstr "Esperanto"
+msgstr "Nativo esperantolle"
-#: ../rules/base.xml.in.h:460 ../rules/evdev.xml.in.h:460
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
-msgstr ""
+msgstr "Nativo yhdysvaltalaisille näppäimistöille"
-#: ../rules/base.xml.in.h:461 ../rules/evdev.xml.in.h:461
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:462 ../rules/evdev.xml.in.h:462
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:463 ../rules/evdev.xml.in.h:463
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
-#: ../rules/base.xml.in.h:464 ../rules/evdev.xml.in.h:464
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Alankomaat"
-#: ../rules/base.xml.in.h:465 ../rules/evdev.xml.in.h:465
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Uusi foneettinen"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:466 ../rules/evdev.xml.in.h:466
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigeria"
-#: ../rules/base.xml.in.h:467 ../rules/evdev.xml.in.h:467
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:468 ../rules/evdev.xml.in.h:468
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Sitova välilyöntimerkki 4. tasolla"
-#: ../rules/base.xml.in.h:469 ../rules/evdev.xml.in.h:469
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Sitova välilyöntimerkki 4. tasolla ja kapea sitova välilyöntimerkki 6. tasolla"
-#: ../rules/base.xml.in.h:470 ../rules/evdev.xml.in.h:470
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Sitova välilyöntimerkki 4. tasolla, kapea sitova välilyöntimerkki 6. tasolla (Ctrl+Shift)"
-#: ../rules/base.xml.in.h:471 ../rules/evdev.xml.in.h:471
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Sitova välilyöntimerkki 2. tasolla"
-#: ../rules/base.xml.in.h:472 ../rules/evdev.xml.in.h:472
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Sitova välilyöntimerkki 3. tasolla"
-#: ../rules/base.xml.in.h:473 ../rules/evdev.xml.in.h:473
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Sitova välilyöntimerkki 3. tasolla eikä mitään 4. tasolla"
-#: ../rules/base.xml.in.h:474 ../rules/evdev.xml.in.h:474
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Sitova välilyöntimerkki 3. tasolla, kapea sitova välilyöntimerkki 4. tasolla"
-#: ../rules/base.xml.in.h:475 ../rules/evdev.xml.in.h:475
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:476 ../rules/evdev.xml.in.h:476
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Pohjoissaami"
-#: ../rules/base.xml.in.h:477 ../rules/evdev.xml.in.h:477
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Pohjoissaami, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:478 ../rules/evdev.xml.in.h:478
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:479 ../rules/evdev.xml.in.h:479
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norja"
-#: ../rules/base.xml.in.h:480 ../rules/evdev.xml.in.h:480
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:481 ../rules/evdev.xml.in.h:481
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Numerosormion Del-näppäimen toiminta"
-#: ../rules/base.xml.in.h:482 ../rules/evdev.xml.in.h:482
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Sormionäppäimet toimivat kuten Macissa"
-#: ../rules/base.xml.in.h:483 ../rules/evdev.xml.in.h:483
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Sormion asettelun valinta"
-#: ../rules/base.xml.in.h:484 ../rules/evdev.xml.in.h:484
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:485 ../rules/evdev.xml.in.h:485
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:486 ../rules/evdev.xml.in.h:486
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC, dari"
-#: ../rules/base.xml.in.h:487 ../rules/evdev.xml.in.h:487
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC, pashto"
-#: ../rules/base.xml.in.h:488 ../rules/evdev.xml.in.h:488
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC, eteläinen uzbeekki"
-#: ../rules/base.xml.in.h:489 ../rules/evdev.xml.in.h:489
+#: ../rules/base.xml.in.h:507
+msgid "Occitan"
+msgstr "oksitaani"
+
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:490 ../rules/evdev.xml.in.h:490
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:491 ../rules/evdev.xml.in.h:491
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:492 ../rules/evdev.xml.in.h:492
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet-näppäimistö"
-#: ../rules/base.xml.in.h:493 ../rules/evdev.xml.in.h:493
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Ossetia"
-#: ../rules/base.xml.in.h:494 ../rules/evdev.xml.in.h:494
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Ossetia, Win-näppäimet"
-#: ../rules/base.xml.in.h:495 ../rules/evdev.xml.in.h:495
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Ossetia, vanha"
-#: ../rules/base.xml.in.h:496 ../rules/evdev.xml.in.h:496
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx-sarja"
-#: ../rules/base.xml.in.h:497 ../rules/evdev.xml.in.h:497
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:498 ../rules/evdev.xml.in.h:498
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:499 ../rules/evdev.xml.in.h:499
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pashto"
-#: ../rules/base.xml.in.h:500 ../rules/evdev.xml.in.h:500
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:501 ../rules/evdev.xml.in.h:501
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persia, persialaisella sormiolla"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Foneettinen"
-#: ../rules/base.xml.in.h:502 ../rules/evdev.xml.in.h:502
+#: ../rules/base.xml.in.h:522
+msgid "Phonetic Winkeys"
+msgstr "Foneettinen, Win-näppäimet"
+
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:503 ../rules/evdev.xml.in.h:503
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Puola"
-#: ../rules/base.xml.in.h:504 ../rules/evdev.xml.in.h:504
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytoninen"
-#: ../rules/base.xml.in.h:505 ../rules/evdev.xml.in.h:505
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugali"
-#: ../rules/base.xml.in.h:506 ../rules/evdev.xml.in.h:506
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:507 ../rules/evdev.xml.in.h:507
-msgid "Pro Keypad"
-msgstr "Pro sormio"
-
-#: ../rules/base.xml.in.h:508 ../rules/evdev.xml.in.h:508
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:509 ../rules/evdev.xml.in.h:509
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Ohjelmoijan dvorak"
-#: ../rules/base.xml.in.h:510 ../rules/evdev.xml.in.h:510
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:511 ../rules/evdev.xml.in.h:511
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:512 ../rules/evdev.xml.in.h:512
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:513 ../rules/evdev.xml.in.h:513
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Oikea Alt"
-#: ../rules/base.xml.in.h:514 ../rules/evdev.xml.in.h:514
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Oikea Alt (painettaessa)"
-#: ../rules/base.xml.in.h:515 ../rules/evdev.xml.in.h:515
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Oikea Alt-näppäin ei koskaan valitse kolmatta tasoa"
-#: ../rules/base.xml.in.h:516 ../rules/evdev.xml.in.h:516
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Oikea Alt, Shift-Oikea Alt on Multi_Key"
-#: ../rules/base.xml.in.h:517 ../rules/evdev.xml.in.h:517
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Oikea Ctrl"
-#: ../rules/base.xml.in.h:518 ../rules/evdev.xml.in.h:518
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Oikea Ctrl (painettaessa)"
-#: ../rules/base.xml.in.h:519 ../rules/evdev.xml.in.h:519
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Oikea Ctrl kuten oikea Alt"
-#: ../rules/base.xml.in.h:520 ../rules/evdev.xml.in.h:520
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Oikea Shift"
-#: ../rules/base.xml.in.h:521 ../rules/evdev.xml.in.h:521
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Oikea Win"
-#: ../rules/base.xml.in.h:522 ../rules/evdev.xml.in.h:522
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Oikea Win (painettaessa)"
-#: ../rules/base.xml.in.h:523 ../rules/evdev.xml.in.h:523
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Oikeakätinen"
-#: ../rules/base.xml.in.h:524 ../rules/evdev.xml.in.h:524
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Oikeakätinen dvorak"
-#: ../rules/base.xml.in.h:525 ../rules/evdev.xml.in.h:525
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Romania"
-#: ../rules/base.xml.in.h:526 ../rules/evdev.xml.in.h:526
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Romanialainen näppäimistö saksalaisilla kirjaimilla"
-#: ../rules/base.xml.in.h:527 ../rules/evdev.xml.in.h:527
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Romanialainen näppäimistö saksalaisilla kirjaimilla, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:528 ../rules/evdev.xml.in.h:528
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:529 ../rules/evdev.xml.in.h:529
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:530 ../rules/evdev.xml.in.h:530
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Venäjä"
-#: ../rules/base.xml.in.h:531 ../rules/evdev.xml.in.h:531
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Venäläinen"
-#: ../rules/base.xml.in.h:532 ../rules/evdev.xml.in.h:532
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Venäläinen foneettinen"
-#: ../rules/base.xml.in.h:533 ../rules/evdev.xml.in.h:533
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Venäläinen foneettinen dvorak"
-#: ../rules/base.xml.in.h:534 ../rules/evdev.xml.in.h:534
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Venäläinen foneettinen, ei kuolleita näppäimiä"
-#: ../rules/base.xml.in.h:535 ../rules/evdev.xml.in.h:535
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Venäjä kazakhin kanssa"
-#: ../rules/base.xml.in.h:536 ../rules/evdev.xml.in.h:536
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST langaton multimedianäppäimistö"
-#: ../rules/base.xml.in.h:537 ../rules/evdev.xml.in.h:537
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:538 ../rules/evdev.xml.in.h:538
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:539 ../rules/evdev.xml.in.h:539
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:540 ../rules/evdev.xml.in.h:540
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:541 ../rules/evdev.xml.in.h:541
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:542 ../rules/evdev.xml.in.h:542
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:543 ../rules/evdev.xml.in.h:543
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:544 ../rules/evdev.xml.in.h:544
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:545 ../rules/evdev.xml.in.h:545
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:546 ../rules/evdev.xml.in.h:546
+#: ../rules/base.xml.in.h:565
+msgid "Scroll Lock"
+msgstr "Scroll Lock"
+
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:547 ../rules/evdev.xml.in.h:547
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
-msgstr ""
+msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:548 ../rules/evdev.xml.in.h:548
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Puolipilkku kolmannella tasolla"
-#: ../rules/base.xml.in.h:549 ../rules/evdev.xml.in.h:549
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbia"
-#: ../rules/base.xml.in.h:550 ../rules/evdev.xml.in.h:550
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Shift kumoaa CapsLockin"
-#: ../rules/base.xml.in.h:551 ../rules/evdev.xml.in.h:551
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Shift ei kumoa CapsLockia, valitsee 3. tason sen sijaan"
-#: ../rules/base.xml.in.h:552 ../rules/evdev.xml.in.h:552
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Shift ja sormionäppäimet toimivat kuten MS Windowsissa"
-#: ../rules/base.xml.in.h:553 ../rules/evdev.xml.in.h:553
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Shift+CapsLock"
-#: ../rules/base.xml.in.h:554 ../rules/evdev.xml.in.h:554
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "yksinkertainen"
-#: ../rules/base.xml.in.h:555 ../rules/evdev.xml.in.h:555
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovakia"
-#: ../rules/base.xml.in.h:556 ../rules/evdev.xml.in.h:556
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovenia"
-#: ../rules/base.xml.in.h:557 ../rules/evdev.xml.in.h:557
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Etelä-Afrikka"
-#: ../rules/base.xml.in.h:558 ../rules/evdev.xml.in.h:558
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Eteläinen uzbeekki"
-#: ../rules/base.xml.in.h:559 ../rules/evdev.xml.in.h:559
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Espanja"
-#: ../rules/base.xml.in.h:560 ../rules/evdev.xml.in.h:560
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Erikoisnäppäimet (Ctrl+Alt+&lt;näppäin&gt;) käsitellään palvelimessa"
-#: ../rules/base.xml.in.h:561 ../rules/evdev.xml.in.h:561
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:562 ../rules/evdev.xml.in.h:562
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:563 ../rules/evdev.xml.in.h:563
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Tavallinen"
-#: ../rules/base.xml.in.h:564 ../rules/evdev.xml.in.h:564
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Tavallinen (Pilkku alla)"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:566 ../rules/evdev.xml.in.h:566
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Tavallinen RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:568 ../rules/evdev.xml.in.h:568
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Tavallinen RSTU venäläisellä asettelulla"
-#: ../rules/base.xml.in.h:569 ../rules/evdev.xml.in.h:569
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:570 ../rules/evdev.xml.in.h:570
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sunin kuolleet näppäimet"
-#: ../rules/base.xml.in.h:571 ../rules/evdev.xml.in.h:571
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power -multimedianäppäimistö"
-#: ../rules/base.xml.in.h:572 ../rules/evdev.xml.in.h:572
-msgid "Super is mapped to Win keys"
-msgstr "Super tulee Win-näppäimistä"
-
-#: ../rules/base.xml.in.h:573 ../rules/evdev.xml.in.h:573
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:574 ../rules/evdev.xml.in.h:574
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:575 ../rules/evdev.xml.in.h:575
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:576 ../rules/evdev.xml.in.h:576
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Vaihda Ctrl ja CapsLock"
-#: ../rules/base.xml.in.h:577 ../rules/evdev.xml.in.h:577
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Vaihda Esc ja CapsLock"
-#: ../rules/base.xml.in.h:578 ../rules/evdev.xml.in.h:578
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:579 ../rules/evdev.xml.in.h:579
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Ruotsi"
-#: ../rules/base.xml.in.h:580 ../rules/evdev.xml.in.h:580
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Sveitsi"
-#: ../rules/base.xml.in.h:581 ../rules/evdev.xml.in.h:581
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (lehtiö-PC)"
-#: ../rules/base.xml.in.h:582 ../rules/evdev.xml.in.h:582
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:583 ../rules/evdev.xml.in.h:583
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Syyria"
-#: ../rules/base.xml.in.h:584 ../rules/evdev.xml.in.h:584
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syyrialainen"
-#: ../rules/base.xml.in.h:585 ../rules/evdev.xml.in.h:585
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Syyrialainen foneettinen"
-#: ../rules/base.xml.in.h:586 ../rules/evdev.xml.in.h:586
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:587 ../rules/evdev.xml.in.h:587
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tadžikistan"
-#: ../rules/base.xml.in.h:588 ../rules/evdev.xml.in.h:588
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamili"
-#: ../rules/base.xml.in.h:589 ../rules/evdev.xml.in.h:589
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamili TAB Typewriter"
-#: ../rules/base.xml.in.h:590 ../rules/evdev.xml.in.h:590
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamili TSCII Typewriter"
-#: ../rules/base.xml.in.h:591 ../rules/evdev.xml.in.h:591
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamili Unicode"
-#: ../rules/base.xml.in.h:592 ../rules/evdev.xml.in.h:592
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:593 ../rules/evdev.xml.in.h:593
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tataari"
-#: ../rules/base.xml.in.h:594 ../rules/evdev.xml.in.h:594
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:595 ../rules/evdev.xml.in.h:595
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:596 ../rules/evdev.xml.in.h:596
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thaimaa"
-#: ../rules/base.xml.in.h:597 ../rules/evdev.xml.in.h:597
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tiibet"
-#: ../rules/base.xml.in.h:598 ../rules/evdev.xml.in.h:598
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tiibet (ASCII-numeroilla)"
-#: ../rules/base.xml.in.h:599 ../rules/evdev.xml.in.h:599
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:600 ../rules/evdev.xml.in.h:600
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh, vaihtoehtoinen"
-#: ../rules/base.xml.in.h:601 ../rules/evdev.xml.in.h:601
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh, vaihtoehtoinen foneettinen"
-#: ../rules/base.xml.in.h:602 ../rules/evdev.xml.in.h:602
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh, laajennettu"
-#: ../rules/base.xml.in.h:603 ../rules/evdev.xml.in.h:603
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh, laajennettu foneettinen"
-#: ../rules/base.xml.in.h:604 ../rules/evdev.xml.in.h:604
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh, foneettinen"
-#: ../rules/base.xml.in.h:605 ../rules/evdev.xml.in.h:605
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Tildemuunnos (~)"
-#: ../rules/base.xml.in.h:606 ../rules/evdev.xml.in.h:606
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:607 ../rules/evdev.xml.in.h:607
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
-msgstr ""
+msgstr "Vastaavaan näppäimeen Dvorak-näppäimistössä."
-#: ../rules/base.xml.in.h:608 ../rules/evdev.xml.in.h:608
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
-msgstr ""
+msgstr "Vastaavaan näppäimeen Qwerty-näppäimistössä."
-#: ../rules/base.xml.in.h:609 ../rules/evdev.xml.in.h:609
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:610 ../rules/evdev.xml.in.h:610
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Perinteinen foneettinen"
+
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:611 ../rules/evdev.xml.in.h:611
+#: ../rules/base.xml.in.h:631
+msgid "Trust Slimline"
+msgstr "Trust Slimline"
+
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:612 ../rules/evdev.xml.in.h:612
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:613 ../rules/evdev.xml.in.h:613
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turkki"
-#: ../rules/base.xml.in.h:614 ../rules/evdev.xml.in.h:614
+#: ../rules/base.xml.in.h:635
+msgid "Turkmenistan"
+msgstr "Turkmenistan"
+
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Kirjoituskone"
-#: ../rules/base.xml.in.h:615 ../rules/evdev.xml.in.h:615
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
-msgstr ""
+msgstr "UCW-asettelu (vain aksenttikirjaimet)"
-#: ../rules/base.xml.in.h:616 ../rules/evdev.xml.in.h:616
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Yhdysvaltalainen näppäimistö bosnialaisilla merkkipareilla"
-#: ../rules/base.xml.in.h:617 ../rules/evdev.xml.in.h:617
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Yhdysvaltalainen näppäimistö bosnialaisilla kirjaimilla"
-#: ../rules/base.xml.in.h:618 ../rules/evdev.xml.in.h:618
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Yhdysvaltalainen näppäimistö kroatialaisilla merkkipareilla"
-#: ../rules/base.xml.in.h:619 ../rules/evdev.xml.in.h:619
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Yhdysvaltalainen näppäimistö kroatialaisilla kirjaimilla"
-#: ../rules/base.xml.in.h:620 ../rules/evdev.xml.in.h:620
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Yhdysvaltalainen näppäimistö virolaisilla kirjaimilla"
-#: ../rules/base.xml.in.h:621 ../rules/evdev.xml.in.h:621
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Yhdysvaltalainen näppäimistö italialaisilla kirjaimilla"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Yhdysvaltalainen näppäimistö liettualaisilla kirjaimilla"
-#: ../rules/base.xml.in.h:622 ../rules/evdev.xml.in.h:622
-msgid "US keyboard with Slovenian digraphs"
-msgstr "Yhdysvaltalainen näppäimistö slovenialaisilla merkkipareilla"
-
-#: ../rules/base.xml.in.h:623 ../rules/evdev.xml.in.h:623
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Yhdysvaltalainen näppäimistö slovenialaisilla kirjaimilla"
-#: ../rules/base.xml.in.h:624 ../rules/evdev.xml.in.h:624
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:625 ../rules/evdev.xml.in.h:625
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:626 ../rules/evdev.xml.in.h:626
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:627 ../rules/evdev.xml.in.h:627
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukraina"
-#: ../rules/base.xml.in.h:628 ../rules/evdev.xml.in.h:628
-msgid "Unicode"
-msgstr "Unicode"
-
-#: ../rules/base.xml.in.h:629 ../rules/evdev.xml.in.h:629
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode-lisäosat (nuolet ja matematiikkatoiminnot)"
-#: ../rules/base.xml.in.h:630 ../rules/evdev.xml.in.h:630
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Unicode-lisäosat (nuolet ja matematiikkatoiminnot). Matematiikkatoiminnot oletustasolla"
-#: ../rules/base.xml.in.h:631 ../rules/evdev.xml.in.h:631
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "Unicode-asiantuntija"
-#: ../rules/base.xml.in.h:632 ../rules/evdev.xml.in.h:632
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Iso-Britannia"
-#: ../rules/base.xml.in.h:633 ../rules/evdev.xml.in.h:633
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:634 ../rules/evdev.xml.in.h:634
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, vaihtoehtoinen foneettinen"
-#: ../rules/base.xml.in.h:635 ../rules/evdev.xml.in.h:635
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, foneettinen"
-#: ../rules/base.xml.in.h:636 ../rules/evdev.xml.in.h:636
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, Win-näppäimet"
-#: ../rules/base.xml.in.h:637 ../rules/evdev.xml.in.h:637
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Käytä bosnialaisia merkkipareja"
-#: ../rules/base.xml.in.h:638 ../rules/evdev.xml.in.h:638
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Käytä kroatialaisia merkkipareja"
-#: ../rules/base.xml.in.h:639 ../rules/evdev.xml.in.h:639
-msgid "Use Slovenian digraphs"
-msgstr "Käytä slovenialaisia merkkipareja"
-
-#: ../rules/base.xml.in.h:640 ../rules/evdev.xml.in.h:640
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Käytä guillemot-lainausmerkkejä"
-#: ../rules/base.xml.in.h:641 ../rules/evdev.xml.in.h:641
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Käytä näppäimistö-lediä näyttämään vaihtoehtoista asettelua"
-#: ../rules/base.xml.in.h:642 ../rules/evdev.xml.in.h:642
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Sitovan välilyöntimerkin syöttäminen"
-#: ../rules/base.xml.in.h:643 ../rules/evdev.xml.in.h:643
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Normaali välilyönti kaikilla tasoilla"
-#: ../rules/base.xml.in.h:644 ../rules/evdev.xml.in.h:644
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:645 ../rules/evdev.xml.in.h:645
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekistan"
-#: ../rules/base.xml.in.h:646 ../rules/evdev.xml.in.h:646
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:647 ../rules/evdev.xml.in.h:647
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet -näppäimistö"
-#: ../rules/base.xml.in.h:648 ../rules/evdev.xml.in.h:648
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:649 ../rules/evdev.xml.in.h:649
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 -sormio Unicode-lisäyksin (nuolet sekä matematiikkaoperaatiot)"
-#: ../rules/base.xml.in.h:650 ../rules/evdev.xml.in.h:650
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Wang 724 -sormio Unicode-lisäyksin (nuolet sekä matematiikkaoperaatiot). Matematiikkaoperaatiot oletustasolla"
-#: ../rules/base.xml.in.h:651 ../rules/evdev.xml.in.h:651
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang malli 724 azerty"
-#: ../rules/base.xml.in.h:652 ../rules/evdev.xml.in.h:652
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Läntinen"
-#: ../rules/base.xml.in.h:653 ../rules/evdev.xml.in.h:653
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:654 ../rules/evdev.xml.in.h:654
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Win-näppäimet"
-#: ../rules/base.xml.in.h:655 ../rules/evdev.xml.in.h:655
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "&lt;\\|&gt;-näppäimillä"
-#: ../rules/base.xml.in.h:656 ../rules/evdev.xml.in.h:656
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Euro-merkki 5-näppäimessä"
-#: ../rules/base.xml.in.h:657 ../rules/evdev.xml.in.h:657
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Guillemot-lainausmerkeillä"
-#: ../rules/base.xml.in.h:658 ../rules/evdev.xml.in.h:658
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo!-Internet-näppäimistö"
-#: ../rules/base.xml.in.h:659 ../rules/evdev.xml.in.h:659
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Yakut"
-#: ../rules/base.xml.in.h:660 ../rules/evdev.xml.in.h:660
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoruba"
-#: ../rules/base.xml.in.h:661 ../rules/evdev.xml.in.h:661
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z ja ZHE vaihdettu"
-#: ../rules/base.xml.in.h:662 ../rules/evdev.xml.in.h:662
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:663 ../rules/evdev.xml.in.h:663
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:664 ../rules/evdev.xml.in.h:664
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/numerot"
-#: ../rules/base.xml.in.h:665 ../rules/evdev.xml.in.h:665
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "numerot"
-#: ../rules/base.xml.in.h:666 ../rules/evdev.xml.in.h:666
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
-msgstr ""
+msgstr "sijoiltaan olevat puolipilkku ja lainaismekrki (vanhentunut)"
-#: ../rules/base.xml.in.h:667 ../rules/evdev.xml.in.h:667
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:668 ../rules/evdev.xml.in.h:668
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:669 ../rules/evdev.xml.in.h:669
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, laajennettu Backslash"
-#: ../rules/base.xml.in.h:670 ../rules/evdev.xml.in.h:670
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/numerot"
-#: ../rules/base.xml.in.h:671 ../rules/evdev.xml.in.h:671
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Aksenttien yhdistäminen kuolleiden näppäinten sijaan"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Kansainvälinen (AltGr-Unicode-yhdistäminen)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Kansainvälinen (AltGr-Unicode-yhdistäminen, vaihtoehtoinen)"
+
+#~ msgid "Brazilian ABNT2"
+#~ msgstr "Brasilialainen ABNT2"
+
+#~ msgid "Japanese 106-key"
+#~ msgstr "Japanilainen 106-näppäiminen"
+
+#~ msgid "Keypad"
+#~ msgstr "Sormio"
+
+#~ msgid "Kir"
+#~ msgstr "Kir"
+
+#~ msgid "Korean 106-key"
+#~ msgstr "Korealainen 106-näppäiminen"
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Super is mapped to Win keys"
+#~ msgstr "Super tulee Win-näppäimistä"
+
+#~ msgid "US keyboard with Slovenian digraphs"
+#~ msgstr "Yhdysvaltalainen näppäimistö slovenialaisilla merkkipareilla"
+
+#~ msgid "Unicode"
+#~ msgstr "Unicode"
+
+#~ msgid "Use Slovenian digraphs"
+#~ msgstr "Käytä slovenialaisia merkkipareja"
+
#~ msgid "(Legacy) Dvorak"
#~ msgstr "(Perinteinen) dvorak"
@@ -2717,9 +2851,6 @@ msgstr "qwertz"
#~ msgid "Both Shift keys together change layout."
#~ msgstr "Molemmat Shift-näppäimet yhdessä vaihtavat asettelua."
-#~ msgid "Caps Lock is Compose."
-#~ msgstr "Caps Lock on Compose."
-
#~ msgid "CapsLock LED shows alternative layout."
#~ msgstr "CapsLock-ledi näyttää vaihtoehtoista asettelua."
@@ -2846,9 +2977,6 @@ msgstr "qwertz"
#~ msgid "Third level choosers"
#~ msgstr "Kolmannnen tason valitsimet"
-#~ msgid "U.S. English"
-#~ msgstr "Amerikanenglanti"
-
#~ msgid "Urdu"
#~ msgstr "Urdu"
@@ -2867,9 +2995,6 @@ msgstr "qwertz"
#~ msgid "Alt+Shift changes group"
#~ msgstr "Alt+Shift vaihtaa ryhmää"
-#~ msgid "Basic"
-#~ msgstr "Perus"
-
#~ msgid "Belgian"
#~ msgstr "belgialainen"
diff --git a/xorg-server/xkbdata.src/po/fr.po b/xorg-server/xkbdata.src/po/fr.po
index aaaa672f3..fcc3850ed 100644
--- a/xorg-server/xkbdata.src/po/fr.po
+++ b/xorg-server/xkbdata.src/po/fr.po
@@ -7,10 +7,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.6pre1\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-19 14:20-0500\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-16 14:54-0500\n"
"Last-Translator: Marc Veillet <scouigne@gmail.com>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
@@ -373,2382 +373,2438 @@ msgid "Bangladesh"
msgstr "Bangladesh"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Bashkirien"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Bélarus"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgique"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengali"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengali Probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
-msgstr "Bepo, ergonomc, modèle Dvorak"
+msgstr "Bépo, ergonomique, façon Dvorak"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
-msgstr "Bepo, ergonomic, modèle Dvorak, latin-9 seulement"
+msgstr "Bépo, ergonomique, façon Dvorak, latin-9 seulement"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhoutan"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Hébreu biblique (Tiro)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnie-Herzégovine"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Les touches Alt ensemble"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Les touches Ctrl ensemble"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Les touches Maj. ensemble"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brésil"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Breton"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgarie"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Cambodge"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Canada"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Verr. maj."
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "Verr. Maj."
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "Verr. Maj. change vers la première disposition, Maj.+Verr. Maj. change vers la dernière disposition"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "Verr. Maj. (lorsque pressée), Alt+Verr. Maj. provoque le même résultat"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "Verr. maj. agit comme Maj. verrouillé. Maj. \"l'annule temporairement\""
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "Verr. maj. agit comme Maj. verrouillé. Maj. n'a pas d'effet sur Verr. Maj."
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "Verr. Maj. est désactivé."
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Comportement de la touche Verrouillage majuscule"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "Verr. maj. inverse Maj., ce qui affecte toutes les touches"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "Verr. maj. inverse la mise en majuscule usuelle des caractères alphabétiques"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "Verr. maj. permet la mise en majuscule interne. Maj. \"annule\" le verrouillage des majuscules"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "Verr. maj. permet la mise en majuscule interne. Maj. n'a pas d'effet sur cette commande"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Catalan avec L point médian"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cédille"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (autre option)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Chine"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Latin Chuvash"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Classique"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Dvorak classique"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet (13 touches)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet (18 touches)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet (7 touches)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Position de la touche Compose"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "République démocratique du Congo"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
msgstr "Control + Alt + Eff. arrière"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "La touche Ctrl est obtenue avec la touche Alt, Alt est obtenue avec les touches logo"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "La touche Ctrl est obtenue avec la touche Logo (et les touches Ctrl habituelles)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Tatar de Crimée (Q Dobruca-1)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Tatar de Crimée (Q Dobruca-2)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Tatar de Crimée (Alt-Q turc)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Tatar de Crimée (F turc)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Tatar de Crimée (Q turc)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Croatie"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Position de la touche Ctrl"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Maj."
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Cyrillique"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Cyrillique avec guillemets"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Cyrillique, Z et ZHE permutés"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "République tchèque"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "RDC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Touche morte d'accent aigu"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Touche morte d'accent grave"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Touches du pavé numérique par défaut"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell PC 101 touches"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Portable Dell Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Portable Dell Precision série M"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Portable Latitude Dell"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Clavier multimédia USB Dell"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Danemark"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Desktop sans fil"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802 series"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (ponctuation britannique)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak international"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, guillemets polonais sur la touche « 1 »"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, guillemets polonais sur la touche des guillemets"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Orientale"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Éliminer les touches mortes"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Active des caractères typographiques supplémentaires"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Anglais"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Retour sur clavier numérique"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomique"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estonie"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Éthiopie"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Clavier piloté par evdev"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Étendue"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Étendue - Touches logo"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Barre contre-oblique étendue"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "Variante (F)"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Féroé, Îles"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finlande"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Touches à quatre niveaux avec séparateurs abstraits"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Touches à quatre niveaux avec virgule"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Touches à quatre niveaux avec point"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Touches à quatre niveaux avec point, avec restrinction Latin-9"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Touches à quatre niveaux avec momayyez"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "France"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Français"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Français (Apple-Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Français (obsolète)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Dvorak français"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Français, touches mortes Sun"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Français, sans touches mortes"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Portable Fujitsu-Siemens Computers AMILO"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Peul"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "PC générique 101 touches"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "PC générique 102 touches (intl)"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "PC générique 104 touches"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "PC générique 105 touches (intl)"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Géorgie"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Géorgien"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "AZERTY géorgien Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Allemand (Apple-Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Allemand, touches mortes Sun"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Allemand, sans touches mortes"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Allemagne"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Grèce"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Les touches Multiplier/Diviser basculent d'un groupe à l'autre"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinée"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujarati"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Clavier Happy Hacking"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Clavier Happy Hacking pour Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Haoussa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x, clavier multimedia"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Hexadécimal"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hindi Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homophone"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Hongrie"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper est obtenu avec n'importe quelle touche Logo"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E (Intl)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "Autre ISO"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Islande"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Inclut le tilde"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Inde"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "International (AltCar et touches mortes)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "International (avec touches mortes)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irlande"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israël"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italie"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japon"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "PC-98xx japonais"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Options de clavier japonais"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "La touche de verrouillage Kana agit comme touche de verrouillage"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kachoube"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazakh avec russe"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazakhstan"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Séquence de touches pour fermer le serveur X"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Touche sélectionnant le 3e niveau"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Touche(s) changeant de disposition."
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Pavé numérique"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "Kgz"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Corée, République de"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurde, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurde, Arabe-latin"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurde, Latin Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurde, Latin Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirghizistan"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Compaq portable (p.e. Armada)"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Compaq portable Internet (p.e. Presario)"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latin"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Amérique latine"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latin Unicode"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latin Unicode qwerty"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latin qwerty"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Unicode Latin"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Unicode Latin QWERTY"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latin avec guillemets"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Lettonie"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Alt gauche"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Alt de gauche (lorsque pressée)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "La touche Alt de gauche est échangée avec la touche Logo de gauche"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Ctrl gauche"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl gauche+Maj. gauche"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Maj. gauche"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Touche Logo gauche"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Touche logo de gauche (première disposition), touche logo de droite (dernière disposition)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Logo de gauche (lorsque pressée)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Main gauche"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Dvorak pour gaucher"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Obsolète"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Clavier Wang 724 obsolète"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Touche obsolète avec virgule"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Touche obsolète avec point"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Plus petit que/Plus grand que"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Lituanie"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Clavier Logitech Access"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (autre option)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (option alt 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Touches supplémentaires pour Logitech G15 via le démon G15"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Clavier Logitech générique"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Clavier Logitech Internet 350"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Clavier Logitech Internet"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Clavier Logitech Internet Navigator"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Clavier Logitech Media Elite"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Clavier Logitech sans-fil Ultra-X Media"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Clavier Logitech Ultra-X"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Clavier Logitech diNovo Edge"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Clavier Logitech diNovo"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless (modèle Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech Internet Navigator iTouch SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech Internet Navigator iTouch SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Serbe minuscule"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Serbe minuscule (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Macédoine"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Apple-Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Apple-Macintosh ancien"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, touches mortes Sun"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, sans touches mortes"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Faire de la touche Verr. maj. une touche Ret. arr. supplémentaire."
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Faire de la touche Verr. maj. une touche Ctrl supplémentaire"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Faire de la touche Verr. maj. une touche Esc. supplémentaire."
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Faire de la touche Verr. maj. une touche Hyper supplémentaire"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Faire de la touche Verr. maj. une touche Verr. num. supplémentaire"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Faire de la touche Verr. maj. une touche Super supplémentaire."
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldives"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malte"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Clavier maltais avec disposition US"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Méta est obtenu avec la touche Logo de gauche"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Méta est obtenu avec n'importe quelle touche Logo"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Clavier Microsoft Comfort Curve 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Clavier Microsoft Internet"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Clavier Microsoft Internet Pro, suédois"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Clavier Microsoft Natural Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Clavier Microsoft Natural Pro / Clavier Microsoft Internet Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Clavier Microsoft Natural Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Clavier Microsoft Natural Pro USB / Clavier Microsoft Internet Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Clavier Microsoft ergonomique naturel sans fil 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Clavier Microsoft Office"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Clavier Microsoft Multimedia sans fil 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Diverses options de compatibilité"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolie"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Monténégro"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Maroc"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Multilingue"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Multilingue, partie 1"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Multilingue, partie 2"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Ret. Arr. de style NICOLA-F"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Native pour Espéranto"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo pour claviers américains"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Népal"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Pays-Bas"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Nouveau phonétique"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigeria"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Espace insécable au 4e niveau."
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Espace insécable au 4e niveau et une espace fine insécable au 6e niveau"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Espace insécable au 4e niveau et une espace fine insécable au 6e niveau (par les touches Ctrl+Maj.)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Espace insécable au 2e niveau"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Espace insécable au 3e niveau"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Espace insécable au 3e niveau et rien au 4e niveau"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Espace insécable au 3e niveau et une espace fine insécable au 4e niveau"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Sami du Nord"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Sami du Nord, sans touches mortes"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norvège"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "Verr. Num."
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Comportement de la touche de suppression du clavier numérique"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Les touches du pavé numérique se comportent comme sur MacIntosh"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Sélection de groupe du clavier numérique"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pashto"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Ouzbek du Sud"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Occitan"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Clavier Internet Ortek MCK-800 MM"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Ossétie"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Ossétie avec touches Logo"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "(Obsolète) Ossétie"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx Series"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pashto"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Perse, avec clavier numérique perse"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Phonétique"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "Touches logo phonétiques"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Pologne"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytonique"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugal"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pavé Pro"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Programmeur Dvorak"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Alt. droite"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Alt de droite (lorsque pressée)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Alt de droite ne sélectionne jamais le 3e niveau"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Alt de droite, Maj.+Alt de droite est une touche multiple"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Crtl de droite"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl de droite (lorsque pressée)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl de droite comme Alt de droite"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Maj. droite"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Touche logo droite"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Touche logo de (lorsque pressée)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Main droite"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Dvorak pour droitier"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Roumanie"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Clavier roumain avec lettres allemandes"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Clavier roumain avec lettres allemandes, sans touches mortes"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Russie"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Russe"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Phonétique russe"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Dvorak phonétique russe"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Phonétique russe, sans lettres mortes"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Russe avec kazakh"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia sans fil"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Arrêt défilement"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "Arrêt défil."
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Point virgule au 3e niveau"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbie"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Maj. annule le verrouillage majuscule"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Maj. n'annule pas le verrouillage numérique; choisir le 3e niveau"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "La touche Maj. avec le pavé numérique se comporte comme dans MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Maj.+ Verr. maj."
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Simple"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovaquie"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovénie"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Afrique du Sud"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Ouzbek du Sud"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Espagne"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Les combinaisons spéciales (Ctrl+Alt+&lt;touche&gt;) sont traitées par un serveur"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standard"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standard (cédille)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Phonétique standard"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standard RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standard RSTU avec une disposition russe"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Touches mortes Sun"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Multimedia Super Power"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Permuter Ctrl et Verr. maj."
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Permuter ESC et Verr. maj."
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Sué"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Suède"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Suisse"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Syrie"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syriaque"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Phonétique syriaque"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tadjikistan"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamoul"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Machine à écrire tamoule TAB"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Machine à écrire tamoule TSCII"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Unicode tamoul"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thaïlande"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibétain"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibétain (avec touches numériques ASCII)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh alternatif"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh avec phonétique alternative"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh étendu"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh avec phonétique étendue"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh phonétique"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Variante avec tilde"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Mène à la touche correspondante sur un clavier Dvorak."
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Mène à la touche correspondante sur un clavier Qwerty"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "Phonétique traditionnel"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turquie"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Turkmenistan"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Machine à écrire"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "Disposition UCW (lettres accentuées seulement)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Clavier US avec digraphes bosniaques"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Clavier US avec lettres bosniaques"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Clavier US avec digraphes croates"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Clavier US avec lettres croates"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Clavier US avec lettres estoniennes"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Clavier US avec lettres italiennes"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Clavier US avec lettres lituaniennes"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Clavier US avec lettres slovènes"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Oudmourte"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukraine"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Ajouts Unicode (touches fléchées et opérateurs mathématiques)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Ajouts Unicode (touches fléchées et opérateurs mathématiques). Les opérateurs mathématiques se trouvent sur le niveau par défaut"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Royaume-Uni"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Ourdou, phonétique alternatif"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Ourdou, phonétique"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Ourdou, touches Logo"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Avec digraphes bosniaques"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Avec digraphes croates"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Remplacer les guillemets droits avec les guillements français"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Utiliser les voyants lumineux du clavier pour afficher une disposition alternative"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Utiliser la barre d'espacement pout insérer un espace insécable"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "La barre d'espacement renvoie une espace ordinaire à tous les niveaux"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Ouzbékistan"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Viêt Nam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "Clavier Internet ViewSonic KU-306"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Clavier Wang 724 avec ajouts Unicode (touches fléchées et opérateurs mathématiques)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Clavier Wang 724 avec ajouts Unicode (touches fléchées et opérateurs mathématiques). Les opérateurs mathématiques se trouvent sur le niveau par défaut"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Modèle Wang 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Occidentale"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Touches Logo"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Avec la touche &lt;\\|&gt;"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Avec le signe Euro sur la touche 5."
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Avec guillemets"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Clavier Yahoo! Internet"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Yacoute"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoruba"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z et ZHE permutés"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/chiffres"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "chiffres"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "(Obsolète) Point-virgule et guillemets droits déplacés"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, contre-oblique étendue"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/chiffres"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Combining accents instead of dead keys"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Coeur d'Alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "International (AltCar et Unicode)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "International (AltCar et Unicode, alternatif))"
+
+#~ msgid "Keypad"
+#~ msgstr "Pavé numérique"
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Pro Keypad"
+#~ msgstr "Pavé Pro"
+
+#~ msgid "Standard Phonetic"
+#~ msgstr "Phonétique standard"
+
#~ msgid "Brazilian ABNT2"
#~ msgstr "ABNT2 brésilien"
@@ -2944,8 +3000,5 @@ msgstr "qwertz"
#~ msgid "Power G5"
#~ msgstr "Power G5"
-#~ msgid "US keyboard with Maltian letters"
-#~ msgstr "Clavier US avec lettres maltaises"
-
#~ msgid "si1452"
#~ msgstr "si1452"
diff --git a/xorg-server/xkbdata.src/po/hu.po b/xorg-server/xkbdata.src/po/hu.po
index f52c67bd5..7d49d210d 100644
--- a/xorg-server/xkbdata.src/po/hu.po
+++ b/xorg-server/xkbdata.src/po/hu.po
@@ -1,16 +1,16 @@
# translation of xkeyboard-config to Hungarian
-# Copyright (C) 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the xkeyboard-config package.
#
# Andras Timar <timar@fsf.hu>, 2004.
# Szilveszter Farkas <Szilveszter.Farkas@gmail.com>, 2006.
-# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008.
+# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.4-pre1\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2008-09-15 23:52+0100\n"
-"PO-Revision-Date: 2008-09-20 23:37+0200\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-17 00:22+0200\n"
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -19,2607 +19,2775 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../rules/base.xml.in.h:1 ../rules/evdev.xml.in.h:1
+#: ../rules/base.xml.in.h:1
msgid "(F)"
msgstr "(F)"
-#: ../rules/base.xml.in.h:2 ../rules/evdev.xml.in.h:2
+#: ../rules/base.xml.in.h:2
msgid "(Legacy) Alternative"
msgstr "(Hagyományos) Alternatív"
-#: ../rules/base.xml.in.h:3 ../rules/evdev.xml.in.h:3
+#: ../rules/base.xml.in.h:3
msgid "(Legacy) Alternative, Sun dead keys"
msgstr "(Hagyományos) Alternatív, Sun halott billentyűk"
-#: ../rules/base.xml.in.h:4 ../rules/evdev.xml.in.h:4
+#: ../rules/base.xml.in.h:4
msgid "(Legacy) Alternative, eliminate dead keys"
msgstr "(Hagyományos) Alternatív, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:5 ../rules/evdev.xml.in.h:5
+#: ../rules/base.xml.in.h:5
msgid "101/104 key Compatible"
msgstr "101/104 gomb kompatibilis"
-#: ../rules/base.xml.in.h:6 ../rules/evdev.xml.in.h:6
+#: ../rules/base.xml.in.h:6
msgid "101/qwerty/comma/Dead keys"
msgstr "101/qwerty/vessző/Halott billentyűk"
-#: ../rules/base.xml.in.h:7 ../rules/evdev.xml.in.h:7
+#: ../rules/base.xml.in.h:7
msgid "101/qwerty/comma/Eliminate dead keys"
msgstr "101/qwerty/vessző/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:8 ../rules/evdev.xml.in.h:8
+#: ../rules/base.xml.in.h:8
msgid "101/qwerty/dot/Dead keys"
msgstr "101/qwerty/pont/Halott billentyűk"
-#: ../rules/base.xml.in.h:9 ../rules/evdev.xml.in.h:9
+#: ../rules/base.xml.in.h:9
msgid "101/qwerty/dot/Eliminate dead keys"
msgstr "101/qwerty/pont/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:10 ../rules/evdev.xml.in.h:10
+#: ../rules/base.xml.in.h:10
msgid "101/qwertz/comma/Dead keys"
msgstr "101/qwertz/vessző/Halott billentyűk"
-#: ../rules/base.xml.in.h:11 ../rules/evdev.xml.in.h:11
+#: ../rules/base.xml.in.h:11
msgid "101/qwertz/comma/Eliminate dead keys"
msgstr "101/qwertz/vessző/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:12 ../rules/evdev.xml.in.h:12
+#: ../rules/base.xml.in.h:12
msgid "101/qwertz/dot/Dead keys"
msgstr "101/qwertz/pont/Halott billentyűk"
-#: ../rules/base.xml.in.h:13 ../rules/evdev.xml.in.h:13
+#: ../rules/base.xml.in.h:13
msgid "101/qwertz/dot/Eliminate dead keys"
msgstr "101/qwertz/pont/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:14 ../rules/evdev.xml.in.h:14
+#: ../rules/base.xml.in.h:14
msgid "102/qwerty/comma/Dead keys"
msgstr "102/qwerty/vessző/Halott billentyűk"
-#: ../rules/base.xml.in.h:15 ../rules/evdev.xml.in.h:15
+#: ../rules/base.xml.in.h:15
msgid "102/qwerty/comma/Eliminate dead keys"
msgstr "102/qwerty/vessző/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:16 ../rules/evdev.xml.in.h:16
+#: ../rules/base.xml.in.h:16
msgid "102/qwerty/dot/Dead keys"
msgstr "102/qwerty/pont/Halott billentyűk"
-#: ../rules/base.xml.in.h:17 ../rules/evdev.xml.in.h:17
+#: ../rules/base.xml.in.h:17
msgid "102/qwerty/dot/Eliminate dead keys"
msgstr "102/qwerty/pont/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:18 ../rules/evdev.xml.in.h:18
+#: ../rules/base.xml.in.h:18
msgid "102/qwertz/comma/Dead keys"
msgstr "102/qwertz/vessző/Halott billentyűk"
-#: ../rules/base.xml.in.h:19 ../rules/evdev.xml.in.h:19
+#: ../rules/base.xml.in.h:19
msgid "102/qwertz/comma/Eliminate dead keys"
msgstr "102/qwertz/vessző/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:20 ../rules/evdev.xml.in.h:20
+#: ../rules/base.xml.in.h:20
msgid "102/qwertz/dot/Dead keys"
msgstr "102/qwertz/pont/Halott billentyűk"
-#: ../rules/base.xml.in.h:21 ../rules/evdev.xml.in.h:21
+#: ../rules/base.xml.in.h:21
msgid "102/qwertz/dot/Eliminate dead keys"
msgstr "102/qwertz/pont/Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:22 ../rules/evdev.xml.in.h:22
+#: ../rules/base.xml.in.h:22
+msgid "2"
+msgstr "2"
+
+#: ../rules/base.xml.in.h:23
+msgid "4"
+msgstr "4"
+
+#: ../rules/base.xml.in.h:24
+msgid "5"
+msgstr "5"
+
+#: ../rules/base.xml.in.h:25
msgid "A4Tech KB-21"
msgstr "A4Tech KB-21"
-#: ../rules/base.xml.in.h:23 ../rules/evdev.xml.in.h:23
+#: ../rules/base.xml.in.h:26
msgid "A4Tech KBS-8"
msgstr "A4Tech KBS-8"
-#: ../rules/base.xml.in.h:24 ../rules/evdev.xml.in.h:24
+#: ../rules/base.xml.in.h:27
msgid "A4Tech Wireless Desktop RFKB-23"
msgstr "A4Tech Wireless Desktop RFKB-23"
-#: ../rules/base.xml.in.h:25 ../rules/evdev.xml.in.h:25
+#: ../rules/base.xml.in.h:28
msgid "ACPI Standard"
msgstr "ACPI szabvány"
-#: ../rules/base.xml.in.h:26 ../rules/evdev.xml.in.h:26
-msgid "ATM/phone-style hexadecimal keypad"
-msgstr "ATM/telefon stílusú hexadecimális billentyűzet"
+#: ../rules/base.xml.in.h:29
+msgid "ATM/phone-style"
+msgstr "ATM/telefon stílusú"
-#: ../rules/base.xml.in.h:27 ../rules/evdev.xml.in.h:27
+#: ../rules/base.xml.in.h:30
msgid "Acer AirKey V"
msgstr "Acer AirKey V"
-#: ../rules/base.xml.in.h:28 ../rules/evdev.xml.in.h:28
+#: ../rules/base.xml.in.h:31
msgid "Acer C300"
msgstr "Acer C300"
-#: ../rules/base.xml.in.h:29 ../rules/evdev.xml.in.h:29
+#: ../rules/base.xml.in.h:32
msgid "Acer Ferrari 4000"
msgstr "Acer Ferrari 4000"
-#: ../rules/base.xml.in.h:30 ../rules/evdev.xml.in.h:30
+#: ../rules/base.xml.in.h:33
msgid "Acer Laptop"
msgstr "Acer noteszgép"
-#: ../rules/base.xml.in.h:31 ../rules/evdev.xml.in.h:31
-msgid "Add the EuroSign to the 2 key."
-msgstr "Az Euro jel hozzáadása a 2 billentyűhöz."
-
-#: ../rules/base.xml.in.h:32 ../rules/evdev.xml.in.h:32
-msgid "Add the EuroSign to the 4 key."
-msgstr "Az Euro jel hozzáadása a 4 billentyűhöz."
+#: ../rules/base.xml.in.h:34
+msgid "Add the standard behavior to Menu key"
+msgstr "A standard funkcionalitás hozzáadása a Menü billentyűhöz"
-#: ../rules/base.xml.in.h:33 ../rules/evdev.xml.in.h:33
-msgid "Add the EuroSign to the 5 key."
-msgstr "Az Euro jel hozzáadása az 5 billentyűhöz."
+#: ../rules/base.xml.in.h:35
+msgid "Adding Esperanto circumflexes (supersigno)"
+msgstr "Eszperantó circumflexek hozzáadása"
-#: ../rules/base.xml.in.h:34 ../rules/evdev.xml.in.h:34
-msgid "Add the EuroSign to the E key."
-msgstr "Az Euro jel hozzáadása az E billentyűhöz."
-
-#: ../rules/base.xml.in.h:35 ../rules/evdev.xml.in.h:35
-msgid "Add the standard behavior to Menu key."
-msgstr "A standard funkcionalitás hozzáadása a Menü gombhoz."
-
-#: ../rules/base.xml.in.h:36 ../rules/evdev.xml.in.h:36
-msgid "Adding the EuroSign to certain keys"
+#: ../rules/base.xml.in.h:36
+msgid "Adding EuroSign to certain keys"
msgstr "Az Euro jel hozzáadása bizonyos billentyűkhöz"
-#: ../rules/base.xml.in.h:37 ../rules/evdev.xml.in.h:37
+#: ../rules/base.xml.in.h:37
msgid "Advance Scorpius KI"
msgstr "Advance Scorpius KI"
-#: ../rules/base.xml.in.h:38 ../rules/evdev.xml.in.h:38
+#: ../rules/base.xml.in.h:38
msgid "Afg"
msgstr "Afg"
-#: ../rules/base.xml.in.h:39 ../rules/evdev.xml.in.h:39
+#: ../rules/base.xml.in.h:39
msgid "Afghanistan"
msgstr "Afganisztán"
-#: ../rules/base.xml.in.h:40 ../rules/evdev.xml.in.h:40
+#: ../rules/base.xml.in.h:40
msgid "Akan"
msgstr "akan"
-#: ../rules/base.xml.in.h:41 ../rules/evdev.xml.in.h:41
+#: ../rules/base.xml.in.h:41
msgid "Alb"
msgstr "Alb"
-#: ../rules/base.xml.in.h:42 ../rules/evdev.xml.in.h:42
+#: ../rules/base.xml.in.h:42
msgid "Albania"
msgstr "Albánia"
-#: ../rules/base.xml.in.h:43 ../rules/evdev.xml.in.h:43
-msgid "Alt and Meta are on the Alt keys."
-msgstr "Az Alt és Meta az Alt billentyűkön."
+#: ../rules/base.xml.in.h:43
+msgid "Alt and Meta are on Alt keys"
+msgstr "Az Alt és Meta az Alt billentyűkön"
-#: ../rules/base.xml.in.h:44 ../rules/evdev.xml.in.h:44
-msgid "Alt is mapped to the right Win-key and Super to Menu."
-msgstr "Az Alt a jobb Win billentyűhöz van rendelve és a Super a menühöz."
+#: ../rules/base.xml.in.h:44
+msgid "Alt is mapped to Right Win, Super to Menu"
+msgstr "Az Alt a jobb Win billentyűhöz van rendelve, a Super a Menühöz"
-#: ../rules/base.xml.in.h:45 ../rules/evdev.xml.in.h:45
-msgid "Alt+CapsLock changes layout."
-msgstr "Az Alt+CapsLock kombináció megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:45
+msgid "Alt+CapsLock"
+msgstr "Alt+CapsLock"
-#: ../rules/base.xml.in.h:46 ../rules/evdev.xml.in.h:46
-msgid "Alt+Ctrl change layout."
-msgstr "Az Alt+Ctrl kombináció kiosztást vált."
+#: ../rules/base.xml.in.h:46
+msgid "Alt+Ctrl"
+msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:47 ../rules/evdev.xml.in.h:47
-msgid "Alt+Shift change layout."
-msgstr "Az Alt+Shift kombináció kiosztást vált."
+#: ../rules/base.xml.in.h:47
+msgid "Alt+Shift"
+msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:48 ../rules/evdev.xml.in.h:48
+#: ../rules/base.xml.in.h:48
+msgid "Alt+Space"
+msgstr "Alt+Szóköz"
+
+#: ../rules/base.xml.in.h:49
msgid "Alt-Q"
msgstr "Alt-Q"
-#: ../rules/base.xml.in.h:49 ../rules/evdev.xml.in.h:49
+#: ../rules/base.xml.in.h:50
msgid "Alt/Win key behavior"
msgstr "Az Alt/Win billentyűk viselkedése"
-#: ../rules/base.xml.in.h:50 ../rules/evdev.xml.in.h:50
+#: ../rules/base.xml.in.h:51
msgid "Alternative"
msgstr "Alternatív"
-#: ../rules/base.xml.in.h:51 ../rules/evdev.xml.in.h:51
+#: ../rules/base.xml.in.h:52
msgid "Alternative Eastern"
msgstr "Alternatív keleti"
-#: ../rules/base.xml.in.h:52 ../rules/evdev.xml.in.h:52
+#: ../rules/base.xml.in.h:53
msgid "Alternative Phonetic"
msgstr "Alternatív fonetikus"
-#: ../rules/base.xml.in.h:53 ../rules/evdev.xml.in.h:53
+#: ../rules/base.xml.in.h:54
msgid "Alternative international (former us_intl)"
msgstr "Alternatív nemzetközi (korábban us_intl)"
-#: ../rules/base.xml.in.h:54 ../rules/evdev.xml.in.h:54
+#: ../rules/base.xml.in.h:55
msgid "Alternative, Sun dead keys"
msgstr "Alternatív, Sun halott billentyűk"
-#: ../rules/base.xml.in.h:55 ../rules/evdev.xml.in.h:55
+#: ../rules/base.xml.in.h:56
msgid "Alternative, eliminate dead keys"
msgstr "Alternatív, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:56 ../rules/evdev.xml.in.h:56
+#: ../rules/base.xml.in.h:57
msgid "Alternative, latin-9 only"
msgstr "Alternatív, csak latin-9"
-#: ../rules/base.xml.in.h:57 ../rules/evdev.xml.in.h:57
+#: ../rules/base.xml.in.h:58
msgid "And"
msgstr "And"
-#: ../rules/base.xml.in.h:58 ../rules/evdev.xml.in.h:58
+#: ../rules/base.xml.in.h:59
msgid "Andorra"
msgstr "Andorra"
-#: ../rules/base.xml.in.h:59 ../rules/evdev.xml.in.h:59
+#: ../rules/base.xml.in.h:60
+msgid "Any Alt key"
+msgstr "Bármely Alt billentyű"
+
+#: ../rules/base.xml.in.h:61
+msgid "Any Win key"
+msgstr "Bármely Win billentyű"
+
+#: ../rules/base.xml.in.h:62
+msgid "Any Win key (while pressed)"
+msgstr "Bármely Win billentyű (lenyomva tartva)"
+
+#: ../rules/base.xml.in.h:63
msgid "Apostrophe (') variant"
msgstr "Aposztróf (') változat"
-#: ../rules/base.xml.in.h:60 ../rules/evdev.xml.in.h:60
+#: ../rules/base.xml.in.h:64
msgid "Apple"
msgstr "Apple"
-#: ../rules/base.xml.in.h:61 ../rules/evdev.xml.in.h:61
+#: ../rules/base.xml.in.h:65
msgid "Apple Laptop"
msgstr "Apple noteszgép"
-#: ../rules/base.xml.in.h:62 ../rules/evdev.xml.in.h:62
+#: ../rules/base.xml.in.h:66
msgid "Ara"
msgstr "Ara"
-#: ../rules/base.xml.in.h:63 ../rules/evdev.xml.in.h:63
+#: ../rules/base.xml.in.h:67
msgid "Arabic"
msgstr "Arab"
-#: ../rules/base.xml.in.h:64 ../rules/evdev.xml.in.h:64
+#: ../rules/base.xml.in.h:68
msgid "Arm"
msgstr "Arm"
-#: ../rules/base.xml.in.h:65 ../rules/evdev.xml.in.h:65
+#: ../rules/base.xml.in.h:69
msgid "Armenia"
msgstr "Örményország"
-#: ../rules/base.xml.in.h:66 ../rules/evdev.xml.in.h:66
+#: ../rules/base.xml.in.h:70
msgid "Asturian variant with bottom-dot H and bottom-dot L"
msgstr "Asztúri változat középső pontos H és L karakterrel"
-#: ../rules/base.xml.in.h:67 ../rules/evdev.xml.in.h:67
+#: ../rules/base.xml.in.h:71
msgid "Asus Laptop"
msgstr "Asus noteszgép"
-#: ../rules/base.xml.in.h:68 ../rules/evdev.xml.in.h:68
+#: ../rules/base.xml.in.h:72
+msgid "At bottom left"
+msgstr "Bal oldalt, alul"
+
+#: ../rules/base.xml.in.h:73
+msgid "At left of 'A'"
+msgstr "Az „Aâ€-tól balra"
+
+#: ../rules/base.xml.in.h:74
msgid "Aze"
msgstr "Aze"
-#: ../rules/base.xml.in.h:69 ../rules/evdev.xml.in.h:69
+#: ../rules/base.xml.in.h:75
msgid "Azerbaijan"
msgstr "Azerbajdzsán"
-#: ../rules/base.xml.in.h:70 ../rules/evdev.xml.in.h:70
+#: ../rules/base.xml.in.h:76
msgid "Azona RF2300 wireless Internet Keyboard"
msgstr "Azona RF2300 wireless Internet billentyűzet"
-#: ../rules/base.xml.in.h:71 ../rules/evdev.xml.in.h:71
+#: ../rules/base.xml.in.h:77
msgid "BTC 5090"
msgstr "BTC 5090"
-#: ../rules/base.xml.in.h:72 ../rules/evdev.xml.in.h:72
+#: ../rules/base.xml.in.h:78
msgid "BTC 5113RF Multimedia"
msgstr "BTC 5113RF Multimedia"
-#: ../rules/base.xml.in.h:73 ../rules/evdev.xml.in.h:73
+#: ../rules/base.xml.in.h:79
msgid "BTC 5126T"
msgstr "BTC 5126T"
-#: ../rules/base.xml.in.h:74 ../rules/evdev.xml.in.h:74
+#: ../rules/base.xml.in.h:80
msgid "BTC 6301URF"
msgstr "BTC 6301URF"
-#: ../rules/base.xml.in.h:75 ../rules/evdev.xml.in.h:75
+#: ../rules/base.xml.in.h:81
msgid "BTC 9000"
msgstr "BTC 9000"
-#: ../rules/base.xml.in.h:76 ../rules/evdev.xml.in.h:76
+#: ../rules/base.xml.in.h:82
msgid "BTC 9000A"
msgstr "BTC 9000A"
-#: ../rules/base.xml.in.h:77 ../rules/evdev.xml.in.h:77
+#: ../rules/base.xml.in.h:83
msgid "BTC 9001AH"
msgstr "BTC 9001AH"
-#: ../rules/base.xml.in.h:78 ../rules/evdev.xml.in.h:78
+#: ../rules/base.xml.in.h:84
msgid "BTC 9019U"
msgstr "BTC 9019U"
-#: ../rules/base.xml.in.h:79 ../rules/evdev.xml.in.h:79
+#: ../rules/base.xml.in.h:85
+msgid "BTC 9116U Mini Wireless Internet and Gaming"
+msgstr "BTC 9116U Mini Wireless internet és játék"
+
+#: ../rules/base.xml.in.h:86
msgid "Baltic+"
msgstr "Balti+"
-#: ../rules/base.xml.in.h:80 ../rules/evdev.xml.in.h:80
+#: ../rules/base.xml.in.h:87
msgid "Ban"
msgstr "Ban"
-#: ../rules/base.xml.in.h:81 ../rules/evdev.xml.in.h:81
+#: ../rules/base.xml.in.h:88
msgid "Bangladesh"
msgstr "Banglades"
-#: ../rules/base.xml.in.h:82 ../rules/evdev.xml.in.h:82
+#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Baskír"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:83 ../rules/evdev.xml.in.h:83
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Fehéroroszország"
-#: ../rules/base.xml.in.h:84 ../rules/evdev.xml.in.h:84
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgium"
-#: ../rules/base.xml.in.h:85 ../rules/evdev.xml.in.h:85
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:86 ../rules/evdev.xml.in.h:86
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:87 ../rules/evdev.xml.in.h:87
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:88 ../rules/evdev.xml.in.h:88
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengáli"
-#: ../rules/base.xml.in.h:89 ../rules/evdev.xml.in.h:89
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengáli probhat"
-#: ../rules/base.xml.in.h:90 ../rules/evdev.xml.in.h:90
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomikus, Dvorak kiosztás"
-#: ../rules/base.xml.in.h:91 ../rules/evdev.xml.in.h:91
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomikus, Dvorak kiosztás, csak latin-9"
-#: ../rules/base.xml.in.h:92 ../rules/evdev.xml.in.h:92
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:93 ../rules/evdev.xml.in.h:93
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:94 ../rules/evdev.xml.in.h:94
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhután"
-#: ../rules/base.xml.in.h:95 ../rules/evdev.xml.in.h:95
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Bibliai héber (Tiro)"
-#: ../rules/base.xml.in.h:96 ../rules/evdev.xml.in.h:96
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:97 ../rules/evdev.xml.in.h:97
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:98 ../rules/evdev.xml.in.h:98
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosznia és Hercegovina"
-#: ../rules/base.xml.in.h:99 ../rules/evdev.xml.in.h:99
-msgid "Both Alt keys together change layout."
-msgstr "A két Alt billentyű együtt változtatja meg a kiosztást."
+#: ../rules/base.xml.in.h:107
+msgid "Both Alt keys together"
+msgstr "A két Alt billentyű együtt"
-#: ../rules/base.xml.in.h:100 ../rules/evdev.xml.in.h:100
-msgid "Both Ctrl keys together change layout."
-msgstr "A két Ctrl billentyű együtt változtatja meg a kiosztást."
+#: ../rules/base.xml.in.h:108
+msgid "Both Ctrl keys together"
+msgstr "A két Ctrl billentyű együtt"
-#: ../rules/base.xml.in.h:101 ../rules/evdev.xml.in.h:101
-msgid "Both Shift keys together change layout."
-msgstr "A két Shift billentyű együtt változtatja meg a kiosztást."
+#: ../rules/base.xml.in.h:109
+msgid "Both Shift keys together"
+msgstr "A két Shift billentyű együtt"
-#: ../rules/base.xml.in.h:102 ../rules/evdev.xml.in.h:102
-msgid "Both Win-keys switch layout while pressed."
-msgstr "A két Win billentyű lenyomva tartva megváltoztatja a kiosztást."
-
-#: ../rules/base.xml.in.h:103 ../rules/evdev.xml.in.h:103
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:104 ../rules/evdev.xml.in.h:104
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:105 ../rules/evdev.xml.in.h:105
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brazília"
-#: ../rules/base.xml.in.h:106 ../rules/evdev.xml.in.h:106
-msgid "Brazilian ABNT2"
-msgstr "Brazil ABNT2"
+#: ../rules/base.xml.in.h:113
+msgid "Breton"
+msgstr "Breton"
-#: ../rules/base.xml.in.h:107 ../rules/evdev.xml.in.h:107
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:108 ../rules/evdev.xml.in.h:108
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet billentyűzet"
-#: ../rules/base.xml.in.h:109 ../rules/evdev.xml.in.h:109
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:110 ../rules/evdev.xml.in.h:110
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgária"
-#: ../rules/base.xml.in.h:111 ../rules/evdev.xml.in.h:111
+#: ../rules/base.xml.in.h:118
+msgid "CRULP"
+msgstr "CRULP"
+
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Kambodzsa"
-#: ../rules/base.xml.in.h:112 ../rules/evdev.xml.in.h:112
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:113 ../rules/evdev.xml.in.h:113
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanada"
-#: ../rules/base.xml.in.h:114 ../rules/evdev.xml.in.h:114
-msgid "Caps Lock is Compose."
-msgstr "Caps Lock Compose-ként működik."
+#: ../rules/base.xml.in.h:122
+msgid "Caps Lock"
+msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:115 ../rules/evdev.xml.in.h:115
-msgid "CapsLock LED shows alternative layout."
-msgstr "A CapsLock LED-je mutassa az alternatív csoportot."
+#: ../rules/base.xml.in.h:123
+msgid "CapsLock"
+msgstr "CapsLock"
-#: ../rules/base.xml.in.h:116 ../rules/evdev.xml.in.h:116
-msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock."
-msgstr "A CapsLock Shiftként működik zárolással. A Shift szünetelteti a nagybetűsítést."
+#: ../rules/base.xml.in.h:124
+msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
+msgstr "A CapsLock (az első kiosztásra), Shift+CapsLock (az utolsó kiosztásra)"
-#: ../rules/base.xml.in.h:117 ../rules/evdev.xml.in.h:117
-msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock."
-msgstr "A CapsLock Shiftként működik zárolással. A Shift nem befolyásolja a nagybetűsítést."
+#: ../rules/base.xml.in.h:125
+msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
+msgstr "CapsLock (lenyomva tartva), Alt+CapsLock végzi az eredeti nagybetűsítési műveletet"
-#: ../rules/base.xml.in.h:118 ../rules/evdev.xml.in.h:118
-msgid "CapsLock just locks the Shift modifier."
-msgstr "A CapsLock csak zárolja a Shift módosítót."
+#: ../rules/base.xml.in.h:126
+msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
+msgstr "A CapsLock Shiftként működik zárolással. A Shift „szünetelteti†a nagybetűsítést"
-#: ../rules/base.xml.in.h:119 ../rules/evdev.xml.in.h:119
-msgid "CapsLock key behavior"
-msgstr "A CapsLock billentyű használati módja"
+#: ../rules/base.xml.in.h:127
+msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
+msgstr "A CapsLock Shiftként működik zárolással. A Shift nem befolyásolja a nagybetűsítést"
-#: ../rules/base.xml.in.h:120 ../rules/evdev.xml.in.h:120
-msgid "CapsLock key changes layout."
-msgstr "A CapsLock billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "A Caps Lock letiltva"
-#: ../rules/base.xml.in.h:121 ../rules/evdev.xml.in.h:121
-msgid "CapsLock switch to first layout, Shift+CapsLock switch to last layout."
-msgstr "A CapsLock vált az első kiosztásra, a Shift+CapsLock az utolsó kiosztásra."
+#: ../rules/base.xml.in.h:129
+msgid "CapsLock key behavior"
+msgstr "A CapsLock billentyű használati módja"
-#: ../rules/base.xml.in.h:122 ../rules/evdev.xml.in.h:122
-msgid "CapsLock toggles Shift so all keys are affected."
-msgstr "A CapsLock átváltja a Shift-et, így minden billentyű érintett."
+#: ../rules/base.xml.in.h:130
+msgid "CapsLock toggles Shift so all keys are affected"
+msgstr "A CapsLock átváltja a Shiftet, így minden billentyű érintett"
-#: ../rules/base.xml.in.h:123 ../rules/evdev.xml.in.h:123
-msgid "CapsLock toggles normal capitalization of alphabetic characters."
-msgstr "A CapsLock átváltja az ábécé szerinti karakterek nagybetűsítését."
+#: ../rules/base.xml.in.h:131
+msgid "CapsLock toggles normal capitalization of alphabetic characters"
+msgstr "A CapsLock átváltja a betűkarakterek normál kis- és nagybetűit"
-#: ../rules/base.xml.in.h:124 ../rules/evdev.xml.in.h:124
-msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock."
-msgstr "A CapsLock belső nagybetűkre váltást használ. A Shift szünetelteti a nagybetűsítést."
+#: ../rules/base.xml.in.h:132
+msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
+msgstr "A CapsLock belső nagybetűkre váltást használ. A Shift „szünetelteti†a nagybetűsítést"
-#: ../rules/base.xml.in.h:125 ../rules/evdev.xml.in.h:125
-msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock."
-msgstr "A CapsLock belső nagybetűkre váltást használ. A Shift nem befolyásolja a nagybetűsítést."
+#: ../rules/base.xml.in.h:133
+msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
+msgstr "A CapsLock belső nagybetűkre váltást használ. A Shift nem befolyásolja a nagybetűsítést"
-#: ../rules/base.xml.in.h:126 ../rules/evdev.xml.in.h:126
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Katalán változat középső pontos L karakterrel"
-#: ../rules/base.xml.in.h:127 ../rules/evdev.xml.in.h:127
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cedilla"
-#: ../rules/base.xml.in.h:128 ../rules/evdev.xml.in.h:128
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:129 ../rules/evdev.xml.in.h:129
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:130 ../rules/evdev.xml.in.h:130
+#: ../rules/base.xml.in.h:138
+msgid "Cherry B.UNLIMITED"
+msgstr "Cherry B.UNLIMITED"
+
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:131 ../rules/evdev.xml.in.h:131
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (másik lehetőség)"
-#: ../rules/base.xml.in.h:132 ../rules/evdev.xml.in.h:132
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:133 ../rules/evdev.xml.in.h:133
+#: ../rules/base.xml.in.h:142
+msgid "Cherry CyMotion Expert"
+msgstr "Cherry CyMotion Expert"
+
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:134 ../rules/evdev.xml.in.h:134
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:135 ../rules/evdev.xml.in.h:135
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet billentyűzet"
-#: ../rules/base.xml.in.h:136 ../rules/evdev.xml.in.h:136
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:137 ../rules/evdev.xml.in.h:137
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:138 ../rules/evdev.xml.in.h:138
+#: ../rules/base.xml.in.h:148
+msgid "Chicony KU-0420"
+msgstr "Chicony KU-0420"
+
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Kína"
-#: ../rules/base.xml.in.h:139 ../rules/evdev.xml.in.h:139
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Csuvas"
-#: ../rules/base.xml.in.h:140 ../rules/evdev.xml.in.h:140
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Csuvas latin"
-#: ../rules/base.xml.in.h:141 ../rules/evdev.xml.in.h:141
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Klasszikus"
-#: ../rules/base.xml.in.h:142 ../rules/evdev.xml.in.h:142
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Klasszikus Dvorak"
-#: ../rules/base.xml.in.h:143 ../rules/evdev.xml.in.h:143
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:144 ../rules/evdev.xml.in.h:144
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:145 ../rules/evdev.xml.in.h:145
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:146 ../rules/evdev.xml.in.h:146
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access billentyűzet"
-#: ../rules/base.xml.in.h:147 ../rules/evdev.xml.in.h:147
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet billentyűzet (13 gombos)"
-#: ../rules/base.xml.in.h:148 ../rules/evdev.xml.in.h:148
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet billentyűzet (18 gombos)"
-#: ../rules/base.xml.in.h:149 ../rules/evdev.xml.in.h:149
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet billentyűzet (7 gombos)"
-#: ../rules/base.xml.in.h:150 ../rules/evdev.xml.in.h:150
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq billentyűzet"
-#: ../rules/base.xml.in.h:151 ../rules/evdev.xml.in.h:151
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
-msgstr "A kombináló (Compose) billentyű helyzete"
+msgstr "A kombináló (Compose) billentyű helye"
-#: ../rules/base.xml.in.h:152 ../rules/evdev.xml.in.h:152
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Kongói Demokratikus Köztársaság"
-#: ../rules/base.xml.in.h:153 ../rules/evdev.xml.in.h:153
-msgid "Control is mapped to the Win-keys (and the usual Ctrl keys)."
-msgstr "A Control billentyű a Win billentyűkhöz van rendelve (és a szokásos Ctrl billentyűkhöz)."
+#: ../rules/base.xml.in.h:164
+msgid "Control + Alt + Backspace"
+msgstr "Control + Alt + Backspace"
-#: ../rules/base.xml.in.h:154 ../rules/evdev.xml.in.h:154
-msgid "Croatia"
-msgstr "Horvátország"
+#: ../rules/base.xml.in.h:165
+msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
+msgstr "A Control az Alt billentyűkhöz, az Alt a Win billentyűkhöz van rendelve"
+
+#: ../rules/base.xml.in.h:166
+msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
+msgstr "A Control a Win billentyűkhöz van rendelve (és a szokásos Ctrl billentyűkhöz)"
+
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
+msgid "Crimean Tatar (Dobruca-1 Q)"
+msgstr "Krími tatár (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:155 ../rules/evdev.xml.in.h:155
-msgid "Ctrl key at bottom left"
-msgstr "Ctrl billentyű bal oldalt, alul"
+#: ../rules/base.xml.in.h:169
+msgid "Crimean Tatar (Dobruca-2 Q)"
+msgstr "Krími tatár (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:156 ../rules/evdev.xml.in.h:156
-msgid "Ctrl key at left of 'A'"
-msgstr "Ctrl billentyű az \"A\"-tól balra"
+#: ../rules/base.xml.in.h:170
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr "Krími tatár (török Alt-Q)"
-#: ../rules/base.xml.in.h:157 ../rules/evdev.xml.in.h:157
+#: ../rules/base.xml.in.h:171
+msgid "Crimean Tatar (Turkish F)"
+msgstr "Krími tatár (török F)"
+
+#: ../rules/base.xml.in.h:172
+msgid "Crimean Tatar (Turkish Q)"
+msgstr "Krími tatár (török Q)"
+
+#: ../rules/base.xml.in.h:173
+msgid "Croatia"
+msgstr "Horvátország"
+
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Ctrl billentyű helyzete"
-#: ../rules/base.xml.in.h:158 ../rules/evdev.xml.in.h:158
-msgid "Ctrl+Shift change layout."
-msgstr "A Ctrl+Shift kombináció kiosztást vált."
+#: ../rules/base.xml.in.h:175
+msgid "Ctrl+Shift"
+msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:159 ../rules/evdev.xml.in.h:159
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Cirill"
-#: ../rules/base.xml.in.h:160 ../rules/evdev.xml.in.h:160
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Cirill, »csúcsos« idézőjelekkel"
-#: ../rules/base.xml.in.h:161 ../rules/evdev.xml.in.h:161
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Cirill, a Z és a ZHE felcserélve"
-#: ../rules/base.xml.in.h:162 ../rules/evdev.xml.in.h:162
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:163 ../rules/evdev.xml.in.h:163
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Csehország"
-#: ../rules/base.xml.in.h:164 ../rules/evdev.xml.in.h:164
+#: ../rules/base.xml.in.h:181
+msgid "DOS"
+msgstr "DOS"
+
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:165 ../rules/evdev.xml.in.h:165
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:166 ../rules/evdev.xml.in.h:166
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:167 ../rules/evdev.xml.in.h:167
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Halott vessző (´) ékezet"
-#: ../rules/base.xml.in.h:168 ../rules/evdev.xml.in.h:168
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Halott grave (`) ékezet"
-#: ../rules/base.xml.in.h:169 ../rules/evdev.xml.in.h:169
-msgid "Default numeric keypad keys."
-msgstr "Alapértelmezett számbillentyűk."
+#: ../rules/base.xml.in.h:187
+msgid "Default numeric keypad keys"
+msgstr "Alapértelmezett számbillentyűk"
-#: ../rules/base.xml.in.h:170 ../rules/evdev.xml.in.h:170
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:171 ../rules/evdev.xml.in.h:171
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-gombos PC"
-#: ../rules/base.xml.in.h:172 ../rules/evdev.xml.in.h:172
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Inspiron 6xxx/8xxx noteszgép"
-#: ../rules/base.xml.in.h:173 ../rules/evdev.xml.in.h:173
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Precision M sorozatú noteszgép"
-#: ../rules/base.xml.in.h:174 ../rules/evdev.xml.in.h:174
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude sorozatú noteszgép"
-#: ../rules/base.xml.in.h:175 ../rules/evdev.xml.in.h:175
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:176 ../rules/evdev.xml.in.h:176
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:177 ../rules/evdev.xml.in.h:177
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:178 ../rules/evdev.xml.in.h:178
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB multimédia-billentyűzet"
-#: ../rules/base.xml.in.h:179 ../rules/evdev.xml.in.h:179
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Dánia"
-#: ../rules/base.xml.in.h:180 ../rules/evdev.xml.in.h:180
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:181 ../rules/evdev.xml.in.h:181
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop billentyűzet"
-#: ../rules/base.xml.in.h:182 ../rules/evdev.xml.in.h:182
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802 sorozat"
-#: ../rules/base.xml.in.h:183 ../rules/evdev.xml.in.h:183
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak-féle"
-#: ../rules/base.xml.in.h:184 ../rules/evdev.xml.in.h:184
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (UK központozás)"
-#: ../rules/base.xml.in.h:185 ../rules/evdev.xml.in.h:185
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Nemzetközi Dvorak"
-#: ../rules/base.xml.in.h:186 ../rules/evdev.xml.in.h:186
-msgid "Dvorak, Polish quotes on key \"1/!\""
-msgstr "Dvorak, lengyel idézőjelek az \"1/!\" billentyűn"
+#: ../rules/base.xml.in.h:204
+msgid "Dvorak, Polish quotes on key 1"
+msgstr "Dvorak, lengyel idézőjelek az 1 billentyűn"
-#: ../rules/base.xml.in.h:187 ../rules/evdev.xml.in.h:187
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, lengyel idézőjelek az idézőjel billentyűn"
-#: ../rules/base.xml.in.h:188 ../rules/evdev.xml.in.h:188
+#: ../rules/base.xml.in.h:206
+msgid "E"
+msgstr "E"
+
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Keleti"
-#: ../rules/base.xml.in.h:189 ../rules/evdev.xml.in.h:189
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:190 ../rules/evdev.xml.in.h:190
+#: ../rules/base.xml.in.h:209
+msgid "Enable extra typographic characters"
+msgstr "Extra tipográfiai karakterek engedélyezése"
+
+#: ../rules/base.xml.in.h:210
+msgid "English"
+msgstr "Angol"
+
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:191 ../rules/evdev.xml.in.h:191
+#: ../rules/base.xml.in.h:212
+msgid "Enter on keypad"
+msgstr "Enter a számbillentyűzeten"
+
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:192 ../rules/evdev.xml.in.h:192
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomikus"
-#: ../rules/base.xml.in.h:193 ../rules/evdev.xml.in.h:193
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:194 ../rules/evdev.xml.in.h:194
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "eszperantó"
-#: ../rules/base.xml.in.h:195 ../rules/evdev.xml.in.h:195
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:196 ../rules/evdev.xml.in.h:196
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Észtország"
-#: ../rules/base.xml.in.h:197 ../rules/evdev.xml.in.h:197
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:198 ../rules/evdev.xml.in.h:198
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiópia"
-#: ../rules/base.xml.in.h:199 ../rules/evdev.xml.in.h:199
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev által felügyelt billentyűzet"
-#: ../rules/base.xml.in.h:200 ../rules/evdev.xml.in.h:200
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:201 ../rules/evdev.xml.in.h:201
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "ewe"
-#: ../rules/base.xml.in.h:202 ../rules/evdev.xml.in.h:202
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Kibővített"
-#: ../rules/base.xml.in.h:203 ../rules/evdev.xml.in.h:203
+#: ../rules/base.xml.in.h:225
+msgid "Extended - Winkeys"
+msgstr "Kibővített - Win billentyűk"
+
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Kibővített visszaper"
-#: ../rules/base.xml.in.h:204 ../rules/evdev.xml.in.h:204
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F-betűs (F) változat"
-#: ../rules/base.xml.in.h:205 ../rules/evdev.xml.in.h:205
+#: ../rules/base.xml.in.h:228
+msgid "FL90"
+msgstr "FL90"
+
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:206 ../rules/evdev.xml.in.h:206
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Feröer szigetek"
-#: ../rules/base.xml.in.h:207 ../rules/evdev.xml.in.h:207
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:208 ../rules/evdev.xml.in.h:208
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finnország"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:211 ../rules/evdev.xml.in.h:211
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Negyedik szintű billentyű absztrakt elválasztókkal"
-#: ../rules/base.xml.in.h:212 ../rules/evdev.xml.in.h:212
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Negyedik szintű billentyű vesszővel"
-#: ../rules/base.xml.in.h:213 ../rules/evdev.xml.in.h:213
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Negyedik szintű billentyű ponttal"
-#: ../rules/base.xml.in.h:214 ../rules/evdev.xml.in.h:214
+#: ../rules/base.xml.in.h:238
+msgid "Four-level key with dot, latin-9 restriction"
+msgstr "Negyedik szintű billentyű ponttal, latin-9 korlátozás"
+
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Negyedik szintű billentyű momayyez-val"
-#: ../rules/base.xml.in.h:215 ../rules/evdev.xml.in.h:215
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:216 ../rules/evdev.xml.in.h:216
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Franciaország"
-#: ../rules/base.xml.in.h:217 ../rules/evdev.xml.in.h:217
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Francia"
-#: ../rules/base.xml.in.h:218 ../rules/evdev.xml.in.h:218
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Francia (Macintosh)"
-#: ../rules/base.xml.in.h:219 ../rules/evdev.xml.in.h:219
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Francia (hagyományos)"
-#: ../rules/base.xml.in.h:220 ../rules/evdev.xml.in.h:220
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Francia Dvorak"
-#: ../rules/base.xml.in.h:221 ../rules/evdev.xml.in.h:221
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Francia, Sun halott billentyűk"
-#: ../rules/base.xml.in.h:222 ../rules/evdev.xml.in.h:222
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Francia, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:223 ../rules/evdev.xml.in.h:223
-msgid "Fujitsu-Siemens Computers AMILO A1667G laptop"
-msgstr "Fujitsu-Siemens Computers AMILO A1667G noteszgép"
+#: ../rules/base.xml.in.h:248
+msgid "Fujitsu-Siemens Computers AMILO laptop"
+msgstr "Fujitsu-Siemens Computers AMILO noteszgép"
-#: ../rules/base.xml.in.h:224 ../rules/evdev.xml.in.h:224
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:225 ../rules/evdev.xml.in.h:225
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:226 ../rules/evdev.xml.in.h:226
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "ga"
-#: ../rules/base.xml.in.h:227 ../rules/evdev.xml.in.h:227
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Ãltalános 101 gombos PC"
-#: ../rules/base.xml.in.h:228 ../rules/evdev.xml.in.h:228
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Ãltalános 102 gombos (nemzetközi) PC"
-#: ../rules/base.xml.in.h:229 ../rules/evdev.xml.in.h:229
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Ãltalános 104 gombos PC"
-#: ../rules/base.xml.in.h:230 ../rules/evdev.xml.in.h:230
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Ãltalános 105 gombos (nemzetközi) PC"
-#: ../rules/base.xml.in.h:231 ../rules/evdev.xml.in.h:231
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:232 ../rules/evdev.xml.in.h:232
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:233 ../rules/evdev.xml.in.h:233
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:234 ../rules/evdev.xml.in.h:234
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:235 ../rules/evdev.xml.in.h:235
+#: ../rules/base.xml.in.h:260
+msgid "Genius KKB-2050HS"
+msgstr "Genius KKB-2050HS"
+
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:236 ../rules/evdev.xml.in.h:236
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Grúzia"
-#: ../rules/base.xml.in.h:237 ../rules/evdev.xml.in.h:237
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Grúz"
-#: ../rules/base.xml.in.h:238 ../rules/evdev.xml.in.h:238
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Grúz AZERTY Tskapo"
-#: ../rules/base.xml.in.h:239 ../rules/evdev.xml.in.h:239
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Német (Macintosh)"
-#: ../rules/base.xml.in.h:240 ../rules/evdev.xml.in.h:240
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Német, Sun halott billentyűk"
-#: ../rules/base.xml.in.h:241 ../rules/evdev.xml.in.h:241
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Német, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:242 ../rules/evdev.xml.in.h:242
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Németország"
-#: ../rules/base.xml.in.h:243 ../rules/evdev.xml.in.h:243
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:244 ../rules/evdev.xml.in.h:244
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghána"
-#: ../rules/base.xml.in.h:245 ../rules/evdev.xml.in.h:245
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:246 ../rules/evdev.xml.in.h:246
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Görögország"
-#: ../rules/base.xml.in.h:247 ../rules/evdev.xml.in.h:247
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Csoport átváltása a szorzás/osztás billentyűn"
-#: ../rules/base.xml.in.h:248 ../rules/evdev.xml.in.h:248
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:249 ../rules/evdev.xml.in.h:249
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:250 ../rules/evdev.xml.in.h:250
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gudzsarati"
-#: ../rules/base.xml.in.h:251 ../rules/evdev.xml.in.h:251
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:252 ../rules/evdev.xml.in.h:252
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:253 ../rules/evdev.xml.in.h:253
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Forgás"
-#: ../rules/base.xml.in.h:254 ../rules/evdev.xml.in.h:254
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking billentyűzet"
-#: ../rules/base.xml.in.h:255 ../rules/evdev.xml.in.h:255
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking billenytűzet Mac-hez"
-#: ../rules/base.xml.in.h:256 ../rules/evdev.xml.in.h:256
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "hausza"
-#: ../rules/base.xml.in.h:257 ../rules/evdev.xml.in.h:257
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet billentyűzet"
-#: ../rules/base.xml.in.h:258 ../rules/evdev.xml.in.h:258
-msgid "Hewlett-Packard Internet Keyboard 5181"
-msgstr "Hewlett-Packard Internet billentyűzet 5181"
-
-#: ../rules/base.xml.in.h:259 ../rules/evdev.xml.in.h:259
-msgid "Hewlett-Packard Internet Keyboard 5185"
-msgstr "Hewlett-Packard Internet billentyűzet 5185"
-
-#: ../rules/base.xml.in.h:260 ../rules/evdev.xml.in.h:260
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:261 ../rules/evdev.xml.in.h:261
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:262 ../rules/evdev.xml.in.h:262
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:263 ../rules/evdev.xml.in.h:263
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:264 ../rules/evdev.xml.in.h:264
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:265 ../rules/evdev.xml.in.h:265
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:266 ../rules/evdev.xml.in.h:266
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:267 ../rules/evdev.xml.in.h:267
-msgid "Hewlett-Packard SK-2501 Multimedia Keyboard"
-msgstr "Hewlett-Packard SK-2501 multimédia billentyűzet"
+#: ../rules/base.xml.in.h:291
+msgid "Hewlett-Packard Pavilion dv5"
+msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:268 ../rules/evdev.xml.in.h:268
-msgid "Hewlett-Packard SK-2505 Internet Keyboard"
-msgstr "Hewlett-Packard SK-2505 Internet billentyűzet"
+#: ../rules/base.xml.in.h:292
+msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
+msgstr "Hewlett-Packard SK-250x multimédia billentyűzet"
-#: ../rules/base.xml.in.h:269 ../rules/evdev.xml.in.h:269
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:270 ../rules/evdev.xml.in.h:270
+#: ../rules/base.xml.in.h:294
+msgid "Hexadecimal"
+msgstr "Hexadecimális"
+
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:271 ../rules/evdev.xml.in.h:271
+#: ../rules/base.xml.in.h:296
+msgid "Hindi Wx"
+msgstr "Hindi Wx"
+
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homofon"
-#: ../rules/base.xml.in.h:272 ../rules/evdev.xml.in.h:272
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:273 ../rules/evdev.xml.in.h:273
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:274 ../rules/evdev.xml.in.h:274
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:275 ../rules/evdev.xml.in.h:275
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Magyarország"
-#: ../rules/base.xml.in.h:276 ../rules/evdev.xml.in.h:276
-msgid "Hyper is mapped to the Win-keys."
-msgstr "A Hyper a Win billentyűkhöz van rendelve."
+#: ../rules/base.xml.in.h:302
+msgid "Hyper is mapped to Win-keys"
+msgstr "A Hyper a Win billentyűkhöz van rendelve"
-#: ../rules/base.xml.in.h:277 ../rules/evdev.xml.in.h:277
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:278 ../rules/evdev.xml.in.h:278
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:279 ../rules/evdev.xml.in.h:279
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:280 ../rules/evdev.xml.in.h:280
-msgid "IBM Rapid Access II (alternate option)"
-msgstr "IBM Rapid Access II (másik lehetőség)"
-
-#: ../rules/base.xml.in.h:281 ../rules/evdev.xml.in.h:281
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM helytakarékos"
-#: ../rules/base.xml.in.h:282 ../rules/evdev.xml.in.h:282
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:283 ../rules/evdev.xml.in.h:283
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, nemzetközi"
-#: ../rules/base.xml.in.h:284 ../rules/evdev.xml.in.h:284
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:285 ../rules/evdev.xml.in.h:285
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:286 ../rules/evdev.xml.in.h:286
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO Alternate"
-#: ../rules/base.xml.in.h:287 ../rules/evdev.xml.in.h:287
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Izland"
-#: ../rules/base.xml.in.h:288 ../rules/evdev.xml.in.h:288
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:289 ../rules/evdev.xml.in.h:289
+#: ../rules/base.xml.in.h:314
+msgid "Include dead tilde"
+msgstr "Halott tilde felvétele"
+
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:290 ../rules/evdev.xml.in.h:290
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "India"
-#: ../rules/base.xml.in.h:291 ../rules/evdev.xml.in.h:291
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Nemzetközi (AltGr halott billentyűkkel)"
-#: ../rules/base.xml.in.h:292 ../rules/evdev.xml.in.h:292
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Nemzetközi (halott billentyűkkel)"
-#: ../rules/base.xml.in.h:293 ../rules/evdev.xml.in.h:293
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:294 ../rules/evdev.xml.in.h:294
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Irán"
-#: ../rules/base.xml.in.h:295 ../rules/evdev.xml.in.h:295
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:296 ../rules/evdev.xml.in.h:296
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Ãrország"
-#: ../rules/base.xml.in.h:297 ../rules/evdev.xml.in.h:297
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:298 ../rules/evdev.xml.in.h:298
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:299 ../rules/evdev.xml.in.h:299
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:300 ../rules/evdev.xml.in.h:300
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:301 ../rules/evdev.xml.in.h:301
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:302 ../rules/evdev.xml.in.h:302
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Izrael"
-#: ../rules/base.xml.in.h:303 ../rules/evdev.xml.in.h:303
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:304 ../rules/evdev.xml.in.h:304
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Olaszország"
-#: ../rules/base.xml.in.h:305 ../rules/evdev.xml.in.h:305
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japán"
-#: ../rules/base.xml.in.h:306 ../rules/evdev.xml.in.h:306
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japán (PC-98xx sorozat)"
-#: ../rules/base.xml.in.h:307 ../rules/evdev.xml.in.h:307
-msgid "Japanese 106-key"
-msgstr "Japán 106 gombos"
-
-#: ../rules/base.xml.in.h:308 ../rules/evdev.xml.in.h:308
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Japán billentyűzet-beállítások"
-#: ../rules/base.xml.in.h:309 ../rules/evdev.xml.in.h:309
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:310 ../rules/evdev.xml.in.h:310
+#: ../rules/base.xml.in.h:335
+msgid "Kalmyk"
+msgstr "Kalmük"
+
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:311 ../rules/evdev.xml.in.h:311
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "A Kana zárolásbillentyű zárol"
-#: ../rules/base.xml.in.h:312 ../rules/evdev.xml.in.h:312
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:313 ../rules/evdev.xml.in.h:313
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kasub"
-#: ../rules/base.xml.in.h:314 ../rules/evdev.xml.in.h:314
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:315 ../rules/evdev.xml.in.h:315
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "kazah orosszal"
-#: ../rules/base.xml.in.h:316 ../rules/evdev.xml.in.h:316
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazahsztán"
-#: ../rules/base.xml.in.h:317 ../rules/evdev.xml.in.h:317
-msgid "Keypad"
-msgstr "Számbillentyűzet"
+#: ../rules/base.xml.in.h:343
+msgid "Key sequence to kill the X server"
+msgstr "Billentyűsorozat az X kiszolgáló kilövéséhez"
-#: ../rules/base.xml.in.h:318 ../rules/evdev.xml.in.h:318
-msgid "Keypad with unicode additions (arrows and math operators)"
-msgstr "Számbillentyűzet Unicode kiegészítésekkel (nyilak és műveleti jelek)"
+#: ../rules/base.xml.in.h:344
+msgid "Key to choose 3rd level"
+msgstr "Billentyű a harmadik szint választásához"
-#: ../rules/base.xml.in.h:319 ../rules/evdev.xml.in.h:319
-msgid "Keypad with unicode additions (arrows and math operators). Math operators on default level."
-msgstr "Számbillentyűzet Unicode kiegészítésekkel (nyilak és műveleti jelek). A műveleti jelek bekapcsolva az alapértelmezett szinten."
+#: ../rules/base.xml.in.h:345
+msgid "Key(s) to change layout"
+msgstr "A kiosztást megváltoztató billentyűk"
-#: ../rules/base.xml.in.h:320 ../rules/evdev.xml.in.h:320
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:321 ../rules/evdev.xml.in.h:321
+#: ../rules/base.xml.in.h:347
+msgid "Kgz"
+msgstr "Kgz"
+
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:322 ../rules/evdev.xml.in.h:322
-msgid "Kir"
-msgstr "Kir"
-
-#: ../rules/base.xml.in.h:323 ../rules/evdev.xml.in.h:323
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:324 ../rules/evdev.xml.in.h:324
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:325 ../rules/evdev.xml.in.h:325
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Koreai köztársaság"
-#: ../rules/base.xml.in.h:326 ../rules/evdev.xml.in.h:326
-msgid "Korean 106-key"
-msgstr "Koreai 106 gombos"
-
-#: ../rules/base.xml.in.h:327 ../rules/evdev.xml.in.h:327
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:328 ../rules/evdev.xml.in.h:328
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurd, (F)"
-#: ../rules/base.xml.in.h:329 ../rules/evdev.xml.in.h:329
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurd, arab-latin"
-#: ../rules/base.xml.in.h:330 ../rules/evdev.xml.in.h:330
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurd, latin Alt-Q"
-#: ../rules/base.xml.in.h:331 ../rules/evdev.xml.in.h:331
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurd, latin Q"
-#: ../rules/base.xml.in.h:332 ../rules/evdev.xml.in.h:332
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirgizisztán"
-#: ../rules/base.xml.in.h:333 ../rules/evdev.xml.in.h:333
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:334 ../rules/evdev.xml.in.h:334
-msgid "LCtrl+LShift change layout."
-msgstr "A bal Ctrl + bal Shift kombináció kiosztást vált."
-
-#: ../rules/base.xml.in.h:335 ../rules/evdev.xml.in.h:335
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:336 ../rules/evdev.xml.in.h:336
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:337 ../rules/evdev.xml.in.h:337
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:338 ../rules/evdev.xml.in.h:338
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laosz"
-#: ../rules/base.xml.in.h:339 ../rules/evdev.xml.in.h:339
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Compaq noteszgép (pl. Armada) noteszgép-billentyűzet"
-#: ../rules/base.xml.in.h:340 ../rules/evdev.xml.in.h:340
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Compaq noteszgép (pl. Presario) Internet billentyűzet"
-#: ../rules/base.xml.in.h:341 ../rules/evdev.xml.in.h:341
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "eMachines m68xx noteszgép"
-#: ../rules/base.xml.in.h:342 ../rules/evdev.xml.in.h:342
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latin"
-#: ../rules/base.xml.in.h:343 ../rules/evdev.xml.in.h:343
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latin-amerikai"
-#: ../rules/base.xml.in.h:344 ../rules/evdev.xml.in.h:344
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latin Unicode"
-#: ../rules/base.xml.in.h:345 ../rules/evdev.xml.in.h:345
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latin Unicode qwerty"
-#: ../rules/base.xml.in.h:346 ../rules/evdev.xml.in.h:346
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latin qwerty"
-#: ../rules/base.xml.in.h:347 ../rules/evdev.xml.in.h:347
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latin unicode"
-#: ../rules/base.xml.in.h:348 ../rules/evdev.xml.in.h:348
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latin unicode qwerty"
-#: ../rules/base.xml.in.h:349 ../rules/evdev.xml.in.h:349
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latin, »csúcsos« idézőjelekkel"
-#: ../rules/base.xml.in.h:350 ../rules/evdev.xml.in.h:350
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Lettország"
-#: ../rules/base.xml.in.h:351 ../rules/evdev.xml.in.h:351
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:352 ../rules/evdev.xml.in.h:352
-msgid "Layout switching"
-msgstr "Kiosztásváltás"
+#: ../rules/base.xml.in.h:376
+msgid "Left Alt"
+msgstr "Bal Alt"
-#: ../rules/base.xml.in.h:353 ../rules/evdev.xml.in.h:353
-msgid "Left Alt is swapped with left Win-key."
-msgstr "A bal Alt fel van cserélve a bal Win billentyűvel."
+#: ../rules/base.xml.in.h:377
+msgid "Left Alt (while pressed)"
+msgstr "Bal Alt (lenyomva tartva)"
-#: ../rules/base.xml.in.h:354 ../rules/evdev.xml.in.h:354
-msgid "Left Alt key changes layout."
-msgstr "A bal Alt billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:378
+msgid "Left Alt is swapped with Left Win"
+msgstr "A bal Alt fel van cserélve a bal Win billentyűvel"
-#: ../rules/base.xml.in.h:355 ../rules/evdev.xml.in.h:355
-msgid "Left Alt key switches layout while pressed."
-msgstr "A bal Alt billentyű lenyomva tartva megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:379
+msgid "Left Ctrl"
+msgstr "Bal Ctrl"
-#: ../rules/base.xml.in.h:356 ../rules/evdev.xml.in.h:356
-msgid "Left Ctrl key changes layout."
-msgstr "A bal Ctrl billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:380
+msgid "Left Ctrl+Left Shift"
+msgstr "Bal Ctrl+Bal Shift"
-#: ../rules/base.xml.in.h:357 ../rules/evdev.xml.in.h:357
-msgid "Left Shift key changes layout."
-msgstr "A bal Shift billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:381
+msgid "Left Shift"
+msgstr "Bal Shift"
-#: ../rules/base.xml.in.h:358 ../rules/evdev.xml.in.h:358
-msgid "Left Win-key changes layout."
-msgstr "A bal Win billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:382
+msgid "Left Win"
+msgstr "Bal Win"
-#: ../rules/base.xml.in.h:359 ../rules/evdev.xml.in.h:359
-msgid "Left Win-key is Compose."
-msgstr "A bal Win billentyű a kombináló (Compose)."
+#: ../rules/base.xml.in.h:383
+msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
+msgstr "Bal Win (az első kiosztásra), jobb Win/Menü (az utolsó kiosztásra)"
-#: ../rules/base.xml.in.h:360 ../rules/evdev.xml.in.h:360
-msgid "Left Win-key switches layout while pressed."
-msgstr "A bal Win billentyű lenyomva tartva megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:384
+msgid "Left Win (while pressed)"
+msgstr "Bal Win (lenyomva tartva)"
-#: ../rules/base.xml.in.h:361 ../rules/evdev.xml.in.h:361
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Balkezes"
-#: ../rules/base.xml.in.h:362 ../rules/evdev.xml.in.h:362
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Balkezes Dvorák"
-#: ../rules/base.xml.in.h:363 ../rules/evdev.xml.in.h:363
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Örökölt"
-#: ../rules/base.xml.in.h:364 ../rules/evdev.xml.in.h:364
-msgid "Legacy Wang 724 keypad"
-msgstr "Hagyományos Wang 724 számbillentyűzet"
+#: ../rules/base.xml.in.h:388
+msgid "Legacy Wang 724"
+msgstr "Hagyományos Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:366 ../rules/evdev.xml.in.h:366
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Hagyományos számbillentyűzet vesszővel"
-#: ../rules/base.xml.in.h:367 ../rules/evdev.xml.in.h:367
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Hagyományos számbillentyűzet ponttal"
-#: ../rules/base.xml.in.h:368 ../rules/evdev.xml.in.h:368
-msgid "Legacy keypad"
-msgstr "Hagyományos számbillentyűzet"
+#: ../rules/base.xml.in.h:392
+msgid "Less-than/Greater-than"
+msgstr "Kisebb mint/nagyobb mint"
-#: ../rules/base.xml.in.h:369 ../rules/evdev.xml.in.h:369
-msgid "Less-than/Greater-than is Compose."
-msgstr "A kisebb mint/nagyobb mint a kombináló (Compose)."
-
-#: ../rules/base.xml.in.h:370 ../rules/evdev.xml.in.h:370
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Litvánia"
-#: ../rules/base.xml.in.h:371 ../rules/evdev.xml.in.h:371
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access billentyűzet"
-#: ../rules/base.xml.in.h:372 ../rules/evdev.xml.in.h:372
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:373 ../rules/evdev.xml.in.h:373
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (másik lehetőség)"
-#: ../rules/base.xml.in.h:374 ../rules/evdev.xml.in.h:374
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:375 ../rules/evdev.xml.in.h:375
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:376 ../rules/evdev.xml.in.h:376
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:377 ../rules/evdev.xml.in.h:377
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:378 ../rules/evdev.xml.in.h:378
-msgid "Logitech Cordless Desktop Pro (alternate option2)"
-msgstr "Logitech Cordless Desktop Pro (harmadik lehetőség)"
+#: ../rules/base.xml.in.h:401
+msgid "Logitech Cordless Desktop Pro (alternate option 2)"
+msgstr "Logitech Cordless Desktop Pro (másik lehetőség)"
-#: ../rules/base.xml.in.h:379 ../rules/evdev.xml.in.h:379
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:380 ../rules/evdev.xml.in.h:380
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:381 ../rules/evdev.xml.in.h:381
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15, extra billentyűk a G15daemon közvetítésével"
-#: ../rules/base.xml.in.h:382 ../rules/evdev.xml.in.h:382
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech általános billentyűzet"
-#: ../rules/base.xml.in.h:383 ../rules/evdev.xml.in.h:383
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 billentyűzet"
-#: ../rules/base.xml.in.h:384 ../rules/evdev.xml.in.h:384
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet billentyűzet"
-#: ../rules/base.xml.in.h:385 ../rules/evdev.xml.in.h:385
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator billentyűzet"
-#: ../rules/base.xml.in.h:386 ../rules/evdev.xml.in.h:386
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite billentyűzet"
-#: ../rules/base.xml.in.h:387 ../rules/evdev.xml.in.h:387
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X vezeték nélküli asztali médiabillentyűzet"
-#: ../rules/base.xml.in.h:388 ../rules/evdev.xml.in.h:388
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X billentyűzet"
-#: ../rules/base.xml.in.h:389 ../rules/evdev.xml.in.h:389
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge billentyűzet"
-#: ../rules/base.xml.in.h:390 ../rules/evdev.xml.in.h:390
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo billentyűzet"
-#: ../rules/base.xml.in.h:391 ../rules/evdev.xml.in.h:391
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:392 ../rules/evdev.xml.in.h:392
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless billentyűzet (modell: Y-RB6)"
-#: ../rules/base.xml.in.h:393 ../rules/evdev.xml.in.h:393
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:394 ../rules/evdev.xml.in.h:394
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:395 ../rules/evdev.xml.in.h:395
+#: ../rules/base.xml.in.h:418
+msgid "Lower Sorbian"
+msgstr "Alsó szorb"
+
+#: ../rules/base.xml.in.h:419
+msgid "Lower Sorbian (qwertz)"
+msgstr "Alsó szorb (qwertz)"
+
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:396 ../rules/evdev.xml.in.h:396
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:397 ../rules/evdev.xml.in.h:397
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:398 ../rules/evdev.xml.in.h:398
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:399 ../rules/evdev.xml.in.h:399
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:400 ../rules/evdev.xml.in.h:400
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Macedónia"
-#: ../rules/base.xml.in.h:401 ../rules/evdev.xml.in.h:401
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:402 ../rules/evdev.xml.in.h:402
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh Old"
-#: ../rules/base.xml.in.h:403 ../rules/evdev.xml.in.h:403
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, Sun halott billentyűk"
-#: ../rules/base.xml.in.h:404 ../rules/evdev.xml.in.h:404
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:405 ../rules/evdev.xml.in.h:405
-msgid "Make CapsLock an additional Ctrl."
-msgstr "Caps Lock használata egy másik Ctrl-ként."
+#: ../rules/base.xml.in.h:430
+msgid "Make CapsLock an additional Backspace"
+msgstr "A Caps Lock használata másik Backspace-ként"
+
+#: ../rules/base.xml.in.h:431
+msgid "Make CapsLock an additional Ctrl"
+msgstr "A Caps Lock használata másik Ctrl-ként"
+
+#: ../rules/base.xml.in.h:432
+msgid "Make CapsLock an additional ESC"
+msgstr "A Caps Lock használata másik Esc-ként"
+
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "A Caps Lock használata másik Hyper-ként"
-#: ../rules/base.xml.in.h:406 ../rules/evdev.xml.in.h:406
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "A Caps Lock használata másik Num Lock-ként"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "A Caps Lock használata másik Super-ként"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:407 ../rules/evdev.xml.in.h:407
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malajalam"
-#: ../rules/base.xml.in.h:408 ../rules/evdev.xml.in.h:408
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malajalam lalitha"
-#: ../rules/base.xml.in.h:409 ../rules/evdev.xml.in.h:409
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldív-szigetek"
-#: ../rules/base.xml.in.h:410 ../rules/evdev.xml.in.h:410
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Málta"
-#: ../rules/base.xml.in.h:411 ../rules/evdev.xml.in.h:411
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Máltai billentyűzet egyesült államokbeli kiosztással"
-#: ../rules/base.xml.in.h:412 ../rules/evdev.xml.in.h:412
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:413 ../rules/evdev.xml.in.h:413
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:414 ../rules/evdev.xml.in.h:414
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:415 ../rules/evdev.xml.in.h:415
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access billentyűzet"
-#: ../rules/base.xml.in.h:416 ../rules/evdev.xml.in.h:416
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:417 ../rules/evdev.xml.in.h:417
-msgid "Menu is Compose."
-msgstr "A Menü a kombináló (Compose)."
+#: ../rules/base.xml.in.h:447
+msgid "Menu"
+msgstr "Menü"
-#: ../rules/base.xml.in.h:418 ../rules/evdev.xml.in.h:418
-msgid "Menu key changes layout."
-msgstr "A menü billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:448
+msgid "Meta is mapped to Left Win"
+msgstr "A Meta a bal Win billentyűhöz van rendelve"
-#: ../rules/base.xml.in.h:419 ../rules/evdev.xml.in.h:419
-msgid "Meta is mapped to the Win-keys."
-msgstr "A Meta a Win billentyűkhöz van rendelve."
+#: ../rules/base.xml.in.h:449
+msgid "Meta is mapped to Win keys"
+msgstr "A Meta a Win billentyűkhöz van rendelve"
-#: ../rules/base.xml.in.h:420 ../rules/evdev.xml.in.h:420
-msgid "Meta is mapped to the left Win-key."
-msgstr "A Meta a bal Win billentyűhöz van rendelve."
+#: ../rules/base.xml.in.h:450
+msgid "Microsoft Comfort Curve Keyboard 2000"
+msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:421 ../rules/evdev.xml.in.h:421
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet billentyűzet"
-#: ../rules/base.xml.in.h:422 ../rules/evdev.xml.in.h:422
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, svéd"
-#: ../rules/base.xml.in.h:423 ../rules/evdev.xml.in.h:423
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:424 ../rules/evdev.xml.in.h:424
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:425 ../rules/evdev.xml.in.h:425
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:426 ../rules/evdev.xml.in.h:426
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:427 ../rules/evdev.xml.in.h:427
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:428 ../rules/evdev.xml.in.h:428
+#: ../rules/base.xml.in.h:458
+msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office billentyűzet"
-#: ../rules/base.xml.in.h:429 ../rules/evdev.xml.in.h:429
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft vezeték nélküli multimédia billentyűzet 1.0A"
-#: ../rules/base.xml.in.h:430 ../rules/evdev.xml.in.h:430
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Egyéb kompatibilitási beállítások"
-#: ../rules/base.xml.in.h:431 ../rules/evdev.xml.in.h:431
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:432 ../rules/evdev.xml.in.h:432
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:433 ../rules/evdev.xml.in.h:433
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:434 ../rules/evdev.xml.in.h:434
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:435 ../rules/evdev.xml.in.h:435
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongólia"
-#: ../rules/base.xml.in.h:436 ../rules/evdev.xml.in.h:436
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegró"
-#: ../rules/base.xml.in.h:437 ../rules/evdev.xml.in.h:437
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marokkó"
-#: ../rules/base.xml.in.h:438 ../rules/evdev.xml.in.h:438
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Többnyelvű"
-#: ../rules/base.xml.in.h:439 ../rules/evdev.xml.in.h:439
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Többnyelvű, első rész"
-#: ../rules/base.xml.in.h:440 ../rules/evdev.xml.in.h:440
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Többnyelvű, második rész"
-#: ../rules/base.xml.in.h:441 ../rules/evdev.xml.in.h:441
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:442 ../rules/evdev.xml.in.h:442
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F stílusú backspace"
-#: ../rules/base.xml.in.h:443 ../rules/evdev.xml.in.h:443
-msgid "Neostyle"
-msgstr "Neostyle"
+#: ../rules/base.xml.in.h:474
+msgid "NLA"
+msgstr "NLA"
-#: ../rules/base.xml.in.h:444 ../rules/evdev.xml.in.h:444
+#: ../rules/base.xml.in.h:475
+msgid "Nativo"
+msgstr "Natív"
+
+#: ../rules/base.xml.in.h:476
+msgid "Nativo for Esperanto"
+msgstr "Natív az eszperantóhoz"
+
+#: ../rules/base.xml.in.h:477
+msgid "Nativo for USA keyboards"
+msgstr "Natív az USA billentyűzetekhez"
+
+#: ../rules/base.xml.in.h:478
+msgid "Neo 2"
+msgstr "Neo 2"
+
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:445 ../rules/evdev.xml.in.h:445
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepál"
-#: ../rules/base.xml.in.h:446 ../rules/evdev.xml.in.h:446
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Hollandia"
-#: ../rules/base.xml.in.h:447 ../rules/evdev.xml.in.h:447
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Új fonetikus"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:448 ../rules/evdev.xml.in.h:448
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigéria"
-#: ../rules/base.xml.in.h:449 ../rules/evdev.xml.in.h:449
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:450 ../rules/evdev.xml.in.h:450
+#: ../rules/base.xml.in.h:486
+msgid "Non-breakable space character at fourth level"
+msgstr "Nem törhető szóköz karakter a negyedik szinten"
+
+#: ../rules/base.xml.in.h:487
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
+msgstr "Nem törhető szóköz karakter a negyedik szinten, keskeny nem törhető szóköz karakter a hatodik szinten"
+
+#: ../rules/base.xml.in.h:488
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
+msgstr "Nem törhető szóköz karakter a negyedik szinten, keskeny nem törhető szóköz karakter a hatodik szinten (a Ctrl+Shift segítségével)"
+
+#: ../rules/base.xml.in.h:489
+msgid "Non-breakable space character at second level"
+msgstr "Nem törhető szóköz karakter a második szinten"
+
+#: ../rules/base.xml.in.h:490
+msgid "Non-breakable space character at third level"
+msgstr "Nem törhető szóköz karakter a harmadik szinten"
+
+#: ../rules/base.xml.in.h:491
+msgid "Non-breakable space character at third level, nothing at fourth level"
+msgstr "Mem törhető szóköz karakter a harmadik szinten és semmi a negyediken"
+
+#: ../rules/base.xml.in.h:492
+msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
+msgstr "Nem törhető szóköz karakter a harmadik szinten, keskeny nem törhető szóköz karakter a negyedik szinten"
+
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:451 ../rules/evdev.xml.in.h:451
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Északi szami"
-#: ../rules/base.xml.in.h:452 ../rules/evdev.xml.in.h:452
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Északi szami, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:453 ../rules/evdev.xml.in.h:453
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:454 ../rules/evdev.xml.in.h:454
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norvégia"
-#: ../rules/base.xml.in.h:455 ../rules/evdev.xml.in.h:455
-msgid "NumLock LED shows alternative layout."
-msgstr "A NumLock LED mutatja az alternatív kiosztást."
+#: ../rules/base.xml.in.h:498
+msgid "NumLock"
+msgstr "NumLock"
-#: ../rules/base.xml.in.h:456 ../rules/evdev.xml.in.h:456
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Számbillentyűzet Delete billentyűjének viselkedése"
-#: ../rules/base.xml.in.h:457 ../rules/evdev.xml.in.h:457
-msgid "Numeric keypad keys work as with Mac."
-msgstr "A számbillentyűk úgy működjenek, mint Macen."
+#: ../rules/base.xml.in.h:500
+msgid "Numeric keypad keys work as with Mac"
+msgstr "A számbillentyűk úgy működjenek, mint Macen"
-#: ../rules/base.xml.in.h:458 ../rules/evdev.xml.in.h:458
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Számbillentyűzet kiosztásválasztása"
-#: ../rules/base.xml.in.h:459 ../rules/evdev.xml.in.h:459
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:460 ../rules/evdev.xml.in.h:460
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:461 ../rules/evdev.xml.in.h:461
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:462 ../rules/evdev.xml.in.h:462
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pastu"
-#: ../rules/base.xml.in.h:463 ../rules/evdev.xml.in.h:463
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC déli üzbég"
-#: ../rules/base.xml.in.h:464 ../rules/evdev.xml.in.h:464
+#: ../rules/base.xml.in.h:507
+msgid "Occitan"
+msgstr "Okcitán"
+
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:465 ../rules/evdev.xml.in.h:465
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:466 ../rules/evdev.xml.in.h:466
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Orija"
-#: ../rules/base.xml.in.h:467 ../rules/evdev.xml.in.h:467
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet billentyűzet"
-#: ../rules/base.xml.in.h:468 ../rules/evdev.xml.in.h:468
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Oszét"
-#: ../rules/base.xml.in.h:469 ../rules/evdev.xml.in.h:469
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Oszét, win gombok"
-#: ../rules/base.xml.in.h:470 ../rules/evdev.xml.in.h:470
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Oszét, örökölt"
-#: ../rules/base.xml.in.h:471 ../rules/evdev.xml.in.h:471
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx Series"
-#: ../rules/base.xml.in.h:472 ../rules/evdev.xml.in.h:472
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:473 ../rules/evdev.xml.in.h:473
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakisztán"
-#: ../rules/base.xml.in.h:474 ../rules/evdev.xml.in.h:474
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pastu"
-#: ../rules/base.xml.in.h:475 ../rules/evdev.xml.in.h:475
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:476 ../rules/evdev.xml.in.h:476
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Perzsa, perzsa számbillentyűzettel"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetikus"
-#: ../rules/base.xml.in.h:477 ../rules/evdev.xml.in.h:477
+#: ../rules/base.xml.in.h:522
+msgid "Phonetic Winkeys"
+msgstr "Fonetikus Win gombok"
+
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:478 ../rules/evdev.xml.in.h:478
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Lengyelország"
-#: ../rules/base.xml.in.h:479 ../rules/evdev.xml.in.h:479
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytonic"
-#: ../rules/base.xml.in.h:480 ../rules/evdev.xml.in.h:480
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugália"
-#: ../rules/base.xml.in.h:481 ../rules/evdev.xml.in.h:481
-msgid "Press Left Alt key to choose 3rd level."
-msgstr "A bal Alt billentyűvel lehet a harmadik szintet választani."
-
-#: ../rules/base.xml.in.h:482 ../rules/evdev.xml.in.h:482
-msgid "Press Left Win-key to choose 3rd level."
-msgstr "A bal Win billentyűvel lehet a harmadik szintet választani."
-
-#: ../rules/base.xml.in.h:483 ../rules/evdev.xml.in.h:483
-msgid "Press Menu key to choose 3rd level."
-msgstr "A Menü billentyűvel lehet a harmadik szintet választani."
-
-#: ../rules/base.xml.in.h:484 ../rules/evdev.xml.in.h:484
-msgid "Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key."
-msgstr "A jobb Alt billentyűvel lehet a harmadik szintet választani, a Shift+jobb Alt kombináció a Multi_Key."
-
-#: ../rules/base.xml.in.h:485 ../rules/evdev.xml.in.h:485
-msgid "Press Right Alt key to choose 3rd level."
-msgstr "A jobb Win billentyűvel lehet a harmadik szintet választani."
-
-#: ../rules/base.xml.in.h:486 ../rules/evdev.xml.in.h:486
-msgid "Press Right Ctrl to choose 3rd level."
-msgstr "Jobb Ctrl választja ki a 3. szintet."
-
-#: ../rules/base.xml.in.h:487 ../rules/evdev.xml.in.h:487
-msgid "Press Right Win-key to choose 3rd level."
-msgstr "A jobb Win billentyűvel lehet a harmadik szintet választani."
-
-#: ../rules/base.xml.in.h:488 ../rules/evdev.xml.in.h:488
-msgid "Press any of Alt keys to choose 3rd level."
-msgstr "Bármelyik Alt billentyűvel lehet a harmadik szintet választani."
-
-#: ../rules/base.xml.in.h:489 ../rules/evdev.xml.in.h:489
-msgid "Press any of Win-keys to choose 3rd level."
-msgstr "Bármelyik Win billentyűvel lehet a harmadik szintet választani."
-
-#: ../rules/base.xml.in.h:490 ../rules/evdev.xml.in.h:490
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:491 ../rules/evdev.xml.in.h:491
-msgid "Pro Keypad"
-msgstr "Pro számbillentyűzet"
-
-#: ../rules/base.xml.in.h:492 ../rules/evdev.xml.in.h:492
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:493 ../rules/evdev.xml.in.h:493
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Programozói Dvorak"
-#: ../rules/base.xml.in.h:494 ../rules/evdev.xml.in.h:494
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:495 ../rules/evdev.xml.in.h:495
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:496 ../rules/evdev.xml.in.h:496
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:497 ../rules/evdev.xml.in.h:497
-msgid "R-Alt switches layout while pressed."
-msgstr "A jobb Alt billentyű lenyomva tartva megváltoztatja a kiosztást."
-
-#: ../rules/base.xml.in.h:498 ../rules/evdev.xml.in.h:498
-msgid "Right Alt is Compose."
-msgstr "A jobb Alt a kombináló (Compose)."
-
-#: ../rules/base.xml.in.h:499 ../rules/evdev.xml.in.h:499
-msgid "Right Alt key changes layout."
-msgstr "A jobb Alt billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:532
+msgid "Right Alt"
+msgstr "Jobb Alt"
-#: ../rules/base.xml.in.h:500 ../rules/evdev.xml.in.h:500
-msgid "Right Alt key never chooses 3rd level."
-msgstr "A jobb Alt billentyű sohasem választ harmadik szintet."
+#: ../rules/base.xml.in.h:533
+msgid "Right Alt (while pressed)"
+msgstr "Jobb Alt (lenyomva tartva)"
-#: ../rules/base.xml.in.h:501 ../rules/evdev.xml.in.h:501
-msgid "Right Ctrl is Compose."
-msgstr "A jobb Ctrl a kombináló (Compose)."
+#: ../rules/base.xml.in.h:534
+msgid "Right Alt key never chooses 3rd level"
+msgstr "A jobb Alt billentyű sohasem választ harmadik szintet"
-#: ../rules/base.xml.in.h:502 ../rules/evdev.xml.in.h:502
-msgid "Right Ctrl key changes layout."
-msgstr "A jobb Ctrl billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:535
+msgid "Right Alt, Shift+Right Alt key is Multi_Key"
+msgstr "Jobb Alt, a Shift+jobb Alt kombináció a Multi_Key"
-#: ../rules/base.xml.in.h:503 ../rules/evdev.xml.in.h:503
-msgid "Right Ctrl key switches layout while pressed."
-msgstr "A jobb Ctrl billentyű lenyomva tartva megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:536
+msgid "Right Ctrl"
+msgstr "Jobb Ctrl"
-#: ../rules/base.xml.in.h:504 ../rules/evdev.xml.in.h:504
-msgid "Right Ctrl key works as Right Alt."
-msgstr "Jobb Ctrl használata jobb Alt-ként."
+#: ../rules/base.xml.in.h:537
+msgid "Right Ctrl (while pressed)"
+msgstr "Jobb Ctrl (lenyomva tartva)"
-#: ../rules/base.xml.in.h:505 ../rules/evdev.xml.in.h:505
-msgid "Right Shift key changes layout."
-msgstr "A jobb Shift billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:538
+msgid "Right Ctrl as Right Alt"
+msgstr "Jobb Ctrl használata jobb Alt-ként"
-#: ../rules/base.xml.in.h:506 ../rules/evdev.xml.in.h:506
-msgid "Right Win-key changes layout."
-msgstr "A jobb Win billentyű megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:539
+msgid "Right Shift"
+msgstr "Jobb Shift"
-#: ../rules/base.xml.in.h:507 ../rules/evdev.xml.in.h:507
-msgid "Right Win-key is Compose."
-msgstr "A jobb Win billentyű a kombináló (Compose)."
+#: ../rules/base.xml.in.h:540
+msgid "Right Win"
+msgstr "Jobb Win"
-#: ../rules/base.xml.in.h:508 ../rules/evdev.xml.in.h:508
-msgid "Right Win-key switches layout while pressed."
-msgstr "A jobb Win billentyű lenyomva tartva megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:541
+msgid "Right Win (while pressed)"
+msgstr "Jobb Win (lenyomva tartva)"
-#: ../rules/base.xml.in.h:509 ../rules/evdev.xml.in.h:509
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Jobbkezes"
-#: ../rules/base.xml.in.h:510 ../rules/evdev.xml.in.h:510
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Jobbkezes Dvorák"
-#: ../rules/base.xml.in.h:511 ../rules/evdev.xml.in.h:511
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Románia"
-#: ../rules/base.xml.in.h:512 ../rules/evdev.xml.in.h:512
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Román billentyűzet német betűkkel"
-#: ../rules/base.xml.in.h:513 ../rules/evdev.xml.in.h:513
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Román billentyűzet német betűkkel, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:514 ../rules/evdev.xml.in.h:514
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:515 ../rules/evdev.xml.in.h:515
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:516 ../rules/evdev.xml.in.h:516
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Oroszország"
-#: ../rules/base.xml.in.h:517 ../rules/evdev.xml.in.h:517
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Orosz"
-#: ../rules/base.xml.in.h:518 ../rules/evdev.xml.in.h:518
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Orosz fonetikus"
-#: ../rules/base.xml.in.h:519 ../rules/evdev.xml.in.h:519
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Orosz fonetikus Dvorak"
-#: ../rules/base.xml.in.h:520 ../rules/evdev.xml.in.h:520
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Orosz fonetikus, halott billentyűk tiltása"
-#: ../rules/base.xml.in.h:521 ../rules/evdev.xml.in.h:521
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "orosz kazahhal"
-#: ../rules/base.xml.in.h:522 ../rules/evdev.xml.in.h:522
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:523 ../rules/evdev.xml.in.h:523
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:524 ../rules/evdev.xml.in.h:524
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:525 ../rules/evdev.xml.in.h:525
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:526 ../rules/evdev.xml.in.h:526
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:527 ../rules/evdev.xml.in.h:527
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:528 ../rules/evdev.xml.in.h:528
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:529 ../rules/evdev.xml.in.h:529
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:530 ../rules/evdev.xml.in.h:530
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:531 ../rules/evdev.xml.in.h:531
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:532 ../rules/evdev.xml.in.h:532
-msgid "ScrollLock LED shows alternative layout."
-msgstr "A ScrollLock LED mutatja az alternatív kiosztást."
+#: ../rules/base.xml.in.h:565
+msgid "Scroll Lock"
+msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:533 ../rules/evdev.xml.in.h:533
+#: ../rules/base.xml.in.h:566
+msgid "ScrollLock"
+msgstr "ScrollLock"
+
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:534 ../rules/evdev.xml.in.h:534
+#: ../rules/base.xml.in.h:568
+msgid "Semi-colon on third level"
+msgstr "Pontosvessző a harmadik szinten"
+
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Szerbia"
-#: ../rules/base.xml.in.h:535 ../rules/evdev.xml.in.h:535
-msgid "Shift cancels CapsLock."
-msgstr "A Shift megszakítja a Caps Lock-ot."
+#: ../rules/base.xml.in.h:570
+msgid "Shift cancels CapsLock"
+msgstr "A Shift megszakítja a Caps Lockot"
-#: ../rules/base.xml.in.h:536 ../rules/evdev.xml.in.h:536
-msgid "Shift with numeric keypad keys works as in MS Windows."
-msgstr "A Shift+számbillentyűk úgy működjenek, mint az MS Windowsban."
+#: ../rules/base.xml.in.h:571
+msgid "Shift does not cancel NumLock, chooses 3d level instead"
+msgstr "A Shift nem szakítja meg a Num Lockot, a harmadik szintet választja ki"
-#: ../rules/base.xml.in.h:537 ../rules/evdev.xml.in.h:537
-msgid "Shift+CapsLock changes layout."
-msgstr "A Shift+Caps Lock kombináció megváltoztatja a kiosztást."
+#: ../rules/base.xml.in.h:572
+msgid "Shift with numeric keypad keys works as in MS Windows"
+msgstr "A Shift+számbillentyűk úgy működjenek, mint az MS Windowsban"
-#: ../rules/base.xml.in.h:538 ../rules/evdev.xml.in.h:538
+#: ../rules/base.xml.in.h:573
+msgid "Shift+CapsLock"
+msgstr "Shift+CapsLock"
+
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Egyszerű"
-#: ../rules/base.xml.in.h:539 ../rules/evdev.xml.in.h:539
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Szlovákia"
-#: ../rules/base.xml.in.h:540 ../rules/evdev.xml.in.h:540
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Szlovénia"
-#: ../rules/base.xml.in.h:541 ../rules/evdev.xml.in.h:541
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Dél-Afrika"
-#: ../rules/base.xml.in.h:542 ../rules/evdev.xml.in.h:542
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "déli üzbég"
-#: ../rules/base.xml.in.h:543 ../rules/evdev.xml.in.h:543
-msgid "Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level"
-msgstr "A szóköz billentyű nem törhető szóközt ad a negyedik szinten, keskeny nem törhető szóközt a hatodik szinten"
-
-#: ../rules/base.xml.in.h:544 ../rules/evdev.xml.in.h:544
-msgid "Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift"
-msgstr "A szóköz billentyű nem törhető szóközt ad a negyedik szinten, keskeny nem törhető szóközt a hatodik szinten (a Ctrl+Shift segítségével)"
-
-#: ../rules/base.xml.in.h:545 ../rules/evdev.xml.in.h:545
-msgid "Space key outputs non-breakable space character at fourth level."
-msgstr "A szóköz billentyű nem törhető szóközt ad a negyedik szinten."
-
-#: ../rules/base.xml.in.h:546 ../rules/evdev.xml.in.h:546
-msgid "Space key outputs non-breakable space character at second level."
-msgstr "A szóköz billenytű nem törhető szóközt ad a második szinten."
-
-#: ../rules/base.xml.in.h:547 ../rules/evdev.xml.in.h:547
-msgid "Space key outputs non-breakable space character at third level, nothing at fourth level."
-msgstr "A szóköz billenytű nem törhető szóközt ad a harmadik szinten és semmit nem ad a negyediken."
-
-#: ../rules/base.xml.in.h:548 ../rules/evdev.xml.in.h:548
-msgid "Space key outputs non-breakable space character at third level, thin non-breakable space character at fourth level"
-msgstr "A szóköz billentyű nem törhető szóközt ad a harmadik szinten, keskeny nem törhető szóközt a negyedik szinten"
-
-#: ../rules/base.xml.in.h:549 ../rules/evdev.xml.in.h:549
-msgid "Space key outputs non-breakable space character at third level."
-msgstr "A szóköz billentyű nem törhető szóközt ad a harmadik szinten."
-
-#: ../rules/base.xml.in.h:550 ../rules/evdev.xml.in.h:550
-msgid "Space key outputs usual space at any level."
-msgstr "A szóköz hagyományos szóközt ad bármely szinten."
-
-#: ../rules/base.xml.in.h:551 ../rules/evdev.xml.in.h:551
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Spanyolország"
-#: ../rules/base.xml.in.h:552 ../rules/evdev.xml.in.h:552
-msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server."
-msgstr "A speciális billentyűket (Ctrl+Alt+&lt;billentyű&gt;) a kiszolgáló kezeli."
+#: ../rules/base.xml.in.h:580
+msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
+msgstr "A speciális billentyűket (Ctrl+Alt+&lt;billentyű&gt;) a kiszolgáló kezeli"
-#: ../rules/base.xml.in.h:553 ../rules/evdev.xml.in.h:553
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:554 ../rules/evdev.xml.in.h:554
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:555 ../rules/evdev.xml.in.h:555
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Szabványos"
-#: ../rules/base.xml.in.h:556 ../rules/evdev.xml.in.h:556
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Szabványos (cédille)"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:558 ../rules/evdev.xml.in.h:558
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Szabványos RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:560 ../rules/evdev.xml.in.h:560
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Szabványos RSTU orosz kiosztáson"
-#: ../rules/base.xml.in.h:561 ../rules/evdev.xml.in.h:561
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:562 ../rules/evdev.xml.in.h:562
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sun halott billentyűk"
-#: ../rules/base.xml.in.h:563 ../rules/evdev.xml.in.h:563
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power multimédia billentyűzet"
-#: ../rules/base.xml.in.h:564 ../rules/evdev.xml.in.h:564
-msgid "Super is mapped to the Win-keys."
-msgstr "A Super a Win billentyűkhöz van rendelve."
-
-#: ../rules/base.xml.in.h:565 ../rules/evdev.xml.in.h:565
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:566 ../rules/evdev.xml.in.h:566
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:567 ../rules/evdev.xml.in.h:567
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:568 ../rules/evdev.xml.in.h:568
-msgid "Swap Ctrl and CapsLock."
-msgstr "Ctrl és Caps Lock felcserélése."
+#: ../rules/base.xml.in.h:595
+msgid "Swap Ctrl and CapsLock"
+msgstr "Ctrl és Caps Lock felcserélése"
-#: ../rules/base.xml.in.h:569 ../rules/evdev.xml.in.h:569
-msgid "Swap ESC and CapsLock."
-msgstr "ESC és Caps Lock felcserélése."
+#: ../rules/base.xml.in.h:596
+msgid "Swap ESC and CapsLock"
+msgstr "ESC és Caps Lock felcserélése"
-#: ../rules/base.xml.in.h:570 ../rules/evdev.xml.in.h:570
-msgid "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
-msgstr "Két billentyű kódjának felcserélése, ha a kernel rosszul észleli a Mac billentyűzetet."
-
-#: ../rules/base.xml.in.h:571 ../rules/evdev.xml.in.h:571
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:572 ../rules/evdev.xml.in.h:572
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Svédország"
-#: ../rules/base.xml.in.h:573 ../rules/evdev.xml.in.h:573
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Svájc"
-#: ../rules/base.xml.in.h:574 ../rules/evdev.xml.in.h:574
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:575 ../rules/evdev.xml.in.h:575
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:576 ../rules/evdev.xml.in.h:576
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Szíria"
-#: ../rules/base.xml.in.h:577 ../rules/evdev.xml.in.h:577
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Szír"
-#: ../rules/base.xml.in.h:578 ../rules/evdev.xml.in.h:578
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Szír fonetikus"
-#: ../rules/base.xml.in.h:579 ../rules/evdev.xml.in.h:579
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:580 ../rules/evdev.xml.in.h:580
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tádzsikisztán"
-#: ../rules/base.xml.in.h:581 ../rules/evdev.xml.in.h:581
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamil"
-#: ../rules/base.xml.in.h:582 ../rules/evdev.xml.in.h:582
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamil TAB írógép"
-#: ../rules/base.xml.in.h:583 ../rules/evdev.xml.in.h:583
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamil TSCII írógép"
-#: ../rules/base.xml.in.h:584 ../rules/evdev.xml.in.h:584
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamil Unicode"
-#: ../rules/base.xml.in.h:585 ../rules/evdev.xml.in.h:585
+#: ../rules/base.xml.in.h:611
+msgid "Targa Visionary 811"
+msgstr "Targa Visionary 811"
+
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "tatár"
-#: ../rules/base.xml.in.h:586 ../rules/evdev.xml.in.h:586
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:587 ../rules/evdev.xml.in.h:587
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:588 ../rules/evdev.xml.in.h:588
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thaiföld"
-#: ../rules/base.xml.in.h:589 ../rules/evdev.xml.in.h:589
-msgid "Third level choosers"
-msgstr "Harmadik szintű választók"
-
-#: ../rules/base.xml.in.h:590 ../rules/evdev.xml.in.h:590
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibeti"
-#: ../rules/base.xml.in.h:591 ../rules/evdev.xml.in.h:591
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibeti (ASCII számjegyekkel)"
-#: ../rules/base.xml.in.h:592 ../rules/evdev.xml.in.h:592
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:593 ../rules/evdev.xml.in.h:593
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Alternatív Tifinagh"
-#: ../rules/base.xml.in.h:594 ../rules/evdev.xml.in.h:594
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Alternatív fonetikus Tifinagh"
-#: ../rules/base.xml.in.h:595 ../rules/evdev.xml.in.h:595
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Kibővített Tifinagh"
-#: ../rules/base.xml.in.h:596 ../rules/evdev.xml.in.h:596
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Kibővített fonetikus Tifinagh"
-#: ../rules/base.xml.in.h:597 ../rules/evdev.xml.in.h:597
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Fonetikus Tifinagh"
-#: ../rules/base.xml.in.h:598 ../rules/evdev.xml.in.h:598
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Tilde (~) változat"
-#: ../rules/base.xml.in.h:599 ../rules/evdev.xml.in.h:599
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:600 ../rules/evdev.xml.in.h:600
+#: ../rules/base.xml.in.h:626
+msgid "To the corresponding key in a Dvorak keyboard."
+msgstr "A Dvorak billentyűzeten megfelelő billentyűre."
+
+#: ../rules/base.xml.in.h:627
+msgid "To the corresponding key in a Qwerty keyboard."
+msgstr "A Qwerty billentyűzeten megfelelő billentyűre."
+
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:601 ../rules/evdev.xml.in.h:601
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Hagyományos fonetikus"
+
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access billentyűzet"
-#: ../rules/base.xml.in.h:602 ../rules/evdev.xml.in.h:602
+#: ../rules/base.xml.in.h:631
+msgid "Trust Slimline"
+msgstr "Trust Slimline"
+
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:603 ../rules/evdev.xml.in.h:603
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:604 ../rules/evdev.xml.in.h:604
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Törökország"
-#: ../rules/base.xml.in.h:605 ../rules/evdev.xml.in.h:605
+#: ../rules/base.xml.in.h:635
+msgid "Turkmenistan"
+msgstr "Türkmenisztán"
+
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Ãrógép"
-#: ../rules/base.xml.in.h:606 ../rules/evdev.xml.in.h:606
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "UCW kiosztás (csak ékezetes betűk)"
-#: ../rules/base.xml.in.h:607 ../rules/evdev.xml.in.h:607
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "US billentyűzet bosnyák billentyűkombinációkkal"
-#: ../rules/base.xml.in.h:608 ../rules/evdev.xml.in.h:608
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "US billentyűzet bosnyák betűkkel"
-#: ../rules/base.xml.in.h:609 ../rules/evdev.xml.in.h:609
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "US billentyűzet horvát billentyűkombinációkkal"
-#: ../rules/base.xml.in.h:610 ../rules/evdev.xml.in.h:610
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "US billentyűzet horvát betűkkel"
-#: ../rules/base.xml.in.h:611 ../rules/evdev.xml.in.h:611
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "US billentyűzet észt betűkkel"
-#: ../rules/base.xml.in.h:612 ../rules/evdev.xml.in.h:612
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "US billentyűzet olasz betűkkel"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "US billentyűzet litván betűkkel"
-#: ../rules/base.xml.in.h:613 ../rules/evdev.xml.in.h:613
-msgid "US keyboard with Slovenian digraphs"
-msgstr "US billentyűzet szlovén billentyűkombinációkkal"
-
-#: ../rules/base.xml.in.h:614 ../rules/evdev.xml.in.h:614
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "US billentyűzet szlovén betűkkel"
-#: ../rules/base.xml.in.h:615 ../rules/evdev.xml.in.h:615
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:616 ../rules/evdev.xml.in.h:616
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:617 ../rules/evdev.xml.in.h:617
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:618 ../rules/evdev.xml.in.h:618
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukrajna"
-#: ../rules/base.xml.in.h:619 ../rules/evdev.xml.in.h:619
+#: ../rules/base.xml.in.h:650
+msgid "Unicode additions (arrows and math operators)"
+msgstr "Unicode kiegészítések (nyilak és műveleti jelek)"
+
+#: ../rules/base.xml.in.h:651
+msgid "Unicode additions (arrows and math operators). Math operators on default level"
+msgstr "Unicode kiegészítések (nyilak és műveleti jelek). A műveleti jelek az alapértelmezett szinten"
+
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:620 ../rules/evdev.xml.in.h:620
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Egyesült Királyság"
-#: ../rules/base.xml.in.h:621 ../rules/evdev.xml.in.h:621
-msgid "Urdu"
-msgstr "Urdu"
+#: ../rules/base.xml.in.h:654
+msgid "Unitek KB-1925"
+msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:622 ../rules/evdev.xml.in.h:622
+#: ../rules/base.xml.in.h:655
+msgid "Urdu, Alternative phonetic"
+msgstr "Urdu, alternatív fonetikus"
+
+#: ../rules/base.xml.in.h:656
+msgid "Urdu, Phonetic"
+msgstr "Urdu, fonetikus"
+
+#: ../rules/base.xml.in.h:657
+msgid "Urdu, Winkeys"
+msgstr "Urdu, Winkeys"
+
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Bosnyák billentyűkombinációk használata"
-#: ../rules/base.xml.in.h:623 ../rules/evdev.xml.in.h:623
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Horvát billentyűkombinációk használata"
-#: ../rules/base.xml.in.h:624 ../rules/evdev.xml.in.h:624
-msgid "Use Slovenian digraphs"
-msgstr "Szlovén billentyűkombinációk használata"
-
-#: ../rules/base.xml.in.h:625 ../rules/evdev.xml.in.h:625
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "»Csúcsos« idézőjelek használata idézetekhez"
-#: ../rules/base.xml.in.h:626 ../rules/evdev.xml.in.h:626
-msgid "Use keyboard LED to show alternative layout."
-msgstr "Az alternatív kiosztás mutatása a billentyűzet LED-ek használatával."
+#: ../rules/base.xml.in.h:661
+msgid "Use keyboard LED to show alternative layout"
+msgstr "Az alternatív kiosztás megjelenítése a billentyűzet LED-ek használatával"
-#: ../rules/base.xml.in.h:627 ../rules/evdev.xml.in.h:627
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "A szóköz billenytű használata nem törhető szóköz bevitelére"
-#: ../rules/base.xml.in.h:628 ../rules/evdev.xml.in.h:628
+#: ../rules/base.xml.in.h:663
+msgid "Usual space at any level"
+msgstr "Hagyományos szóköz bármely szinten"
+
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:629 ../rules/evdev.xml.in.h:629
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Üzbegisztán"
-#: ../rules/base.xml.in.h:630 ../rules/evdev.xml.in.h:630
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:631 ../rules/evdev.xml.in.h:631
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet billentyűzet"
-#: ../rules/base.xml.in.h:632 ../rules/evdev.xml.in.h:632
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:633 ../rules/evdev.xml.in.h:633
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 numerikus billentyűzet unicode bővítésekkel (nyilak és műveleti jelek)"
-#: ../rules/base.xml.in.h:634 ../rules/evdev.xml.in.h:634
-msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level."
-msgstr "Wang 724 numerikus billentyűzet unicode bővítésekkel (nyilak és műveleti jelek). A műveleti jelek az alapértelmezett szinten."
+#: ../rules/base.xml.in.h:670
+msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
+msgstr "Wang 724 numerikus billentyűzet Unicode bővítésekkel (nyilak és műveleti jelek). A műveleti jelek az alapértelmezett szinten"
-#: ../rules/base.xml.in.h:635 ../rules/evdev.xml.in.h:635
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang 724-es modell, azerty"
-#: ../rules/base.xml.in.h:636 ../rules/evdev.xml.in.h:636
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Nyugati"
-#: ../rules/base.xml.in.h:637 ../rules/evdev.xml.in.h:637
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:638 ../rules/evdev.xml.in.h:638
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Winkeys"
-#: ../rules/base.xml.in.h:639 ../rules/evdev.xml.in.h:639
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Az &lt;\\|&gt; billentyűvel"
-#: ../rules/base.xml.in.h:640 ../rules/evdev.xml.in.h:640
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Euro jel az 5-ös billentyűn"
-#: ../rules/base.xml.in.h:641 ../rules/evdev.xml.in.h:641
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "»Csúcsos« idézőjelekkel"
-#: ../rules/base.xml.in.h:642 ../rules/evdev.xml.in.h:642
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet billentyűzet"
-#: ../rules/base.xml.in.h:643 ../rules/evdev.xml.in.h:643
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Jakut"
-#: ../rules/base.xml.in.h:644 ../rules/evdev.xml.in.h:644
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Joruba"
-#: ../rules/base.xml.in.h:645 ../rules/evdev.xml.in.h:645
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "A Z és a ZHE felcserélve"
-#: ../rules/base.xml.in.h:646 ../rules/evdev.xml.in.h:646
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:647 ../rules/evdev.xml.in.h:647
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "Azerty"
-#: ../rules/base.xml.in.h:648 ../rules/evdev.xml.in.h:648
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "Azerty/számjegyek"
-#: ../rules/base.xml.in.h:649 ../rules/evdev.xml.in.h:649
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "Számjegyek"
-#: ../rules/base.xml.in.h:650 ../rules/evdev.xml.in.h:650
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "elcsúszott pontosvessző és idézőjel (elavult)"
-#: ../rules/base.xml.in.h:651 ../rules/evdev.xml.in.h:651
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:652 ../rules/evdev.xml.in.h:652
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:653 ../rules/evdev.xml.in.h:653
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, kibővített visszaper"
-#: ../rules/base.xml.in.h:654 ../rules/evdev.xml.in.h:654
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/számjegyek"
-#: ../rules/base.xml.in.h:655 ../rules/evdev.xml.in.h:655
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Ékezetek kombinálása a halott billentyűk helyett"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Nemzetközi (AltGr Unicode kombinálással)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Nemzetközi (AltGr Unicode kombinálással, alternatív)"
diff --git a/xorg-server/xkbdata.src/po/id.po b/xorg-server/xkbdata.src/po/id.po
index 116550cb3..0f955d14f 100644
--- a/xorg-server/xkbdata.src/po/id.po
+++ b/xorg-server/xkbdata.src/po/id.po
@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-1.6pre1\n"
+"Project-Id-Version: xkeyboard-config-1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-14 22:03+0700\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-17 11:53-0400\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -371,2382 +371,2438 @@ msgid "Bangladesh"
msgstr "Banglades"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Bashkirian"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Belarus"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgia"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengali"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengali Probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomic, Dvorak way"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomic, Dvorak way, latin-9 only"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Biblical Hebrew (Tiro)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnia dan Herzegovina"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Kedua tombol Alt bersama"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Kedua tombol Ctrl bersama"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Kedua tombol Shift bersama"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brasil"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Breton"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgaria"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Kamboja"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanada"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "CapsLock (ke tata letak pertama), Shift+CapsLock (ke tata letak terakhir)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "CapsLock (ketika ditekan), Alt+CapsLock melakukan aksi capslock asli"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "CapsLock bertindak sebagai Shift dengan mengunci. Shift \"jeda\" CapsLock."
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "CapsLock bertindak sebagai Shift yang terkunci. Shift tidak mempengaruhi CapsLock"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock dinonaktifkan"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Tindakan tombol CapsLock"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "CapsLock toggle Shift sehingga semua tombol terpengaruh"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock toggle huruf besar normal atau karakter secara alfabet"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "CapsLock menggunakan huruf besar internal. Shift \"pauses\" CapsLock"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "CapsLock menggunakan huruf besar internal. Shift tidak mempengaruhi CapsLock"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Varian Katalan dengan titik-tengah pada L"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cedilla"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternate option)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "China"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Chuvash Latin"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Classic"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Classic Dvorak"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 tombol)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 tombol)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 tombol)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Posisi tombol Compose"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Kongo, Republik Demokrat"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
msgstr "Control + Alt + Backspace"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Kendali dipetakan ke tombol Alt, Alt dipetakan ke tombol Win"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Kendali dipetakan ke tombol Win ( dan tombol Ctrl biasa)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Crimean Tatar (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Crimean Tatar (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Crimean Tatar (Turkish Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Crimean Tatar (Turkish F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Crimean Tatar (Turkish Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Kroasia"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Posisi tombol Ctrl"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Cyrillic"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Cyrillic dengan guillemets"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Cyrillic, Z dan ZHE di-swap"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Czechia"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Dead acute"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Dead grave acute"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Tombol angka keypad standar"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-key PC"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Laptop/notebook Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Laptop/notebook Precision M series"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude series laptop"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia Keyboard"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Denmark"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802 series"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (UK Punctuation)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak international"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, tanda kutip Polandia pada tombol 1"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, tanda kutip Polandia pada tombol quotemark"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Eastern"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Hapus tombol mati"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Aktifkan karakter tipografi ekstra"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Inggris"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Enter pada keypad"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomic"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estonia"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Ethiopia"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev-managed keyboard"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Extended"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Extended - Winkeys"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Extended Backslash"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "varian huruf-F (F)"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "kepulauan Farao"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finlandia"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Tombol empat-tingkat dengan pemisah abstrak"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Tombol empat-tingkat dengan koma"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Tombol empat-tingkat dengan titik"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Tombol empat-tingkat dengan titik, pembatasan latin-9"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Tombol empat tingkat dengan momayyez"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Perancis"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Perancis"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "French (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "French (legacy)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "French Dvorak"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Frence, Tombol mati Matahari"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "French, hapus tombol mati"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO laptop"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Generic 101-key PC"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Generic 102-key (Intl) PC"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Generic 104-key PC"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Generic 105-key (Intl) PC"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Georgia"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgia"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgian AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "German (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "German, Tombol mati Matahari"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "German, hapus tombol mati"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Jerman"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Yunani"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Grup toggle pada tombol perkalian/pembagian"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujurati"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking Keyboard"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking Keyboard untukr Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Papan Ketik Multimedia Hewlett-Packard SK-2501"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Heksadesimal"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hindi Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hvr"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Hungaria"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hiper dipetakan ke tombol Win"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO Alternate"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Islandia"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Termasuk tilde mati"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "India"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Internasional (AltGr tombol mati)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Internasional (dengan tombol mati)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irlandia"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israel"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italia"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Jepang"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japan (PC-98xx Series)"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Pilihan Keyboard Jepang"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Tombol Kana Lock terkunci"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kashubian"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazakh dengan Rusia"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazakhstan"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Sekuensi kunci untuk mematikan server X"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Tekan Menu Kiri untuk memilih tingkat 3"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Tombol untuk mengubah tata letak"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Keypad"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "Kgz"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Republik Korea"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurdish, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurdish, Arabic-Latin"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurdish, Latin Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurdish, Latin Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kyrgyzstan"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Laptop/notebook eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latin"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latin Amerika"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latin Unicode"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latin Unicode qwerty"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latin qwerty"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latin unicode"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latin unicode qwerty"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latin dengan guillemets"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Latvia"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Alt Kiri"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Alt Kiri (ketika ditekan)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Alt Kiri ditukar dengan Win Kiri"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Ctrl Kiri"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl Kiri+Shift Kiri"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Shift Kiri"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Win Kiri"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Win Kiri (ke tata letak pertama), Win/Menu Kanan (ke tata letak terakhir)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Win Kiri (ketika ditekan)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Kidal"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Left handed Dvorak"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Legacy"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Legacy Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Tombol Legacy dengan koma"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Tombol Legacy dengan titik"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Lebih-kecil/Lebih-besar"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Lithuania"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (pilihan alternatif)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (opsi alternatif 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 extra keys via G15daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech Generic Keyboard"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (model Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Lower Sorbian"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Lower Sorbian (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Masedonia"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh Old"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Machintosh, tombol mati Matahari"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Machintosh, hapus tombol mati"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Buat CapsLock sebagai tambahan Backspace"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Buat CapsLock sebagai tambahan Ctrl"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Buat CapsLock sebagai tambahan ESC"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Buat CapsLock sebagai tambahan Hiper"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Buat CapsLock sebagai tambahan NumLock"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Buat CapsLock sebagai tambahan Super"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldives"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Keyboard Maltase dengan Layout US"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta dipetakan ke tombol Win Kiri"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta dipetakan ke tombol Win"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, Swedia"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Pilihan kompabilitas lain-lain"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolia"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Maroko"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Multilingual"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Multilingual, bagian pertama"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Multilingual, bagian kedua"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F style Backspace"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo untuk Esperanto"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo untuk papan ketik USA"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Belanda"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Fonetik baru"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Negeria"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Karakter spasi yang tidak pecah pada tingkat 4"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Karakter spasi yang tidak pecah pada tingkat 4, karakter spasi yang tidak pecah dan tipis pada tingkat 6"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Karakter spasi yang tidak pecah pada tingkat 4, karakter spasi yang tidak pecah dan tipis pada tingkat 6 (via Ctrl+Shift)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Karakter spasi yang tidak pecah pada tingkat 2"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Karakter spasi yang tidak pecah pada tingkat 3"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Karakter spasi yang tidak pecah pada tingkat 3, tidak ada pada tingkat 4"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Karakter spasi yang tidak pecah pada tingkat 3, karakter spasi yang tidak pecah dan tipis pada tingkat 4"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Northern Saami"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Northern Saami, hapus tombo mati"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norwegia"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Keypad numerik menghapus perilaku tombol"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Keypad numerik bekerja seperti dengan Mac"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Pilihan layout Keypad numerik "
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pashto"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Southern Uzbek"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Occitan"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet keyboard"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Ossetian"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Ossetian, Tombol Win"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Ossetian, legacy"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx Series"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pashto"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persia, dengan papan ketik Persia"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Phonetic"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "Phonetic Winkeys"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polandia"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytonic"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugal"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pro Keypad"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Programmer Dvorak"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Alt Kanan"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Alt Kanan (ketika ditekan)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Alt Kanan tidak pernah memilih tingkat 3"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Alt Kanan, Shift+Right Alt adalah Multi_Key"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Ctrl Kanan"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl Kanan (ketika ditekan)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl Kanan bertindak seperti Alt Kanan"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Shift Kanan"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Win Kanan"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Win Kanan (ketika ditekan)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Tangan Kanan"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Right handed Dvorak"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rumania"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Keyboard Rumania dengan huruf Jerman"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Keyboard Rumania dengan huruf Jerman, hapus tombol mati"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Rusia"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Rusia"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Russian phonetic"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Russian phonetic Dvorak"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Russian phonetic, hapus tombol mati"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Rusia dengan Kazakh"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Semi-kolon pada level ketiga"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbia"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Shift membatalkan CapsLock"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Shift tidak membatalkan NumLock, lebih memilih level ketiga"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Shit dengan keypad numerik bekerja sesuai pada MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Shift+CapsLock"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Sederhana"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovakia"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovenia"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Afrika Selatan"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Uzbek Selatan"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Spanyol"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Tombol spesial (Ctrl+Alt+&lt;key&gt;) ditangani pada server"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "Srl"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standard"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standard (Cedilla)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Fonetik Standar"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standard RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standard RSTU pada layout Rusia"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Tombol mati Matahari"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Tukar Ctrl dan CapsLock"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Tujar ESC dan CapsLock"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Swedia"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Switzerland"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Syria"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syriac"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Syriac phonetic"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tajikistan"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamil"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamil TAB Typewriter"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamil TSCII Typewriter"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamil Unicode"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thailand"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetan"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetan (with ASCII numerals)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh Alternative"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh Alternative Phonetic"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh Extended"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh Alternative Phonetic"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh Phonetic"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Varian tilde (~)"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Ke tombol dalam papan ketik Dvorak."
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Ke tombol dalam papan ketik Qwerty."
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
-msgstr "Fonetik Tradisional"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Traditional phonetic"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turki"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Turkmenistan"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Typewriter"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "UCW layout (accented letters only)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Keyboard Amerika dengan Bosnia digraphs"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Keyboard Amerika dengan huruf Bosnia"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Keyboard Amerika dengan Kroasia digraphs"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Keyboard Amerika dengan huruf Kroasia"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Keyboard Amerika dengan huruf Estonia"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Papan ketik AS dengan huruf Italia"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Keyboard Amerika dengan huruf Lituania"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Keyboard Amerika dengan huruf Slovenia"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukraina"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Tambahan unicode (panah dan operator matematika)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Tambahan unicode (panah dan operator matematika). Operator matematika pada tingkat standar"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Inggris Raya"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, Fonetik alternatif"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, Fonetik"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, Tombol Win"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Gunakan diagraph Bosnia"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Gunakan diagraph Kroasia"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Gunakan guillemets untuk tanda petik"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Gunakan keyboard LED untuk menunjukkan layout alternatif"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Menggunakan spasi untuk input karakter spasi yang tidak pecah"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Tombol spasi biasa pada semua tingkat"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekistan"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 keypad dengan tambahan unicode (panah and operator matematika). "
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Wang 724 keypad dengan tambahan unicode (panah and operator matematika). Operator matematika pada tingkat standar"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang model 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Western"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Tombol Win"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Dengan &lt;\\|&gt; key;tombol"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Dengan tanda Euro pada 5"
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Dengan guillemets"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Yakut"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoruba"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "menukar Z dan ZHE "
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/angka"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "digit"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "ganti titik koma dan tanda kutip (kuno)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, ditambah Backslash"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwertz/angka"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Menggabungkan aksen ketimbang tombol mati"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Internasional (AltGr menggabungkan Unicode)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Internasional (AltGr menggabungkan Unicode, alternatif)"
+
+#~ msgid "Keypad"
+#~ msgstr "Keypad"
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Pro Keypad"
+#~ msgstr "Pro Keypad"
+
+#~ msgid "Standard Phonetic"
+#~ msgstr "Fonetik Standar"
+
#~ msgid "Brazilian ABNT2"
#~ msgstr "Brazilian ABNT2"
diff --git a/xorg-server/xkbdata.src/po/it.po b/xorg-server/xkbdata.src/po/it.po
index ad3302c78..c35cdac6e 100644
--- a/xorg-server/xkbdata.src/po/it.po
+++ b/xorg-server/xkbdata.src/po/it.po
@@ -33,10 +33,10 @@
# Luca Ferretti <elle.uca@infinito.it>, 2005, 2006, 2007, 2008, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.6pre1\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-13 21:28+0200\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-17 20:54+0200\n"
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"MIME-Version: 1.0\n"
@@ -469,158 +469,164 @@ msgstr "BGD"
msgid "Bangladesh"
msgstr "Bangladesh"
-# codice tre lettere per belgio
+# 1.7
+# Variante russa http://it.wikipedia.org/wiki/Baschiri
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Baschira"
+
+# codice tre lettere per belgio
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "BEL"
# UE
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Bielorussia"
# UE
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgio"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
# variante per india
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengali"
# variante per bengali, credo sia fonetico (crf www.bengalinux.org)
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengali probhat"
# variante francese
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomica, tipo Dvorak"
# variante francese
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomica, tipo Dvorak, solo latin-9"
# codice tre lettere per bulgaria
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "BGR"
# Codice tre lettere per buthan
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "BTN"
# UE
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
# 1.2
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Ebreo biblico (Tiro)"
# codice tre lettere per bosnia-erz
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "BIH"
# codice tre lettere per bielorussia
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "BLR"
# UE
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnia-Erzegovina"
# 1.5
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Entrambi i tasti Alt insieme"
# 1.5
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Entrambi i tasti Ctrl insieme"
# 1.5
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Entrambi i tasti Maiusc insieme"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "BRA"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
# UE
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brasile"
# 1.5
# bre in iso639
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bretone"
# Braille, shortDesc
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
# variante araba
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
# UE
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgaria"
# 1.5
# variante pakistana
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
# 1.2
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Cambogia"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "CAN"
# UE
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Canada"
@@ -629,36 +635,40 @@ msgstr "Canada"
# Nota: talvota appare staccato, talvota attaccato
# non so se per differenzaire il segnale dal pulsante (fisico)
# nel dubbio separo anche in traduzione
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Blocca Maiusc"
# 1.5
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "BlocMaiusc"
# 1.5
# per come appare, tradurre il "to" è superfluo
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "BlocMaiusc (prima disposizione), Maiusc+BlocMaiusc (ultima disposizione)"
# 1.5
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "BlocMaiusc (mentre è premuto), Alt+BlocMaiusc esegue l'azione blocca maiuscole originale"
# 1.5
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "BlocMaiusc agisce come Maiusc con il blocco. Maiusc \"mette in pausa\" BlocMaiusc"
# 1.5
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "BlocMaiusc agisce come Maiusc con il blocco. Maiusc non ha effetto su BlocMaiusc"
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "BlocMaiusc è disabilitato"
+
# optionList: caps
# descrizione: CapsLock tweaks. "Internal" capitalization means capitalization
# using some internal tables. Otherwise "as Shift" - means using next group
@@ -673,17 +683,17 @@ msgstr "BlocMaiusc agisce come Maiusc con il blocco. Maiusc non ha effetto su Bl
# ( ) Make CapsLock an additional ESC
# ( ) Make CapsLock an additional Backspace
# ( ) CapsLock toggles Shift so all keys are affected
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Comportamento tasto BlocMaiusc"
# 1.5
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "BlocMaiusc commuta Maiusc così da avere effetto su tutti i tasti"
# 1.5
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "BlocMaiusc commuta l'uso normale delle lettere maiuscole dei caratteri alfabetici"
@@ -691,137 +701,137 @@ msgstr "BlocMaiusc commuta l'uso normale delle lettere maiuscole dei caratteri a
#
# "Internal" capitalization means capitalization using some internal tables.
# Otherwise "as Shift" - means using next group.
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "BlocMaiusc fa uso interno delle lettere maiuscole. Maiusc \"mette in pausa\" BlocMaiusc"
# 1.5
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "BlocMaiusc fa uso interno delle lettere maiuscole. Maiusc non ha effetto su BlocMaiusc"
# FIXME... trovare traduzione middle-dot
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Variante catalano con L middle-dot"
# 1.5
#
# variante romena (wikipedia mette la gl)
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cediglia"
# codice tre lettere per la svizzera
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "CHE"
# 1.5
#
# variante USA
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
# 1.6
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (opzione alternativa)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
# UE
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Cina"
# variante russa
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Chuvash"
# variante russa
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Chuvash latin"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Classica"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Dvorak classica"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
# variante USA
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq tastiera Easy Access"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 tasti)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 tasti)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 tasti)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq tastiera iPaq"
@@ -839,57 +849,61 @@ msgstr "Compaq tastiera iPaq"
# [ ] Caps Lock
# [*] Less-than/Greater-than
#
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Posizione tasto Compose"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Congo, Repubblica Democratica del"
# 1.6
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
msgstr "Control + Alt + Backspace"
# 1.5
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Control è applicato ai tasti Alt, Alt è applicato ai tasti Win"
# 1.5
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Control è applicato ai tasti Win (e ai soliti tasti Ctrl)"
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
# 1.6
# variante rumena
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Tatar crimea (Dobruca-1 Q)"
# 1.6
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Tatar crimea (Dobruca-2 Q)"
# 1.6
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Tatar crimea (turca Alt-Q)"
# 1.6
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Tatar crimea (turca F)"
# 1.6
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Tatar crimea (turca Q)"
# UE
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Croazia"
@@ -904,57 +918,57 @@ msgstr "Croazia"
# ( ) At bottom left
# ( ) Right Ctrl as Right Alt
#
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Posizione tasto Ctrl"
# 1.5
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Maiusc"
# UE
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Cirillico"
# 1.2
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Cirillico con caporali («»)"
# 1.5
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Cirillico, Z e ZHE scambiati"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "CZE"
# UE
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Repubblica Ceca"
# 1.6
# variante per lingua Kalmyk
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
# shortDesc per Congo, usato codice ISO
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "COD"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
# 1.5
# breve per Danimarca, usato codice iso3166
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "DNK"
@@ -963,7 +977,7 @@ msgstr "DNK"
# rispetto alla tedesca normale cambiano due caratteri, ` e ^
# ah, le tastiere tedesche non hanno le lettere accentate, per cui
# probabilemente 'sta cosa è importate per il Compose
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Acuto muto"
@@ -972,661 +986,661 @@ msgstr "Acuto muto"
# rispetto alla tedesca normale cambia un carattere, ^
# ah, le tastiere tedesche non hanno le lettere accentate, per cui
# probabilemente 'sta cosa è importate per il Compose
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Acuto grave muto"
# 1.5
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Tasti predefiniti nel tastierino numerico"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101 tasti PC"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell portatile Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell portatile serie Precision M"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell portatile serie Latitude"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell tastiera USB multimediale"
# UE
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Danimarca"
# codice tre lettere per germania<
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "DEU"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa tastiera Wireless Desktop"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond serie 9801/9802"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
# 1.5
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (punteggiatura UK)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak internazionale"
# 1.6
# variante polacca
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, virgolette polacche sul tasto 1"
# 1.5
#
# da controllare..
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, virgolette polacche sul tasto quotemark"
# 1.5
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Orientale"
# 1.5
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Tasti muti esclusi"
# 1.5
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Abilitare caratteri tipografici aggiuntivi"
# 1.6
# variante canadese
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Inglese"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
# 1.6
# lasciato enter, come nome di segnale
# sono due uno è enter, l'altro return
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Enter sul tastierino numerico"
# 1.5
# descrizione breve per Esperanto, usato codice iso639 tre lettere
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "EPO"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomica"
# codice tre lettere per spagna
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "ESP"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
# codice tre lettere per estonia
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "EST"
# UE
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estonia"
# codice tre lettere per etiopia
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "ETH"
# UE
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiopia"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Tastiera gestita da Evdev"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
# Ewe: variante del Ghana
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Estesa"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Estesa - tasti Win"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Backslash esteso"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "Variante lettera-F (F)"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
# codice tre lettere per isole Faroe
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "FRO"
# 1.5
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Isole Fær Øer"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "FIN"
# UE
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finlandia"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Tasto di quarto livello con separatori astratti"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Tasto di quarto livello con virgola"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Tasto di quarto livello con punto"
# 1.5
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Tasto di quarto livello con punto, restrizione latin-9"
# http://en.wikipedia.org/wiki/Momayyez
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Tasto di quarto livello con momayyez"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "FRA"
# UE
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Francia"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Francese"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Francese (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Francese (vecchia maniera)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Francese Dvorak"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Francese, tasti muti Sun"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Francese, tasti muti rimossi"
# 1.5
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Portatile AMILO Fujitsu-Siemens Computers"
# Fula: variante del Ghana
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
# Codice tre lettere per U.K.
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBR"
# Ga: variante del ghana
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Generica 101 tasti PC"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Generica 102 tasti (Intl) PC"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Generica 104 tasti PC"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Generica 105 tasti (Intl) PC"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
# 1.6
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "GEO"
# UE
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Georgia"
# Curiosamente è una variante delle tastiere italiane...
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgiana"
# Questa invece variante delle tastiere francesi
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgiana AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Tedesca (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Tedesca, tasti muti Sun"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Tedesca, tasti muti rimossi"
# UE
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Germania"
# shortDesc per Ghana, usato codice ISO
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "GHA"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
# codice tre lettere per grecia
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "GRC"
# UE
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Grecia"
# 1.5
# variante olpc2 per USA
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Commuta gruppo sul tasto moltiplica/dividi"
# shortDesc per Guinea, usato codice ISO
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "GIN"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
# Gujarati: variante india
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujarati"
# Gurmukhi: variante india
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
# Gurmukhi: variante india
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking Keyboard"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking Keyboard per Mac"
# Hausa: variante Ghana
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavillion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavillion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard Multimedia Keyboard SK-250x"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
# 1.5
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Esadecimale"
# Hindi Bolnagri: variante India
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
# 1.6
# variante indiana
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hindi Wx"
# 1.5
#
# variante ukraina
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Omofonica"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
# codice tre lettere per croazia
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "HRV"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "HUN"
# UE
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Ungheria"
# 1.5
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper è applicato ai tasti Win"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO alternativa"
# UE
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Islanda"
# Igbo: variante Nigeria
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
# variante LatAm
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Tilde muta inclusa"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "IND"
# UE
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "India"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Internazionale (tasti muti AltGr)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Internazionale (con tasti muti)"
# Inuktitut: variante canadese
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
# UE
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
# UE
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Iraq"
# UE
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irlanda"
# codice tre lettere per irlanda
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "IRL"
# codice tre lettere per Iran
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "IRN"
# codice tre lettere per iraq
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "IRQ"
# Codice tre lettere per islanda<
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "ISL"
# codice tre lettere per israele<
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "ISR"
# UE
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israele"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "ITA"
# UE
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italia"
# UE
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Giappone"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Giappone (Serie PC-98xx)"
@@ -1636,54 +1650,54 @@ msgstr "Giappone (Serie PC-98xx)"
# <b>Japanese keyboard options</b>
# [*] Kana Lock key is locking
# [ ] NICOLA-F style Backspace
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Opzioni tastiera giapponese"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "JPN"
# 1.5
# variante russa, in iso639 è XAL
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmyk"
# Kana: variante giappone
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Il tasto Kana Lock sta bloccando"
# variante india
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
# Kashubian: variante polonia
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kashubian"
# shortDesc per Kazakistan
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "KAZ"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazaka con russo"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazakistan"
# 1.6
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Sequenza di tasti per terminare il server X"
@@ -1704,7 +1718,7 @@ msgstr "Sequenza di tasti per terminare il server X"
# [*] Right Alt, Shift+Right Alt key is Multi_Key
# [ ] Right Alt key never chooses 3rd level
#
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Tasto per scegliere il terzo livello"
@@ -1743,68 +1757,62 @@ msgstr "Tasto per scegliere il terzo livello"
# [ ] Left Ctrl
# [*] Right Ctrl
#
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Tasto o tasti per cambiare disposizione"
-# variante iraniana senza numeri
-# forse anche variante per altra lingua
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Tastierino"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
# 1.6
# shortDesc per Kyrgyzstan
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "KGZ"
# shortDesc per Cambogia, usato codide ISO
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "KHM"
# Komi: variante russa
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
# shortDesc per corea del sud, usato codice iso
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "KOR"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Corea, Repubblica di"
# variante canadese
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Curda, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Curda, arabo-latina"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Curda, latina Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Curda, latina Q"
# UE
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirghizistan"
@@ -1812,442 +1820,457 @@ msgstr "Kirghizistan"
# Short description per Latin American
# include una lunga serie di nazioni: AR, Bo, CL, CO, CR, CU, DO...
#
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LatAm"
# 1.5
# variante lituana
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
# 1.5
# variante lituana
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "LAO"
# UE
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Compaq Laptop tastiera per portatile (es. Armada)"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Compaq Internet Keyboard per portatile (es. Presario)"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Portatile eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latino"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latino americano"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latino Unicode"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latino Unicode qwerty"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latino qwerty"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latino unicode"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latino unicode qwerty"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latino con caporali («»)"
# UE
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Lettonia"
# 1.5
# descr breve per Lettonia, usato codice iso3166
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "LVA"
# 1.5
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Alt sinistro"
# 1.5
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Alt sinistro (mentre è premuto)"
# 1.5
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Alt sinistro è scambiato con Win sinistro"
# 1.5
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Ctrl sinistro"
# 1.5
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl sinistro+Maiusc sinistro"
# 1.5
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Maiusc sinistro"
# 1.5
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Win sinistro"
# 1.5
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Win sinistro (prima disposizione), Win/Menu destro (ultima disposizione)"
# 1.5
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Win sinistro (mentre è premuto)"
# UE
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Mano sinistra"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Dvorak mancina"
# 1.5
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Vecchia maniera"
# 1.5
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Wang 724 vecchia maniera"
# 1.5
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Tasto vecchia maniera con virgola"
# 1.5
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Tasto vecchia maniera con punto"
# 1.5
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Minore-di/Maggiore-di"
# UE
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Lituania"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (opzione alternativa)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (opzione alternativa 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Tasti aggiuntivi Logitech attraverso G15daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech tastiera generica"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (modello Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
# 1.5
# codice iso639: dsb
# FIXME tradotto come in iso-codes, ma inferiore nun se po' vede...
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Sorabo inferiore"
# 1.5
# FIXME tradotto come in iso-codes, ma inferiore nun se po' vede...
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Sorabo inferiore (qwertz)"
# codice tre lettere per lituania
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "LTU"
# variante della Georgia
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
# shortDesc per Montenegro, usato ISO
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Macedonia"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh Old"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, tasti muti Sun"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, tasti muti rimossi"
# 1.5
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Rendere BlocMaiusc un Backspace aggiuntivo"
# 1.5
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Rendere BlocMaiusc un Ctrl aggiuntivo"
# 1.5
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Rendere BlocMaiusc un ESC aggiuntivo"
+# 1.7
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Rendere BlocMaiusc un Hyper aggiuntivo"
+
+# 1.7
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Rendere BlocMaiusc un BlocNum aggiuntivo"
+
+# 1.7
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Rendere BlocMaiusc un Super aggiuntivo"
+
# codice tre lettere per maldive
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "MDV"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
# UE
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldive"
# UE
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Tastiera maltese con disposizione US"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
# 1,5
# il tasto Menu
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Menu"
# 1.5
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta è applicato al tasto Win sinistro"
# 1.5
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta è applicato ai tasti Win"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, svedese"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
@@ -2266,180 +2289,186 @@ msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
#
# [*] Enable extra typographic characters
#
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Opzioni varie di compatibilità"
# codice tre lettere per macedonia
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "MKD"
# codice tre lettere per malta
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "MLT"
# codice tre lettere per birmania
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "MMR"
# codice tre lettere per mongolia
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "MNG"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolia"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marocco"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Multilingue"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Multilingue, prima parte"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Multilingue, seconda parte"
# UE
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Birmania"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Backspace stile NICOLA-F"
# 1.5
# variante pakistana
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
# 1.5
# variante brasiliana
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
# 1.5
# variante brasiliana
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo per Esperanto"
# 1.5
# variante brasiliana
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo per tastiere USA"
# 1.5
# variante tetheska.... ehm tedesca
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
# shortDesc per Nepal, usato ISO
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "NPL"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
# UE
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Paesi Bassi"
+# 1.7
+# variante bulgare
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Fonetica nuova"
+
# shortDesc per Nigeria, usato ISO
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "NGA"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigeria"
# codice tre lettere per paesi bassi
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "NLD"
# 1.5
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Carattere Spazio non-interrompibile al quarto livello"
# 1.5
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Carattere Spazio non-interrompibile al quarto livello, carattere Spazio sottile non-interrompibile al sesto livello"
# 1.5
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Carattere Spazio non-interrompibile al quarto livello, carattere Spazio sottile non-interrompibile al sesto livello (attraverso Ctrl+Maiusc)"
# 1.5
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Carattere Spazio non-interrompibile al secondo livello"
# 1.5
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Carattere Spazio non-interrompibile al terzo livello"
# 1.5
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Carattere Spazio non-interrompibile al terzo livello, niente al quarto livello"
# 1.5
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Carattere Spazio non-interrompibile al terzo livello, carattere Spazio sottile non-interrompibile al quarto livello"
# codice tre lettere per norvegia
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "NOR"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Saami settentrinale"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Saami settentrionale, tasti muti rimossi"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
# UE
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norvegia"
# 1.5
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "BlocNum"
@@ -2456,12 +2485,12 @@ msgstr "BlocNum"
# ( ) Four-level key with momayyez
# ( ) Four-level key with abstract separators
# ( ) Semi-colon on third level
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Comportamento tasto Canc su tastierino numerico"
# 1.5
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "I tasti del tastierino numerico operano come nei Mac"
@@ -2478,313 +2507,308 @@ msgstr "I tasti del tastierino numerico operano come nei Mac"
# ( ) Hexadecimal
# ( ) ATM/phone-style
#
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Selezione disposizione tastierino numerico"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pashto"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Uzbeco meridionale"
# 1.6
# variante francese
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Occitana"
# Variante irlandese
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
# variante bangladesh
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet keyboard"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Osseta"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Osseta, Winkeys"
# 1.5
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Osseta, vecchia maniera"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "Serie PC-98xx"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "PAK"
# UE
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pashto"
# Variante tailandese
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+# 1.7
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persiana, con tastierino numerico persiano"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetico"
# 1.6
# variante russa
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "Fonetica tasti Win"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "POL"
# UE
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polonia"
# Variante greca
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Politonica"
# UE
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portogallo"
-# Variante iraniana con numeri (fila alta e tastierino numerico)
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-# Variante iraniana con numeri in fila alte e lettere sul tastierino
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pro con tastierino"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
# 1.5
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Dvorak per programmatori"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
# codice tre lettere per portogallo
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "PRT"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
# 1.5
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Alt destro"
# 1.5
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Alt destro (mentre è premuto)"
# 1.5
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Il tasto Alt destro non sceglie mai il terzo livello"
# 1.5
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Alt destro, il tasto Maiusc+Alt destro è Multi_Key"
# 1.5
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Ctrl destro"
# 1.5
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl destro (mentre è premuto)"
# 1.5
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl destro come Alt destro"
# 1.5
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Maiusc destro"
# 1.5
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Win destro"
# 1.5
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Win destro (mentre è premuto)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Mano destra"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Dvorak destrorsa"
# UE
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Romania"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Tastiera rumena con lettere tedesche"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Tastiera rumena con lettere tedesche, tasti muti rimossi"
# codice tre lettere per romania
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "ROU"
# codice tre lettere per russia
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "RUS"
# UE
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Russia"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Russa"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Fonetica russa"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Dvorak fonetica russa"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Fonetica russa, tasti muti rimossi"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Russa con kazaca"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
# shortDesc per Serbia, usato codice ISO
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
# 1.6
# non so perché messo nella forma estesa
# ma ripropongo anche in italiano
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Blocca scorrimento"
# 1.5
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "BlocScorr"
# 1.5
# variante canadese
# No ISO code in ISO639-2, only draft ISO693-3
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
@@ -2792,434 +2816,432 @@ msgstr "Secwepemctsin"
#
# parte di Numeric keypad delete key behaviour
# vedi descrizione compelta in altro commento
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Punto e virgola sul terzo livello"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbia"
# 1.5
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Maiusc annulla BlocMaiusc"
# 1.5
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Maiusc non annulla BlocNum, invece sceglie il terzo livello"
# 1.5
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Maiusc con i tasti del tastierino numerico opera come in MS Windows"
# 1.5
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Maiusc+BlocMaiusc"
# 1.5
# variante greca
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Semplice"
# UE
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovacchia"
# UE
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovenia"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Sud Africa"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Uzbeko meridionale"
# UE
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Spagna"
# 1.5
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Tasti speciali (Ctrl+Alt+&lt;tasto&gt;) gestiti in un server"
# codice tre lettere per SriLanka
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "LKA"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standard"
# 1.5
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standard (cediglia)"
-# 1.6
-# variante bulgara
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Fonetica standard"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "RSTU standard"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "RSTU standard su disposizione russa"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Tasti muti Sun"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
# 1.5
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
# codice tre lettere per repubblica slovacca
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "SVK"
# codice tre lettere per slovenia
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "SVN"
# 1.5
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Scambiare Ctrl e BlocMaiusc"
# 1.5
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Scambiare ESC e BlocMaiusc"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "SWE"
# UE
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Svezia"
# UE
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Svizzera"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "SYR"
# UE
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Siria"
# L'aggettivo per Siria in iglese EU sarebbe Syrian
#
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Siriano"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Siriano fonetico"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
# UE
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tagikistan"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamil"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamil TAB macchina per scrivere"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamil TSCII macchina per scrivere"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamil Unicode"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
# 1.5
# variante russa, come lingua stado a iso639 sarebbe tatarico
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telegu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "THA"
# UE
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thailandia"
# 1.5
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetana"
# 1.5
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetana (con numeri ASCII)"
# 1.5
# variante marocchina, corrispondente al codice iso639 BER (berbero)
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
# 1.5
# variante marocchina
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh alternativa"
# 1.5
# variante marocchina
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh alternativa fonetica"
# 1.5
# variante marocchina
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh estesa"
# 1.5
# variante marocchina
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh estesa fonetica"
# 1.5
# variante marocchina
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh fonetica"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Variante tilde (~)"
# codice tre lettere per tajikistan
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "TJK"
# 1.5
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Al tasto corrispondente in una tastiera Dvorak."
# 1.5
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Al tasto corrispondente in una tastiera Qwerty."
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
# 1.6
# variante bulgara
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "Fonetica tradizionale"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
# 1.6
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "TUR"
# 1.5
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turca"
# 1.6
# non controllato su UE
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Turkmenistan"
# Non sono sicuro vada tradotto
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Macchina per scrivere"
# 1.5
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "Disposizione UCW (solo lettere accentate)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Tastiera USA con digrammi bosniaci"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Tastiera USA con lettere bosniache"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Tastiera USA con digrammi croati"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Tastiera USA con lettere croate"
# 1.5
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Tastiera USA con lettere estoni"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Tastiera USA con lettere italiane"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Tastiera USA con lettere lituane"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Tastiera USA con lettere slovene"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
# 1.5
# variante russa
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "UKR"
# UE
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ucraina"
# 1.5
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Aggiunte unicode (frecce e operatori matematici)"
# 1.5
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Aggiunte unicode (frecce e operatori matematici). Operatori matematici sul livello predefinito"
# Sarà da tradurre? -Luca
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeEsperto"
# UE
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Regno Unito"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
# 1.5
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, alternativa fonetica"
# 1.5
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, fonetica"
# 1.5
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, tasti Win"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Usa digrammi bosniaci"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Usa digrammi croati"
# 1.5
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Usa caporali per virgolette"
@@ -3232,7 +3254,7 @@ msgstr "Usa caporali per virgolette"
# [ ] CapsLock
# [*] ScrollLock
#
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Usare i LED della tastiera per mostrare il gruppo alternativo"
@@ -3250,116 +3272,116 @@ msgstr "Usare i LED della tastiera per mostrare il gruppo alternativo"
# ( ) Non-breakable space character at fourth level, thin non-breakable space character at sixth level
# ( ) Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
#
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Uso del tasto Spazio per inserire carattere di spazio non-interrompibile"
# 1.5
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Solito Spazio a ogni livello"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "UZB"
# UE
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekistan"
# UE
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "VNK"
# 1.5
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Tastierino Wang 724 con aggiunte unicode (frecce e operatori matematici)"
# 1.5
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Tastierino Wang 724 con aggiunte unicode (frecce e operatori matematici). Operatori matematici sul livello predefinito"
# 1.5
# variante belga
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang modello 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Occidentale"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
# variante bielorussa
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Tasti Win"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Con tasti &lt;\\|&gt;"
# 1.5
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Con simbolo € sul 5"
# 1.5
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Con caporali"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
# 1.5
# codice iso sah
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Yakut"
# 1.5
# codice iso yor, yo
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoruba"
# 1.5
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z e ZHE scambiati"
# 1.5
# descrione breve per sudafrica, usato iso3166 3 caratteri
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "ZAF"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/cifre"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "cifre"
@@ -3371,55 +3393,62 @@ msgstr "cifre"
# 3) soppiantare
#
# sarà corretto spostate???
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "Punto e virgola e virgolette spostate (obsoleta)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, backslash esteso"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "querty/cifre"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
-#~ msgid "Brazilian ABNT2"
-#~ msgstr "Brasiliana ABNT2"
-
-#~ msgid "Japanese 106-key"
-#~ msgstr "Giapponese 106 tasti"
-
-# 1.5
-# shortDesc per Kyrgyzstan, usato codice iso3166
-#~ msgid "Kir"
-#~ msgstr "KGZ"
-
-#~ msgid "Korean 106-key"
-#~ msgstr "Coreana 106 tasti"
-
-# 1.5
-#~ msgid "Super is mapped to Win keys"
-#~ msgstr "Super è applicato ai tasti Win"
-
-# o slovacchi?
-#~ msgid "US keyboard with Slovenian digraphs"
-#~ msgstr "Tastiera USA con digrammi sloveni"
-
-# 1.5
-#~ msgid "Unicode"
-#~ msgstr "Unicode"
-
-#~ msgid "Use Slovenian digraphs"
-#~ msgstr "Usa digrammi sloveni"
+# 1.7
+# layout a parte, sembrerebbe inglese
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+# 1.7
+# No ISO code in ISO639-2, only draft ISO693-3
+# Atsina refers to the Gros Ventres tribe.
+# http://en.wikipedia.org/wiki/Atsina_(disambiguation)
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+# 1.7
+# variante serba
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Combinazione di accenti invece di tasti muti"
+
+# 1.7
+# http://en.wikipedia.org/wiki/Interior_Salish_languages
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+# 1.7
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Internazionale (combinazione Unicode AltGr)"
+
+# 1.7
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Internazionale (combinazione Unicode AltGr, alternativa)"
diff --git a/xorg-server/xkbdata.src/po/ky.po b/xorg-server/xkbdata.src/po/ky.po
index d6c99c008..231961dde 100644
--- a/xorg-server/xkbdata.src/po/ky.po
+++ b/xorg-server/xkbdata.src/po/ky.po
@@ -1,13 +1,14 @@
# Translation of 'xkeyboard-config' messages to Kirghiz.
# Copyright (C) 2002 Free Software Foundation, Inc.
-# Ilyas Bakirov <just_ilyas@yahoo.com>, 2007.
+# This file is distributed under the same license as the xkeyboard-config package.
+# Ilyas Bakirov <just_ilyas@yahoo.com>, 2009.
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.1-pre1\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-09-11 22:14+0100\n"
-"PO-Revision-Date: 2007-11-13 14:39+0600\n"
+"Project-Id-Version: xkeyboard-config 1.6pre1\n"
+"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
+"POT-Creation-Date: 2009-05-12 23:49+0100\n"
+"PO-Revision-Date: 2009-06-07 23:39+0600\n"
"Last-Translator: Ilyas Bakirov <just_ilyas@yahoo.com>\n"
"Language-Team: Kirghiz <i18n-team-ky-kyrgyz@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -33,132 +34,132 @@ msgid "(Legacy) Alternative, eliminate dead keys"
msgstr "(ЭÑкирген) Ðльтернативдик, атайын (dead keys) клавишаларÑыз"
#: ../rules/base.xml.in.h:5
-msgid "(Legacy) Dvorak"
-msgstr "(ЭÑкирген) Dvorak"
-
-#: ../rules/base.xml.in.h:6
msgid "101/104 key Compatible"
msgstr "101/104 баÑкычтар менен жарамдуу"
-#: ../rules/base.xml.in.h:7 ../rules/sun.xml.in.h:2
+#: ../rules/base.xml.in.h:6
msgid "101/qwerty/comma/Dead keys"
msgstr "pc101, qwerty, үтүр, атайын (dead keys) клавишалары менен"
-#: ../rules/base.xml.in.h:8 ../rules/sun.xml.in.h:3
+#: ../rules/base.xml.in.h:7
msgid "101/qwerty/comma/Eliminate dead keys"
msgstr "pc101, qwerty, үтүр, атайын (dead keys) клавишаларÑыз "
-#: ../rules/base.xml.in.h:9 ../rules/sun.xml.in.h:4
+#: ../rules/base.xml.in.h:8
msgid "101/qwerty/dot/Dead keys"
msgstr "pc101, qwerty, чекит, атайын (dead keys) клавшилары менен"
-#: ../rules/base.xml.in.h:10 ../rules/sun.xml.in.h:5
+#: ../rules/base.xml.in.h:9
msgid "101/qwerty/dot/Eliminate dead keys"
msgstr "pc101, qwerty, үтур, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:11 ../rules/sun.xml.in.h:6
+#: ../rules/base.xml.in.h:10
msgid "101/qwertz/comma/Dead keys"
msgstr "pc101, qwertz, үтур, атайын (dead keys) клавишалары менен"
-#: ../rules/base.xml.in.h:12
+#: ../rules/base.xml.in.h:11
msgid "101/qwertz/comma/Eliminate dead keys"
msgstr "pc101, qwertz, үтүр, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:13 ../rules/sun.xml.in.h:7
+#: ../rules/base.xml.in.h:12
msgid "101/qwertz/dot/Dead keys"
msgstr "pc101, qwertz, чекит, атайын (dead keys) клавишалары менен"
-#: ../rules/base.xml.in.h:14 ../rules/sun.xml.in.h:8
+#: ../rules/base.xml.in.h:13
msgid "101/qwertz/dot/Eliminate dead keys"
msgstr "pc101, qwertz, чекит, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:15 ../rules/sun.xml.in.h:9
+#: ../rules/base.xml.in.h:14
msgid "102/qwerty/comma/Dead keys"
msgstr "pc102, qwerty, үтүр, атайын (dead keys) клавишалары менен"
-#: ../rules/base.xml.in.h:16 ../rules/sun.xml.in.h:10
+#: ../rules/base.xml.in.h:15
msgid "102/qwerty/comma/Eliminate dead keys"
msgstr "pc102, qwerty, үтүр, атаыйн (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:17 ../rules/sun.xml.in.h:11
+#: ../rules/base.xml.in.h:16
msgid "102/qwerty/dot/Dead keys"
msgstr "pc102, qwerty, чекит, атайын (dead keys) клавишалары менен"
-#: ../rules/base.xml.in.h:18 ../rules/sun.xml.in.h:12
+#: ../rules/base.xml.in.h:17
msgid "102/qwerty/dot/Eliminate dead keys"
msgstr "pc102, qwerty, чекит, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:19 ../rules/sun.xml.in.h:13
+#: ../rules/base.xml.in.h:18
msgid "102/qwertz/comma/Dead keys"
msgstr "pc102, qwertz, үтүр, атайын (dead keys) клавишалары менен"
-#: ../rules/base.xml.in.h:20 ../rules/sun.xml.in.h:14
+#: ../rules/base.xml.in.h:19
msgid "102/qwertz/comma/Eliminate dead keys"
msgstr "pc102, qwertz, үтур, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:21 ../rules/sun.xml.in.h:15
+#: ../rules/base.xml.in.h:20
msgid "102/qwertz/dot/Dead keys"
msgstr "pc102, qwertz, чекит, атайын (dead keys) клавишалары менен"
-#: ../rules/base.xml.in.h:22 ../rules/sun.xml.in.h:16
+#: ../rules/base.xml.in.h:21
msgid "102/qwertz/dot/Eliminate dead keys"
msgstr "pc102, qwertz, чекит, атайын (dead keys) клавишаларÑыз"
+#: ../rules/base.xml.in.h:22
+msgid "2"
+msgstr "2"
+
#: ../rules/base.xml.in.h:23
+msgid "4"
+msgstr "4"
+
+#: ../rules/base.xml.in.h:24
+msgid "5"
+msgstr "5"
+
+#: ../rules/base.xml.in.h:25
msgid "A4Tech KB-21"
msgstr "A4Tech KB-21"
-#: ../rules/base.xml.in.h:24
+#: ../rules/base.xml.in.h:26
msgid "A4Tech KBS-8"
msgstr "A4Tech KBS-8"
-#: ../rules/base.xml.in.h:25
+#: ../rules/base.xml.in.h:27
msgid "A4Tech Wireless Desktop RFKB-23"
msgstr "A4Tech Wireless Desktop RFKB-23"
-#: ../rules/base.xml.in.h:26
+#: ../rules/base.xml.in.h:28
msgid "ACPI Standard"
msgstr "ACPI Ñтандарттуу"
-#: ../rules/base.xml.in.h:27
-msgid "AZERTY Tskapo"
-msgstr "AZERTY Tskapo"
+#: ../rules/base.xml.in.h:29
+msgid "ATM/phone-style"
+msgstr ""
-#: ../rules/base.xml.in.h:28
+#: ../rules/base.xml.in.h:30
msgid "Acer AirKey V"
msgstr "Acer AirKey V"
-#: ../rules/base.xml.in.h:29
+#: ../rules/base.xml.in.h:31
msgid "Acer C300"
msgstr "Acer C300"
-#: ../rules/base.xml.in.h:30
+#: ../rules/base.xml.in.h:32
msgid "Acer Ferrari 4000"
msgstr "Acer Ferrari 4000"
-#: ../rules/base.xml.in.h:31
+#: ../rules/base.xml.in.h:33
msgid "Acer Laptop"
msgstr "Acer ноутбугу"
-#: ../rules/base.xml.in.h:32
-msgid "Add the EuroSign to the 2 key."
-msgstr "2 денег клавишага Евро белгиÑин кошуу."
-
-#: ../rules/base.xml.in.h:33
-msgid "Add the EuroSign to the 5 key."
-msgstr "5 деген клавишага Евро белгиÑин кошуу."
-
#: ../rules/base.xml.in.h:34
-msgid "Add the EuroSign to the E key."
-msgstr "E клавишаÑына Евро белгиÑин кошуу."
+msgid "Add the standard behavior to Menu key"
+msgstr ""
#: ../rules/base.xml.in.h:35
-msgid "Add the standard behavior to Menu key."
+msgid "Adding Esperanto circumflexes (supersigno)"
msgstr ""
#: ../rules/base.xml.in.h:36
-msgid "Adding the EuroSign to certain keys"
-msgstr ""
+msgid "Adding EuroSign to certain keys"
+msgstr "Белгилүү клавишаларга Евро белгиÑин кошуу."
#: ../rules/base.xml.in.h:37
msgid "Advance Scorpius KI"
@@ -185,2498 +186,2807 @@ msgid "Albania"
msgstr "ÐлбаниÑ"
#: ../rules/base.xml.in.h:43
-msgid "Alt and Meta are on the Alt keys."
-msgstr "Alt жана Meta Alt клавишаларда."
+msgid "Alt and Meta are on Alt keys"
+msgstr "Alt жана Meta Alt клавишаларда"
#: ../rules/base.xml.in.h:44
-msgid "Alt is mapped to the right Win-key and Super to Menu."
-msgstr "Alt оң Win клавишага орнотулган, Super болÑо - Menu."
+msgid "Alt is mapped to Right Win, Super to Menu"
+msgstr "Alt is mapped to Right Win, Super to Menu"
#: ../rules/base.xml.in.h:45
-msgid "Alt+CapsLock changes layout."
-msgstr "Alt+CapsLock раÑкладканы алмаштырат."
+msgid "Alt+CapsLock"
+msgstr "Alt+CapsLock"
#: ../rules/base.xml.in.h:46
-msgid "Alt+Ctrl change layout."
-msgstr "Alt+Ctrl раÑкладканы алмаштырат."
+msgid "Alt+Ctrl"
+msgstr "Alt+Ctrl"
#: ../rules/base.xml.in.h:47
-msgid "Alt+Shift change layout."
-msgstr "Alt+Shift раÑкладканы алмаштырат."
+msgid "Alt+Shift"
+msgstr "Alt+Shift"
#: ../rules/base.xml.in.h:48
+msgid "Alt+Space"
+msgstr "Alt+Боштук"
+
+#: ../rules/base.xml.in.h:49
msgid "Alt-Q"
msgstr "Alt-Q"
-#: ../rules/base.xml.in.h:49
+#: ../rules/base.xml.in.h:50
msgid "Alt/Win key behavior"
msgstr "Alt/Win клавишалары"
-#: ../rules/base.xml.in.h:50
+#: ../rules/base.xml.in.h:51
msgid "Alternative"
msgstr "Ðльтернативдик"
-#: ../rules/base.xml.in.h:51
+#: ../rules/base.xml.in.h:52
msgid "Alternative Eastern"
msgstr "Ðльтернативдик"
-#: ../rules/base.xml.in.h:52
+#: ../rules/base.xml.in.h:53
msgid "Alternative Phonetic"
msgstr "Ðльтернативдүү фонетикалык"
-#: ../rules/base.xml.in.h:53
+#: ../rules/base.xml.in.h:54
msgid "Alternative international (former us_intl)"
msgstr "Эларалык Ðльтернативдик (мурунку us_intl)"
-#: ../rules/base.xml.in.h:54
+#: ../rules/base.xml.in.h:55
msgid "Alternative, Sun dead keys"
msgstr "Ðльтернативдик, атайын (dead keys) Sun клавишалары менен"
-#: ../rules/base.xml.in.h:55
+#: ../rules/base.xml.in.h:56
msgid "Alternative, eliminate dead keys"
msgstr "Ðльтернативдик, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:56
+#: ../rules/base.xml.in.h:57
msgid "Alternative, latin-9 only"
msgstr "Ðльтернативдик, latin-9 гана"
-#: ../rules/base.xml.in.h:57
+#: ../rules/base.xml.in.h:58
msgid "And"
msgstr "Ðнд"
-#: ../rules/base.xml.in.h:58
+#: ../rules/base.xml.in.h:59
msgid "Andorra"
msgstr "Ðндорра"
-#: ../rules/base.xml.in.h:59
+#: ../rules/base.xml.in.h:60
+msgid "Any Alt key"
+msgstr ""
+
+#: ../rules/base.xml.in.h:61
+#, fuzzy
+msgid "Any Win key"
+msgstr "Windows клавиатураÑÑ‹"
+
+#: ../rules/base.xml.in.h:62
+msgid "Any Win key (while pressed)"
+msgstr ""
+
+#: ../rules/base.xml.in.h:63
msgid "Apostrophe (') variant"
msgstr "Вариант апоÑтроф (') менен"
-#: ../rules/base.xml.in.h:60
+#: ../rules/base.xml.in.h:64
msgid "Apple"
msgstr "Apple"
-#: ../rules/base.xml.in.h:61
+#: ../rules/base.xml.in.h:65
msgid "Apple Laptop"
msgstr "Apple Ðоутбугу"
-#: ../rules/base.xml.in.h:62
+#: ../rules/base.xml.in.h:66
msgid "Ara"
msgstr "Ðра"
-#: ../rules/base.xml.in.h:63
+#: ../rules/base.xml.in.h:67
msgid "Arabic"
msgstr "Ðраб"
-#: ../rules/base.xml.in.h:64
+#: ../rules/base.xml.in.h:68
msgid "Arm"
msgstr "Ðрм"
-#: ../rules/base.xml.in.h:65
+#: ../rules/base.xml.in.h:69
msgid "Armenia"
msgstr "ÐрмениÑ"
-#: ../rules/base.xml.in.h:66
+#: ../rules/base.xml.in.h:70
+msgid "Asturian variant with bottom-dot H and bottom-dot L"
+msgstr ""
+
+#: ../rules/base.xml.in.h:71
msgid "Asus Laptop"
msgstr "Asus ноутбугу"
-#: ../rules/base.xml.in.h:67
+#: ../rules/base.xml.in.h:72
+#, fuzzy
+msgid "At bottom left"
+msgstr "Ctrl клавишаÑÑ‹ төмөн Ñол жакта жайгашкан"
+
+#: ../rules/base.xml.in.h:73
+#, fuzzy
+msgid "At left of 'A'"
+msgstr "Ctrl клавишаÑÑ‹ 'Ф' клавишанын Ñол жагында"
+
+#: ../rules/base.xml.in.h:74
msgid "Aze"
msgstr "Ðзр"
-#: ../rules/base.xml.in.h:68
+#: ../rules/base.xml.in.h:75
msgid "Azerbaijan"
msgstr "Ðзербайджан"
-#: ../rules/base.xml.in.h:69
+#: ../rules/base.xml.in.h:76
msgid "Azona RF2300 wireless Internet Keyboard"
msgstr "Azona RF2300 wireless Internet Keyboard"
-#: ../rules/base.xml.in.h:70
+#: ../rules/base.xml.in.h:77
msgid "BTC 5090"
msgstr "BTC 5090"
-#: ../rules/base.xml.in.h:71
+#: ../rules/base.xml.in.h:78
msgid "BTC 5113RF Multimedia"
msgstr "BTC 5113RF Multimedia"
-#: ../rules/base.xml.in.h:72
+#: ../rules/base.xml.in.h:79
msgid "BTC 5126T"
msgstr "BTC 5126T"
-#: ../rules/base.xml.in.h:73
+#: ../rules/base.xml.in.h:80
+msgid "BTC 6301URF"
+msgstr "BTC 6301URF"
+
+#: ../rules/base.xml.in.h:81
msgid "BTC 9000"
msgstr "BTC 9000"
-#: ../rules/base.xml.in.h:74
+#: ../rules/base.xml.in.h:82
msgid "BTC 9000A"
msgstr "BTC 9000A"
-#: ../rules/base.xml.in.h:75
+#: ../rules/base.xml.in.h:83
msgid "BTC 9001AH"
msgstr "BTC 9001AH"
-#: ../rules/base.xml.in.h:76
+#: ../rules/base.xml.in.h:84
msgid "BTC 9019U"
msgstr "BTC 9019U"
-#: ../rules/base.xml.in.h:77
+#: ../rules/base.xml.in.h:85
+msgid "BTC 9116U Mini Wireless Internet and Gaming"
+msgstr "BTC 9116U Mini Wireless Internet and Gaming"
+
+#: ../rules/base.xml.in.h:86
+msgid "Baltic+"
+msgstr "Baltic+"
+
+#: ../rules/base.xml.in.h:87
msgid "Ban"
msgstr "Бан"
-#: ../rules/base.xml.in.h:78
+#: ../rules/base.xml.in.h:88
msgid "Bangladesh"
msgstr "Бангладеш"
-#: ../rules/base.xml.in.h:79 ../rules/sun.xml.in.h:22
+#: ../rules/base.xml.in.h:89
msgid "Bel"
msgstr "Бел"
-#: ../rules/base.xml.in.h:80
+#: ../rules/base.xml.in.h:90
msgid "Belarus"
msgstr "БеларуÑиÑ"
-#: ../rules/base.xml.in.h:81
+#: ../rules/base.xml.in.h:91
msgid "Belgium"
msgstr "БельгиÑ"
-#: ../rules/base.xml.in.h:82
+#: ../rules/base.xml.in.h:92
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:83
+#: ../rules/base.xml.in.h:93
+msgid "BenQ X-Touch 730"
+msgstr "BenQ X-Touch 730"
+
+#: ../rules/base.xml.in.h:94
+msgid "BenQ X-Touch 800"
+msgstr "BenQ X-Touch 800"
+
+#: ../rules/base.xml.in.h:95
msgid "Bengali"
msgstr "Бенгальдык"
-#: ../rules/base.xml.in.h:84
+#: ../rules/base.xml.in.h:96
msgid "Bengali Probhat"
msgstr "Бенгальдык Пробат"
-#: ../rules/base.xml.in.h:85
+#: ../rules/base.xml.in.h:97
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Бепо, Ñргономикалык, Dvorak'ка окшош"
-#: ../rules/base.xml.in.h:86
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Бепо, Ñргономикалык, Dvorak'ка окшош, latin-9 гана"
-#: ../rules/base.xml.in.h:87 ../rules/sun.xml.in.h:24
+#: ../rules/base.xml.in.h:99
msgid "Bgr"
msgstr "Болг"
-#: ../rules/base.xml.in.h:88
+#: ../rules/base.xml.in.h:100
msgid "Bhu"
msgstr "Бут"
-#: ../rules/base.xml.in.h:89
+#: ../rules/base.xml.in.h:101
msgid "Bhutan"
msgstr "Бутан"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:102
msgid "Biblical Hebrew (Tiro)"
msgstr "Библейдик иврит (Tiro)"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:103
msgid "Bih"
msgstr "БоÑн"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:104
msgid "Blr"
msgstr "Бел"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:105
msgid "Bosnia and Herzegovina"
msgstr "БоÑÐ½Ð¸Ñ Ð¶Ð°Ð½Ð° ГерциговиниÑ"
-#: ../rules/base.xml.in.h:94
-msgid "Both Alt keys together change layout."
-msgstr ""
-
-#: ../rules/base.xml.in.h:95
-msgid "Both Ctrl keys together change layout."
-msgstr ""
+#: ../rules/base.xml.in.h:106
+msgid "Both Alt keys together"
+msgstr "Эки Alt клавишалары бирге"
-#: ../rules/base.xml.in.h:96
-msgid "Both Shift keys together change layout."
-msgstr ""
+#: ../rules/base.xml.in.h:107
+msgid "Both Ctrl keys together"
+msgstr "Эки Ctrl клавишалары бирге"
-#: ../rules/base.xml.in.h:97
-msgid "Both Win-keys switch layout while pressed."
-msgstr ""
+#: ../rules/base.xml.in.h:108
+msgid "Both Shift keys together"
+msgstr "Эки Shift клавишалары бирге"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:109
msgid "Bra"
msgstr "Бра"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:110
msgid "Braille"
msgstr "Браиил"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:111
msgid "Brazil"
msgstr "БразилиÑ"
-#: ../rules/base.xml.in.h:101
-msgid "Brazilian ABNT2"
-msgstr "Бразилдик ABNT2"
+#: ../rules/base.xml.in.h:112
+msgid "Breton"
+msgstr "Бретон"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:113
msgid "Brl"
msgstr "Брл"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:114
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:115
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:116
msgid "Bulgaria"
msgstr "БолгариÑ"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:117
+msgid "CRULP"
+msgstr ""
+
+#: ../rules/base.xml.in.h:118
msgid "Cambodia"
msgstr "КамбоджиÑ"
-#: ../rules/base.xml.in.h:107 ../rules/sun.xml.in.h:29
+#: ../rules/base.xml.in.h:119
msgid "Can"
msgstr "Кан"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:120
msgid "Canada"
msgstr "Канада"
-#: ../rules/base.xml.in.h:109
-msgid "Caps Lock is Compose."
-msgstr "Caps Lock Compose клавишаÑÑ‹."
+#: ../rules/base.xml.in.h:121
+msgid "Caps Lock"
+msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:110
-msgid "CapsLock LED shows alternative layout."
-msgstr ""
+#: ../rules/base.xml.in.h:122
+msgid "CapsLock"
+msgstr "CapsLock"
-#: ../rules/base.xml.in.h:111
-msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock."
+#: ../rules/base.xml.in.h:123
+msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr ""
-#: ../rules/base.xml.in.h:112
-msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock."
+#: ../rules/base.xml.in.h:124
+msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr ""
-#: ../rules/base.xml.in.h:113
-msgid "CapsLock just locks the Shift modifier."
+#: ../rules/base.xml.in.h:125
+msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr ""
-#: ../rules/base.xml.in.h:114 ../rules/sun.xml.in.h:33
+#: ../rules/base.xml.in.h:126
+#, fuzzy
+msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
+msgstr "Shift блокировка менен амал жаÑайт. Shift Caps амалына тоÑкол болбойт."
+
+#: ../rules/base.xml.in.h:127
msgid "CapsLock key behavior"
msgstr ""
-#: ../rules/base.xml.in.h:115
-msgid "CapsLock key changes layout."
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock toggles Shift so all keys are affected"
msgstr ""
-#: ../rules/base.xml.in.h:116
-msgid "CapsLock toggles Shift so all keys are affected."
+#: ../rules/base.xml.in.h:129
+msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr ""
-#: ../rules/base.xml.in.h:117
-msgid "CapsLock toggles normal capitalization of alphabetic characters."
-msgstr ""
+#: ../rules/base.xml.in.h:130
+#, fuzzy
+msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
+msgstr "Ички капитализацыÑны ачат. Shift CapsLock амалын токтотот."
-#: ../rules/base.xml.in.h:118
-msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock."
-msgstr ""
+#: ../rules/base.xml.in.h:131
+#, fuzzy
+msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
+msgstr "Ички капитализацыÑны ачат. Shift CapsLock амалына тааÑир тийгизбейт."
-#: ../rules/base.xml.in.h:119
-msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock."
+#: ../rules/base.xml.in.h:132
+msgid "Catalan variant with middle-dot L"
msgstr ""
-#: ../rules/base.xml.in.h:120
-msgid "Catalan variant with middle-dot L"
+#: ../rules/base.xml.in.h:133
+msgid "Cedilla"
msgstr ""
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:134
msgid "Che"
msgstr "Че"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:135
+msgid "Cherokee"
+msgstr ""
+
+#: ../rules/base.xml.in.h:136
+msgid "Cherry B.UNLIMITED"
+msgstr "Cherry B.UNLIMITED"
+
+#: ../rules/base.xml.in.h:137
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:138
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (альтернативдик)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:139
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:140
+msgid "Cherry CyMotion Expert"
+msgstr "Cherry CyMotion Expert"
+
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:143
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:144
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:145
+msgid "Chicony KU-0108"
+msgstr "Chicony KU-0108"
+
+#: ../rules/base.xml.in.h:146
+msgid "Chicony KU-0420"
+msgstr "Chicony KU-0420"
+
+#: ../rules/base.xml.in.h:147
msgid "China"
msgstr "Кытай"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:148
msgid "Chuvash"
msgstr "Чуваш"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:149
msgid "Chuvash Latin"
msgstr "Чуваш латындык"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:150
+#, fuzzy
+msgid "Classic"
+msgstr "КлаÑÑикалык Дровак"
+
+#: ../rules/base.xml.in.h:151
msgid "Classic Dvorak"
msgstr "КлаÑÑикалык Дровак"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:152
msgid "Classmate PC"
-msgstr ""
+msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:153
msgid "CloGaelach"
-msgstr ""
+msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:154
msgid "Colemak"
msgstr ""
-#: ../rules/base.xml.in.h:136
-msgid "Commabelow"
-msgstr ""
-
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:155
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:156
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq \"Интернет\" клавиатураÑÑ‹ (13 клавиша менен)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:157
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq \"Интернет\" клавиатураÑÑ‹ (18 клавиша менен)"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq \"Интернет\" клавиатураÑÑ‹ (7 клавиша менен)"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:159
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:160
msgid "Compose key position"
msgstr ""
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:161
msgid "Congo, Democratic Republic of the"
msgstr ""
-#: ../rules/base.xml.in.h:144
-msgid "Control is mapped to the Win-keys (and the usual Ctrl keys)."
+#: ../rules/base.xml.in.h:162
+msgid "Control + Alt + Backspace"
msgstr ""
-#: ../rules/base.xml.in.h:145
-msgid "Croatia"
-msgstr "ХорватиÑ"
+#: ../rules/base.xml.in.h:163
+msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
+msgstr ""
-#: ../rules/base.xml.in.h:146
-msgid "Ctrl key at bottom left"
-msgstr "Ctrl клавишаÑÑ‹ төмөн Ñол жакта жайгашкан"
+#: ../rules/base.xml.in.h:164
+msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
+msgstr ""
-#: ../rules/base.xml.in.h:147
-msgid "Ctrl key at left of 'A'"
-msgstr "Ctrl клавишаÑÑ‹ 'Ф' клавишанын Ñол жагында"
+#: ../rules/base.xml.in.h:165
+msgid "Crimean Tatar (Dobruca-1 Q)"
+msgstr ""
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:166
+msgid "Crimean Tatar (Dobruca-2 Q)"
+msgstr ""
+
+#: ../rules/base.xml.in.h:167
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr ""
+
+#: ../rules/base.xml.in.h:168
+msgid "Crimean Tatar (Turkish F)"
+msgstr ""
+
+#: ../rules/base.xml.in.h:169
+msgid "Crimean Tatar (Turkish Q)"
+msgstr ""
+
+#: ../rules/base.xml.in.h:170
+msgid "Croatia"
+msgstr "ХорватиÑ"
+
+#: ../rules/base.xml.in.h:171
msgid "Ctrl key position"
msgstr "Ctrl клавишанын жайгашууÑу"
-#: ../rules/base.xml.in.h:149
-msgid "Ctrl+Shift change layout."
-msgstr ""
+#: ../rules/base.xml.in.h:172
+msgid "Ctrl+Shift"
+msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:173
msgid "Cyrillic"
msgstr "Кириллица"
-#: ../rules/base.xml.in.h:151 ../rules/sun.xml.in.h:39
+#: ../rules/base.xml.in.h:174
+#, fuzzy
+msgid "Cyrillic with guillemets"
+msgstr "Француздук тырмакчалар менен"
+
+#: ../rules/base.xml.in.h:175
+#, fuzzy
+msgid "Cyrillic, Z and ZHE swapped"
+msgstr "З жана Ж орундарын алмаштырган"
+
+#: ../rules/base.xml.in.h:176
msgid "Cze"
msgstr "Чех"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:177
msgid "Czechia"
msgstr "ЧехиÑ"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:178
+msgid "DOS"
+msgstr ""
+
+#: ../rules/base.xml.in.h:179
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:180
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:155 ../rules/sun.xml.in.h:42
+#: ../rules/base.xml.in.h:181
+#, fuzzy
+msgid "Dan"
+msgstr "Бан"
+
+#: ../rules/base.xml.in.h:182
msgid "Dead acute"
msgstr "Dead acute атайын Ñимволу"
-#: ../rules/base.xml.in.h:156 ../rules/sun.xml.in.h:43
+#: ../rules/base.xml.in.h:183
msgid "Dead grave acute"
msgstr "Dead grave acute атайын Ñимволу"
-#: ../rules/base.xml.in.h:157
-msgid "Default numeric keypad keys."
+#: ../rules/base.xml.in.h:184
+msgid "Default numeric keypad keys"
msgstr ""
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:185
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:186
msgid "Dell 101-key PC"
msgstr "Dell 101-клавиша менен PC"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:187
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Inspiron 6xxx/8xxx ноутбугу"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:188
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Precision M ÑериÑлуу ноутбугу"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:189
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude ÑериÑлуу ноутбугу"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:190
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:164
-msgid "Dell USB Multimedia Keybard"
-msgstr "Dell USB Multimedia Keybard"
+#: ../rules/base.xml.in.h:191
+msgid "Dell SK-8125"
+msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:192
+msgid "Dell SK-8135"
+msgstr "Dell SK-8135"
+
+#: ../rules/base.xml.in.h:193
+msgid "Dell USB Multimedia Keyboard"
+msgstr "Dell USB Multimedia Keyboard"
+
+#: ../rules/base.xml.in.h:194
msgid "Denmark"
-msgstr ""
+msgstr "ДаниÑ"
-#: ../rules/base.xml.in.h:166 ../rules/sun.xml.in.h:44
+#: ../rules/base.xml.in.h:195
msgid "Deu"
-msgstr ""
+msgstr "Ðем"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:196
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:197
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802 ÑериÑлары"
-#: ../rules/base.xml.in.h:169 ../rules/sun.xml.in.h:46
-msgid "Dnk"
-msgstr ""
-
-#: ../rules/base.xml.in.h:170 ../rules/sun.xml.in.h:48
+#: ../rules/base.xml.in.h:198
msgid "Dvorak"
msgstr "Дровак"
-#: ../rules/base.xml.in.h:171
-msgid "Dvorak, Polish quotes on key \"1/!\""
+#: ../rules/base.xml.in.h:199
+msgid "Dvorak (UK Punctuation)"
msgstr ""
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:200
+msgid "Dvorak international"
+msgstr ""
+
+#: ../rules/base.xml.in.h:201
+msgid "Dvorak, Polish quotes on key 1"
+msgstr ""
+
+#: ../rules/base.xml.in.h:202
msgid "Dvorak, Polish quotes on quotemark key"
msgstr ""
-#: ../rules/base.xml.in.h:173
-msgid "Eastern"
+#: ../rules/base.xml.in.h:203
+msgid "E"
msgstr ""
-#: ../rules/base.xml.in.h:174 ../rules/sun.xml.in.h:49
+#: ../rules/base.xml.in.h:204
+msgid "Eastern"
+msgstr "Чыгыш"
+
+#: ../rules/base.xml.in.h:205
msgid "Eliminate dead keys"
msgstr ""
-#: ../rules/base.xml.in.h:175
-msgid "Ennyah DKB-1008"
+#: ../rules/base.xml.in.h:206
+msgid "Enable extra typographic characters"
msgstr ""
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:207
+msgid "English"
+msgstr "ÐнглиÑ"
+
+#: ../rules/base.xml.in.h:208
+msgid "Ennyah DKB-1008"
+msgstr "Ennyah DKB-1008"
+
+#: ../rules/base.xml.in.h:209
+#, fuzzy
+msgid "Enter on keypad"
+msgstr "Pro кошумча панели менен"
+
+#: ../rules/base.xml.in.h:210
msgid "Epo"
-msgstr ""
+msgstr "ЭÑп"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:211
msgid "Ergonomic"
msgstr ""
-#: ../rules/base.xml.in.h:178 ../rules/sun.xml.in.h:50
+#: ../rules/base.xml.in.h:212
msgid "Esp"
-msgstr ""
+msgstr "ИÑп"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:213
msgid "Esperanto"
-msgstr ""
+msgstr "ЭÑперанто"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:214
msgid "Est"
-msgstr ""
+msgstr "ЭÑÑ‚"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:215
msgid "Estonia"
-msgstr ""
+msgstr "ЭÑтониÑ"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:216
msgid "Eth"
-msgstr ""
+msgstr "Эфп"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:217
msgid "Ethiopia"
-msgstr ""
+msgstr "ЭфиопиÑ"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:218
msgid "Evdev-managed keyboard"
msgstr ""
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:219
msgid "Everex STEPnote"
-msgstr ""
+msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:220
msgid "Ewe"
-msgstr ""
+msgstr "Эве"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:221
msgid "Extended"
msgstr ""
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:222
+msgid "Extended - Winkeys"
+msgstr ""
+
+#: ../rules/base.xml.in.h:223
msgid "Extended Backslash"
msgstr ""
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:224
msgid "F-letter (F) variant"
msgstr ""
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:225
+msgid "FL90"
+msgstr "FL90"
+
+#: ../rules/base.xml.in.h:226
msgid "Fao"
-msgstr ""
+msgstr "Фар"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:227
msgid "Faroe Islands"
-msgstr ""
+msgstr "Фаро аралдары"
-#: ../rules/base.xml.in.h:192 ../rules/sun.xml.in.h:51
+#: ../rules/base.xml.in.h:228
msgid "Fin"
-msgstr ""
+msgstr "Фин"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:229
msgid "Finland"
-msgstr ""
+msgstr "ФинлÑндиÑ"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:232
msgid "Four-level key with abstract separators"
msgstr ""
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:233
msgid "Four-level key with comma"
msgstr ""
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:234
msgid "Four-level key with dot"
msgstr ""
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:235
+msgid "Four-level key with dot, latin-9 restriction"
+msgstr ""
+
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with momayyez"
msgstr ""
-#: ../rules/base.xml.in.h:200 ../rules/sun.xml.in.h:53
+#: ../rules/base.xml.in.h:237
msgid "Fra"
-msgstr ""
+msgstr "Фра"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:238
msgid "France"
-msgstr ""
+msgstr "ФранциÑ"
-#: ../rules/base.xml.in.h:202 ../rules/sun.xml.in.h:55
+#: ../rules/base.xml.in.h:239
msgid "French"
-msgstr ""
+msgstr "Француз"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:240
msgid "French (Macintosh)"
-msgstr ""
+msgstr "Француз (Macintosh)"
-#: ../rules/base.xml.in.h:204 ../rules/sun.xml.in.h:56
+#: ../rules/base.xml.in.h:241
msgid "French (legacy)"
msgstr ""
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:242
msgid "French Dvorak"
-msgstr ""
+msgstr "Француз Dvorak"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:243
msgid "French, Sun dead keys"
-msgstr ""
+msgstr "Француз,атайын (dead keys) Sun клавишалары менен"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:244
msgid "French, eliminate dead keys"
msgstr ""
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:245
+msgid "Fujitsu-Siemens Computers AMILO laptop"
+msgstr "Fujitsu-Siemens Computers AMILO laptop"
+
+#: ../rules/base.xml.in.h:246
msgid "Fula"
-msgstr ""
+msgstr "Фула"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:247
msgid "GBr"
-msgstr ""
+msgstr "Брит"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:248
msgid "Ga"
-msgstr ""
+msgstr "Га"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:249
msgid "Generic 101-key PC"
-msgstr ""
+msgstr "Жалпы 101-клавишалары менен PC"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:250
msgid "Generic 102-key (Intl) PC"
-msgstr ""
+msgstr "Жалпы 102-клавишалары менен (Инт.) PC"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:251
msgid "Generic 104-key PC"
-msgstr ""
+msgstr "Жалпы 104-клавишалары менен PC"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:252
msgid "Generic 105-key (Intl) PC"
-msgstr ""
+msgstr "Жалпы 105-клавишалары менен (Инт.) PC"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:253
msgid "Genius Comfy KB-12e"
-msgstr ""
+msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:254
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-msgstr ""
+msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:255
msgid "Genius Comfy KB-21e-Scroll"
-msgstr ""
+msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:256
msgid "Genius KB-19e NB"
-msgstr ""
+msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:257
+msgid "Genius KKB-2050HS"
+msgstr "Genius KKB-2050HS"
+
+#: ../rules/base.xml.in.h:258
msgid "Geo"
-msgstr ""
+msgstr "Груз"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:259
msgid "Georgia"
-msgstr ""
+msgstr "ГрузиÑ"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:260
msgid "Georgian"
-msgstr ""
+msgstr "Грузиндик"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:261
+msgid "Georgian AZERTY Tskapo"
+msgstr "Грузин AZERTY Tskapo"
+
+#: ../rules/base.xml.in.h:262
msgid "German (Macintosh)"
-msgstr ""
+msgstr "Ðемец (Macintosh)"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:263
msgid "German, Sun dead keys"
-msgstr ""
+msgstr "Ðемец, атайын (dead keys) Sun клавишалары менен"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:264
msgid "German, eliminate dead keys"
msgstr ""
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:265
msgid "Germany"
-msgstr ""
+msgstr "ГерманиÑ"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:266
msgid "Gha"
-msgstr ""
+msgstr "Ган"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:267
msgid "Ghana"
-msgstr ""
+msgstr "Гана"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:268
msgid "Gre"
-msgstr ""
+msgstr "Гре"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:269
msgid "Greece"
+msgstr "ГрециÑ"
+
+#: ../rules/base.xml.in.h:270
+msgid "Group toggle on multiply/divide key"
msgstr ""
-#: ../rules/base.xml.in.h:230
+#: ../rules/base.xml.in.h:271
msgid "Gui"
-msgstr ""
+msgstr "Гви"
-#: ../rules/base.xml.in.h:231
+#: ../rules/base.xml.in.h:272
msgid "Guinea"
-msgstr ""
+msgstr "ГвинеÑ"
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:273
msgid "Gujarati"
-msgstr ""
+msgstr "Гуджарати"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:274
msgid "Gurmukhi"
+msgstr "Гурмукхи"
+
+#: ../rules/base.xml.in.h:275
+msgid "Gurmukhi Jhelum"
msgstr ""
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:276
msgid "Gyration"
-msgstr ""
+msgstr "Гирашн"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:277
msgid "Happy Hacking Keyboard"
msgstr ""
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:278
msgid "Happy Hacking Keyboard for Mac"
msgstr ""
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:279
msgid "Hausa"
-msgstr ""
+msgstr "Хауза"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:280
msgid "Hewlett-Packard Internet Keyboard"
-msgstr ""
+msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:281
msgid "Hewlett-Packard Omnibook 500 FA"
-msgstr ""
+msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:282
msgid "Hewlett-Packard Omnibook 5xx"
-msgstr ""
+msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Omnibook 6000/6100"
-msgstr ""
+msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook XE3 GC"
-msgstr ""
+msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook XE3 GF"
-msgstr ""
+msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook XT1000"
-msgstr ""
+msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Pavilion ZT11xx"
+msgstr "Hewlett-Packard Pavilion ZT11xx"
+
+#: ../rules/base.xml.in.h:288
+msgid "Hewlett-Packard Pavilion dv5"
+msgstr "Hewlett-Packard Pavilion dv5"
+
+#: ../rules/base.xml.in.h:289
+msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
+msgstr "Hewlett-Packard SK-250x Multimedia Keyboard"
+
+#: ../rules/base.xml.in.h:290
+msgid "Hewlett-Packard nx9020"
+msgstr "Hewlett-Packard nx9020"
+
+#: ../rules/base.xml.in.h:291
+msgid "Hexadecimal"
msgstr ""
-#: ../rules/base.xml.in.h:246
-msgid "Hewlett-Packard SK-2501 Multimedia Keyboard"
+#: ../rules/base.xml.in.h:292
+msgid "Hindi Bolnagri"
msgstr ""
-#: ../rules/base.xml.in.h:247
-msgid "Hewlett-Packard SK-2505 Internet Keyboard"
+#: ../rules/base.xml.in.h:293
+msgid "Hindi Wx"
msgstr ""
-#: ../rules/base.xml.in.h:248
-msgid "Hindi Bolnagri"
+#: ../rules/base.xml.in.h:294
+msgid "Homophonic"
msgstr ""
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:295
msgid "Honeywell Euroboard"
-msgstr ""
+msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:296
msgid "Hrv"
-msgstr ""
+msgstr "Хорв"
-#: ../rules/base.xml.in.h:251 ../rules/sun.xml.in.h:59
+#: ../rules/base.xml.in.h:297
msgid "Hun"
-msgstr ""
+msgstr "Венг"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:298
msgid "Hungary"
-msgstr ""
+msgstr "ВенгриÑ"
-#: ../rules/base.xml.in.h:253
-msgid "Hyper is mapped to the Win-keys."
+#: ../rules/base.xml.in.h:299
+msgid "Hyper is mapped to Win-keys"
msgstr ""
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:300
msgid "IBM (LST 1205-92)"
-msgstr ""
+msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:301
msgid "IBM Rapid Access"
-msgstr ""
+msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:302
msgid "IBM Rapid Access II"
-msgstr ""
+msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:257
-msgid "IBM Rapid Access II (alternate option)"
-msgstr ""
+#: ../rules/base.xml.in.h:303
+msgid "IBM Space Saver"
+msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:304
msgid "IBM ThinkPad 560Z/600/600E/A22E"
-msgstr ""
+msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:305
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-msgstr ""
+msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
+
+#: ../rules/base.xml.in.h:306
+msgid "IBM ThinkPad R60/T60/R61/T61"
+msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:260 ../rules/sun.xml.in.h:61
+#: ../rules/base.xml.in.h:307
+msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
+msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
+
+#: ../rules/base.xml.in.h:308
msgid "ISO Alternate"
-msgstr ""
+msgstr "Кошумча ISO"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:309
msgid "Iceland"
-msgstr ""
+msgstr "ИÑландиÑ"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:310
msgid "Igbo"
+msgstr "Igbo"
+
+#: ../rules/base.xml.in.h:311
+msgid "Include dead tilde"
msgstr ""
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:312
msgid "Ind"
-msgstr ""
+msgstr "Инд"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:313
msgid "India"
-msgstr ""
+msgstr "ИндиÑ"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:314
msgid "International (AltGr dead keys)"
msgstr ""
-#: ../rules/base.xml.in.h:266 ../rules/sun.xml.in.h:62
+#: ../rules/base.xml.in.h:315
msgid "International (with dead keys)"
msgstr ""
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:316
msgid "Inuktitut"
-msgstr ""
+msgstr "ИннуитÑкаÑ"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:317
msgid "Iran"
-msgstr ""
+msgstr "Иран"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:318
msgid "Iraq"
-msgstr ""
+msgstr "Ирак"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:319
msgid "Ireland"
-msgstr ""
+msgstr "ИрландиÑ"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:320
msgid "Irl"
-msgstr ""
+msgstr "Ирл"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:321
msgid "Irn"
-msgstr ""
+msgstr "ФарÑ"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:322
msgid "Irq"
-msgstr ""
+msgstr "Ирк"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:323
msgid "Isl"
-msgstr ""
+msgstr "ИÑл"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:324
msgid "Isr"
-msgstr ""
+msgstr "Ивр"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:325
msgid "Israel"
-msgstr ""
+msgstr "Израиль"
-#: ../rules/base.xml.in.h:277 ../rules/sun.xml.in.h:63
+#: ../rules/base.xml.in.h:326
msgid "Ita"
-msgstr ""
+msgstr "Ит"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:327
msgid "Italy"
-msgstr ""
+msgstr "ИталиÑ"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:328
msgid "Japan"
-msgstr ""
+msgstr "ЯпониÑ"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:329
msgid "Japan (PC-98xx Series)"
-msgstr ""
-
-#: ../rules/base.xml.in.h:281
-msgid "Japanese 106-key"
-msgstr ""
+msgstr "Japan (PC-98xx Series)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:330
msgid "Japanese keyboard options"
msgstr ""
-#: ../rules/base.xml.in.h:283 ../rules/sun.xml.in.h:66
+#: ../rules/base.xml.in.h:331
msgid "Jpn"
-msgstr ""
+msgstr "Яп"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:332
+msgid "Kalmyk"
+msgstr "Калмык"
+
+#: ../rules/base.xml.in.h:333
msgid "Kana"
-msgstr ""
+msgstr "Кана"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:334
msgid "Kana Lock key is locking"
msgstr ""
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:335
msgid "Kannada"
-msgstr ""
+msgstr "Каннада"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:336
msgid "Kashubian"
-msgstr ""
+msgstr "Кашуб"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:337
msgid "Kaz"
-msgstr ""
+msgstr "Каз"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:338
msgid "Kazakh with Russian"
-msgstr ""
+msgstr "Казакча ОруÑча менен"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:339
msgid "Kazakhstan"
-msgstr ""
+msgstr "КазахÑтан"
-#: ../rules/base.xml.in.h:291
-msgid "Keypad"
+#: ../rules/base.xml.in.h:340
+msgid "Key sequence to kill the X server"
msgstr ""
-#: ../rules/base.xml.in.h:292
-msgid "Keypad with unicode additions (arrows and math operators)"
-msgstr ""
+#: ../rules/base.xml.in.h:341
+#, fuzzy
+msgid "Key to choose 3rd level"
+msgstr "3-чү денгÑÑлди тандоо Menu клавишанын баÑылышы менен."
-#: ../rules/base.xml.in.h:293
-msgid "Keypad with unicode additions (arrows and math operators). Math operators on default level."
+#: ../rules/base.xml.in.h:342
+#, fuzzy
+msgid "Key(s) to change layout"
+msgstr "Alt+Ctrl раÑкладканы алмаштырат."
+
+#: ../rules/base.xml.in.h:343
+msgid "Keypad"
msgstr ""
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:344
msgid "Keytronic FlexPro"
-msgstr ""
+msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:345
+msgid "Kgz"
+msgstr "Кгз"
+
+#: ../rules/base.xml.in.h:346
msgid "Khm"
+msgstr "Кхм"
+
+#: ../rules/base.xml.in.h:347
+msgid "Komi"
msgstr ""
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:348
msgid "Kor"
-msgstr ""
+msgstr "Кор"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:349
msgid "Korea, Republic of"
-msgstr ""
+msgstr "ÐšÐ¾Ñ€ÐµÑ Ð ÐµÑпубликаÑÑ‹"
-#: ../rules/base.xml.in.h:298
-msgid "Korean 106-key"
-msgstr ""
-
-#: ../rules/base.xml.in.h:299
-msgid "Kotoistus"
+#: ../rules/base.xml.in.h:350
+msgid "Ktunaxa"
msgstr ""
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:351
msgid "Kurdish, (F)"
-msgstr ""
+msgstr "Курд, (F)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:352
msgid "Kurdish, Arabic-Latin"
-msgstr ""
+msgstr "Курд, араб-латын"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, Latin Alt-Q"
-msgstr ""
+msgstr "Курд, латын Alt-Q"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Latin Q"
-msgstr ""
+msgstr "Курд, латын Q"
-#: ../rules/base.xml.in.h:304
-msgid "Kyr"
-msgstr ""
-
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:355
msgid "Kyrgyzstan"
-msgstr ""
+msgstr "КыргызÑтан"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:356
msgid "LAm"
+msgstr "ЛатÐм"
+
+#: ../rules/base.xml.in.h:357
+msgid "LEKP"
msgstr ""
-#: ../rules/base.xml.in.h:307
-msgid "LCtrl+LShift change layout."
+#: ../rules/base.xml.in.h:358
+msgid "LEKPa"
msgstr ""
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:359
msgid "Lao"
-msgstr ""
+msgstr "Лао"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:360
msgid "Laos"
-msgstr ""
+msgstr "ЛаоÑ"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:361
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr ""
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:362
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr ""
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook eMachines m68xx"
msgstr ""
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:364
msgid "Latin"
-msgstr ""
+msgstr "Латын"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:365
msgid "Latin American"
-msgstr ""
+msgstr "Латын американдык"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:366
msgid "Latin Unicode"
-msgstr ""
+msgstr "Латын Unicode"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:367
msgid "Latin Unicode qwerty"
-msgstr ""
+msgstr "Латын Unicode qwerty"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:368
msgid "Latin qwerty"
-msgstr ""
+msgstr "Латын qwerty"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:369
+msgid "Latin unicode"
+msgstr "Латын unicode"
+
+#: ../rules/base.xml.in.h:370
+msgid "Latin unicode qwerty"
+msgstr "Латын unicode qwerty"
+
+#: ../rules/base.xml.in.h:371
msgid "Latin with guillemets"
msgstr ""
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:372
msgid "Latvia"
-msgstr ""
+msgstr "ЛатвиÑ"
-#: ../rules/base.xml.in.h:320
-msgid "Layout switching"
-msgstr ""
+#: ../rules/base.xml.in.h:373
+msgid "Lav"
+msgstr "Лат"
-#: ../rules/base.xml.in.h:321
-msgid "Left Alt is swapped with left Win-key."
-msgstr ""
+#: ../rules/base.xml.in.h:374
+msgid "Left Alt"
+msgstr "Сол Alt"
-#: ../rules/base.xml.in.h:322
-msgid "Left Alt key changes layout."
-msgstr ""
+#: ../rules/base.xml.in.h:375
+msgid "Left Alt (while pressed)"
+msgstr "Сол Alt клавишаÑÑ‹ (баÑылган учурда)"
-#: ../rules/base.xml.in.h:323
-msgid "Left Alt key switches layout while pressed."
+#: ../rules/base.xml.in.h:376
+msgid "Left Alt is swapped with Left Win"
msgstr ""
-#: ../rules/base.xml.in.h:324
-msgid "Left Ctrl key changes layout."
-msgstr ""
+#: ../rules/base.xml.in.h:377
+msgid "Left Ctrl"
+msgstr "Сол Ctrl"
-#: ../rules/base.xml.in.h:325
-msgid "Left Shift key changes layout."
+#: ../rules/base.xml.in.h:378
+msgid "Left Ctrl+Left Shift"
msgstr ""
-#: ../rules/base.xml.in.h:326
-msgid "Left Win-key changes layout."
-msgstr ""
+#: ../rules/base.xml.in.h:379
+msgid "Left Shift"
+msgstr "Сол Shift"
-#: ../rules/base.xml.in.h:327
-msgid "Left Win-key is Compose."
-msgstr ""
+#: ../rules/base.xml.in.h:380
+msgid "Left Win"
+msgstr "Сол Win"
-#: ../rules/base.xml.in.h:328
-msgid "Left Win-key switches layout while pressed."
+#: ../rules/base.xml.in.h:381
+msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr ""
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:382
+msgid "Left Win (while pressed)"
+msgstr "Сол Alt клавишаÑÑ‹ (баÑылган учурда)"
+
+#: ../rules/base.xml.in.h:383
msgid "Left hand"
msgstr ""
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:384
msgid "Left handed Dvorak"
msgstr ""
-#: ../rules/base.xml.in.h:331
-msgid "Legacy Wang 724 keypad"
+#: ../rules/base.xml.in.h:385
+msgid "Legacy"
+msgstr ""
+
+#: ../rules/base.xml.in.h:386
+msgid "Legacy Wang 724"
msgstr ""
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:388
msgid "Legacy key with comma"
msgstr ""
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:389
msgid "Legacy key with dot"
msgstr ""
-#: ../rules/base.xml.in.h:335
-msgid "Legacy keypad"
+#: ../rules/base.xml.in.h:390
+msgid "Less-than/Greater-than"
msgstr ""
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:391
msgid "Lithuania"
-msgstr ""
+msgstr "Литва"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:392
msgid "Logitech Access Keyboard"
-msgstr ""
+msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:393
msgid "Logitech Cordless Desktop"
-msgstr ""
+msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:394
msgid "Logitech Cordless Desktop (alternate option)"
-msgstr ""
+msgstr "Logitech Cordless Desktop (альтернативдик вариант)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop EX110"
-msgstr ""
+msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop LX-300"
-msgstr ""
+msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop Navigator"
-msgstr ""
+msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:343
-msgid "Logitech Cordless Desktop Pro (alternate option2)"
-msgstr ""
+#: ../rules/base.xml.in.h:398
+msgid "Logitech Cordless Desktop Optical"
+msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:399
+msgid "Logitech Cordless Desktop Pro (alternate option 2)"
+msgstr "Logitech Cordless Desktop Pro (альтернативдик вариант 2)"
+
+#: ../rules/base.xml.in.h:400
+msgid "Logitech Cordless Desktop iTouch"
+msgstr "Logitech Cordless Desktop iTouch"
+
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Freedom/Desktop Navigator"
-msgstr ""
+msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:402
msgid "Logitech G15 extra keys via G15daemon"
-msgstr ""
+msgstr "Logitech G15 extra keys via G15daemon"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:403
+msgid "Logitech Generic Keyboard"
+msgstr "Logitech Generic Keyboard"
+
+#: ../rules/base.xml.in.h:404
+msgid "Logitech Internet 350 Keyboard"
+msgstr "Logitech Internet 350 Keyboard"
+
+#: ../rules/base.xml.in.h:405
msgid "Logitech Internet Keyboard"
-msgstr ""
+msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet Navigator Keyboard"
-msgstr ""
+msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:407
+msgid "Logitech Media Elite Keyboard"
+msgstr "Logitech Media Elite Keyboard"
+
+#: ../rules/base.xml.in.h:408
+msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
+msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
+
+#: ../rules/base.xml.in.h:409
msgid "Logitech Ultra-X Keyboard"
-msgstr ""
+msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:410
+msgid "Logitech diNovo Edge Keyboard"
+msgstr "Logitech diNovo Edge Keyboard"
+
+#: ../rules/base.xml.in.h:411
msgid "Logitech diNovo Keyboard"
-msgstr ""
+msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:412
msgid "Logitech iTouch"
-msgstr ""
+msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:413
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
-msgstr ""
+msgstr "Logitech iTouch Cordless Keyboard (Y-RB6 модели)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch Internet Navigator Keyboard SE"
-msgstr ""
+msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-msgstr ""
+msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:354
-msgid "Ltu"
+#: ../rules/base.xml.in.h:416
+msgid "Lower Sorbian"
msgstr ""
-#: ../rules/base.xml.in.h:355
-msgid "Lva"
+#: ../rules/base.xml.in.h:417
+msgid "Lower Sorbian (qwertz)"
msgstr ""
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:418
+msgid "Ltu"
+msgstr "Лит"
+
+#: ../rules/base.xml.in.h:419
msgid "MESS"
msgstr ""
-#: ../rules/base.xml.in.h:357
-msgid "MacBook/MacBook Pro"
+#: ../rules/base.xml.in.h:420
+msgid "MNE"
msgstr ""
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:421
+msgid "MacBook/MacBook Pro"
+msgstr "MacBook/MacBook Pro"
+
+#: ../rules/base.xml.in.h:422
msgid "MacBook/MacBook Pro (Intl)"
-msgstr ""
+msgstr "MacBook/MacBook Pro (Инт.)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:423
msgid "Macedonia"
-msgstr ""
+msgstr "МакедониÑ"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:424
msgid "Macintosh"
-msgstr ""
+msgstr "Macintosh"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:425
msgid "Macintosh Old"
-msgstr ""
+msgstr "ЭÑки Macintosh"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:426
msgid "Macintosh, Sun dead keys"
-msgstr ""
+msgstr "Macintosh, атайын (dead keys) Sun клавишалары менен"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:427
msgid "Macintosh, eliminate dead keys"
msgstr ""
-#: ../rules/base.xml.in.h:364
-msgid "Make CapsLock an additional Ctrl."
-msgstr ""
+#: ../rules/base.xml.in.h:428
+msgid "Make CapsLock an additional Backspace"
+msgstr "CapsLock кошумча Боштук клавиша катары колдонуу"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:429
+msgid "Make CapsLock an additional Ctrl"
+msgstr "CapsLock кошумча Ctrl клавиша катары колдонуу"
+
+#: ../rules/base.xml.in.h:430
+msgid "Make CapsLock an additional ESC"
+msgstr "CapsLock кошумча ESC клавиша катары колдонуу"
+
+#: ../rules/base.xml.in.h:431
msgid "Mal"
-msgstr ""
+msgstr "Мал"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:432
msgid "Malayalam"
+msgstr "Малайaлам"
+
+#: ../rules/base.xml.in.h:433
+msgid "Malayalam Lalitha"
msgstr ""
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:434
msgid "Maldives"
-msgstr ""
+msgstr "Мальдивалар"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:435
msgid "Malta"
-msgstr ""
+msgstr "Мальта"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:436
msgid "Maltese keyboard with US layout"
msgstr ""
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:437
msgid "Mao"
-msgstr ""
+msgstr "Мао"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:438
msgid "Maori"
-msgstr ""
+msgstr "Маори"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:439
msgid "Memorex MX1998"
-msgstr ""
+msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:440
msgid "Memorex MX2500 EZ-Access Keyboard"
-msgstr ""
+msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:441
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:375
-msgid "Menu is Compose."
+#: ../rules/base.xml.in.h:442
+msgid "Menu"
msgstr ""
-#: ../rules/base.xml.in.h:376
-msgid "Menu key changes layout."
+#: ../rules/base.xml.in.h:443
+msgid "Meta is mapped to Left Win"
msgstr ""
-#: ../rules/base.xml.in.h:377
-msgid "Meta is mapped to the Win-keys."
+#: ../rules/base.xml.in.h:444
+msgid "Meta is mapped to Win keys"
msgstr ""
-#: ../rules/base.xml.in.h:378
-msgid "Meta is mapped to the left Win-key."
-msgstr ""
+#: ../rules/base.xml.in.h:445
+msgid "Microsoft Comfort Curve Keyboard 2000"
+msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:446
msgid "Microsoft Internet Keyboard"
-msgstr ""
+msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:447
msgid "Microsoft Internet Keyboard Pro, Swedish"
-msgstr ""
+msgstr "Microsoft Internet Keyboard Pro, швед"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:448
msgid "Microsoft Natural"
-msgstr ""
+msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:449
+msgid "Microsoft Natural Keyboard Elite"
+msgstr "Microsoft Natural Keyboard Elite"
+
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-msgstr ""
+msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Natural Keyboard Pro OEM"
-msgstr ""
+msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-msgstr ""
+msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:453
+msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Office Keyboard"
-msgstr ""
+msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
-msgstr ""
+msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:387 ../rules/sun.xml.in.h:72
+#: ../rules/base.xml.in.h:456
msgid "Miscellaneous compatibility options"
msgstr ""
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:457
msgid "Mkd"
-msgstr ""
+msgstr "Мак"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:458
msgid "Mlt"
-msgstr ""
+msgstr "Мальт"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:459
msgid "Mmr"
-msgstr ""
+msgstr "МьÑнм"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:460
msgid "Mng"
-msgstr ""
+msgstr "Монг"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:461
msgid "Mongolia"
-msgstr ""
+msgstr "МонголиÑ"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:462
+msgid "Montenegro"
+msgstr "ЧерногориÑ"
+
+#: ../rules/base.xml.in.h:463
msgid "Morocco"
-msgstr ""
+msgstr "Морокко"
-#: ../rules/base.xml.in.h:394 ../rules/sun.xml.in.h:73
+#: ../rules/base.xml.in.h:464
msgid "Multilingual"
-msgstr ""
+msgstr "Көп тилдүү"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:465
msgid "Multilingual, first part"
-msgstr ""
+msgstr "Көп тилдүү, биринчи бөлүк"
-#: ../rules/base.xml.in.h:396 ../rules/sun.xml.in.h:74
+#: ../rules/base.xml.in.h:466
msgid "Multilingual, second part"
-msgstr ""
+msgstr "Көп тилдүү, Ñкинчи бөлүк"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:467
msgid "Myanmar"
-msgstr ""
+msgstr "МьÑнмар"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:468
msgid "NICOLA-F style Backspace"
msgstr ""
-#: ../rules/base.xml.in.h:399
-msgid "Neostyle"
+#: ../rules/base.xml.in.h:469
+msgid "NLA"
msgstr ""
-#: ../rules/base.xml.in.h:400
-msgid "Nep"
+#: ../rules/base.xml.in.h:470
+msgid "Nativo"
msgstr ""
-#: ../rules/base.xml.in.h:401
-msgid "Nepal"
+#: ../rules/base.xml.in.h:471
+msgid "Nativo for Esperanto"
msgstr ""
-#: ../rules/base.xml.in.h:402
-msgid "Netherlands"
+#: ../rules/base.xml.in.h:472
+msgid "Nativo for USA keyboards"
msgstr ""
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:473
+msgid "Neo 2"
+msgstr "Neo 2"
+
+#: ../rules/base.xml.in.h:474
+msgid "Nep"
+msgstr "Ðеп"
+
+#: ../rules/base.xml.in.h:475
+msgid "Nepal"
+msgstr "Ðепал"
+
+#: ../rules/base.xml.in.h:476
+msgid "Netherlands"
+msgstr "ÐидерландиÑ"
+
+#: ../rules/base.xml.in.h:477
msgid "Nig"
-msgstr ""
+msgstr "Ðгр"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:478
msgid "Nigeria"
-msgstr ""
+msgstr "ÐигериÑ"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:479
msgid "Nld"
+msgstr "Флам"
+
+#: ../rules/base.xml.in.h:480
+msgid "Non-breakable space character at fourth level"
msgstr ""
-#: ../rules/base.xml.in.h:406 ../rules/sun.xml.in.h:75
-msgid "Nor"
+#: ../rules/base.xml.in.h:481
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr ""
-#: ../rules/base.xml.in.h:407
-msgid "Northern Saami"
+#: ../rules/base.xml.in.h:482
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr ""
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:483
+msgid "Non-breakable space character at second level"
+msgstr ""
+
+#: ../rules/base.xml.in.h:484
+msgid "Non-breakable space character at third level"
+msgstr ""
+
+#: ../rules/base.xml.in.h:485
+msgid "Non-breakable space character at third level, nothing at fourth level"
+msgstr ""
+
+#: ../rules/base.xml.in.h:486
+msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
+msgstr ""
+
+#: ../rules/base.xml.in.h:487
+msgid "Nor"
+msgstr "Ðор"
+
+#: ../rules/base.xml.in.h:488
+msgid "Northern Saami"
+msgstr "Түндүк Саами"
+
+#: ../rules/base.xml.in.h:489
msgid "Northern Saami, eliminate dead keys"
msgstr ""
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:490
msgid "Northgate OmniKey 101"
-msgstr ""
+msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:491
msgid "Norway"
-msgstr ""
+msgstr "ÐорвегиÑ"
-#: ../rules/base.xml.in.h:411
-msgid "NumLock LED shows alternative layout."
+#: ../rules/base.xml.in.h:492
+msgid "NumLock"
msgstr ""
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:493
msgid "Numeric keypad delete key behaviour"
msgstr ""
-#: ../rules/base.xml.in.h:413
-msgid "Numeric keypad keys work as with Mac."
+#: ../rules/base.xml.in.h:494
+msgid "Numeric keypad keys work as with Mac"
msgstr ""
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:495
msgid "Numeric keypad layout selection"
msgstr ""
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:496
msgid "OADG 109A"
+msgstr "OADG 109A"
+
+#: ../rules/base.xml.in.h:497
+msgid "OLPC"
msgstr ""
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:498
+msgid "OLPC Dari"
+msgstr ""
+
+#: ../rules/base.xml.in.h:499
+#, fuzzy
+msgid "OLPC Pashto"
+msgstr "Пуштундук"
+
+#: ../rules/base.xml.in.h:500
+msgid "OLPC Southern Uzbek"
+msgstr ""
+
+#: ../rules/base.xml.in.h:501
+msgid "Occitan"
+msgstr ""
+
+#: ../rules/base.xml.in.h:502
msgid "Ogham"
msgstr ""
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:503
msgid "Ogham IS434"
-msgstr ""
+msgstr "Огхам IS434"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:504
msgid "Oriya"
-msgstr ""
+msgstr "ОрийÑ"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:505
msgid "Ortek MCK-800 MM/Internet keyboard"
-msgstr ""
+msgstr "Ortek MCK-800 MM/Internet keyboard"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:506
msgid "Ossetian"
msgstr "ОÑетиндик"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:507
msgid "Ossetian, Winkeys"
msgstr "ОÑетиндик Windows клавиатураÑÑ‹"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:508
+#, fuzzy
+msgid "Ossetian, legacy"
+msgstr "ОÑетиндик Windows клавиатураÑÑ‹"
+
+#: ../rules/base.xml.in.h:509
msgid "PC-98xx Series"
msgstr "PC-98xx"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:510
msgid "Pak"
msgstr "Пак"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:511
msgid "Pakistan"
msgstr "ПакиÑтан"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:512
msgid "Pashto"
msgstr "Пуштундук"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:513
msgid "Pattachote"
msgstr "Паттачот"
-#: ../rules/base.xml.in.h:427 ../rules/sun.xml.in.h:78
+#: ../rules/base.xml.in.h:514
msgid "Phonetic"
msgstr "Фонетикалык"
-#: ../rules/base.xml.in.h:428 ../rules/sun.xml.in.h:79
+#: ../rules/base.xml.in.h:515
+#, fuzzy
+msgid "Phonetic Winkeys"
+msgstr "ОÑетиндик Windows клавиатураÑÑ‹"
+
+#: ../rules/base.xml.in.h:516
msgid "Pol"
msgstr "ПольÑк"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:517
msgid "Poland"
msgstr "Польша"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:518
msgid "Polytonic"
msgstr "Полифоникалык"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:519
msgid "Portugal"
msgstr "ПортугалиÑ"
-#: ../rules/base.xml.in.h:432
-msgid "Press Left Alt key to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо Ñол Alt клавишанын баÑылышы менен."
-
-#: ../rules/base.xml.in.h:433
-msgid "Press Left Win-key to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо Ñол Win клавишанын баÑылышы менен."
-
-#: ../rules/base.xml.in.h:434
-msgid "Press Menu key to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо Menu клавишанын баÑылышы менен."
-
-#: ../rules/base.xml.in.h:435
-msgid "Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key."
-msgstr ""
-
-#: ../rules/base.xml.in.h:436
-msgid "Press Right Alt key to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо оң Alt клавишанын баÑылышы менен."
-
-#: ../rules/base.xml.in.h:437
-msgid "Press Right Ctrl to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо оң Ctrl клавишанын баÑылышы менен."
-
-#: ../rules/base.xml.in.h:438
-msgid "Press Right Win-key to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо оң Win клавишанын баÑылышы менен."
-
-#: ../rules/base.xml.in.h:439
-msgid "Press any of Alt keys to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо Alt клавишалардын бирөөÑүнүн баÑылышы менен."
-
-#: ../rules/base.xml.in.h:440
-msgid "Press any of Win-keys to choose 3rd level."
-msgstr "3-чү денгÑÑлди тандоо Win клавишалардын бирөөÑүнүн баÑылышы менен."
-
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:520
msgid "Pro"
msgstr "Pro"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:521
msgid "Pro Keypad"
msgstr "Pro кошумча панели менен"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:522
msgid "Probhat"
msgstr "Пробат"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:523
+msgid "Programmer Dvorak"
+msgstr ""
+
+#: ../rules/base.xml.in.h:524
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:445 ../rules/sun.xml.in.h:88
+#: ../rules/base.xml.in.h:525
msgid "Prt"
msgstr "Порт"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:526
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:447
-msgid "R-Alt switches layout while pressed."
-msgstr ""
-
-#: ../rules/base.xml.in.h:448
-msgid "Right Alt is Compose."
-msgstr ""
-
-#: ../rules/base.xml.in.h:449
-msgid "Right Alt key changes layout."
-msgstr ""
+#: ../rules/base.xml.in.h:527
+msgid "Right Alt"
+msgstr "Оң Alt"
-#: ../rules/base.xml.in.h:450 ../rules/sun.xml.in.h:90
-msgid "Right Alt key never chooses 3rd level."
-msgstr ""
+#: ../rules/base.xml.in.h:528
+#, fuzzy
+msgid "Right Alt (while pressed)"
+msgstr "Оң Alt клавишаÑÑ‹ баÑылганда убактылуу группаны алмаштырат"
-#: ../rules/base.xml.in.h:451
-msgid "Right Ctrl is Compose."
-msgstr "Оң Ctrl Compose клавишадай."
+#: ../rules/base.xml.in.h:529
+#, fuzzy
+msgid "Right Alt key never chooses 3rd level"
+msgstr "3-чү денгÑÑлди тандоо оң Alt клавишанын баÑылышы менен."
-#: ../rules/base.xml.in.h:452
-msgid "Right Ctrl key changes layout."
-msgstr ""
+#: ../rules/base.xml.in.h:530
+#, fuzzy
+msgid "Right Alt, Shift+Right Alt key is Multi_Key"
+msgstr "3-чү денгÑÑлди тандоо Ñол Alt клавишанын баÑылышы менен.Shift жана оң Alt бирге Multi_Key катары амал жаÑайт"
-#: ../rules/base.xml.in.h:453
-msgid "Right Ctrl key switches layout while pressed."
-msgstr ""
+#: ../rules/base.xml.in.h:531
+msgid "Right Ctrl"
+msgstr "Оң Ctrl"
-#: ../rules/base.xml.in.h:454
-msgid "Right Ctrl key works as Right Alt."
-msgstr "Оң Ctrl оң Alt клавишадай амал жаÑайт."
+#: ../rules/base.xml.in.h:532
+msgid "Right Ctrl (while pressed)"
+msgstr "Оң Alt клавишаÑÑ‹ (баÑылган учурда)"
-#: ../rules/base.xml.in.h:455
-msgid "Right Shift key changes layout."
-msgstr ""
+#: ../rules/base.xml.in.h:533
+msgid "Right Ctrl as Right Alt"
+msgstr "Оң Ctrl оң Alt клавишадай амал жаÑайт"
-#: ../rules/base.xml.in.h:456
-msgid "Right Win-key changes layout."
-msgstr ""
+#: ../rules/base.xml.in.h:534
+msgid "Right Shift"
+msgstr "Оң Shift"
-#: ../rules/base.xml.in.h:457
-msgid "Right Win-key is Compose."
-msgstr "Оң Win Compose клавишадай."
+#: ../rules/base.xml.in.h:535
+msgid "Right Win"
+msgstr "Оң Win"
-#: ../rules/base.xml.in.h:458
-msgid "Right Win-key switches layout while pressed."
-msgstr ""
+#: ../rules/base.xml.in.h:536
+msgid "Right Win (while pressed)"
+msgstr "Оң Win клавишаÑÑ‹ (баÑылган учурда)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:537
msgid "Right hand"
msgstr ""
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:538
msgid "Right handed Dvorak"
msgstr "Dvorak оң колдуу адамдар үчүн"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:539
msgid "Romania"
msgstr "РумыниÑ"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:540
msgid "Romanian keyboard with German letters"
msgstr "Румындык клавиатура немец ариптери менен"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:541
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Румындык клавиатура немец ариптери менен, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:542
msgid "Rou"
msgstr "Рум"
-#: ../rules/base.xml.in.h:465 ../rules/sun.xml.in.h:95
+#: ../rules/base.xml.in.h:543
msgid "Rus"
msgstr "РуÑ"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:544
msgid "Russia"
msgstr "РоÑÑиÑ"
-#: ../rules/base.xml.in.h:467 ../rules/sun.xml.in.h:96
+#: ../rules/base.xml.in.h:545
msgid "Russian"
msgstr "ОруÑча"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:546
msgid "Russian phonetic"
msgstr "ОруÑча фонетикалык"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:547
+msgid "Russian phonetic Dvorak"
+msgstr "ОруÑча фонетикалык Dvorak"
+
+#: ../rules/base.xml.in.h:548
msgid "Russian phonetic, eliminate dead keys"
msgstr "ОруÑча фонетикалык, атайын (dead keys) клавишаларÑыз"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:549
msgid "Russian with Kazakh"
msgstr "ОруÑча Казакча менен"
-#: ../rules/base.xml.in.h:471
-msgid "SCG"
-msgstr "СМÐ"
-
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:550
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:551
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:552
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:553
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:554
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:555
+msgid "SRB"
+msgstr ""
+
+#: ../rules/base.xml.in.h:556
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:557
+msgid "SVEN Slim 303"
+msgstr "SVEN Slim 303"
+
+#: ../rules/base.xml.in.h:558
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:559
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:480
-msgid "ScrollLock LED shows alternative layout."
-msgstr ""
-
-#: ../rules/base.xml.in.h:481
-msgid "Serbia and Montenegro"
-msgstr "Ð¡ÐµÑ€Ð±Ð¸Ñ Ð¶Ð°Ð½Ð° ЧерногориÑ"
+#: ../rules/base.xml.in.h:560
+msgid "Scroll Lock"
+msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:482
-msgid "Shift with numeric keypad keys works as in MS Windows."
+#: ../rules/base.xml.in.h:561
+msgid "ScrollLock"
msgstr ""
-#: ../rules/base.xml.in.h:483
-msgid "Shift+CapsLock changes layout."
+#: ../rules/base.xml.in.h:562
+msgid "Secwepemctsin"
msgstr ""
-#: ../rules/base.xml.in.h:484
-msgid "Slovakia"
-msgstr "СловакиÑ"
+#: ../rules/base.xml.in.h:563
+msgid "Semi-colon on third level"
+msgstr ""
-#: ../rules/base.xml.in.h:485
-msgid "Slovenia"
-msgstr "СловениÑ"
+#: ../rules/base.xml.in.h:564
+msgid "Serbia"
+msgstr "СербиÑ"
-#: ../rules/base.xml.in.h:486
-msgid "South Africa"
-msgstr "Түштүк Ðфрика"
+#: ../rules/base.xml.in.h:565
+#, fuzzy
+msgid "Shift cancels CapsLock"
+msgstr "Ctrl жана CapsLock клавишаларды алмаштыруу."
-#: ../rules/base.xml.in.h:487
-msgid "Southern Uzbek"
+#: ../rules/base.xml.in.h:566
+msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr ""
-#: ../rules/base.xml.in.h:488
-msgid "Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level"
-msgstr ""
+#: ../rules/base.xml.in.h:567
+#, fuzzy
+msgid "Shift with numeric keypad keys works as in MS Windows"
+msgstr "Shift клавишаÑÑ‹ Ñандык клавиатурада MS Windows'тогу клавишадай амал жаÑайт"
-#: ../rules/base.xml.in.h:489
-msgid "Space key outputs non-breakable space character at fourth level."
-msgstr ""
+#: ../rules/base.xml.in.h:568
+msgid "Shift+CapsLock"
+msgstr "Shift+CapsLock"
-#: ../rules/base.xml.in.h:490
-msgid "Space key outputs non-breakable space character at second level."
+#: ../rules/base.xml.in.h:569
+msgid "Simple"
msgstr ""
-#: ../rules/base.xml.in.h:491
-msgid "Space key outputs non-breakable space character at third level, nothing at fourth level."
-msgstr ""
+#: ../rules/base.xml.in.h:570
+msgid "Slovakia"
+msgstr "СловакиÑ"
-#: ../rules/base.xml.in.h:492
-msgid "Space key outputs non-breakable space character at third level, thin non-breakable space character at fourth level"
-msgstr ""
+#: ../rules/base.xml.in.h:571
+msgid "Slovenia"
+msgstr "СловениÑ"
-#: ../rules/base.xml.in.h:493
-msgid "Space key outputs non-breakable space character at third level."
-msgstr ""
+#: ../rules/base.xml.in.h:572
+msgid "South Africa"
+msgstr "Түштүк Ðфрика"
-#: ../rules/base.xml.in.h:494
-msgid "Space key outputs usual space at any level."
-msgstr ""
+#: ../rules/base.xml.in.h:573
+msgid "Southern Uzbek"
+msgstr "Түштүк өзбөкчө"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:574
msgid "Spain"
msgstr "ИÑпаниÑ"
-#: ../rules/base.xml.in.h:496 ../rules/sun.xml.in.h:103
-msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server."
+#: ../rules/base.xml.in.h:575
+#, fuzzy
+msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Ðтайын клавишалар (Ctrl+Alt+&lt;клв&gt;) Ñервер менен долборлонот."
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:576
msgid "SrL"
msgstr "ШрЛ"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:577
msgid "Sri Lanka"
msgstr "Шри Ланка"
-#: ../rules/base.xml.in.h:499 ../rules/sun.xml.in.h:104
+#: ../rules/base.xml.in.h:578
msgid "Standard"
msgstr "Стандарттык"
-#: ../rules/base.xml.in.h:500
-msgid "Standard (Commabelow)"
-msgstr ""
+#: ../rules/base.xml.in.h:579
+#, fuzzy
+msgid "Standard (Cedilla)"
+msgstr "Стандарттык"
+
+#: ../rules/base.xml.in.h:580
+#, fuzzy
+msgid "Standard Phonetic"
+msgstr "Ðльтернативдүү фонетикалык"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:582
msgid "Standard RSTU"
msgstr "Стандарттык RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:584
msgid "Standard RSTU on Russian layout"
msgstr "Стандарттык RSTU, оруÑча"
-#: ../rules/base.xml.in.h:505 ../rules/sun.xml.in.h:112
+#: ../rules/base.xml.in.h:585
+msgid "Sun Type 5/6"
+msgstr "Sun Type 5/6"
+
+#: ../rules/base.xml.in.h:586
msgid "Sun dead keys"
msgstr "Ðтайын (dead keys) Sun клавишалар"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:587
msgid "Super Power Multimedia Keyboard"
-msgstr ""
+msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:507
-msgid "Super is mapped to the Win-keys."
-msgstr ""
-
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:588
msgid "Svdvorak"
msgstr ""
-#: ../rules/base.xml.in.h:509 ../rules/sun.xml.in.h:113
+#: ../rules/base.xml.in.h:589
msgid "Svk"
msgstr "Слов"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:590
msgid "Svn"
msgstr "Cловен"
-#: ../rules/base.xml.in.h:511
-msgid "Swap Ctrl and CapsLock."
-msgstr "Ctrl жана CapsLock клавишаларды алмаштыруу."
+#: ../rules/base.xml.in.h:591
+msgid "Swap Ctrl and CapsLock"
+msgstr "Ctrl жана CapsLock клавишаларды алмаштыруу"
-#: ../rules/base.xml.in.h:512
-msgid "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
-msgstr "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
+#: ../rules/base.xml.in.h:592
+msgid "Swap ESC and CapsLock"
+msgstr "ESC жана CapsLock клавишаларды алмаштыруу"
-#: ../rules/base.xml.in.h:513 ../rules/sun.xml.in.h:115
+#: ../rules/base.xml.in.h:593
msgid "Swe"
msgstr "Швед"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:594
msgid "Sweden"
msgstr "ШвециÑ"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:595
msgid "Switzerland"
msgstr "ШвейцариÑ"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:596
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (чөнтөк ПК)"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:597
msgid "Syr"
msgstr "ÐÑÑ"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:598
msgid "Syria"
msgstr "Сирийдик"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:599
msgid "Syriac"
msgstr "Сирийдик"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:600
msgid "Syriac phonetic"
msgstr "Сирийдик фонетикалык"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:601
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:602
msgid "Tajikistan"
msgstr "ТаджикиÑтан"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:603
msgid "Tamil"
msgstr "Тамильдик"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:604
msgid "Tamil TAB Typewriter"
msgstr "Тамильдик \"БаÑма машинаÑÑ‹\" TAB"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:605
msgid "Tamil TSCII Typewriter"
-msgstr ""
+msgstr "Тамиль TSCII печать машинаÑÑ‹"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:606
msgid "Tamil Unicode"
-msgstr ""
+msgstr "Тамиль Unicode"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:607
+msgid "Targa Visionary 811"
+msgstr "Targa Visionary 811"
+
+#: ../rules/base.xml.in.h:608
msgid "Tatar"
-msgstr ""
+msgstr "Татар"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:609
msgid "Telugu"
-msgstr ""
+msgstr "Телугу"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:610
msgid "Tha"
-msgstr ""
+msgstr "Тай"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:611
msgid "Thailand"
-msgstr ""
-
-#: ../rules/base.xml.in.h:531 ../rules/sun.xml.in.h:119
-msgid "Third level choosers"
-msgstr ""
+msgstr "Тайланд"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:612
msgid "Tibetan"
-msgstr ""
+msgstr "Тибет"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:613
msgid "Tibetan (with ASCII numerals)"
-msgstr ""
+msgstr "Тибет (ASCII номерлери менен)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:614
msgid "Tifinagh"
msgstr ""
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:615
msgid "Tifinagh Alternative"
msgstr ""
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:616
msgid "Tifinagh Alternative Phonetic"
msgstr ""
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:617
msgid "Tifinagh Extended"
msgstr ""
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh Extended Phonetic"
msgstr ""
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Phonetic"
msgstr ""
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:620
msgid "Tilde (~) variant"
msgstr "Тильда (~) менен вариант"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:621
msgid "Tjk"
msgstr "Тадж"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:622
+msgid "To the corresponding key in a Dvorak keyboard."
+msgstr ""
+
+#: ../rules/base.xml.in.h:623
+msgid "To the corresponding key in a Qwerty keyboard."
+msgstr ""
+
+#: ../rules/base.xml.in.h:624
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:625
+#, fuzzy
+msgid "Traditional Phonetic"
+msgstr "Ðльтернативдүү фонетикалык"
+
+#: ../rules/base.xml.in.h:626
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:627
+msgid "Trust Slimline"
+msgstr "Trust Slimline"
+
+#: ../rules/base.xml.in.h:628
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:545 ../rules/sun.xml.in.h:120
+#: ../rules/base.xml.in.h:629
msgid "Tur"
msgstr "Тур"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:630
msgid "Turkey"
msgstr "ТурциÑ"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:631
+msgid "Turkmenistan"
+msgstr "ТүркмениÑтан"
+
+#: ../rules/base.xml.in.h:632
msgid "Typewriter"
msgstr "БаÑма машинаÑÑ‹"
-#: ../rules/base.xml.in.h:548 ../rules/sun.xml.in.h:124
-msgid "U.S. English"
-msgstr "ÐÐ½Ð³Ð»Ð¸Ñ (ÐКШ)"
+#: ../rules/base.xml.in.h:633
+msgid "UCW layout (accented letters only)"
+msgstr ""
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:634
msgid "US keyboard with Bosnian digraphs"
msgstr "ÐКШ клавиатураÑÑ‹ боÑнийдик диграфтар менен"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:635
msgid "US keyboard with Bosnian letters"
msgstr "ÐКШ клавиатураÑÑ‹ боÑнийдик ариптер менен"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:636
msgid "US keyboard with Croatian digraphs"
msgstr "ÐКШ клавиатураÑÑ‹ хорваттык диграфтар менен"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:637
msgid "US keyboard with Croatian letters"
msgstr "ÐКШ клавиатураÑÑ‹ хорваттык ариптер менен"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:638
+#, fuzzy
+msgid "US keyboard with Estonian letters"
+msgstr "ÐКШ клавиатураÑÑ‹ боÑнийдик ариптер менен"
+
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Lithuanian letters"
msgstr "ÐКШ клавиатураÑÑ‹ литовдук ариптер менен"
-#: ../rules/base.xml.in.h:554
-msgid "US keyboard with Slovenian digraphs"
-msgstr "ÐКШ клавиатураÑÑ‹ Ñловендик диграфтар менен"
-
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Slovenian letters"
msgstr "ÐКШ клавиатураÑÑ‹ Ñловендик ариптер менен"
-#: ../rules/base.xml.in.h:556 ../rules/sun.xml.in.h:126
+#: ../rules/base.xml.in.h:641
msgid "USA"
msgstr "ÐКШ"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:642
msgid "Udmurt"
msgstr ""
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:643
msgid "Ukr"
msgstr "Укр"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:644
msgid "Ukraine"
msgstr "Украина"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:645
+msgid "Unicode additions (arrows and math operators)"
+msgstr ""
+
+#: ../rules/base.xml.in.h:646
+msgid "Unicode additions (arrows and math operators). Math operators on default level"
+msgstr ""
+
+#: ../rules/base.xml.in.h:647
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:561 ../rules/sun.xml.in.h:127
+#: ../rules/base.xml.in.h:648
msgid "United Kingdom"
msgstr "ÐÐ½Ð³Ð»Ð¸Ñ (Улуу БританиÑ)"
-#: ../rules/base.xml.in.h:562
-msgid "Urdu"
-msgstr "Урду"
+#: ../rules/base.xml.in.h:649
+msgid "Unitek KB-1925"
+msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:650
+msgid "Urdu, Alternative phonetic"
+msgstr "Урду, альтернативдик фонетикалык"
+
+#: ../rules/base.xml.in.h:651
+msgid "Urdu, Phonetic"
+msgstr "Урду, фонетикалык"
+
+#: ../rules/base.xml.in.h:652
+msgid "Urdu, Winkeys"
+msgstr "Урду, Windows клавишалары менен"
+
+#: ../rules/base.xml.in.h:653
msgid "Use Bosnian digraphs"
msgstr "БоÑнийдик диаграфтарды колдонуу"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:654
msgid "Use Croatian digraphs"
msgstr "Хорваттык диаграфтарды колдонуу"
-#: ../rules/base.xml.in.h:565
-msgid "Use Slovenian digraphs"
-msgstr "Словендик диаграфтарды колдонуу"
-
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:655
msgid "Use guillemets for quotes"
msgstr "Француздук тырмакчаларды тырмакчалардай колдонуу"
-#: ../rules/base.xml.in.h:567
-msgid "Use keyboard LED to show alternative layout."
-msgstr ""
+#: ../rules/base.xml.in.h:656
+msgid "Use keyboard LED to show alternative layout"
+msgstr "Клавиатура индикаторлорду кошумча группаларды көрÑÓ©Ñ‚Ò¯Ò¯ үчүн колдонуу"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:657
msgid "Using space key to input non-breakable space character"
msgstr ""
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:658
+msgid "Usual space at any level"
+msgstr ""
+
+#: ../rules/base.xml.in.h:659
msgid "Uzb"
msgstr "Өзб"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:660
msgid "Uzbekistan"
msgstr "ӨзбекиÑтан"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:661
msgid "Vietnam"
msgstr "Вьетнам"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:662
+msgid "ViewSonic KU-306 Internet Keyboard"
+msgstr "ViewSonic KU-306 Internet Keyboard"
+
+#: ../rules/base.xml.in.h:663
msgid "Vnm"
msgstr "Вьет"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:664
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr ""
-#: ../rules/base.xml.in.h:574
-msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level."
+#: ../rules/base.xml.in.h:665
+msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr ""
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:666
msgid "Wang model 724 azerty"
msgstr "Wang model 724 azerty"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:667
msgid "Western"
msgstr "Батыш"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:668
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:669
msgid "Winkeys"
msgstr "Windows клавиатураÑÑ‹"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:670
msgid "With &lt;\\|&gt; key"
-msgstr ""
+msgstr "&lt;\\|&gt; клавиша менен"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:671
msgid "With EuroSign on 5"
msgstr ""
-#: ../rules/base.xml.in.h:581
+#: ../rules/base.xml.in.h:672
msgid "With guillemets"
msgstr "Француздук тырмакчалар менен"
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:673
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:674
+msgid "Yakut"
+msgstr ""
+
+#: ../rules/base.xml.in.h:675
msgid "Yoruba"
msgstr "Йоруба"
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:676
msgid "Z and ZHE swapped"
msgstr "З жана Ж орундарын алмаштырган"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:677
msgid "Zar"
msgstr "ЮÐР"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:678
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:679
msgid "azerty/digits"
msgstr "azerty/цифры"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:680
msgid "digits"
-msgstr ""
+msgstr "Ñандар"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:681
msgid "displaced semicolon and quote (obsolete)"
msgstr ""
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:682
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:591 ../rules/sun.xml.in.h:132
+#: ../rules/base.xml.in.h:683
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:684
msgid "qwerty, extended Backslash"
msgstr "qwerty, Backslash кеңейтилген функциÑлары"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:685
msgid "qwerty/digits"
msgstr "qwerty/Ñандар"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:686
msgid "qwertz"
msgstr "qwertz"
-#: ../rules/sun.xml.in.h:1
-msgid "\"Typewriter\""
-msgstr "БаÑма машинаÑÑ‹"
+#~ msgid "(Legacy) Dvorak"
+#~ msgstr "(ЭÑкирген) Dvorak"
-#: ../rules/sun.xml.in.h:17
-msgid "Acts as Shift with locking. Shift cancels Caps."
-msgstr "Shift блокировка менен амал жаÑайт.Shift Caps амалын убактылуу токтотот."
+#~ msgid "Add the EuroSign to the 5 key."
+#~ msgstr "5 деген клавишага Евро белгиÑин кошуу."
-#: ../rules/sun.xml.in.h:18
-msgid "Acts as Shift with locking. Shift doesn't cancel Caps."
-msgstr "Shift блокировка менен амал жаÑайт. Shift Caps амалына тоÑкол болбойт."
+#~ msgid "Add the EuroSign to the E key."
+#~ msgstr "E клавишаÑына Евро белгиÑин кошуу."
-#: ../rules/sun.xml.in.h:19
-msgid "Alt+Control changes group"
-msgstr "Alt+Control группаны алмаштырат"
+#~ msgid "Alt+Shift change layout."
+#~ msgstr "Alt+Shift раÑкладканы алмаштырат."
-#: ../rules/sun.xml.in.h:20
-msgid "Alt+Shift changes group"
-msgstr "Alt+Shift группаны алмаштырат"
+#~ msgid "Brazilian ABNT2"
+#~ msgstr "Бразилдик ABNT2"
-#: ../rules/sun.xml.in.h:21
-msgid "Basic"
-msgstr "Ðегизги"
+#~ msgid "Caps Lock is Compose."
+#~ msgstr "Caps Lock Compose клавишаÑÑ‹."
-#: ../rules/sun.xml.in.h:23
-msgid "Belgian"
-msgstr "БельгиÑлык"
+#~ msgid "Press Left Alt key to choose 3rd level."
+#~ msgstr "3-чү денгÑÑлди тандоо Ñол Alt клавишанын баÑылышы менен."
-#: ../rules/sun.xml.in.h:25
-msgid "Both Alt keys together change group"
-msgstr "Эки Alt клавишалары бирге баÑылганда группаны алмаштырат"
+#~ msgid "Press Left Win-key to choose 3rd level."
+#~ msgstr "3-чү денгÑÑлди тандоо Ñол Win клавишанын баÑылышы менен."
-#: ../rules/sun.xml.in.h:26
-msgid "Both Ctrl keys together change group"
-msgstr "Эки Ctrl клавишалары бирге баÑылганда группаны алмаштырат"
+#~ msgid "Press Right Alt key to choose 3rd level."
+#~ msgstr "3-чү денгÑÑлди тандоо оң Alt клавишанын баÑылышы менен."
-#: ../rules/sun.xml.in.h:27
-msgid "Both Shift keys together change group"
-msgstr "Эки Shift клавишалары бирге баÑылганда группаны алмаштырат"
+#~ msgid "Press Right Ctrl to choose 3rd level."
+#~ msgstr "3-чү денгÑÑлди тандоо оң Ctrl клавишанын баÑылышы менен."
-#: ../rules/sun.xml.in.h:28
-msgid "Bulgarian"
-msgstr "Болгардык"
+#~ msgid "Press Right Win-key to choose 3rd level."
+#~ msgstr "3-чү денгÑÑлди тандоо оң Win клавишанын баÑылышы менен."
-#: ../rules/sun.xml.in.h:30
-msgid "Canadian"
-msgstr "Канаддык"
+#~ msgid "Press any of Alt keys to choose 3rd level."
+#~ msgstr "3-чү денгÑÑлди тандоо Alt клавишалардын бирөөÑүнүн баÑылышы менен."
-#: ../rules/sun.xml.in.h:31
-msgid "Caps Lock is Compose"
-msgstr "Caps Lock Compose клавишадай"
+#~ msgid "Press any of Win-keys to choose 3rd level."
+#~ msgstr "3-чү денгÑÑлди тандоо Win клавишалардын бирөөÑүнүн баÑылышы менен."
-#: ../rules/sun.xml.in.h:32
-msgid "Caps Lock key changes group"
-msgstr "Caps Lock клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "Right Win-key is Compose."
+#~ msgstr "Оң Win Compose клавишадай."
-#: ../rules/sun.xml.in.h:34
-msgid "Caps_Lock LED shows alternative group"
-msgstr "Caps_Lock индикатору башка группаны көрÑÓ©Ñ‚Ó©Ñ‚"
+#~ msgid "SCG"
+#~ msgstr "СМÐ"
-#: ../rules/sun.xml.in.h:35
-msgid "Control Key Position"
-msgstr "Control клавишанын жайгашууÑу"
+#~ msgid "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
+#~ msgstr "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
-#: ../rules/sun.xml.in.h:36
-msgid "Control key at bottom left"
-msgstr "Control клавишаÑÑ‹ төмөн Ñол жакта жайгашкан"
+#~ msgid "US keyboard with Slovenian digraphs"
+#~ msgstr "ÐКШ клавиатураÑÑ‹ Ñловендик диграфтар менен"
-#: ../rules/sun.xml.in.h:37
-msgid "Control key at left of 'A'"
-msgstr "Control клавишаÑÑ‹ 'Ф' Ñол жагында"
+#~ msgid "Urdu"
+#~ msgstr "Урду"
-#: ../rules/sun.xml.in.h:38
-msgid "Control+Shift changes group"
-msgstr "Control+Shift группаны алмаштырат"
+#~ msgid "Use Slovenian digraphs"
+#~ msgstr "Словендик диаграфтарды колдонуу"
-#: ../rules/sun.xml.in.h:40
-msgid "Czech"
-msgstr "Чех"
+#~ msgid "\"Typewriter\""
+#~ msgstr "БаÑма машинаÑÑ‹"
-#: ../rules/sun.xml.in.h:41
-msgid "Danish"
-msgstr "Даттык"
+#~ msgid "Alt+Control changes group"
+#~ msgstr "Alt+Control группаны алмаштырат"
-#: ../rules/sun.xml.in.h:45
-msgid "DeuCH"
-msgstr "ÐемШВ"
+#~ msgid "Alt+Shift changes group"
+#~ msgstr "Alt+Shift группаны алмаштырат"
-#: ../rules/sun.xml.in.h:47
-msgid "Dvo"
-msgstr "Dvo"
+#~ msgid "Belgian"
+#~ msgstr "БельгиÑлык"
-#: ../rules/sun.xml.in.h:52
-msgid "Finnish"
-msgstr "Финдик"
+#~ msgid "Bulgarian"
+#~ msgstr "Болгардык"
-#: ../rules/sun.xml.in.h:54
-msgid "FraCH"
-msgstr "ФраШВ"
+#~ msgid "Canadian"
+#~ msgstr "Канаддык"
-#: ../rules/sun.xml.in.h:57
-msgid "German"
-msgstr ""
+#~ msgid "Caps Lock key changes group"
+#~ msgstr "Caps Lock клавишаÑÑ‹ группаны алмаштырат"
-#: ../rules/sun.xml.in.h:58
-msgid "Group Shift/Lock behavior"
-msgstr ""
+#~ msgid "Caps_Lock LED shows alternative group"
+#~ msgstr "Caps_Lock индикатору башка группаны көрÑÓ©Ñ‚Ó©Ñ‚"
-#: ../rules/sun.xml.in.h:60
-msgid "Hungarian"
-msgstr "Венгердик"
+#~ msgid "Control Key Position"
+#~ msgstr "Control клавишанын жайгашууÑу"
-#: ../rules/sun.xml.in.h:64
-msgid "Italian"
-msgstr "ИтальÑндык"
+#~ msgid "Control key at bottom left"
+#~ msgstr "Control клавишаÑÑ‹ төмөн Ñол жакта жайгашкан"
-#: ../rules/sun.xml.in.h:65
-msgid "Japanese"
-msgstr "Япондук"
+#~ msgid "Control key at left of 'A'"
+#~ msgstr "Control клавишаÑÑ‹ 'Ф' Ñол жагында"
-#: ../rules/sun.xml.in.h:67
-msgid "Left Alt key changes group"
-msgstr "Сол Alt клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "Control+Shift changes group"
+#~ msgstr "Control+Shift группаны алмаштырат"
-#: ../rules/sun.xml.in.h:68
-msgid "Left Alt key switches group while pressed"
-msgstr "Сол Alt клавишаÑÑ‹ убактылуу группаны алмаштырат"
+#~ msgid "Czech"
+#~ msgstr "Чех"
-#: ../rules/sun.xml.in.h:69
-msgid "Left Ctrl key changes group"
-msgstr "Сол Ctrl клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "Danish"
+#~ msgstr "Даттык"
-#: ../rules/sun.xml.in.h:70
-msgid "Left Shift key changes group"
-msgstr "Сол Shift клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "DeuCH"
+#~ msgstr "ÐемШВ"
-#: ../rules/sun.xml.in.h:71
-msgid "Make CapsLock an additional Control"
-msgstr "CapsLock кошумча Control клавиша катары колдонуу"
+#~ msgid "Dvo"
+#~ msgstr "Dvo"
-#: ../rules/sun.xml.in.h:76
-msgid "Norwegian"
-msgstr "Ðорвеждик"
+#~ msgid "Finnish"
+#~ msgstr "Финдик"
-#: ../rules/sun.xml.in.h:77
-msgid "Num_Lock LED shows alternative group"
-msgstr "Num_Lock индикатору кошумча группаны көрÑÓ©Ñ‚Ó©Ñ‚"
+#~ msgid "FraCH"
+#~ msgstr "ФраШВ"
-#: ../rules/sun.xml.in.h:80
-msgid "Polish"
-msgstr "Польдук"
+#~ msgid "Hungarian"
+#~ msgstr "Венгердик"
-#: ../rules/sun.xml.in.h:81
-msgid "Polish with Polish quotes on key \"1/!\""
-msgstr "Польдук клавишалар польдук тырмакчалар менен \"1/!\""
+#~ msgid "Italian"
+#~ msgstr "ИтальÑндык"
-#: ../rules/sun.xml.in.h:82
-msgid "Portuguese"
-msgstr "Португалдык"
+#~ msgid "Japanese"
+#~ msgstr "Япондук"
-#: ../rules/sun.xml.in.h:83
-msgid "Press Left Alt key to choose 3rd level"
-msgstr "3-чү денгÑÑлди тандоо Ñол Alt клавишанын баÑылышы менен."
+#~ msgid "Left Alt key changes group"
+#~ msgstr "Сол Alt клавишаÑÑ‹ группаны алмаштырат"
-#: ../rules/sun.xml.in.h:84
-msgid "Press Right Alt key to choose 3rd level"
-msgstr "3-чү денгÑÑлди тандоо оң Alt клавишанын баÑылышы менен."
+#~ msgid "Left Ctrl key changes group"
+#~ msgstr "Сол Ctrl клавишаÑÑ‹ группаны алмаштырат"
-#: ../rules/sun.xml.in.h:85
-msgid "Press Right Alt-key to choose 3rd level, Shift+Right Alt-key is Multi_Key"
-msgstr "3-чү денгÑÑлди тандоо Ñол Alt клавишанын баÑылышы менен.Shift жана оң Alt бирге Multi_Key катары амал жаÑайт"
+#~ msgid "Left Shift key changes group"
+#~ msgstr "Сол Shift клавишаÑÑ‹ группаны алмаштырат"
-#: ../rules/sun.xml.in.h:86
-msgid "Press Right Control to choose 3rd level"
-msgstr "3-чү денгÑÑлди тандоо оң Control клавишанын баÑылышы менен."
+#~ msgid "Norwegian"
+#~ msgstr "Ðорвеждик"
-#: ../rules/sun.xml.in.h:87
-msgid "Press any of Alt keys to choose 3rd level"
-msgstr "3-чү денгÑÑлди тандоо Alt клавишалардан бирөөÑүнүн баÑылышы менен."
+#~ msgid "Num_Lock LED shows alternative group"
+#~ msgstr "Num_Lock индикатору кошумча группаны көрÑÓ©Ñ‚Ó©Ñ‚"
-#: ../rules/sun.xml.in.h:89
-msgid "Right Alt key changes group"
-msgstr "Оң Alt клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "Polish"
+#~ msgstr "Польдук"
-#: ../rules/sun.xml.in.h:91
-msgid "Right Alt switches group while pressed"
-msgstr "Оң Alt клавишаÑÑ‹ баÑылганда убактылуу группаны алмаштырат"
+#~ msgid "Portuguese"
+#~ msgstr "Португалдык"
-#: ../rules/sun.xml.in.h:92
-msgid "Right Control key works as Right Alt"
-msgstr "Оң Control оң Alt клавишадай"
+#~ msgid "Press Left Alt key to choose 3rd level"
+#~ msgstr "3-чү денгÑÑлди тандоо Ñол Alt клавишанын баÑылышы менен."
-#: ../rules/sun.xml.in.h:93
-msgid "Right Ctrl key changes group"
-msgstr "Оң Ctrl клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "Press Right Control to choose 3rd level"
+#~ msgstr "3-чү денгÑÑлди тандоо оң Control клавишанын баÑылышы менен."
-#: ../rules/sun.xml.in.h:94
-msgid "Right Shift key changes group"
-msgstr "Оң Shift клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "Press any of Alt keys to choose 3rd level"
+#~ msgstr "3-чү денгÑÑлди тандоо Alt клавишалардан бирөөÑүнүн баÑылышы менен."
-#: ../rules/sun.xml.in.h:97
-msgid "Scroll Lock changes group"
-msgstr "Scroll Lock клавишаÑÑ‹ группаны алмаштырат"
+#~ msgid "Right Alt key changes group"
+#~ msgstr "Оң Alt клавишаÑÑ‹ группаны алмаштырат"
-#: ../rules/sun.xml.in.h:98
-msgid "Scroll_Lock LED shows alternative group"
-msgstr "Scroll_Lock индикатору кошумча панелди көрÑÓ©Ñ‚Ó©Ñ‚"
+#~ msgid "Right Control key works as Right Alt"
+#~ msgstr "Оң Control оң Alt клавишадай"
-#: ../rules/sun.xml.in.h:99
-msgid "Shift with numpad keys works as in MS Windows"
-msgstr "Shift клавишаÑÑ‹ Ñандык клавиатурада MS Windows'тогу клавишадай амал жаÑайт"
+#~ msgid "Right Ctrl key changes group"
+#~ msgstr "Оң Ctrl клавишаÑÑ‹ группаны алмаштырат"
-#: ../rules/sun.xml.in.h:100
-msgid "Shift+CapsLock changes group"
-msgstr "Shift жана Caps Lock клавишалары бирге баÑылганда группаны алмаштарыт"
+#~ msgid "Right Shift key changes group"
+#~ msgstr "Оң Shift клавишаÑÑ‹ группаны алмаштырат"
-#: ../rules/sun.xml.in.h:101
-msgid "Slovak"
-msgstr "Словак"
+#~ msgid "Scroll_Lock LED shows alternative group"
+#~ msgstr "Scroll_Lock индикатору кошумча панелди көрÑÓ©Ñ‚Ó©Ñ‚"
-#: ../rules/sun.xml.in.h:102
-msgid "Spanish"
-msgstr "ИÑпандык"
+#~ msgid "Slovak"
+#~ msgstr "Словак"
-#: ../rules/sun.xml.in.h:105
-msgid "Sun Type 4"
-msgstr "Sun Type 4"
+#~ msgid "Spanish"
+#~ msgstr "ИÑпандык"
-#: ../rules/sun.xml.in.h:106
-msgid "Sun Type 5"
-msgstr "Sun Type 5"
+#~ msgid "Sun Type 4"
+#~ msgstr "Sun Type 4"
-#: ../rules/sun.xml.in.h:107
-msgid "Sun Type 5 European"
-msgstr "Sun Type 5 Европейдик"
+#~ msgid "Sun Type 5 European"
+#~ msgstr "Sun Type 5 Европейдик"
-#: ../rules/sun.xml.in.h:108
-msgid "Sun Type 5 Unix"
-msgstr "Sun Type 5 Unix үчүн"
+#~ msgid "Sun Type 5 Unix"
+#~ msgstr "Sun Type 5 Unix үчүн"
-#: ../rules/sun.xml.in.h:109
-msgid "Sun Type 6"
-msgstr "Sun Type 6"
+#~ msgid "Sun Type 6"
+#~ msgstr "Sun Type 6"
-#: ../rules/sun.xml.in.h:110
-msgid "Sun Type 6 Unix"
-msgstr "Sun Type 6 Unix үчүн"
+#~ msgid "Sun Type 6 Unix"
+#~ msgstr "Sun Type 6 Unix үчүн"
-#: ../rules/sun.xml.in.h:111
-msgid "Sun Type 6 with Euro key"
-msgstr "Sun Type 6 Евро белгиÑи менен"
+#~ msgid "Sun Type 6 with Euro key"
+#~ msgstr "Sun Type 6 Евро белгиÑи менен"
-#: ../rules/sun.xml.in.h:114
-msgid "Swap Control and Caps Lock"
-msgstr "Control жана Caps Lock клавишалардын ордун алмаштыруу"
+#~ msgid "Swap Control and Caps Lock"
+#~ msgstr "Control жана Caps Lock клавишалардын ордун алмаштыруу"
-#: ../rules/sun.xml.in.h:116
-msgid "Swedish"
-msgstr "Шведдик"
+#~ msgid "Swedish"
+#~ msgstr "Шведдик"
-#: ../rules/sun.xml.in.h:117
-msgid "Swiss French"
-msgstr "ШвейцариÑлык французча"
+#~ msgid "Swiss French"
+#~ msgstr "ШвейцариÑлык французча"
-#: ../rules/sun.xml.in.h:118
-msgid "Swiss German"
-msgstr "ШвейцариÑлык немецче"
+#~ msgid "Swiss German"
+#~ msgstr "ШвейцариÑлык немецче"
-#: ../rules/sun.xml.in.h:121
-msgid "Turkish"
-msgstr "Түркчө"
+#~ msgid "Turkish"
+#~ msgstr "Түркчө"
-#: ../rules/sun.xml.in.h:122
-msgid "Turkish (F)"
-msgstr "Түркчө (F) менен"
+#~ msgid "Turkish (F)"
+#~ msgstr "Түркчө (F) менен"
-#: ../rules/sun.xml.in.h:123
-msgid "Turkish Alt-Q Layout"
-msgstr "Түрк раÑкладкаÑÑ‹ Alt-Q менен"
+#~ msgid "Turkish Alt-Q Layout"
+#~ msgstr "Түрк раÑкладкаÑÑ‹ Alt-Q менен"
-#: ../rules/sun.xml.in.h:125
-msgid "U.S. English w/ ISO9995-3"
-msgstr "ÐÐ½Ð³Ð»Ð¸Ñ (ÐКШ) ISO9995-3 менен"
-
-#: ../rules/sun.xml.in.h:128
-msgid "Use keyboard LED to show alternative group"
-msgstr "Клавиатурдук индикаторлорду кошумча группаларды көрÑÓ©Ñ‚Ò¯Ò¯ үчүн колдонуу"
-
-#: ../rules/sun.xml.in.h:129
-msgid "Uses internal capitalization. Shift cancels Caps."
-msgstr "Ички капитализацыÑны ачат. Shift CapsLock амалын токтотот."
-
-#: ../rules/sun.xml.in.h:130
-msgid "Uses internal capitalization. Shift doesn't cancel Caps."
-msgstr "Ички капитализацыÑны ачат. Shift CapsLock амалына тааÑир тийгизбейт."
+#~ msgid "U.S. English w/ ISO9995-3"
+#~ msgstr "ÐÐ½Ð³Ð»Ð¸Ñ (ÐКШ) ISO9995-3 менен"
-#: ../rules/sun.xml.in.h:131
-msgid "bksl"
-msgstr "bksl"
+#~ msgid "bksl"
+#~ msgstr "bksl"
-#: ../rules/sun.xml.in.h:133
-msgid "type4"
-msgstr "type4"
+#~ msgid "type4"
+#~ msgstr "type4"
diff --git a/xorg-server/xkbdata.src/po/lt.po b/xorg-server/xkbdata.src/po/lt.po
index ae0242b0d..b9e9e75d2 100644
--- a/xorg-server/xkbdata.src/po/lt.po
+++ b/xorg-server/xkbdata.src/po/lt.po
@@ -2,18 +2,21 @@
# Copyright (C) 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the xkeyboard-config package.
# Gintautas Miliauskas <gintautas@miliauskas.lt>, 2009.
-#
+# Rimas Kudelis <rq@akl.lt>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.6pre1\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-26 12:47+0300\n"
-"Last-Translator: Gintautas Miliauskas <gintautas@miliauskas.lt>\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-27 15:58+0300\n"
+"Last-Translator: Rimas Kudelis <rq@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Virtaal 0.4.0\n"
#: ../rules/base.xml.in.h:1
msgid "(F)"
@@ -357,7 +360,7 @@ msgstr "BTC 9116U Mini Wireless Internet and Gaming"
#: ../rules/base.xml.in.h:86
msgid "Baltic+"
-msgstr ""
+msgstr "Baltic+"
#: ../rules/base.xml.in.h:87
msgid "Ban"
@@ -368,2394 +371,2439 @@ msgid "Bangladesh"
msgstr "Bangladešas"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Baškirų"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Baltarusija"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgija"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengalų"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengalų Probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonominÄ— pagal DvorakÄ…"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonominÄ— pagal DvorakÄ…, tik Latin-9"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Butanas"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Biblinė hebrajų"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnija ir Hercegovina"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Vienu metu paspausti abu Alternatyvos klavišai"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Vienu metu paspausti abu Valdymo (Ctrl) klavišai"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Vienu metu paspausti abu Antrojo lygio (Shift) klavišai"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Brailio terminalas"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brazilija"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bretonų"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgarija"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Kambodža"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanada"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Didžiosios raidės"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "Didžiosios raidės"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "Didž (į pirmąjį išdėstymą), Lyg2+Didž (į paskutinį išdėstymą)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "Didž (kol nuspaustas); Alt+Didž atlieka pirminę Didž klavišo funkciją"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "Didž klavišas veikia kaip įprasta; Lyg2 „pristabdo“ Didž veikseną"
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "Didž klavišas veikia kaip įprasta; Lyg2 neįtakoja Didž veiksenos"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "Didž klavišas nenaudojamas"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Didžiųjų raidžių klavišo veiksena"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "Didž klavišas veikia kaip nuolat nuspaustas Lyg2 (įtakoja visus klavišus)"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "Didž klavišas įjungia įprastą raidžių vertimą didžiosiomis"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "Didž įjungia įtaisytąjį raidžių vertimą didžiosiomis. Lyg2 „pristabdo“ Didž klavišo veikimą"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "Didž įjungia įtaisytąjį raidžių vertimą didžiosiomis. Lyg2 neįtakoja Didž veiksenos"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Kataloniškasis variantas su tašku L raidės centre"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "SedilÄ—"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Čerokių"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
-msgstr ""
+msgstr "Cherry B.UNLIMITED"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternatyvus variantas)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Kinija"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Čuvašų"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Čuvašų, lotyniški rašmenys"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "KlasikinÄ—"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "KlasikinÄ— Dvorako"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 klavišų)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 klavišų)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 klavišai)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq klaviatūra"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Compose klavišo pozicija"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Kongo demokratinÄ— respublika"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
-msgstr ""
+msgstr "Vald + Alt + Naikinimas iš kairės"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Vald funkciją priskirti Alt klavišams, o Alt funkciją – Win klavišams"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Vald funkciją priskirti Win klavišams bei įprastiems Vald klavišams"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Krymo totorių (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Krymo totorių (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krymo totorių (turkiškas Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Krymo totorių (turkiškas F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krymo totorių (turkiškas Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Kroatija"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Valdymo (Ctrl) klavišo pozicija"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Vald+Lyg2"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Kiriliškasis"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Kiriliškasis, su kampinėmis kabutėmis"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Kriliškasis, raidės Z ir Ž sukeistos"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "ÄŒekija"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
-msgstr ""
+msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Tęsties ženklas – dešininis kirtis"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Tęsties ženklai – kairinis ir dešininis kirtis"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Numatytieji skaitmenų srities klavišai"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101 klavišo PC klaviatūra"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Inspiron 6xxx/8xxx serijos skreitinukas"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Precision M serijos skreitinukas"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude serijos skreitinukas"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia Keyboard"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Danija"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802 serija"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorako"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorako (JK skyryba)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorako tarptautinis"
-#: ../rules/base.xml.in.h:201
-#, fuzzy
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
-msgstr "Dvorako, lenkiškos kabutės ant klavišo \"1/!\""
+msgstr "Dvorako, lenkiškos kabutės ant klavišo „1“"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorako, lenkiÅ¡kos kabutÄ—s ant kabuÄių klaviÅ¡o"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Rytų"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Be tęsties ženklų"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Įjungti papildomus tipografinius simbolius"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
-msgstr ""
+msgstr "Anglų"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
-#, fuzzy
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
-msgstr "Pro, Skaitmenų sritis"
+msgstr "Įvesties klavišas skaitmenų srityje"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonominis"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estija"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiopija"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev valdoma klaviatūra"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "IÅ¡plÄ—stasis"
-#: ../rules/base.xml.in.h:222
-#, fuzzy
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
-msgstr "IÅ¡plÄ—stasis"
+msgstr "Išplėstasis - „Windows“ išdėstymas"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Išplėstas kairinis brūkšnys"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F raidÄ—s (F) variantas"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Farerai"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Suomija"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Keturių lygių, su abstrakÄiais skyrikliais"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Keturių lygių, pirmajame kablelis"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Keturių lygių, pirmajame taškas"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Keturių lygių, pirmajame taškas, Latin-9 ribojimas"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Keturių lygių, pirmajame persiškas skyriklis (momayyez)"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Prancūzija"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Prancūzų"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Prancūzų (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Prancūzų (senasis)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Prancūziškas Dvorako"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Prancūzų, su Sun tęsties ženklais"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Prancūzų, be tęsties ženklų"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO skreitinukas"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Įprastinė PC 101 klavišo"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Įprastinė PC 102 klavišų (europinė)"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Įprastinė PC 104 klavišų"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Įprastinė PC 105 klavišų (europinė)"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:257
-#, fuzzy
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
-msgstr "Genius Comfy KB-12e"
+msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Gruzija"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Gruzinų"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Gruzinų AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "VokieÄių (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "VokieÄių, su Sun tÄ™sties ženklais"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "VokieÄių, be tÄ™sties ženklų"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Vokietija"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Gana"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Graikija"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Grupė perjungiama daugybos/dalybos klavišu"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "GvinÄ—ja"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gudžarati"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking Keyboard"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking Keyboard for Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x Multimedia Keyboard"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Šešioliktainė"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
-msgstr ""
+msgstr "Hindi Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "HomofoninÄ—"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Vengrija"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Win klavišams priskirti Hyper funkciją"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E (europinÄ—)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO alternatyvusis"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Islandija"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Tildė veikia kaip tęsties ženklas"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Indija"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Tarptautinis (tęsties ženklai pasiekiami per Lyg3 klavišą)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Tarptautinis (su tęsties ženklais)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitutas"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iranas"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irakas"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Airija"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Izraelis"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italija"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japonija"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japoniška (PC-98xx serijos)"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Nuostatos japoniškai klaviatūrai"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmukų"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Kana Lock klavišas fiksuojantis"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kašubų"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazachų, su rusiškomis raidėmis"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazachstanas"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
-msgstr ""
+msgstr "Klavišų seka X serverio darbui nutraukti"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "KlaviÅ¡ai treÄiajam lygiui pasirinkti"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Klavišai išdėstymui pakeisti"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Skaitmenų sritis"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
-#, fuzzy
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
-msgstr "Kaz"
+msgstr "Kgz"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komija"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "KorÄ—jos respublika"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Kutenajų"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurdų, (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurdų, arabų-lotynų"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurdų (lotyniškas Alt-Q)"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurdų (lotyniškas Q)"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirgizija"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laosas"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Skreitinuko Compaq (pvz., Armada) klaviatūra"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Skreitinukas Compaq (pvz., Presario), internetinė klaviatūra"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Skreitinukas eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Lotyniškasis"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Lotynų Amerika"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Lotyniškasis unikodinis"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Lotyniškasis unikodinis, QWERTY"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Lotyniškasis QWERTY"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Lotyniškasis unikodinis"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Lotyniškasis unikodinis, raidės Z ir Ž sukeistos"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Lotyniškasis, su kampinėmis kabutėmis"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Latvija"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Kairysis Alt"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Kairysis Alt (kol nuspaustas)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Kairysis Alt sukeistas su kairiuoju Win"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Kairysis Vald"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Kairysis Vald+kairysis Lyg2"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Kairysis Lyg2"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Kairysis Win"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Kairysis Win (į pirmąjį išdėstymą), dešinysis Win/Meniu (į paskutinį išdėstymą)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Kairysis Win (kol nuspaustas)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Kairei rankai"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Dvorako kairiarankiams"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Senasis"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Senasis Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Paveldėtasis klavišas su kableliu"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Paveldėtasis klavišas su tašku"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Mažiau/Daugiau"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Lietuva"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (alternatyvus variantas)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
-#, fuzzy
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
-msgstr "Logitech Cordless Desktop Pro (alternatyvus variantas2)"
+msgstr "Logitech Cordless Desktop Pro (alternatyvus variantas 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 (papildomi klavišai G15daemon pagalba)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech Generic Keyboard"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (modelis Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Žemutinių sorbų"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Žemutinių sorbų (QWERTZ)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (europinÄ—)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Makedonija"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh (senoji)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, su Sun tęsties ženklais"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, be tęsties ženklų"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
-msgstr "Didžiųjų raidžių klavišą paversti papildomu Naikinimo kairėn (Backspace) klavišu"
+msgstr "Didžiųjų raidžių klavišą paversti papildomu Naikinimo kairėn („Backspace“) klavišu"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Didžiųjų raidžių klavišą paversti papildomu Valdymo klavišu"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Didžiųjų raidžių klavišą paversti papildomu Grįžimo (Esc) klavišu"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Didžiųjų raidžių klavišą paversti papildomu „Hyper“ klavišu"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Didžiųjų raidžių klavišą paversti papildomu Skaitmenų („NumLock“) klavišu"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Didžiųjų raidžių klavišą paversti papildomu „Super“ klavišu"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malajalių"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malajalių Lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldyvai"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "MaltieÄių klaviatÅ«ra su JAV iÅ¡dÄ—stymu"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maorių"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Meniu"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Kairiajam Win klavišui priskirti Meta funkciją"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Win klavišams priskirti Meta funkciją"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, Švediška"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Įvairios suderinamumo nuostatos"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolija"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Juodkalnija"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marokas"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Daugiakalbis"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Daugiakalbis, pirmoji dalis"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Daugiakalbis, antroji dalis"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Mianmaras"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F tipo naikinimas kairÄ—n"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo Esperanto"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo JAV klaviatūroms"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepalas"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Nyderlandai"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Naujasis fonetinis"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigerija"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Jungiamasis tarpas ketvirtajame lygyje"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Jungiamasis tarpas ketvirtajame lygyje, siauras jungiamasis tarpas šeštajame lygyje"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Jungiamasis tarpas ketvirtajame lygyje, siauras jungiamasis tarpas šeštajame lygyje (Vald+Lyg2)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Jungiamasis tarpas antrajame lygyje"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Jungiamasis tarpas treÄiajame lygyje"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Jungiamasis tarpas treÄiajame lygyje, ketvirtajame lygyje nieko"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Jungiamasis tarpas treÄiajame lygyje, siauras jungiamasis tarpas ketvirtajame lygyje"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Šiaurės samių"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Šiaurės samių, be tęsties ženklų"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norvegija"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "Skaitmenys"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Skaitmenų srities Šalinimo klavišo veiksena"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Skaitmenų srities klavišai veikia kaip Mac'e"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Skaitmenų srities išdėstymo parinkimas"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Puštu"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Pietų Uzbekijos"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
-msgstr ""
+msgstr "OÄitarų"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Orijų"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet keyboard"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Ossetian"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
-msgstr "Osetinų, Windows išdėstymas"
+msgstr "Osetinų, „Windows“ išdėstymas"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Osetų, senasis"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx Series"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistanas"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Puštu"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
-msgstr ""
+msgstr "Pattachote"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persų, su persiška skaitmenų sritimi"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetinis"
-#: ../rules/base.xml.in.h:515
-#, fuzzy
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
-msgstr "Osetinų, Windows išdėstymas"
+msgstr "Fonetinis „Windows“ išdėstymas"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Lenkija"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Politoninis"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugalija"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Pro, Skaitmenų sritis"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
-msgstr ""
+msgstr "Probhat"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Dvorako programuotojų"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Dešinysis Alt"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Dešinysis Alt (kol nuspaustas)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "DeÅ¡inysis Alt niekada neįjungia treÄiojo lygio"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Dešinysis Alt, Lyg2+dešinysis Alt atlieka Multi_Key (Compose) funkciją"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Dešinysis Vald"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Dešinysis Vald (kol nuspaustas)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Dešiniajam Vald klavišui priskirti dešiniojo Alt funkciją"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Dešinysis Lyg2"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Dešinysis Win"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Dešinysis Win (kol nuspaustas)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Dešinei rankai"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Dvorako dešiniarankiams"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rumunija"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Rumunų klaviatūra su vokiškomis raidėmis"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Rumunų klaviatūra su vokiškomis raidėmis, be tęsties ženklų"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Rusija"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Rusų"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Rusų fonetinis"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Rusų fonetinis Dvorako"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Rusų fonetinis, be tęsties ženklų"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Rusų, su kazachų raidėmis"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
-#, fuzzy
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Ekrano slinkimas"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "Ekrano slinkimas"
-#: ../rules/base.xml.in.h:562
-#, fuzzy
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Šušvapų"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "KabliataÅ¡kis treÄiÄ…jame lygyje"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbija"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Lyg2 atšaukia Didžiąsias raides"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Lyg2 neatšaukia didžiųjų raidžių, o įjungia 3-iąjį lygį"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Lyg2 su skaitmenų srities klavišais veikia kaip MS Windows sistemoje"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Lyg2+Didž"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Paprastasis"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovakija"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "SlovÄ—nija"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Pietų Afrika"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Pietų Uzbekijos"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Ispanija"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Specialiosios sekos (Vald+Alt+&lt;klavišas&gt;) apdorojamos serveryje"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Å ri lanka"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standartinis"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standartinis (su sedile)"
-#: ../rules/base.xml.in.h:580
-#, fuzzy
-msgid "Standard Phonetic"
-msgstr "Urdu, fonetinis"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standartinis RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standartinis RSTU ant rusiško išdėstymo"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sun su tęsties ženklais"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Sukeisti Valdymo ir Didžiųjų raidžių klavišus"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Sukeisti Grįžimo (Esc) ir Didžiųjų raidžių klavišus"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Å vedija"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Å veicarija"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (planšetinis kompiuteris)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Sirija"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Sirijos"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Sirijos fonetinis"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tadžikistanas"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamilų"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamilų TAB rašomoji mašinėlė"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamilų TSCII rašomoji mašinėlė"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamilų unikodinis"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Totorių"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Tailandas"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "TibetieÄių"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "TibetieÄių (su ASCII skaitmenimis)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Berberų"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Berberų alternatyvusis"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Berberų alternatyvusis fonetinis"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Berberų išplėstasis"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Berberų išplėstasis fonetinis"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Berberų fonetinis"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "TildÄ—s (~) variantas"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Ant atitinkamų Dvorako klaviatūros klavišų"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Ant atitinkamų QWERTY klaviatūros klavišų"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-#, fuzzy
-msgid "Traditional Phonetic"
-msgstr "Berberų fonetinis"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Tradicinis fonetinis"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
-msgstr ""
+msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turkija"
-#: ../rules/base.xml.in.h:631
-#, fuzzy
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
-msgstr "Tadžikistanas"
+msgstr "TurkmÄ—nistanas"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Spausdinimo mašinėlės išdėstymas"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "UCW išdėstymas (tik raidės su diakritikais)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "JAV klaviatūra su bosniškais dviraidžiais"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "JAV klaviatūra su bosniškais rašmenimis"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "JAV klaviatūra su kroatiškais dviraidžiais"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "JAV klaviatūra su kroatiškais rašmenimis"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "JAV klaviatūra su estiškais rašmenimis"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "JAV klaviatūra su itališkais rašmenimis"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "JAV klaviatūra su lietuviškais rašmenimis"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "JAV klaviatūra su slovėniškais rašmenimis"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "JAV"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurtų"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukraina"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Unikodiniai priedai (rodyklÄ—s ir matematiniai operatoriai)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Unikodiniai priedai (rodyklÄ—s ir matematiniai operatoriai). Matematiniai operatoriai numatytame lygyje"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "JungtinÄ— karalystÄ—"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, alternatyvus fonetinis"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, fonetinis"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
-msgstr "Urdu, Windows išdėstymas"
+msgstr "Urdu, „Windows“ išdėstymas"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Bosniški dviraidžiai"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Kroatiški dviraidžiai"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "KampinÄ—s kabutÄ—s"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Klaviatūros diodu indikuoti nepagrindinius išdėstymus"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Tarpo klavišo naudojimas jungiamajam tarpui įvesti"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Įprastas tarpas visuose lygiuose"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekistanas"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnamas"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 Internet Keyboard"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 skaitmenų sritis su unikodiniais priedais (rodyklėmis ir matematiniais operatoriais)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Wang 724 skaitmenų sritis su unikodiniais priedais (rodyklėmis ir matematiniais operatoriais). Matematiniai operatoriai numatytame lygyje"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang 724, AZERTY modelis"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Vakarietiškasis"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook XP5 modelis"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
-msgstr "Windows išdėstymas"
+msgstr "„Windows“ išdėstymas"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Su &lt;\\|&gt; klavišu"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Euro ženklas ant klavišo 5"
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Su kampinÄ—mis kabutÄ—mis"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Jakutų"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Jorubų"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Raidės Z ir Ž sukeistos"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "AZERTY"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "AZERTY/skaitmenys"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "skaitmenys"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "nukeltas kabliataškis ir kabutė (nenaudotina)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "QWERTY"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "QWERTY, išplėstas kairinis brūkšnys"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "QWERTY/skaitmenys"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "QWERTZ"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsinų"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Kombinaciniai diakritikai vietoje tęsties klavišų"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Tarptautinis (unikodo ženklai kombinuojami Lyg3 klavišu)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Tarptautinis (unikodo ženklai kombinuojami Lyg3 klavišu, alternatyvusis)"
+
+#~ msgid "Keypad"
+#~ msgstr "Skaitmenų sritis"
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Pro Keypad"
+#~ msgstr "Pro, Skaitmenų sritis"
+
+#, fuzzy
+#~ msgid "Standard Phonetic"
+#~ msgstr "Urdu, fonetinis"
+
#~ msgid "Brazilian ABNT2"
#~ msgstr "Brazilų ABNT2"
diff --git a/xorg-server/xkbdata.src/po/nl.po b/xorg-server/xkbdata.src/po/nl.po
index 44a8c4c0b..4bc4f8179 100644
--- a/xorg-server/xkbdata.src/po/nl.po
+++ b/xorg-server/xkbdata.src/po/nl.po
@@ -2,2681 +2,3052 @@
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# This file is distributed under the same license as the xkeyboard-config package.
# Taco Witte <tcwitte@cs.uu.nl>, 2003, 2004, 2005, 2006.
-# Tino Meinen <a.t.meinen@chello.nl>, 2007, 2008.
+# Tino Meinen <tino.meinen@gmail.com>, 2007, 2008, 2009.
# ------------------------------------------------------------------------
# Compose -samensteltoets
+# dead keys -dode/latente/inactieve
# guillemets -Franse aanhalingstekens
# (zie http://slackware.jiten.nl/index.cgi?list=leestekens)
+# is mapped to -zit op de
# layout -indeling/layout/toetsindeling/toetsenbordindeling
# LED -lampje (LED-lampje)
# legacy -historisch/oud/verouderd
# level -niveau
# non-breakable space character - niet-afbrekende spatie/harde spatie
# numeric keypad -cijferblok
-# while pressed -gedurende het indrukken
+# while pressed -gedurende het indrukken/ingedrukt houden
# win-key -windows-toets/win-toets
#
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.4-pre1\n"
+"Project-Id-Version: xkeyboard-config-1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2008-09-15 23:52+0100\n"
-"PO-Revision-Date: 2008-09-18 02:41+0200\n"
-"Last-Translator: Tino Meinen <a.t.meinen@chello.nl>\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-24 17:46+0800\n"
+"Last-Translator: Tino Meinen <tino.meinen@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../rules/base.xml.in.h:1 ../rules/evdev.xml.in.h:1
+#: ../rules/base.xml.in.h:1
msgid "(F)"
msgstr "(F)"
-#: ../rules/base.xml.in.h:2 ../rules/evdev.xml.in.h:2
+#: ../rules/base.xml.in.h:2
msgid "(Legacy) Alternative"
msgstr "(Historisch) alternatief"
-#: ../rules/base.xml.in.h:3 ../rules/evdev.xml.in.h:3
+#: ../rules/base.xml.in.h:3
msgid "(Legacy) Alternative, Sun dead keys"
msgstr "(Historisch) alternatief, Sun ‘dode toetsen’"
-#: ../rules/base.xml.in.h:4 ../rules/evdev.xml.in.h:4
+#: ../rules/base.xml.in.h:4
msgid "(Legacy) Alternative, eliminate dead keys"
msgstr "(Historisch) alternatief, zonder dode toetsen"
-#: ../rules/base.xml.in.h:5 ../rules/evdev.xml.in.h:5
+#: ../rules/base.xml.in.h:5
msgid "101/104 key Compatible"
msgstr "101/104-toetsen compatibel"
-#: ../rules/base.xml.in.h:6 ../rules/evdev.xml.in.h:6
+#: ../rules/base.xml.in.h:6
msgid "101/qwerty/comma/Dead keys"
msgstr "101/qwerty/komma/dode toetsen"
-#: ../rules/base.xml.in.h:7 ../rules/evdev.xml.in.h:7
+#: ../rules/base.xml.in.h:7
msgid "101/qwerty/comma/Eliminate dead keys"
msgstr "101/qwerty/komma/zonder dode toetsen"
-#: ../rules/base.xml.in.h:8 ../rules/evdev.xml.in.h:8
+#: ../rules/base.xml.in.h:8
msgid "101/qwerty/dot/Dead keys"
msgstr "101/qwerty/punt/dode toetsen"
-#: ../rules/base.xml.in.h:9 ../rules/evdev.xml.in.h:9
+#: ../rules/base.xml.in.h:9
msgid "101/qwerty/dot/Eliminate dead keys"
msgstr "101/qwerty/punt/zonder dode toetsen"
-#: ../rules/base.xml.in.h:10 ../rules/evdev.xml.in.h:10
+#: ../rules/base.xml.in.h:10
msgid "101/qwertz/comma/Dead keys"
msgstr "101/qwertz/komma/dode toetsen"
-#: ../rules/base.xml.in.h:11 ../rules/evdev.xml.in.h:11
+#: ../rules/base.xml.in.h:11
msgid "101/qwertz/comma/Eliminate dead keys"
msgstr "101/qwertz/komma/zonder dode toetsen"
-#: ../rules/base.xml.in.h:12 ../rules/evdev.xml.in.h:12
+#: ../rules/base.xml.in.h:12
msgid "101/qwertz/dot/Dead keys"
msgstr "101/qwertz/punt/dode toetsen"
-#: ../rules/base.xml.in.h:13 ../rules/evdev.xml.in.h:13
+#: ../rules/base.xml.in.h:13
msgid "101/qwertz/dot/Eliminate dead keys"
msgstr "101/qwertz/punt/zonder dode toetsen"
-#: ../rules/base.xml.in.h:14 ../rules/evdev.xml.in.h:14
+#: ../rules/base.xml.in.h:14
msgid "102/qwerty/comma/Dead keys"
msgstr "102/qwerty/komma/dode toetsen"
-#: ../rules/base.xml.in.h:15 ../rules/evdev.xml.in.h:15
+#: ../rules/base.xml.in.h:15
msgid "102/qwerty/comma/Eliminate dead keys"
msgstr "102/qwerty/komma/zonder dode toetsen"
-#: ../rules/base.xml.in.h:16 ../rules/evdev.xml.in.h:16
+#: ../rules/base.xml.in.h:16
msgid "102/qwerty/dot/Dead keys"
msgstr "102/qwerty/punt/dode toetsen"
-#: ../rules/base.xml.in.h:17 ../rules/evdev.xml.in.h:17
+#: ../rules/base.xml.in.h:17
msgid "102/qwerty/dot/Eliminate dead keys"
msgstr "102/qwerty/punt/zonder dode toetsen"
-#: ../rules/base.xml.in.h:18 ../rules/evdev.xml.in.h:18
+#: ../rules/base.xml.in.h:18
msgid "102/qwertz/comma/Dead keys"
msgstr "102/qwertz/komma/dode toetsen"
-#: ../rules/base.xml.in.h:19 ../rules/evdev.xml.in.h:19
+#: ../rules/base.xml.in.h:19
msgid "102/qwertz/comma/Eliminate dead keys"
msgstr "102/qwertz/komma/zonder dode toetsen"
-#: ../rules/base.xml.in.h:20 ../rules/evdev.xml.in.h:20
+#: ../rules/base.xml.in.h:20
msgid "102/qwertz/dot/Dead keys"
msgstr "102/qwertz/punt/dode toetsen"
-#: ../rules/base.xml.in.h:21 ../rules/evdev.xml.in.h:21
+#: ../rules/base.xml.in.h:21
msgid "102/qwertz/dot/Eliminate dead keys"
msgstr "102/qwertz/punt/zonder dode toetsen"
-#: ../rules/base.xml.in.h:22 ../rules/evdev.xml.in.h:22
+#: ../rules/base.xml.in.h:22
+msgid "2"
+msgstr "2"
+
+#: ../rules/base.xml.in.h:23
+msgid "4"
+msgstr "4"
+
+#: ../rules/base.xml.in.h:24
+msgid "5"
+msgstr "5"
+
+#: ../rules/base.xml.in.h:25
msgid "A4Tech KB-21"
msgstr "A4Tech KB-21"
-#: ../rules/base.xml.in.h:23 ../rules/evdev.xml.in.h:23
+#: ../rules/base.xml.in.h:26
msgid "A4Tech KBS-8"
msgstr "A4Tech KBS-8"
-#: ../rules/base.xml.in.h:24 ../rules/evdev.xml.in.h:24
+#: ../rules/base.xml.in.h:27
msgid "A4Tech Wireless Desktop RFKB-23"
msgstr "A4Tech draadloos toetsenbord RFKB-23"
-#: ../rules/base.xml.in.h:25 ../rules/evdev.xml.in.h:25
+#: ../rules/base.xml.in.h:28
msgid "ACPI Standard"
msgstr "ACPI standaard"
-#: ../rules/base.xml.in.h:26 ../rules/evdev.xml.in.h:26
-msgid "ATM/phone-style hexadecimal keypad"
-msgstr "ATM/hexadecimaal toetsenbord, telefoonstijl"
+#: ../rules/base.xml.in.h:29
+msgid "ATM/phone-style"
+msgstr "ATM/telefoonstijl"
-#: ../rules/base.xml.in.h:27 ../rules/evdev.xml.in.h:27
+#: ../rules/base.xml.in.h:30
msgid "Acer AirKey V"
msgstr "Acer AirKey V"
-#: ../rules/base.xml.in.h:28 ../rules/evdev.xml.in.h:28
+#: ../rules/base.xml.in.h:31
msgid "Acer C300"
msgstr "Acer C300"
-#: ../rules/base.xml.in.h:29 ../rules/evdev.xml.in.h:29
+#: ../rules/base.xml.in.h:32
msgid "Acer Ferrari 4000"
msgstr "Acer Ferrari 4000"
-#: ../rules/base.xml.in.h:30 ../rules/evdev.xml.in.h:30
+#: ../rules/base.xml.in.h:33
msgid "Acer Laptop"
msgstr "Acer laptop"
-# toevoegen/toekennen
-#: ../rules/base.xml.in.h:31 ../rules/evdev.xml.in.h:31
-msgid "Add the EuroSign to the 2 key."
-msgstr "Het Euro-teken toevoegen aan de 2-toets."
-
-# toevoegen/toekennen
-#: ../rules/base.xml.in.h:32 ../rules/evdev.xml.in.h:32
-msgid "Add the EuroSign to the 4 key."
-msgstr "Het Euro-teken toevoegen aan de 4-toets."
-
-#: ../rules/base.xml.in.h:33 ../rules/evdev.xml.in.h:33
-msgid "Add the EuroSign to the 5 key."
-msgstr "Het Euro-teken toevoegen aan de 5-toets."
+#: ../rules/base.xml.in.h:34
+msgid "Add the standard behavior to Menu key"
+msgstr "Het standaard gedrag toevoegen aan de Menu-toets"
-#: ../rules/base.xml.in.h:34 ../rules/evdev.xml.in.h:34
-msgid "Add the EuroSign to the E key."
-msgstr "Het Euro-teken toevoegen aan de E-toets."
-
-#: ../rules/base.xml.in.h:35 ../rules/evdev.xml.in.h:35
-msgid "Add the standard behavior to Menu key."
-msgstr "Het standaard gedrag toevoegen aan Menu-toets."
+#: ../rules/base.xml.in.h:35
+msgid "Adding Esperanto circumflexes (supersigno)"
+msgstr "Esperanto circonflexes toevoegen (supersigno)"
# op afbeelden/aan toekennen
-#: ../rules/base.xml.in.h:36 ../rules/evdev.xml.in.h:36
-msgid "Adding the EuroSign to certain keys"
+#: ../rules/base.xml.in.h:36
+msgid "Adding EuroSign to certain keys"
msgstr "Het Euro-teken aan bepaalde toetsen toevoegen"
-#: ../rules/base.xml.in.h:37 ../rules/evdev.xml.in.h:37
+#: ../rules/base.xml.in.h:37
msgid "Advance Scorpius KI"
msgstr "Advance Scorpius KI"
-#: ../rules/base.xml.in.h:38 ../rules/evdev.xml.in.h:38
+#: ../rules/base.xml.in.h:38
msgid "Afg"
msgstr "Afg"
-#: ../rules/base.xml.in.h:39 ../rules/evdev.xml.in.h:39
+#: ../rules/base.xml.in.h:39
msgid "Afghanistan"
msgstr "Afghanistan"
-#: ../rules/base.xml.in.h:40 ../rules/evdev.xml.in.h:40
+#: ../rules/base.xml.in.h:40
msgid "Akan"
msgstr "Akaans"
-#: ../rules/base.xml.in.h:41 ../rules/evdev.xml.in.h:41
+#: ../rules/base.xml.in.h:41
msgid "Alb"
msgstr "Alb"
-#: ../rules/base.xml.in.h:42 ../rules/evdev.xml.in.h:42
+#: ../rules/base.xml.in.h:42
msgid "Albania"
msgstr "Albanië"
-#: ../rules/base.xml.in.h:43 ../rules/evdev.xml.in.h:43
-msgid "Alt and Meta are on the Alt keys."
-msgstr "Alt en Meta zijn op de Alt-toetsen."
+#: ../rules/base.xml.in.h:43
+msgid "Alt and Meta are on Alt keys"
+msgstr "Alt en Meta zitten op de Alt-toetsen"
+
+# wordt afgebeeld op/zit op
+# zit op is veel korter en is ook duidelijker
+#: ../rules/base.xml.in.h:44
+msgid "Alt is mapped to Right Win, Super to Menu"
+msgstr "Alt zit op de rechter Win-toets, Super op de Menu-toets"
-#: ../rules/base.xml.in.h:44 ../rules/evdev.xml.in.h:44
-msgid "Alt is mapped to the right Win-key and Super to Menu."
-msgstr "Alt wordt afgebeeld op de rechter Win-toets en Super op Menu."
+#: ../rules/base.xml.in.h:45
+msgid "Alt+CapsLock"
+msgstr "Alt+CapsLock"
-#: ../rules/base.xml.in.h:45 ../rules/evdev.xml.in.h:45
-msgid "Alt+CapsLock changes layout."
-msgstr "Alt+CapsLock verandert de indeling."
+#: ../rules/base.xml.in.h:46
+msgid "Alt+Ctrl"
+msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:46 ../rules/evdev.xml.in.h:46
-msgid "Alt+Ctrl change layout."
-msgstr "Alt+Ctrl verandert de indeling."
+#: ../rules/base.xml.in.h:47
+msgid "Alt+Shift"
+msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:47 ../rules/evdev.xml.in.h:47
-msgid "Alt+Shift change layout."
-msgstr "Alt+Shift verandert de indeling."
+#: ../rules/base.xml.in.h:48
+msgid "Alt+Space"
+msgstr "Alt+Spatie"
-#: ../rules/base.xml.in.h:48 ../rules/evdev.xml.in.h:48
+#: ../rules/base.xml.in.h:49
msgid "Alt-Q"
msgstr "Alt-Q"
-#: ../rules/base.xml.in.h:49 ../rules/evdev.xml.in.h:49
+#: ../rules/base.xml.in.h:50
msgid "Alt/Win key behavior"
msgstr "Alt/Win-toets gedrag"
-#: ../rules/base.xml.in.h:50 ../rules/evdev.xml.in.h:50
+#: ../rules/base.xml.in.h:51
msgid "Alternative"
msgstr "Alternatief"
-#: ../rules/base.xml.in.h:51 ../rules/evdev.xml.in.h:51
+#: ../rules/base.xml.in.h:52
msgid "Alternative Eastern"
msgstr "Alternatief oosters"
-#: ../rules/base.xml.in.h:52 ../rules/evdev.xml.in.h:52
+#: ../rules/base.xml.in.h:53
msgid "Alternative Phonetic"
msgstr "Alternatief fonetisch"
-#: ../rules/base.xml.in.h:53 ../rules/evdev.xml.in.h:53
+#: ../rules/base.xml.in.h:54
msgid "Alternative international (former us_intl)"
msgstr "Alternatief internationaal (voormalig us_intl)"
-#: ../rules/base.xml.in.h:54 ../rules/evdev.xml.in.h:54
+#: ../rules/base.xml.in.h:55
msgid "Alternative, Sun dead keys"
msgstr "Alternatief, Sun-dode toetsen"
-#: ../rules/base.xml.in.h:55 ../rules/evdev.xml.in.h:55
+#: ../rules/base.xml.in.h:56
msgid "Alternative, eliminate dead keys"
msgstr "Alternatief, zonder dode toetsen"
-#: ../rules/base.xml.in.h:56 ../rules/evdev.xml.in.h:56
+#: ../rules/base.xml.in.h:57
msgid "Alternative, latin-9 only"
msgstr "Alternatief, enkel latin-9"
-#: ../rules/base.xml.in.h:57 ../rules/evdev.xml.in.h:57
+#: ../rules/base.xml.in.h:58
msgid "And"
msgstr "And"
-#: ../rules/base.xml.in.h:58 ../rules/evdev.xml.in.h:58
+#: ../rules/base.xml.in.h:59
msgid "Andorra"
msgstr "Andorra"
-#: ../rules/base.xml.in.h:59 ../rules/evdev.xml.in.h:59
+# Beide/Willekeurige/Een van de/Een/Elke
+#: ../rules/base.xml.in.h:60
+msgid "Any Alt key"
+msgstr "Elke Alt-toets"
+
+#: ../rules/base.xml.in.h:61
+msgid "Any Win key"
+msgstr "Elke Win-toets"
+
+# Beide Win-toetsen wisselen de indeling gedurende het indrukken.<
+# gedurende het indrukken/ingedrukt houden (vrij vertaald)
+#: ../rules/base.xml.in.h:62
+msgid "Any Win key (while pressed)"
+msgstr "Elke Win-toets (ingedrukt houden)"
+
+#: ../rules/base.xml.in.h:63
msgid "Apostrophe (') variant"
msgstr "Apostrof (') variant"
-#: ../rules/base.xml.in.h:60 ../rules/evdev.xml.in.h:60
+#: ../rules/base.xml.in.h:64
msgid "Apple"
msgstr "Apple"
-#: ../rules/base.xml.in.h:61 ../rules/evdev.xml.in.h:61
+#: ../rules/base.xml.in.h:65
msgid "Apple Laptop"
msgstr "Apple laptop"
-#: ../rules/base.xml.in.h:62 ../rules/evdev.xml.in.h:62
+#: ../rules/base.xml.in.h:66
msgid "Ara"
msgstr "Ara"
-#: ../rules/base.xml.in.h:63 ../rules/evdev.xml.in.h:63
+#: ../rules/base.xml.in.h:67
msgid "Arabic"
msgstr "Arabisch"
-#: ../rules/base.xml.in.h:64 ../rules/evdev.xml.in.h:64
+#: ../rules/base.xml.in.h:68
msgid "Arm"
msgstr "Arm"
-#: ../rules/base.xml.in.h:65 ../rules/evdev.xml.in.h:65
+#: ../rules/base.xml.in.h:69
msgid "Armenia"
msgstr "Armenië"
-#: ../rules/base.xml.in.h:66 ../rules/evdev.xml.in.h:66
+#: ../rules/base.xml.in.h:70
msgid "Asturian variant with bottom-dot H and bottom-dot L"
msgstr "Asturische variant met onder-punt H en onder-punt L"
-#: ../rules/base.xml.in.h:67 ../rules/evdev.xml.in.h:67
+#: ../rules/base.xml.in.h:71
msgid "Asus Laptop"
msgstr "Asus laptop"
-#: ../rules/base.xml.in.h:68 ../rules/evdev.xml.in.h:68
+# "Ctrl-toets zit linksonder"
+#: ../rules/base.xml.in.h:72
+msgid "At bottom left"
+msgstr "Linksonder"
+
+# Ctrl-toets links van ‘A’
+#: ../rules/base.xml.in.h:73
+msgid "At left of 'A'"
+msgstr "Links van de ‘A’"
+
+#: ../rules/base.xml.in.h:74
msgid "Aze"
msgstr "Aze"
-#: ../rules/base.xml.in.h:69 ../rules/evdev.xml.in.h:69
+#: ../rules/base.xml.in.h:75
msgid "Azerbaijan"
msgstr "Azerbeidzjan"
-#: ../rules/base.xml.in.h:70 ../rules/evdev.xml.in.h:70
+#: ../rules/base.xml.in.h:76
msgid "Azona RF2300 wireless Internet Keyboard"
msgstr "Azona RF2300 draadloos internettoetsenbord"
-#: ../rules/base.xml.in.h:71 ../rules/evdev.xml.in.h:71
+#: ../rules/base.xml.in.h:77
msgid "BTC 5090"
msgstr "BTC 5090"
-#: ../rules/base.xml.in.h:72 ../rules/evdev.xml.in.h:72
+#: ../rules/base.xml.in.h:78
msgid "BTC 5113RF Multimedia"
msgstr "BTC 5113RF multimedia"
-#: ../rules/base.xml.in.h:73 ../rules/evdev.xml.in.h:73
+#: ../rules/base.xml.in.h:79
msgid "BTC 5126T"
msgstr "BTC 5126T"
-#: ../rules/base.xml.in.h:74 ../rules/evdev.xml.in.h:74
+#: ../rules/base.xml.in.h:80
msgid "BTC 6301URF"
msgstr "BTC 6301URF"
-#: ../rules/base.xml.in.h:75 ../rules/evdev.xml.in.h:75
+#: ../rules/base.xml.in.h:81
msgid "BTC 9000"
msgstr "BTC 9000"
-#: ../rules/base.xml.in.h:76 ../rules/evdev.xml.in.h:76
+#: ../rules/base.xml.in.h:82
msgid "BTC 9000A"
msgstr "BTC 9000A"
-#: ../rules/base.xml.in.h:77 ../rules/evdev.xml.in.h:77
+#: ../rules/base.xml.in.h:83
msgid "BTC 9001AH"
msgstr "BTC 9001AH"
-#: ../rules/base.xml.in.h:78 ../rules/evdev.xml.in.h:78
+#: ../rules/base.xml.in.h:84
msgid "BTC 9019U"
msgstr "BTC 9019U"
-#: ../rules/base.xml.in.h:79 ../rules/evdev.xml.in.h:79
+#: ../rules/base.xml.in.h:85
+msgid "BTC 9116U Mini Wireless Internet and Gaming"
+msgstr "BTC 9116U Mini Wireless Internet en Gaming"
+
+#: ../rules/base.xml.in.h:86
msgid "Baltic+"
msgstr "Baltisch+"
-#: ../rules/base.xml.in.h:80 ../rules/evdev.xml.in.h:80
+#: ../rules/base.xml.in.h:87
msgid "Ban"
msgstr "Ban"
-#: ../rules/base.xml.in.h:81 ../rules/evdev.xml.in.h:81
+#: ../rules/base.xml.in.h:88
msgid "Bangladesh"
msgstr "Bangladesh"
-#: ../rules/base.xml.in.h:82 ../rules/evdev.xml.in.h:82
+#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Bashkiriaans"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Wit"
-#: ../rules/base.xml.in.h:83 ../rules/evdev.xml.in.h:83
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Wit-Rusland"
-#: ../rules/base.xml.in.h:84 ../rules/evdev.xml.in.h:84
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "België"
-#: ../rules/base.xml.in.h:85 ../rules/evdev.xml.in.h:85
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:86 ../rules/evdev.xml.in.h:86
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:87 ../rules/evdev.xml.in.h:87
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:88 ../rules/evdev.xml.in.h:88
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengaals"
-#: ../rules/base.xml.in.h:89 ../rules/evdev.xml.in.h:89
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengaals Probhat"
-#: ../rules/base.xml.in.h:90 ../rules/evdev.xml.in.h:90
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomisch, Dvorak wijze"
-#: ../rules/base.xml.in.h:91 ../rules/evdev.xml.in.h:91
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomisch, Dvorak wijze, enkel latin-9"
-#: ../rules/base.xml.in.h:92 ../rules/evdev.xml.in.h:92
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:93 ../rules/evdev.xml.in.h:93
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:94 ../rules/evdev.xml.in.h:94
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
-#: ../rules/base.xml.in.h:95 ../rules/evdev.xml.in.h:95
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Bijbels Hebreeuws (Tiro)"
-#: ../rules/base.xml.in.h:96 ../rules/evdev.xml.in.h:96
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:97 ../rules/evdev.xml.in.h:97
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:98 ../rules/evdev.xml.in.h:98
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnië-Herzegovina"
# verandert/wijzigt hier beter dan veranderen/wijzigen
-#: ../rules/base.xml.in.h:99 ../rules/evdev.xml.in.h:99
-msgid "Both Alt keys together change layout."
-msgstr "Beide Alt-toetsen samen verandert de indeling."
-
-#: ../rules/base.xml.in.h:100 ../rules/evdev.xml.in.h:100
-msgid "Both Ctrl keys together change layout."
-msgstr "Beide Ctrl-toetsen samen verandert de indeling."
+# "Beide Alt-toetsen samen verandert de groep."
+#
+# tezamen/samen/tegelijk
+#: ../rules/base.xml.in.h:107
+msgid "Both Alt keys together"
+msgstr "Beide Alt-toetsen samen"
-#: ../rules/base.xml.in.h:101 ../rules/evdev.xml.in.h:101
-msgid "Both Shift keys together change layout."
-msgstr "Beide Shift-toetsen samen verandert de indeling."
+#: ../rules/base.xml.in.h:108
+msgid "Both Ctrl keys together"
+msgstr "Beide Ctrl-toetsen samen"
-#: ../rules/base.xml.in.h:102 ../rules/evdev.xml.in.h:102
-msgid "Both Win-keys switch layout while pressed."
-msgstr "Beide Win-toetsen wisselen de indeling gedurende het indrukken."
+#: ../rules/base.xml.in.h:109
+msgid "Both Shift keys together"
+msgstr "Beide Shift-toetsen samen"
-#: ../rules/base.xml.in.h:103 ../rules/evdev.xml.in.h:103
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:104 ../rules/evdev.xml.in.h:104
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:105 ../rules/evdev.xml.in.h:105
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brazilië"
-#: ../rules/base.xml.in.h:106 ../rules/evdev.xml.in.h:106
-msgid "Brazilian ABNT2"
-msgstr "Braziliaans ABNT2"
+#: ../rules/base.xml.in.h:113
+msgid "Breton"
+msgstr "Bretons"
-#: ../rules/base.xml.in.h:107 ../rules/evdev.xml.in.h:107
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:108 ../rules/evdev.xml.in.h:108
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother internet toetsenbord"
-#: ../rules/base.xml.in.h:109 ../rules/evdev.xml.in.h:109
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:110 ../rules/evdev.xml.in.h:110
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgarije"
-#: ../rules/base.xml.in.h:111 ../rules/evdev.xml.in.h:111
+#: ../rules/base.xml.in.h:118
+msgid "CRULP"
+msgstr "CRULP"
+
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Cambodja"
-#: ../rules/base.xml.in.h:112 ../rules/evdev.xml.in.h:112
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:113 ../rules/evdev.xml.in.h:113
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Canada"
-#: ../rules/base.xml.in.h:114 ../rules/evdev.xml.in.h:114
-msgid "Caps Lock is Compose."
-msgstr "Caps Lock is samensteltoets."
+#: ../rules/base.xml.in.h:122
+msgid "Caps Lock"
+msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:115 ../rules/evdev.xml.in.h:115
-msgid "CapsLock LED shows alternative layout."
-msgstr "CapsLock-lampje toont de alternatieve indeling."
+#: ../rules/base.xml.in.h:123
+msgid "CapsLock"
+msgstr "CapsLock"
-#: ../rules/base.xml.in.h:116 ../rules/evdev.xml.in.h:116
-msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock."
-msgstr "CapsLock werkt als Shift met blokkering, Shift heft CapsLock tijdelijk op."
+# CapsLock wisselt naar de eerste indeling, Shift+CapsLock wisselt naar de laatste indeling
+#: ../rules/base.xml.in.h:124
+msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
+msgstr "CapsLock (naar eerste indeling), Shift+CapsLock (naar laatste indeling)"
-#: ../rules/base.xml.in.h:117 ../rules/evdev.xml.in.h:117
-msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock."
-msgstr "CapsLock werkt als Shift met blokkering. Shift heft CapsLock niet op."
+#: ../rules/base.xml.in.h:125
+msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
+msgstr "CapsLock (ingedrukt houden), Alt+CapsLock geeft de oorspronkelijke capslock actie"
-#: ../rules/base.xml.in.h:118 ../rules/evdev.xml.in.h:118
-msgid "CapsLock just locks the Shift modifier."
-msgstr "CapsLock blokkeert slechts de Shift-toets."
+#: ../rules/base.xml.in.h:126
+msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
+msgstr "CapsLock werkt als Shift met blokkering, Shift heft CapsLock tijdelijk op"
-#: ../rules/base.xml.in.h:119 ../rules/evdev.xml.in.h:119
-msgid "CapsLock key behavior"
-msgstr "CapsLock-toets gedrag"
+#: ../rules/base.xml.in.h:127
+msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
+msgstr "CapsLock werkt als Shift met blokkering. Shift heft CapsLock niet op"
-#: ../rules/base.xml.in.h:120 ../rules/evdev.xml.in.h:120
-msgid "CapsLock key changes layout."
-msgstr "CapsLock-toets verandert de indeling."
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock is uitgezet"
-#: ../rules/base.xml.in.h:121 ../rules/evdev.xml.in.h:121
-msgid "CapsLock switch to first layout, Shift+CapsLock switch to last layout."
-msgstr "CapsLock wisselt naar de eerste indeling, Shift+CapsLock wisselt naar de laatste indeling."
+#: ../rules/base.xml.in.h:129
+msgid "CapsLock key behavior"
+msgstr "CapsLock-toets gedrag"
-#: ../rules/base.xml.in.h:122 ../rules/evdev.xml.in.h:122
-msgid "CapsLock toggles Shift so all keys are affected."
-msgstr "CapsLock wisselt Shift op alle toetsen."
+#: ../rules/base.xml.in.h:130
+msgid "CapsLock toggles Shift so all keys are affected"
+msgstr "CapsLock wisselt Shift op alle toetsen"
-# werkt alleen op de alfabetische toetsen/
+# heeft alleen effect op/werkt alleen op/beinvloedt alleen ~
+# de alfabetische toetsen/
# bepaalt hoofdletters/kleine letters bij alfabetische tekens.<
-#: ../rules/base.xml.in.h:123 ../rules/evdev.xml.in.h:123
-msgid "CapsLock toggles normal capitalization of alphabetic characters."
-msgstr "CapsLock wisselt Shift alleen op de alfabetische toetsen."
+#: ../rules/base.xml.in.h:131
+msgid "CapsLock toggles normal capitalization of alphabetic characters"
+msgstr "CapsLock beïnvloedt alleen de alfabetische toetsen"
-#: ../rules/base.xml.in.h:124 ../rules/evdev.xml.in.h:124
-msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock."
-msgstr "CapsLock gebruikt interne conversie naar hoofdletters. Shift heft CapsLock tijdelijk op."
+#: ../rules/base.xml.in.h:132
+msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
+msgstr "CapsLock gebruikt interne conversie naar hoofdletters. Shift heft CapsLock tijdelijk op"
-#: ../rules/base.xml.in.h:125 ../rules/evdev.xml.in.h:125
-msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock."
-msgstr "CapsLock gebruikt interne conversie naar hoofdletters. Shift heft CapsLock niet op."
+#: ../rules/base.xml.in.h:133
+msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
+msgstr "CapsLock gebruikt interne conversie naar hoofdletters. Shift heft CapsLock niet op"
-#: ../rules/base.xml.in.h:126 ../rules/evdev.xml.in.h:126
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Catalaanse variant met midden-punt L"
-#: ../rules/base.xml.in.h:127 ../rules/evdev.xml.in.h:127
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cedilla"
-#: ../rules/base.xml.in.h:128 ../rules/evdev.xml.in.h:128
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:129 ../rules/evdev.xml.in.h:129
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:130 ../rules/evdev.xml.in.h:130
+#: ../rules/base.xml.in.h:138
+msgid "Cherry B.UNLIMITED"
+msgstr "Cherry B.UNLIMITED"
+
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:131 ../rules/evdev.xml.in.h:131
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternatieve optie)"
-#: ../rules/base.xml.in.h:132 ../rules/evdev.xml.in.h:132
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:133 ../rules/evdev.xml.in.h:133
+#: ../rules/base.xml.in.h:142
+msgid "Cherry CyMotion Expert"
+msgstr "Cherry CyMotion Master Expert"
+
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:134 ../rules/evdev.xml.in.h:134
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:135 ../rules/evdev.xml.in.h:135
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony internet toetsenbord"
-#: ../rules/base.xml.in.h:136 ../rules/evdev.xml.in.h:136
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:137 ../rules/evdev.xml.in.h:137
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:138 ../rules/evdev.xml.in.h:138
+#: ../rules/base.xml.in.h:148
+msgid "Chicony KU-0420"
+msgstr "Chicony KU-0420"
+
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "China"
-#: ../rules/base.xml.in.h:139 ../rules/evdev.xml.in.h:139
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Tsjoevasjisch"
-#: ../rules/base.xml.in.h:140 ../rules/evdev.xml.in.h:140
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Tsjoevasjisch Latijns"
-#: ../rules/base.xml.in.h:141 ../rules/evdev.xml.in.h:141
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Klassiek"
-#: ../rules/base.xml.in.h:142 ../rules/evdev.xml.in.h:142
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Dvorak klassiek"
-#: ../rules/base.xml.in.h:143 ../rules/evdev.xml.in.h:143
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:144 ../rules/evdev.xml.in.h:144
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:145 ../rules/evdev.xml.in.h:145
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:146 ../rules/evdev.xml.in.h:146
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access toetsenbord"
-#: ../rules/base.xml.in.h:147 ../rules/evdev.xml.in.h:147
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq internet toetsenbord (13 toetsen)"
-#: ../rules/base.xml.in.h:148 ../rules/evdev.xml.in.h:148
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq internet toetsenbord (18 toetsen)"
-#: ../rules/base.xml.in.h:149 ../rules/evdev.xml.in.h:149
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq internet toetsenbord (7 toetsen)"
-#: ../rules/base.xml.in.h:150 ../rules/evdev.xml.in.h:150
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq toetsenbord"
-#: ../rules/base.xml.in.h:151 ../rules/evdev.xml.in.h:151
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Samensteltoets positie"
-#: ../rules/base.xml.in.h:152 ../rules/evdev.xml.in.h:152
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Congo, Democratisch republiek van"
-#: ../rules/base.xml.in.h:153 ../rules/evdev.xml.in.h:153
-msgid "Control is mapped to the Win-keys (and the usual Ctrl keys)."
-msgstr "Ctrl wordt afgebeeld op de Win-toetsen (en de gebruikelijke Ctrl-toetsen)."
+#: ../rules/base.xml.in.h:164
+msgid "Control + Alt + Backspace"
+msgstr "Ctrl + Alt + Backspace"
-#: ../rules/base.xml.in.h:154 ../rules/evdev.xml.in.h:154
-msgid "Croatia"
-msgstr "Kroatië"
+#: ../rules/base.xml.in.h:165
+msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
+msgstr "Ctrl zit op de Alt-toetsen, Alt zit op de Win-toetsen"
+
+#: ../rules/base.xml.in.h:166
+msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
+msgstr "Ctrl zit op de Win-toetsen (en de gebruikelijke Ctrl-toetsen)"
+
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+# Krim-Tataars of Krim-Turks
+# http://nl.wikipedia.org/wiki/Krim-Tataars
+#: ../rules/base.xml.in.h:168
+msgid "Crimean Tatar (Dobruca-1 Q)"
+msgstr "Krim-Tataars (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:155 ../rules/evdev.xml.in.h:155
-msgid "Ctrl key at bottom left"
-msgstr "Ctrl-toets zit linksonder"
+#: ../rules/base.xml.in.h:169
+msgid "Crimean Tatar (Dobruca-2 Q)"
+msgstr "Krim-Tataars (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:156 ../rules/evdev.xml.in.h:156
-msgid "Ctrl key at left of 'A'"
-msgstr "Ctrl-toets links van ‘A’"
+#: ../rules/base.xml.in.h:170
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr "Krim-Tataars (Turks Alt-Q)"
-#: ../rules/base.xml.in.h:157 ../rules/evdev.xml.in.h:157
+#: ../rules/base.xml.in.h:171
+msgid "Crimean Tatar (Turkish F)"
+msgstr "Krim-Tataars (Turks F)"
+
+#: ../rules/base.xml.in.h:172
+msgid "Crimean Tatar (Turkish Q)"
+msgstr "Krim-Tataars (Turks Q)"
+
+#: ../rules/base.xml.in.h:173
+msgid "Croatia"
+msgstr "Kroatië"
+
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Ctrl-toetspositie"
-#: ../rules/base.xml.in.h:158 ../rules/evdev.xml.in.h:158
-msgid "Ctrl+Shift change layout."
-msgstr "Ctrl+Shift verandert de indeling."
+#: ../rules/base.xml.in.h:175
+msgid "Ctrl+Shift"
+msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:159 ../rules/evdev.xml.in.h:159
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Cyrillisch"
# Guillemets of ook quillemets zijn Franse aanhalingstekens.
# Dit is "Nederlands" en dit is de «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:160 ../rules/evdev.xml.in.h:160
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Cyrillisch met Franse aanhalingstekens"
# verwisseld/gewisseld/omgewisseld
-#: ../rules/base.xml.in.h:161 ../rules/evdev.xml.in.h:161
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Cyrillisch, Z en ZHE omgewisseld"
-#: ../rules/base.xml.in.h:162 ../rules/evdev.xml.in.h:162
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Tsj"
-#: ../rules/base.xml.in.h:163 ../rules/evdev.xml.in.h:163
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Tsjechië"
-#: ../rules/base.xml.in.h:164 ../rules/evdev.xml.in.h:164
+#: ../rules/base.xml.in.h:181
+msgid "DOS"
+msgstr "DOS"
+
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:165 ../rules/evdev.xml.in.h:165
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:166 ../rules/evdev.xml.in.h:166
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:167 ../rules/evdev.xml.in.h:167
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Dood acutus"
-#: ../rules/base.xml.in.h:168 ../rules/evdev.xml.in.h:168
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Dood gravis-acutus"
# dubbelop numeriek/cijfer
-#: ../rules/base.xml.in.h:169 ../rules/evdev.xml.in.h:169
-msgid "Default numeric keypad keys."
-msgstr "Standaard cijferblok-toetsen."
+#: ../rules/base.xml.in.h:187
+msgid "Default numeric keypad keys"
+msgstr "Standaard cijferblok-toetsen"
-#: ../rules/base.xml.in.h:170 ../rules/evdev.xml.in.h:170
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:171 ../rules/evdev.xml.in.h:171
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-toetsen PC"
-#: ../rules/base.xml.in.h:172 ../rules/evdev.xml.in.h:172
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Dell Laptop/notebook Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:173 ../rules/evdev.xml.in.h:173
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Dell Laptop/notebook Precision M series"
-#: ../rules/base.xml.in.h:174 ../rules/evdev.xml.in.h:174
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Dell Latitude laptopserie"
-#: ../rules/base.xml.in.h:175 ../rules/evdev.xml.in.h:175
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:176 ../rules/evdev.xml.in.h:176
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:177 ../rules/evdev.xml.in.h:177
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:178 ../rules/evdev.xml.in.h:178
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB multimediatoetsenbord"
-#: ../rules/base.xml.in.h:179 ../rules/evdev.xml.in.h:179
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Denemarken"
-#: ../rules/base.xml.in.h:180 ../rules/evdev.xml.in.h:180
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:181 ../rules/evdev.xml.in.h:181
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop toetsenbord"
-#: ../rules/base.xml.in.h:182 ../rules/evdev.xml.in.h:182
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801 / 9802 serie"
-#: ../rules/base.xml.in.h:183 ../rules/evdev.xml.in.h:183
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
# interpunctie/leestekens
# het gaat hier waarschijnlijk over de indeling, waar het vraagteken en de
# puntkomma etc. staan.
-#: ../rules/base.xml.in.h:184 ../rules/evdev.xml.in.h:184
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (UK-leestekens)"
-#: ../rules/base.xml.in.h:185 ../rules/evdev.xml.in.h:185
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak internationaal"
-#: ../rules/base.xml.in.h:186 ../rules/evdev.xml.in.h:186
-msgid "Dvorak, Polish quotes on key \"1/!\""
-msgstr "Dvorak, Poolse aanhalingstekens op toets \"1/!\""
+#: ../rules/base.xml.in.h:204
+msgid "Dvorak, Polish quotes on key 1"
+msgstr "Dvorak, Poolse aanhalingstekens op toets 1"
-#: ../rules/base.xml.in.h:187 ../rules/evdev.xml.in.h:187
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, Poolse aanhalingstekens op aanhalingstekentoets"
+#: ../rules/base.xml.in.h:206
+msgid "E"
+msgstr "E"
+
# oostelijk/oosters
-#: ../rules/base.xml.in.h:188 ../rules/evdev.xml.in.h:188
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Oosters"
-#: ../rules/base.xml.in.h:189 ../rules/evdev.xml.in.h:189
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Geen dode toetsen"
-#: ../rules/base.xml.in.h:190 ../rules/evdev.xml.in.h:190
+#: ../rules/base.xml.in.h:209
+msgid "Enable extra typographic characters"
+msgstr "Extra typografische tekens aanzetten"
+
+#: ../rules/base.xml.in.h:210
+msgid "English"
+msgstr "Engels"
+
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:191 ../rules/evdev.xml.in.h:191
+#: ../rules/base.xml.in.h:212
+msgid "Enter on keypad"
+msgstr "Enter op cijferblok"
+
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:192 ../rules/evdev.xml.in.h:192
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomisch"
-#: ../rules/base.xml.in.h:193 ../rules/evdev.xml.in.h:193
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:194 ../rules/evdev.xml.in.h:194
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:195 ../rules/evdev.xml.in.h:195
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:196 ../rules/evdev.xml.in.h:196
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estland"
-#: ../rules/base.xml.in.h:197 ../rules/evdev.xml.in.h:197
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:198 ../rules/evdev.xml.in.h:198
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Ethiopië"
-#: ../rules/base.xml.in.h:199 ../rules/evdev.xml.in.h:199
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev-beheerd toetsenbord"
-#: ../rules/base.xml.in.h:200 ../rules/evdev.xml.in.h:200
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:201 ../rules/evdev.xml.in.h:201
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:202 ../rules/evdev.xml.in.h:202
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Uitgebreid"
-#: ../rules/base.xml.in.h:203 ../rules/evdev.xml.in.h:203
+#: ../rules/base.xml.in.h:225
+msgid "Extended - Winkeys"
+msgstr "Uitgebreid - Win-toetsen"
+
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Brede backslash"
-#: ../rules/base.xml.in.h:204 ../rules/evdev.xml.in.h:204
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F-letter (F) variant"
-#: ../rules/base.xml.in.h:205 ../rules/evdev.xml.in.h:205
+#: ../rules/base.xml.in.h:228
+msgid "FL90"
+msgstr "FL90"
+
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:206 ../rules/evdev.xml.in.h:206
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Faeröer-eilanden"
-#: ../rules/base.xml.in.h:207 ../rules/evdev.xml.in.h:207
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:208 ../rules/evdev.xml.in.h:208
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finland"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:211 ../rules/evdev.xml.in.h:211
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Vier-niveaus toets met abstracte scheidingstekens"
-#: ../rules/base.xml.in.h:212 ../rules/evdev.xml.in.h:212
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Vier-niveaus toets met komma"
-#: ../rules/base.xml.in.h:213 ../rules/evdev.xml.in.h:213
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Vier-niveaus toets met punt"
-#: ../rules/base.xml.in.h:214 ../rules/evdev.xml.in.h:214
+#: ../rules/base.xml.in.h:238
+msgid "Four-level key with dot, latin-9 restriction"
+msgstr "Vier-niveaus toets met punt, latin-9 restrictie"
+
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Vier-niveaus toets met momayyez"
-#: ../rules/base.xml.in.h:215 ../rules/evdev.xml.in.h:215
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:216 ../rules/evdev.xml.in.h:216
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Frankrijk"
-#: ../rules/base.xml.in.h:217 ../rules/evdev.xml.in.h:217
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Frans"
-#: ../rules/base.xml.in.h:218 ../rules/evdev.xml.in.h:218
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Frans (Macintosh)"
-#: ../rules/base.xml.in.h:219 ../rules/evdev.xml.in.h:219
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Frans (oud)"
-#: ../rules/base.xml.in.h:220 ../rules/evdev.xml.in.h:220
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Frans-Dvorak"
-#: ../rules/base.xml.in.h:221 ../rules/evdev.xml.in.h:221
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Frans, Sun-dode toetsen"
-#: ../rules/base.xml.in.h:222 ../rules/evdev.xml.in.h:222
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Frans, zonder dode toetsen"
-#: ../rules/base.xml.in.h:223 ../rules/evdev.xml.in.h:223
-msgid "Fujitsu-Siemens Computers AMILO A1667G laptop"
-msgstr "Fujitsu-Siemens Computers AMILO A1667G laptop"
+#: ../rules/base.xml.in.h:248
+msgid "Fujitsu-Siemens Computers AMILO laptop"
+msgstr "Fujitsu-Siemens Computers AMILO laptop"
-#: ../rules/base.xml.in.h:224 ../rules/evdev.xml.in.h:224
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:225 ../rules/evdev.xml.in.h:225
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:226 ../rules/evdev.xml.in.h:226
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:227 ../rules/evdev.xml.in.h:227
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Algemeen 101-toetsen PC"
-#: ../rules/base.xml.in.h:228 ../rules/evdev.xml.in.h:228
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Algemeen 102-toetsen (internationaal) PC"
-#: ../rules/base.xml.in.h:229 ../rules/evdev.xml.in.h:229
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Algemeen 104-toetsen PC"
-#: ../rules/base.xml.in.h:230 ../rules/evdev.xml.in.h:230
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Algemeen 105-toetsen (internationaal) PC"
-#: ../rules/base.xml.in.h:231 ../rules/evdev.xml.in.h:231
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:232 ../rules/evdev.xml.in.h:232
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM toetsenbord KWD-910"
-#: ../rules/base.xml.in.h:233 ../rules/evdev.xml.in.h:233
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:234 ../rules/evdev.xml.in.h:234
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:235 ../rules/evdev.xml.in.h:235
+#: ../rules/base.xml.in.h:260
+msgid "Genius KKB-2050HS"
+msgstr "Genius KKB-2050HS"
+
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:236 ../rules/evdev.xml.in.h:236
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Georgië"
-#: ../rules/base.xml.in.h:237 ../rules/evdev.xml.in.h:237
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgisch"
-#: ../rules/base.xml.in.h:238 ../rules/evdev.xml.in.h:238
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgisch AZERTY Tskapo"
-#: ../rules/base.xml.in.h:239 ../rules/evdev.xml.in.h:239
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Duits (Macintosh)"
-#: ../rules/base.xml.in.h:240 ../rules/evdev.xml.in.h:240
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Duits, Sun-dode toetsen"
-#: ../rules/base.xml.in.h:241 ../rules/evdev.xml.in.h:241
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Duits, zonder dode toetsen"
-#: ../rules/base.xml.in.h:242 ../rules/evdev.xml.in.h:242
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Duitsland"
-#: ../rules/base.xml.in.h:243 ../rules/evdev.xml.in.h:243
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:244 ../rules/evdev.xml.in.h:244
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:245 ../rules/evdev.xml.in.h:245
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gri"
-#: ../rules/base.xml.in.h:246 ../rules/evdev.xml.in.h:246
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Griekenland"
-#: ../rules/base.xml.in.h:247 ../rules/evdev.xml.in.h:247
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Groepswissel met de toets vermenigvuldigen/delen"
-#: ../rules/base.xml.in.h:248 ../rules/evdev.xml.in.h:248
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:249 ../rules/evdev.xml.in.h:249
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:250 ../rules/evdev.xml.in.h:250
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujarati"
-#: ../rules/base.xml.in.h:251 ../rules/evdev.xml.in.h:251
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhi"
-#: ../rules/base.xml.in.h:252 ../rules/evdev.xml.in.h:252
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
# het zal wel een merk zijn
-#: ../rules/base.xml.in.h:253 ../rules/evdev.xml.in.h:253
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:254 ../rules/evdev.xml.in.h:254
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking toetsenbord"
-#: ../rules/base.xml.in.h:255 ../rules/evdev.xml.in.h:255
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking toetsenbord voor Mac"
-#: ../rules/base.xml.in.h:256 ../rules/evdev.xml.in.h:256
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:257 ../rules/evdev.xml.in.h:257
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard internet toetsenbord"
-#: ../rules/base.xml.in.h:258 ../rules/evdev.xml.in.h:258
-msgid "Hewlett-Packard Internet Keyboard 5181"
-msgstr "Hewlett-Packard internet toetsenbord 5181"
-
-#: ../rules/base.xml.in.h:259 ../rules/evdev.xml.in.h:259
-msgid "Hewlett-Packard Internet Keyboard 5185"
-msgstr "Hewlett-Packard internet toetsenbord 5185"
-
-#: ../rules/base.xml.in.h:260 ../rules/evdev.xml.in.h:260
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:261 ../rules/evdev.xml.in.h:261
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:262 ../rules/evdev.xml.in.h:262
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:263 ../rules/evdev.xml.in.h:263
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:264 ../rules/evdev.xml.in.h:264
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:265 ../rules/evdev.xml.in.h:265
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:266 ../rules/evdev.xml.in.h:266
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:267 ../rules/evdev.xml.in.h:267
-msgid "Hewlett-Packard SK-2501 Multimedia Keyboard"
-msgstr "Hewlett-Packard SK-2501 multimedia toetsenbord"
+#: ../rules/base.xml.in.h:291
+msgid "Hewlett-Packard Pavilion dv5"
+msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:268 ../rules/evdev.xml.in.h:268
-msgid "Hewlett-Packard SK-2505 Internet Keyboard"
-msgstr "Hewlett-Packard SK-2505 internet toetsenbord"
+#: ../rules/base.xml.in.h:292
+msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
+msgstr "Hewlett-Packard SK-250x multimedia toetsenbord"
-#: ../rules/base.xml.in.h:269 ../rules/evdev.xml.in.h:269
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:270 ../rules/evdev.xml.in.h:270
+#: ../rules/base.xml.in.h:294
+msgid "Hexadecimal"
+msgstr "Hexadecimaal"
+
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi Bolnagri"
+#: ../rules/base.xml.in.h:296
+msgid "Hindi Wx"
+msgstr "Hindi Wx"
+
# gelijkklinkend/homofonetisch/homofonisch
-#: ../rules/base.xml.in.h:271 ../rules/evdev.xml.in.h:271
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homofonisch"
-#: ../rules/base.xml.in.h:272 ../rules/evdev.xml.in.h:272
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
# Kro/Hrv
-#: ../rules/base.xml.in.h:273 ../rules/evdev.xml.in.h:273
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:274 ../rules/evdev.xml.in.h:274
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hon"
-#: ../rules/base.xml.in.h:275 ../rules/evdev.xml.in.h:275
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Hongarije"
-#: ../rules/base.xml.in.h:276 ../rules/evdev.xml.in.h:276
-msgid "Hyper is mapped to the Win-keys."
-msgstr "Hyper wordt afgebeeld op de Win-toetsen."
+#: ../rules/base.xml.in.h:302
+msgid "Hyper is mapped to Win-keys"
+msgstr "Hyper zit op de Win-toetsen"
-#: ../rules/base.xml.in.h:277 ../rules/evdev.xml.in.h:277
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:278 ../rules/evdev.xml.in.h:278
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:279 ../rules/evdev.xml.in.h:279
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:280 ../rules/evdev.xml.in.h:280
-msgid "IBM Rapid Access II (alternate option)"
-msgstr "IBM Rapid Access II (alternatieve optie)"
-
-#: ../rules/base.xml.in.h:281 ../rules/evdev.xml.in.h:281
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:282 ../rules/evdev.xml.in.h:282
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:283 ../rules/evdev.xml.in.h:283
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#: ../rules/base.xml.in.h:284 ../rules/evdev.xml.in.h:284
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:285 ../rules/evdev.xml.in.h:285
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:286 ../rules/evdev.xml.in.h:286
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO alternatief"
-#: ../rules/base.xml.in.h:287 ../rules/evdev.xml.in.h:287
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "IJsland"
-#: ../rules/base.xml.in.h:288 ../rules/evdev.xml.in.h:288
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:289 ../rules/evdev.xml.in.h:289
+# met/bijvoegen
+# inactieve/dode/latente
+#: ../rules/base.xml.in.h:314
+msgid "Include dead tilde"
+msgstr "Met dode tilde"
+
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:290 ../rules/evdev.xml.in.h:290
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "India"
-#: ../rules/base.xml.in.h:291 ../rules/evdev.xml.in.h:291
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Internationaal (AltGr dode toetsen)"
-#: ../rules/base.xml.in.h:292 ../rules/evdev.xml.in.h:292
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Internationaal (met dode toetsen)"
-#: ../rules/base.xml.in.h:293 ../rules/evdev.xml.in.h:293
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:294 ../rules/evdev.xml.in.h:294
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:295 ../rules/evdev.xml.in.h:295
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:296 ../rules/evdev.xml.in.h:296
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Ierland"
-#: ../rules/base.xml.in.h:297 ../rules/evdev.xml.in.h:297
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:298 ../rules/evdev.xml.in.h:298
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:299 ../rules/evdev.xml.in.h:299
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:300 ../rules/evdev.xml.in.h:300
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:301 ../rules/evdev.xml.in.h:301
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:302 ../rules/evdev.xml.in.h:302
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israël"
-#: ../rules/base.xml.in.h:303 ../rules/evdev.xml.in.h:303
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:304 ../rules/evdev.xml.in.h:304
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italië"
-#: ../rules/base.xml.in.h:305 ../rules/evdev.xml.in.h:305
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japan"
-#: ../rules/base.xml.in.h:306 ../rules/evdev.xml.in.h:306
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japan (PC-98xx serie)"
-#: ../rules/base.xml.in.h:307 ../rules/evdev.xml.in.h:307
-msgid "Japanese 106-key"
-msgstr "Japans 106-toetsen"
-
-#: ../rules/base.xml.in.h:308 ../rules/evdev.xml.in.h:308
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Japanse toetsenbordopties"
-#: ../rules/base.xml.in.h:309 ../rules/evdev.xml.in.h:309
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:310 ../rules/evdev.xml.in.h:310
+#: ../rules/base.xml.in.h:335
+msgid "Kalmyk"
+msgstr "Kalmyk"
+
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:311 ../rules/evdev.xml.in.h:311
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Kana Lock-toets is blokkerend"
-#: ../rules/base.xml.in.h:312 ../rules/evdev.xml.in.h:312
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:313 ../rules/evdev.xml.in.h:313
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kasjoebiaans"
-#: ../rules/base.xml.in.h:314 ../rules/evdev.xml.in.h:314
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
# de taal Kazachstaans
-#: ../rules/base.xml.in.h:315 ../rules/evdev.xml.in.h:315
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazachstaans met Russisch"
-#: ../rules/base.xml.in.h:316 ../rules/evdev.xml.in.h:316
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazachstan"
-# nummerblok/
-#: ../rules/base.xml.in.h:317 ../rules/evdev.xml.in.h:317
-msgid "Keypad"
-msgstr "Nummerblok"
+# om zeep te helpen/af te breken/te stoppen/
+#: ../rules/base.xml.in.h:343
+msgid "Key sequence to kill the X server"
+msgstr "Toetscombinatie om de X-server af te breken"
-#: ../rules/base.xml.in.h:318 ../rules/evdev.xml.in.h:318
-msgid "Keypad with unicode additions (arrows and math operators)"
-msgstr "Cijferblok met unicode-aanvullingen (pijlen en wiskundige operatoren)"
+# aan te zetten/te kiezen/te selecteren/te krijgen
+#
+# 'to choose' is hier een slechte woordkeuze IMO
+#: ../rules/base.xml.in.h:344
+msgid "Key to choose 3rd level"
+msgstr "De toets om het 3e niveau te krijgen"
-#: ../rules/base.xml.in.h:319 ../rules/evdev.xml.in.h:319
-msgid "Keypad with unicode additions (arrows and math operators). Math operators on default level."
-msgstr "Cijferblok met unicode-aanvullingen (pijlen en wiskundige operatoren). Wiskundige operatoren op het standaard niveau."
+# wijzigen/veranderen
+#: ../rules/base.xml.in.h:345
+msgid "Key(s) to change layout"
+msgstr "De toets(en) om de indeling te veranderen"
-#: ../rules/base.xml.in.h:320 ../rules/evdev.xml.in.h:320
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:321 ../rules/evdev.xml.in.h:321
+#: ../rules/base.xml.in.h:347
+msgid "Kgz"
+msgstr "Kgz"
+
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:322 ../rules/evdev.xml.in.h:322
-msgid "Kir"
-msgstr "Kir"
-
-#: ../rules/base.xml.in.h:323 ../rules/evdev.xml.in.h:323
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:324 ../rules/evdev.xml.in.h:324
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:325 ../rules/evdev.xml.in.h:325
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Korea, Republiek"
-#: ../rules/base.xml.in.h:326 ../rules/evdev.xml.in.h:326
-msgid "Korean 106-key"
-msgstr "Koreaans 106-toetsen"
-
-#: ../rules/base.xml.in.h:327 ../rules/evdev.xml.in.h:327
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:328 ../rules/evdev.xml.in.h:328
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Koerdisch, (F)"
-#: ../rules/base.xml.in.h:329 ../rules/evdev.xml.in.h:329
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Koerdisch, Arabisch-Latijns"
-#: ../rules/base.xml.in.h:330 ../rules/evdev.xml.in.h:330
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Koerdisch, Latijns Alt-Q"
-#: ../rules/base.xml.in.h:331 ../rules/evdev.xml.in.h:331
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Koerdisch, Latijns Q"
-#: ../rules/base.xml.in.h:332 ../rules/evdev.xml.in.h:332
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirgizië"
-#: ../rules/base.xml.in.h:333 ../rules/evdev.xml.in.h:333
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:334 ../rules/evdev.xml.in.h:334
-msgid "LCtrl+LShift change layout."
-msgstr "Linker Ctrl+Linker Shift verandert de indeling."
-
-#: ../rules/base.xml.in.h:335 ../rules/evdev.xml.in.h:335
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:336 ../rules/evdev.xml.in.h:336
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:337 ../rules/evdev.xml.in.h:337
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:338 ../rules/evdev.xml.in.h:338
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:339 ../rules/evdev.xml.in.h:339
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Laptop/notebook Compaq (bijv. Armada) laptop toetsenbord"
-#: ../rules/base.xml.in.h:340 ../rules/evdev.xml.in.h:340
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Laptop/notebook Compaq (bijv. Presario) internet toetsenbord"
-#: ../rules/base.xml.in.h:341 ../rules/evdev.xml.in.h:341
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Laptop/notebook eMachines m68xx"
-#: ../rules/base.xml.in.h:342 ../rules/evdev.xml.in.h:342
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latijns"
-#: ../rules/base.xml.in.h:343 ../rules/evdev.xml.in.h:343
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latijns-Amerika"
-#: ../rules/base.xml.in.h:344 ../rules/evdev.xml.in.h:344
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latijns-Unicode"
-#: ../rules/base.xml.in.h:345 ../rules/evdev.xml.in.h:345
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latijns-Unicode qwerty"
-#: ../rules/base.xml.in.h:346 ../rules/evdev.xml.in.h:346
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latijns qwerty"
-#: ../rules/base.xml.in.h:347 ../rules/evdev.xml.in.h:347
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latijns-unicode"
-#: ../rules/base.xml.in.h:348 ../rules/evdev.xml.in.h:348
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latijns-unicode qwerty"
# Guillemets of ook quillemets zijn Franse aanhalingstekens.
# Dit is "Nederlands" en dit is de «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:349 ../rules/evdev.xml.in.h:349
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latijns met Franse aanhalingstekens"
-#: ../rules/base.xml.in.h:350 ../rules/evdev.xml.in.h:350
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Letland"
-#: ../rules/base.xml.in.h:351 ../rules/evdev.xml.in.h:351
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:352 ../rules/evdev.xml.in.h:352
-msgid "Layout switching"
-msgstr "Wisselen van indeling"
+#: ../rules/base.xml.in.h:376
+msgid "Left Alt"
+msgstr "Linker Alt-toets"
-#: ../rules/base.xml.in.h:353 ../rules/evdev.xml.in.h:353
-msgid "Left Alt is swapped with left Win-key."
-msgstr "De linker Alt-toets wordt omgewisseld met de linker Win-toets."
+#: ../rules/base.xml.in.h:377
+msgid "Left Alt (while pressed)"
+msgstr "Linker Alt-toets (ingedrukt houden)"
-#: ../rules/base.xml.in.h:354 ../rules/evdev.xml.in.h:354
-msgid "Left Alt key changes layout."
-msgstr "Linker Alt-toets verandert de indeling."
+#: ../rules/base.xml.in.h:378
+msgid "Left Alt is swapped with Left Win"
+msgstr "De linker Alt-toets en Win-toets worden gewisseld"
-#: ../rules/base.xml.in.h:355 ../rules/evdev.xml.in.h:355
-msgid "Left Alt key switches layout while pressed."
-msgstr "Linker Alt-toets wisselt de indeling gedurende het indrukken."
+#: ../rules/base.xml.in.h:379
+msgid "Left Ctrl"
+msgstr "Linker Ctrl-toets"
-#: ../rules/base.xml.in.h:356 ../rules/evdev.xml.in.h:356
-msgid "Left Ctrl key changes layout."
-msgstr "Linker Ctrl-toets verandert de indeling."
+# -toets toevoegen?
+#: ../rules/base.xml.in.h:380
+msgid "Left Ctrl+Left Shift"
+msgstr "Linker Ctrl + linker Shift-toets"
-#: ../rules/base.xml.in.h:357 ../rules/evdev.xml.in.h:357
-msgid "Left Shift key changes layout."
-msgstr "Linker Shift-toets verandert de indeling."
+#: ../rules/base.xml.in.h:381
+msgid "Left Shift"
+msgstr "Linker Shift-toets"
-#: ../rules/base.xml.in.h:358 ../rules/evdev.xml.in.h:358
-msgid "Left Win-key changes layout."
-msgstr "Linker Win-toets verandert de indeling."
+#: ../rules/base.xml.in.h:382
+msgid "Left Win"
+msgstr "Linker Win-toets"
-#: ../rules/base.xml.in.h:359 ../rules/evdev.xml.in.h:359
-msgid "Left Win-key is Compose."
-msgstr "Linker Win-toets is samensteltoets."
+# Linker Win-toets wisselt naar de eerste indeling, rechter Win/Menu-toets wisselt naar de laatste indeling
+#: ../rules/base.xml.in.h:383
+msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
+msgstr "Linker Win-toets (naar de eerste indeling), rechter Win/Menu-toets (naar de laatste indeling)"
-#: ../rules/base.xml.in.h:360 ../rules/evdev.xml.in.h:360
-msgid "Left Win-key switches layout while pressed."
-msgstr "Linker Win-toets wisselt de indeling gedurende het indrukken."
+#: ../rules/base.xml.in.h:384
+msgid "Left Win (while pressed)"
+msgstr "Linker Win-toets (ingedrukt houden)"
-#: ../rules/base.xml.in.h:361 ../rules/evdev.xml.in.h:361
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Linkshandig"
-#: ../rules/base.xml.in.h:362 ../rules/evdev.xml.in.h:362
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Linkshandige Dvorak"
-#: ../rules/base.xml.in.h:363 ../rules/evdev.xml.in.h:363
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Historisch"
-#: ../rules/base.xml.in.h:364 ../rules/evdev.xml.in.h:364
-msgid "Legacy Wang 724 keypad"
-msgstr "Historisch Wang 724 cijferblok"
+#: ../rules/base.xml.in.h:388
+msgid "Legacy Wang 724"
+msgstr "Historisch Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:366 ../rules/evdev.xml.in.h:366
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Historisch cijferblok met komma"
-#: ../rules/base.xml.in.h:367 ../rules/evdev.xml.in.h:367
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Historisch cijferblok met punt"
-#: ../rules/base.xml.in.h:368 ../rules/evdev.xml.in.h:368
-msgid "Legacy keypad"
-msgstr "Historisch cijferblok"
-
-#: ../rules/base.xml.in.h:369 ../rules/evdev.xml.in.h:369
-msgid "Less-than/Greater-than is Compose."
-msgstr "Groter dan/Kleiner dan is samensteltoets."
+#: ../rules/base.xml.in.h:392
+msgid "Less-than/Greater-than"
+msgstr "Groter dan/Kleiner dan"
-#: ../rules/base.xml.in.h:370 ../rules/evdev.xml.in.h:370
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Litouwen"
-#: ../rules/base.xml.in.h:371 ../rules/evdev.xml.in.h:371
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access toetsenbord"
-#: ../rules/base.xml.in.h:372 ../rules/evdev.xml.in.h:372
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:373 ../rules/evdev.xml.in.h:373
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (alternatieve optie)"
-#: ../rules/base.xml.in.h:374 ../rules/evdev.xml.in.h:374
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:375 ../rules/evdev.xml.in.h:375
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:376 ../rules/evdev.xml.in.h:376
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:377 ../rules/evdev.xml.in.h:377
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optisch"
-#: ../rules/base.xml.in.h:378 ../rules/evdev.xml.in.h:378
-msgid "Logitech Cordless Desktop Pro (alternate option2)"
-msgstr "Logitech Cordless Desktop Pro (alternatieve optie2)"
+#: ../rules/base.xml.in.h:401
+msgid "Logitech Cordless Desktop Pro (alternate option 2)"
+msgstr "Logitech Cordless Desktop Pro (alternatieve optie 2)"
-#: ../rules/base.xml.in.h:379 ../rules/evdev.xml.in.h:379
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:380 ../rules/evdev.xml.in.h:380
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:381 ../rules/evdev.xml.in.h:381
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 extra toetsen via G15daemon"
-#: ../rules/base.xml.in.h:382 ../rules/evdev.xml.in.h:382
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech algemeen toetsenbord"
-#: ../rules/base.xml.in.h:383 ../rules/evdev.xml.in.h:383
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech internet 350 toetsenbord"
-#: ../rules/base.xml.in.h:384 ../rules/evdev.xml.in.h:384
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech internet toetsenbord"
-#: ../rules/base.xml.in.h:385 ../rules/evdev.xml.in.h:385
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator toetsenbord"
-#: ../rules/base.xml.in.h:386 ../rules/evdev.xml.in.h:386
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite toetsenbord"
-#: ../rules/base.xml.in.h:387 ../rules/evdev.xml.in.h:387
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop toetsenbord"
-#: ../rules/base.xml.in.h:388 ../rules/evdev.xml.in.h:388
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X toetsenbord"
-#: ../rules/base.xml.in.h:389 ../rules/evdev.xml.in.h:389
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge toetsenbord"
-#: ../rules/base.xml.in.h:390 ../rules/evdev.xml.in.h:390
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo toetsenbord"
-#: ../rules/base.xml.in.h:391 ../rules/evdev.xml.in.h:391
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:392 ../rules/evdev.xml.in.h:392
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch draadloos toetsenbord (model Y-RB6)"
-#: ../rules/base.xml.in.h:393 ../rules/evdev.xml.in.h:393
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator toetsenbord SE"
-#: ../rules/base.xml.in.h:394 ../rules/evdev.xml.in.h:394
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator toetsenbord SE (USB)"
-#: ../rules/base.xml.in.h:395 ../rules/evdev.xml.in.h:395
+# Het Nedersorbisch is de noordelijke versie van de in Brandenburg
+# gesproken Sorbische taal.
+# http://nl.wikipedia.org/wiki/Nedersorbisch
+#: ../rules/base.xml.in.h:418
+msgid "Lower Sorbian"
+msgstr "Nedersorbisch"
+
+#: ../rules/base.xml.in.h:419
+msgid "Lower Sorbian (qwertz)"
+msgstr "Nedersorbisch (qwertz)"
+
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:396 ../rules/evdev.xml.in.h:396
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:397 ../rules/evdev.xml.in.h:397
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:398 ../rules/evdev.xml.in.h:398
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:399 ../rules/evdev.xml.in.h:399
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:400 ../rules/evdev.xml.in.h:400
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Macedonisch"
-#: ../rules/base.xml.in.h:401 ../rules/evdev.xml.in.h:401
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:402 ../rules/evdev.xml.in.h:402
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh oud"
-#: ../rules/base.xml.in.h:403 ../rules/evdev.xml.in.h:403
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, Sun-‘dode toetsen’"
-#: ../rules/base.xml.in.h:404 ../rules/evdev.xml.in.h:404
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, zonder dode toetsen"
-#: ../rules/base.xml.in.h:405 ../rules/evdev.xml.in.h:405
-msgid "Make CapsLock an additional Ctrl."
-msgstr "Van CapsLock een extra Ctrl maken."
+# Backspace-toets
+#: ../rules/base.xml.in.h:430
+msgid "Make CapsLock an additional Backspace"
+msgstr "Van CapsLock een extra Backspace maken"
+
+# Ctrl-toets
+#: ../rules/base.xml.in.h:431
+msgid "Make CapsLock an additional Ctrl"
+msgstr "Van CapsLock een extra Ctrl maken"
+
+# ESC-toets
+#: ../rules/base.xml.in.h:432
+msgid "Make CapsLock an additional ESC"
+msgstr "Van CapsLock een extra ESC maken"
+
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Van CapsLock een extra Hyper maken"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Van CapsLock een extra NumLock maken"
-#: ../rules/base.xml.in.h:406 ../rules/evdev.xml.in.h:406
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Van CapsLock een extra Super maken"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
# een van de 23 Indische talen
-#: ../rules/base.xml.in.h:407 ../rules/evdev.xml.in.h:407
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
# een van de 23 Indische talen
-#: ../rules/base.xml.in.h:408 ../rules/evdev.xml.in.h:408
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
# kan ook als Malediven worden geschreven.
-#: ../rules/base.xml.in.h:409 ../rules/evdev.xml.in.h:409
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldiven"
-#: ../rules/base.xml.in.h:410 ../rules/evdev.xml.in.h:410
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
# VS/US/
-#: ../rules/base.xml.in.h:411 ../rules/evdev.xml.in.h:411
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Maltees toetsenbord met US-indeling"
-#: ../rules/base.xml.in.h:412 ../rules/evdev.xml.in.h:412
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:413 ../rules/evdev.xml.in.h:413
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:414 ../rules/evdev.xml.in.h:414
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:415 ../rules/evdev.xml.in.h:415
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access toetsenbord"
-#: ../rules/base.xml.in.h:416 ../rules/evdev.xml.in.h:416
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:417 ../rules/evdev.xml.in.h:417
-msgid "Menu is Compose."
-msgstr "Menu is samensteltoets."
+#: ../rules/base.xml.in.h:447
+msgid "Menu"
+msgstr "Menu"
-#: ../rules/base.xml.in.h:418 ../rules/evdev.xml.in.h:418
-msgid "Menu key changes layout."
-msgstr "Menu-toets verandert de indeling."
+#: ../rules/base.xml.in.h:448
+msgid "Meta is mapped to Left Win"
+msgstr "Meta zit op de linker Win-toets"
-#: ../rules/base.xml.in.h:419 ../rules/evdev.xml.in.h:419
-msgid "Meta is mapped to the Win-keys."
-msgstr "Meta wordt afgebeeld op de Win-toetsen."
+#: ../rules/base.xml.in.h:449
+msgid "Meta is mapped to Win keys"
+msgstr "Meta zit op de Win-toetsen"
-#: ../rules/base.xml.in.h:420 ../rules/evdev.xml.in.h:420
-msgid "Meta is mapped to the left Win-key."
-msgstr "Meta wordt afgebeeld op de linker Win-toets."
+#: ../rules/base.xml.in.h:450
+msgid "Microsoft Comfort Curve Keyboard 2000"
+msgstr "Microsoft Comfort Curve toetsenbord 2000"
-#: ../rules/base.xml.in.h:421 ../rules/evdev.xml.in.h:421
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft internet toetsenbord"
-#: ../rules/base.xml.in.h:422 ../rules/evdev.xml.in.h:422
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, Zweeds"
-#: ../rules/base.xml.in.h:423 ../rules/evdev.xml.in.h:423
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:424 ../rules/evdev.xml.in.h:424
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:425 ../rules/evdev.xml.in.h:425
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:426 ../rules/evdev.xml.in.h:426
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:427 ../rules/evdev.xml.in.h:427
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:428 ../rules/evdev.xml.in.h:428
+#: ../rules/base.xml.in.h:458
+msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office toetsenbord"
-#: ../rules/base.xml.in.h:429 ../rules/evdev.xml.in.h:429
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft draadloos multimediatoetsenbord 1.0A"
-#: ../rules/base.xml.in.h:430 ../rules/evdev.xml.in.h:430
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Overige compatibiliteitsopties"
-#: ../rules/base.xml.in.h:431 ../rules/evdev.xml.in.h:431
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:432 ../rules/evdev.xml.in.h:432
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:433 ../rules/evdev.xml.in.h:433
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:434 ../rules/evdev.xml.in.h:434
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:435 ../rules/evdev.xml.in.h:435
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongolië"
# Servië en Montenegro
-#: ../rules/base.xml.in.h:436 ../rules/evdev.xml.in.h:436
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:437 ../rules/evdev.xml.in.h:437
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marokko"
-#: ../rules/base.xml.in.h:438 ../rules/evdev.xml.in.h:438
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Meertalig"
-#: ../rules/base.xml.in.h:439 ../rules/evdev.xml.in.h:439
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Meertalig, eerste deel"
-#: ../rules/base.xml.in.h:440 ../rules/evdev.xml.in.h:440
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Meertalig, tweede deel"
-#: ../rules/base.xml.in.h:441 ../rules/evdev.xml.in.h:441
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:442 ../rules/evdev.xml.in.h:442
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F stijl backspace"
-#: ../rules/base.xml.in.h:443 ../rules/evdev.xml.in.h:443
-msgid "Neostyle"
-msgstr "Neostijl"
+#: ../rules/base.xml.in.h:474
+msgid "NLA"
+msgstr "NLA"
+
+#: ../rules/base.xml.in.h:475
+msgid "Nativo"
+msgstr "Nativo"
+
+#: ../rules/base.xml.in.h:476
+msgid "Nativo for Esperanto"
+msgstr "Nativo voor Esperanto"
-#: ../rules/base.xml.in.h:444 ../rules/evdev.xml.in.h:444
+#: ../rules/base.xml.in.h:477
+msgid "Nativo for USA keyboards"
+msgstr "Nativo voor Amerikaanse toetsenborden"
+
+#: ../rules/base.xml.in.h:478
+msgid "Neo 2"
+msgstr "Neo 2"
+
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:445 ../rules/evdev.xml.in.h:445
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
-#: ../rules/base.xml.in.h:446 ../rules/evdev.xml.in.h:446
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Nederland"
-#: ../rules/base.xml.in.h:447 ../rules/evdev.xml.in.h:447
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Nieuw fonetisch"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:448 ../rules/evdev.xml.in.h:448
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigeria"
-#: ../rules/base.xml.in.h:449 ../rules/evdev.xml.in.h:449
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:450 ../rules/evdev.xml.in.h:450
+# Spatiebalk geeft harde spatie op het vierde niveau.
+#: ../rules/base.xml.in.h:486
+msgid "Non-breakable space character at fourth level"
+msgstr "Harde spatie op het vierde niveau"
+
+# sixth level? hoeveel levels zijn er wel niet?
+#: ../rules/base.xml.in.h:487
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
+msgstr "Harde spatie op het vierde niveau, smalle harde spatie op het zesde niveau"
+
+# sixth level? hoeveel levels zijn er wel niet?
+#: ../rules/base.xml.in.h:488
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
+msgstr "Harde spatie op het vierde niveau, smalle harde spatie op het zesde niveau (via Ctrl+Shift)"
+
+#: ../rules/base.xml.in.h:489
+msgid "Non-breakable space character at second level"
+msgstr "Harde spatie op het tweede niveau"
+
+#: ../rules/base.xml.in.h:490
+msgid "Non-breakable space character at third level"
+msgstr "Harde spatie op het derde niveau"
+
+#: ../rules/base.xml.in.h:491
+msgid "Non-breakable space character at third level, nothing at fourth level"
+msgstr "Harde spatie op het derde niveau, niets op het vierde niveau"
+
+#: ../rules/base.xml.in.h:492
+msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
+msgstr "Harde spatie op het derde niveau, smalle harde spatie op het vierde niveau"
+
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:451 ../rules/evdev.xml.in.h:451
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Noord-Lapland"
-#: ../rules/base.xml.in.h:452 ../rules/evdev.xml.in.h:452
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Noord-Lapland, zonder dode toetsen"
-#: ../rules/base.xml.in.h:453 ../rules/evdev.xml.in.h:453
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:454 ../rules/evdev.xml.in.h:454
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Noorwegen"
-#: ../rules/base.xml.in.h:455 ../rules/evdev.xml.in.h:455
-msgid "NumLock LED shows alternative layout."
-msgstr "NumLock-lampje toont alternatieve indeling."
+#: ../rules/base.xml.in.h:498
+msgid "NumLock"
+msgstr "NumLock"
-#: ../rules/base.xml.in.h:456 ../rules/evdev.xml.in.h:456
+# op het cijferblok is de delete toets aangegeven met del
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Cijferblok del-toetsgedrag"
-#: ../rules/base.xml.in.h:457 ../rules/evdev.xml.in.h:457
-msgid "Numeric keypad keys work as with Mac."
-msgstr "Cijferblok-toetsen werken net als bij een Mac."
+#: ../rules/base.xml.in.h:500
+msgid "Numeric keypad keys work as with Mac"
+msgstr "Cijferblok-toetsen werken net als bij een Mac"
-#: ../rules/base.xml.in.h:458 ../rules/evdev.xml.in.h:458
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Cijferblok-indeling selecteren"
-#: ../rules/base.xml.in.h:459 ../rules/evdev.xml.in.h:459
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:460 ../rules/evdev.xml.in.h:460
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:461 ../rules/evdev.xml.in.h:461
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:462 ../rules/evdev.xml.in.h:462
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pashto"
-#: ../rules/base.xml.in.h:463 ../rules/evdev.xml.in.h:463
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Zuid-Oezbekistan"
-#: ../rules/base.xml.in.h:464 ../rules/evdev.xml.in.h:464
+#: ../rules/base.xml.in.h:507
+msgid "Occitan"
+msgstr "Occitaans"
+
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Oghamees"
-#: ../rules/base.xml.in.h:465 ../rules/evdev.xml.in.h:465
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Oghamees IS434"
-#: ../rules/base.xml.in.h:466 ../rules/evdev.xml.in.h:466
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:467 ../rules/evdev.xml.in.h:467
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet toetsenbord"
-#: ../rules/base.xml.in.h:468 ../rules/evdev.xml.in.h:468
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Osetisch"
-#: ../rules/base.xml.in.h:469 ../rules/evdev.xml.in.h:469
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Osetisch, Win-toetsen"
-#: ../rules/base.xml.in.h:470 ../rules/evdev.xml.in.h:470
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Osetisch, historisch"
-#: ../rules/base.xml.in.h:471 ../rules/evdev.xml.in.h:471
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx serie"
-#: ../rules/base.xml.in.h:472 ../rules/evdev.xml.in.h:472
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:473 ../rules/evdev.xml.in.h:473
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:474 ../rules/evdev.xml.in.h:474
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pashto"
-#: ../rules/base.xml.in.h:475 ../rules/evdev.xml.in.h:475
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:476 ../rules/evdev.xml.in.h:476
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persisch, met Persisch cijferblok"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetisch"
-#: ../rules/base.xml.in.h:477 ../rules/evdev.xml.in.h:477
+#: ../rules/base.xml.in.h:522
+msgid "Phonetic Winkeys"
+msgstr "Fonetisch Win-toetsen"
+
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:478 ../rules/evdev.xml.in.h:478
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polen"
-#: ../rules/base.xml.in.h:479 ../rules/evdev.xml.in.h:479
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Meertonig"
-#: ../rules/base.xml.in.h:480 ../rules/evdev.xml.in.h:480
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugal"
-#: ../rules/base.xml.in.h:481 ../rules/evdev.xml.in.h:481
-msgid "Press Left Alt key to choose 3rd level."
-msgstr "De linker Alt-toets geeft het 3e niveau."
-
-#: ../rules/base.xml.in.h:482 ../rules/evdev.xml.in.h:482
-msgid "Press Left Win-key to choose 3rd level."
-msgstr "De linker Win-toets geeft het 3e niveau."
-
-#: ../rules/base.xml.in.h:483 ../rules/evdev.xml.in.h:483
-msgid "Press Menu key to choose 3rd level."
-msgstr "De Menu-toets geeft het 3e niveau."
-
-#: ../rules/base.xml.in.h:484 ../rules/evdev.xml.in.h:484
-msgid "Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key."
-msgstr "De rechter Alt-toets geeft het 3e niveau, Shift + rechter Alt-toets is Multi_Key."
-
-#: ../rules/base.xml.in.h:485 ../rules/evdev.xml.in.h:485
-msgid "Press Right Alt key to choose 3rd level."
-msgstr "De rechter Alt-toets geeft het 3e niveau."
-
-#: ../rules/base.xml.in.h:486 ../rules/evdev.xml.in.h:486
-msgid "Press Right Ctrl to choose 3rd level."
-msgstr "De rechter Ctrl-toets geeft het 3e niveau."
-
-#: ../rules/base.xml.in.h:487 ../rules/evdev.xml.in.h:487
-msgid "Press Right Win-key to choose 3rd level."
-msgstr "De rechter Win-toets geeft het 3e niveau."
-
-# dubbelzinnig "beide"
-#: ../rules/base.xml.in.h:488 ../rules/evdev.xml.in.h:488
-msgid "Press any of Alt keys to choose 3rd level."
-msgstr "Zowel de linker als de rechter Alt-toets geeft het 3e niveau."
-
-#: ../rules/base.xml.in.h:489 ../rules/evdev.xml.in.h:489
-msgid "Press any of Win-keys to choose 3rd level."
-msgstr "Zowel de linker als de rechter Win-toets geeft het 3e niveau."
-
-#: ../rules/base.xml.in.h:490 ../rules/evdev.xml.in.h:490
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:491 ../rules/evdev.xml.in.h:491
-msgid "Pro Keypad"
-msgstr "Pro toetsenbord"
-
-#: ../rules/base.xml.in.h:492 ../rules/evdev.xml.in.h:492
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:493 ../rules/evdev.xml.in.h:493
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Programmeer-Dvorak"
-#: ../rules/base.xml.in.h:494 ../rules/evdev.xml.in.h:494
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:495 ../rules/evdev.xml.in.h:495
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:496 ../rules/evdev.xml.in.h:496
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:497 ../rules/evdev.xml.in.h:497
-msgid "R-Alt switches layout while pressed."
-msgstr "Rechter Alt wisselt de indeling gedurende het indrukken."
-
-#: ../rules/base.xml.in.h:498 ../rules/evdev.xml.in.h:498
-msgid "Right Alt is Compose."
-msgstr "Rechter Alt is samensteltoets."
-
-#: ../rules/base.xml.in.h:499 ../rules/evdev.xml.in.h:499
-msgid "Right Alt key changes layout."
-msgstr "Rechter Alt-toets verandert de indeling."
+#: ../rules/base.xml.in.h:532
+msgid "Right Alt"
+msgstr "Rechter Alt-toets"
-#: ../rules/base.xml.in.h:500 ../rules/evdev.xml.in.h:500
-msgid "Right Alt key never chooses 3rd level."
-msgstr "Rechter Alt-toets geeft het 3e niveau."
+# BUG Alt ipv Alt key
+#: ../rules/base.xml.in.h:533
+msgid "Right Alt (while pressed)"
+msgstr "Rechter Alt-toets (ingedrukt houden)"
-#: ../rules/base.xml.in.h:501 ../rules/evdev.xml.in.h:501
-msgid "Right Ctrl is Compose."
-msgstr "Rechter Control is samensteltoets."
+#: ../rules/base.xml.in.h:534
+msgid "Right Alt key never chooses 3rd level"
+msgstr "Rechter Alt-toets geeft nooit het 3e niveau"
-#: ../rules/base.xml.in.h:502 ../rules/evdev.xml.in.h:502
-msgid "Right Ctrl key changes layout."
-msgstr "Rechter Ctrl-toets verandert de indeling."
+#: ../rules/base.xml.in.h:535
+msgid "Right Alt, Shift+Right Alt key is Multi_Key"
+msgstr "Rechter Alt-toets, Shift + rechter Alt-toets is Multi_Key"
-#: ../rules/base.xml.in.h:503 ../rules/evdev.xml.in.h:503
-msgid "Right Ctrl key switches layout while pressed."
-msgstr "Rechter Ctrl-toets wisselt indeling gedurende het indrukken."
+#: ../rules/base.xml.in.h:536
+msgid "Right Ctrl"
+msgstr "Rechter Ctrl-toets"
-#: ../rules/base.xml.in.h:504 ../rules/evdev.xml.in.h:504
-msgid "Right Ctrl key works as Right Alt."
-msgstr "Rechter Ctrl-toets doet hetzelfde als de rechter Alt-toets."
+#: ../rules/base.xml.in.h:537
+msgid "Right Ctrl (while pressed)"
+msgstr "Rechter Ctrl-toets (ingedrukt houden)"
-#: ../rules/base.xml.in.h:505 ../rules/evdev.xml.in.h:505
-msgid "Right Shift key changes layout."
-msgstr "Rechter Shift-toets verandert de indeling."
+# Rechter Ctrl-toets doet hetzelfde als de rechter Alt-toets.
+#: ../rules/base.xml.in.h:538
+msgid "Right Ctrl as Right Alt"
+msgstr "Rechter Ctrl-toets en Alt-toets hetzelfde"
-#: ../rules/base.xml.in.h:506 ../rules/evdev.xml.in.h:506
-msgid "Right Win-key changes layout."
-msgstr "Rechter Win-toets verandert de indeling."
+#: ../rules/base.xml.in.h:539
+msgid "Right Shift"
+msgstr "Rechter Shift-toets"
-#: ../rules/base.xml.in.h:507 ../rules/evdev.xml.in.h:507
-msgid "Right Win-key is Compose."
-msgstr "Rechter Win-toets is samensteltoets."
+#: ../rules/base.xml.in.h:540
+msgid "Right Win"
+msgstr "Rechter Win-toets"
-#: ../rules/base.xml.in.h:508 ../rules/evdev.xml.in.h:508
-msgid "Right Win-key switches layout while pressed."
-msgstr "Rechter Win-toets wisselt de indeling gedurende het indrukken."
+#: ../rules/base.xml.in.h:541
+msgid "Right Win (while pressed)"
+msgstr "Rechter Win-toets (ingedrukt houden)"
-#: ../rules/base.xml.in.h:509 ../rules/evdev.xml.in.h:509
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Rechtshandig"
-#: ../rules/base.xml.in.h:510 ../rules/evdev.xml.in.h:510
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Rechtshandige Dvorak"
-#: ../rules/base.xml.in.h:511 ../rules/evdev.xml.in.h:511
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Roemenië"
-#: ../rules/base.xml.in.h:512 ../rules/evdev.xml.in.h:512
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Roemeens toetsenbord met Duitse lettertekens"
-#: ../rules/base.xml.in.h:513 ../rules/evdev.xml.in.h:513
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Roemeens toetsenbord met Duitse lettertekens, zonder dode toetsen"
-#: ../rules/base.xml.in.h:514 ../rules/evdev.xml.in.h:514
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:515 ../rules/evdev.xml.in.h:515
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:516 ../rules/evdev.xml.in.h:516
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Rusland"
-#: ../rules/base.xml.in.h:517 ../rules/evdev.xml.in.h:517
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Russisch"
-#: ../rules/base.xml.in.h:518 ../rules/evdev.xml.in.h:518
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Russisch fonetisch"
-#: ../rules/base.xml.in.h:519 ../rules/evdev.xml.in.h:519
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Russisch-fonetisch Dvorak"
-#: ../rules/base.xml.in.h:520 ../rules/evdev.xml.in.h:520
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Russisch fonetisch, zonder dode toetsen"
-#: ../rules/base.xml.in.h:521 ../rules/evdev.xml.in.h:521
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Russisch met Kazachstaans"
# draadloos toetsenbord
-#: ../rules/base.xml.in.h:522 ../rules/evdev.xml.in.h:522
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:523 ../rules/evdev.xml.in.h:523
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:524 ../rules/evdev.xml.in.h:524
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:525 ../rules/evdev.xml.in.h:525
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:526 ../rules/evdev.xml.in.h:526
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:527 ../rules/evdev.xml.in.h:527
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:528 ../rules/evdev.xml.in.h:528
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:529 ../rules/evdev.xml.in.h:529
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:530 ../rules/evdev.xml.in.h:530
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:531 ../rules/evdev.xml.in.h:531
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:532 ../rules/evdev.xml.in.h:532
-msgid "ScrollLock LED shows alternative layout."
-msgstr "ScrollLock-lampje toont alternatieve indeling."
+#: ../rules/base.xml.in.h:565
+msgid "Scroll Lock"
+msgstr "Scroll Lock"
+
+#: ../rules/base.xml.in.h:566
+msgid "ScrollLock"
+msgstr "ScrollLock"
# Canadees-Indiaanse taal (Shuswap)
-#: ../rules/base.xml.in.h:533 ../rules/evdev.xml.in.h:533
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:534 ../rules/evdev.xml.in.h:534
+#: ../rules/base.xml.in.h:568
+msgid "Semi-colon on third level"
+msgstr "Punt-komma op derde niveau"
+
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Servisch"
-#: ../rules/base.xml.in.h:535 ../rules/evdev.xml.in.h:535
-msgid "Shift cancels CapsLock."
+#: ../rules/base.xml.in.h:570
+msgid "Shift cancels CapsLock"
msgstr "Shift heft CapsLock op"
-#: ../rules/base.xml.in.h:536 ../rules/evdev.xml.in.h:536
-msgid "Shift with numeric keypad keys works as in MS Windows."
-msgstr "Shift met cijferblok-toetsen werkt zoals in MS Windows."
+#: ../rules/base.xml.in.h:571
+msgid "Shift does not cancel NumLock, chooses 3d level instead"
+msgstr "Shift heft NumLock niet op, maar geeft juist het 3e niveau"
-#: ../rules/base.xml.in.h:537 ../rules/evdev.xml.in.h:537
-msgid "Shift+CapsLock changes layout."
-msgstr "Shift+CapsLock verandert de indeling."
+#: ../rules/base.xml.in.h:572
+msgid "Shift with numeric keypad keys works as in MS Windows"
+msgstr "Shift met cijferblok-toetsen werkt zoals in MS Windows"
-#: ../rules/base.xml.in.h:538 ../rules/evdev.xml.in.h:538
+#: ../rules/base.xml.in.h:573
+msgid "Shift+CapsLock"
+msgstr "Shift+CapsLock"
+
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Simpel"
-#: ../rules/base.xml.in.h:539 ../rules/evdev.xml.in.h:539
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slowakije"
-#: ../rules/base.xml.in.h:540 ../rules/evdev.xml.in.h:540
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovenië"
-#: ../rules/base.xml.in.h:541 ../rules/evdev.xml.in.h:541
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Zuid-Afrika"
-#: ../rules/base.xml.in.h:542 ../rules/evdev.xml.in.h:542
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Zuid-Oezbekistan"
-# BUG geen punt op eind
-# sixth level? hoeveel levels zijn er wel niet?
-#: ../rules/base.xml.in.h:543 ../rules/evdev.xml.in.h:543
-msgid "Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level"
-msgstr "Spatiebalk geeft harde spatie op het vierde niveau, smalle harde spatie op het zesde niveau."
-
-# BUG geen sluithaakje op eind
-# sixth level? hoeveel levels zijn er wel niet?
-#: ../rules/base.xml.in.h:544 ../rules/evdev.xml.in.h:544
-msgid "Space key outputs non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift"
-msgstr "Spatiebalk geeft harde spatie op het vierde niveau, smalle harde spatie op het zesde niveau (via Ctrl+Shift)."
-
-#: ../rules/base.xml.in.h:545 ../rules/evdev.xml.in.h:545
-msgid "Space key outputs non-breakable space character at fourth level."
-msgstr "Spatiebalk geeft harde spatie op het vierde niveau."
-
-#: ../rules/base.xml.in.h:546 ../rules/evdev.xml.in.h:546
-msgid "Space key outputs non-breakable space character at second level."
-msgstr "Spatiebalk geeft harde spatie op het tweede niveau."
-
-#: ../rules/base.xml.in.h:547 ../rules/evdev.xml.in.h:547
-msgid "Space key outputs non-breakable space character at third level, nothing at fourth level."
-msgstr "Spatiebalk geeft harde spatie op het derde niveau, niets op het vierde niveau."
-
-# BUG geen punt op het einde
-#: ../rules/base.xml.in.h:548 ../rules/evdev.xml.in.h:548
-msgid "Space key outputs non-breakable space character at third level, thin non-breakable space character at fourth level"
-msgstr "Spatiebalk geeft harde spatie op het derde niveau, smalle harde spatie op het vierde niveau."
-
-#: ../rules/base.xml.in.h:549 ../rules/evdev.xml.in.h:549
-msgid "Space key outputs non-breakable space character at third level."
-msgstr "Spatiebalk geeft harde spatie op het derde niveau."
-
-#: ../rules/base.xml.in.h:550 ../rules/evdev.xml.in.h:550
-msgid "Space key outputs usual space at any level."
-msgstr "Spatiebalk geeft de gebruikelijke spatie op elk niveau."
-
-#: ../rules/base.xml.in.h:551 ../rules/evdev.xml.in.h:551
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Spanje"
-#: ../rules/base.xml.in.h:552 ../rules/evdev.xml.in.h:552
-msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server."
-msgstr "Speciale toetsen (Ctrl+Alt+&lt;toets&gt;) afgehandeld in een server."
+#: ../rules/base.xml.in.h:580
+msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
+msgstr "Speciale toetsen (Ctrl+Alt+&lt;toets&gt;) afgehandeld in een server"
-#: ../rules/base.xml.in.h:553 ../rules/evdev.xml.in.h:553
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:554 ../rules/evdev.xml.in.h:554
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:555 ../rules/evdev.xml.in.h:555
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standaard"
-#: ../rules/base.xml.in.h:556 ../rules/evdev.xml.in.h:556
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standaard (Cedilla)"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:558 ../rules/evdev.xml.in.h:558
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standaard RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:560 ../rules/evdev.xml.in.h:560
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standaard RSTU op Russische indeling"
-#: ../rules/base.xml.in.h:561 ../rules/evdev.xml.in.h:561
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun type 5/6"
-#: ../rules/base.xml.in.h:562 ../rules/evdev.xml.in.h:562
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sun dode toetsen"
-#: ../rules/base.xml.in.h:563 ../rules/evdev.xml.in.h:563
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power multimediatoetsenbord"
-#: ../rules/base.xml.in.h:564 ../rules/evdev.xml.in.h:564
-msgid "Super is mapped to the Win-keys."
-msgstr "Super wordt afgebeeld op de Win-toetsen."
-
# Slovaaks Dvorak?
-#: ../rules/base.xml.in.h:565 ../rules/evdev.xml.in.h:565
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:566 ../rules/evdev.xml.in.h:566
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:567 ../rules/evdev.xml.in.h:567
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:568 ../rules/evdev.xml.in.h:568
-msgid "Swap Ctrl and CapsLock."
-msgstr "Ctrl en CapsLock omwisselen."
+#: ../rules/base.xml.in.h:595
+msgid "Swap Ctrl and CapsLock"
+msgstr "Ctrl en CapsLock omwisselen"
-#: ../rules/base.xml.in.h:569 ../rules/evdev.xml.in.h:569
-msgid "Swap ESC and CapsLock."
-msgstr "Esc en CapsLock omwisselen."
-
-# dit is de uitleg van bovenstaand bericht
-#: ../rules/base.xml.in.h:570 ../rules/evdev.xml.in.h:570
-msgid "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
-msgstr "De keycodes van twee toetsen omwisselen wanneer Mac-toetsenborden niet juist herkend worden door de kernel."
+#: ../rules/base.xml.in.h:596
+msgid "Swap ESC and CapsLock"
+msgstr "Esc en CapsLock omwisselen"
-#: ../rules/base.xml.in.h:571 ../rules/evdev.xml.in.h:571
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:572 ../rules/evdev.xml.in.h:572
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Zweden"
-#: ../rules/base.xml.in.h:573 ../rules/evdev.xml.in.h:573
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Zwitserland"
-#: ../rules/base.xml.in.h:574 ../rules/evdev.xml.in.h:574
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:575 ../rules/evdev.xml.in.h:575
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:576 ../rules/evdev.xml.in.h:576
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Syrië"
-#: ../rules/base.xml.in.h:577 ../rules/evdev.xml.in.h:577
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syrisch"
-#: ../rules/base.xml.in.h:578 ../rules/evdev.xml.in.h:578
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Syrisch fonetisch"
-#: ../rules/base.xml.in.h:579 ../rules/evdev.xml.in.h:579
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:580 ../rules/evdev.xml.in.h:580
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tadzjikistan"
-#: ../rules/base.xml.in.h:581 ../rules/evdev.xml.in.h:581
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamil"
-#: ../rules/base.xml.in.h:582 ../rules/evdev.xml.in.h:582
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamil TAB typmachine"
-#: ../rules/base.xml.in.h:583 ../rules/evdev.xml.in.h:583
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamil TSCII typmachine"
-#: ../rules/base.xml.in.h:584 ../rules/evdev.xml.in.h:584
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamil unicode"
-#: ../rules/base.xml.in.h:585 ../rules/evdev.xml.in.h:585
+#: ../rules/base.xml.in.h:611
+msgid "Targa Visionary 811"
+msgstr "Targa Visionary 811"
+
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:586 ../rules/evdev.xml.in.h:586
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:587 ../rules/evdev.xml.in.h:587
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:588 ../rules/evdev.xml.in.h:588
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thailand"
-#: ../rules/base.xml.in.h:589 ../rules/evdev.xml.in.h:589
-msgid "Third level choosers"
-msgstr "3e niveau kiezers"
-
-#: ../rules/base.xml.in.h:590 ../rules/evdev.xml.in.h:590
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetaans"
-#: ../rules/base.xml.in.h:591 ../rules/evdev.xml.in.h:591
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetaans (met ASCII-cijfers)"
-#: ../rules/base.xml.in.h:592 ../rules/evdev.xml.in.h:592
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:593 ../rules/evdev.xml.in.h:593
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh alternatief"
-#: ../rules/base.xml.in.h:594 ../rules/evdev.xml.in.h:594
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh alternatief fonetisch"
-#: ../rules/base.xml.in.h:595 ../rules/evdev.xml.in.h:595
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh uitgebreid"
-#: ../rules/base.xml.in.h:596 ../rules/evdev.xml.in.h:596
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh fonetisch uitgebreid"
-#: ../rules/base.xml.in.h:597 ../rules/evdev.xml.in.h:597
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh fonetisch"
-#: ../rules/base.xml.in.h:598 ../rules/evdev.xml.in.h:598
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Tilde (~) variant"
-#: ../rules/base.xml.in.h:599 ../rules/evdev.xml.in.h:599
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:600 ../rules/evdev.xml.in.h:600
+#: ../rules/base.xml.in.h:626
+msgid "To the corresponding key in a Dvorak keyboard."
+msgstr "Naar de corresponderende toets op een Dvorak toetsenbord."
+
+#: ../rules/base.xml.in.h:627
+msgid "To the corresponding key in a Qwerty keyboard."
+msgstr "Naar de corresponderende toets op een Qwerty toetsenbord."
+
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:601 ../rules/evdev.xml.in.h:601
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Traditioneel fonetisch"
+
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access toetsenbord"
+#: ../rules/base.xml.in.h:631
+msgid "Trust Slimline"
+msgstr "Trust Slimline"
+
# classic is hier onderdeel van merknaam?
-#: ../rules/base.xml.in.h:602 ../rules/evdev.xml.in.h:602
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:603 ../rules/evdev.xml.in.h:603
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:604 ../rules/evdev.xml.in.h:604
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turkije"
-#: ../rules/base.xml.in.h:605 ../rules/evdev.xml.in.h:605
+#: ../rules/base.xml.in.h:635
+msgid "Turkmenistan"
+msgstr "Turkmenistan"
+
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Typmachine"
-#: ../rules/base.xml.in.h:606 ../rules/evdev.xml.in.h:606
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "UCW-indeling (allen lettertekens met accenten)"
# lettersamenstelling?
-#: ../rules/base.xml.in.h:607 ../rules/evdev.xml.in.h:607
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Amerikaans toetsenbord met Bosnische digrafen"
-#: ../rules/base.xml.in.h:608 ../rules/evdev.xml.in.h:608
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Amerikaans toetsenbord met Bosnische lettertekens"
-#: ../rules/base.xml.in.h:609 ../rules/evdev.xml.in.h:609
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Amerikaans toetsenbord met Kroatische digrafen"
-#: ../rules/base.xml.in.h:610 ../rules/evdev.xml.in.h:610
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Amerikaans toetsenbord met Kroatische lettertekens"
-#: ../rules/base.xml.in.h:611 ../rules/evdev.xml.in.h:611
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Amerikaans toetsenbord met Estlandse lettertekens"
-#: ../rules/base.xml.in.h:612 ../rules/evdev.xml.in.h:612
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Amerikaans toetsenbord met Italiaanse lettertekens"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Amerikaans toetsenbord met Litouwse lettertekens"
-#: ../rules/base.xml.in.h:613 ../rules/evdev.xml.in.h:613
-msgid "US keyboard with Slovenian digraphs"
-msgstr "Amerikaans toetsenbord met Sloveense digrafen"
-
-#: ../rules/base.xml.in.h:614 ../rules/evdev.xml.in.h:614
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Amerikaans toetsenbord met Sloveense lettertekens"
-#: ../rules/base.xml.in.h:615 ../rules/evdev.xml.in.h:615
+# eigenlijk VS maar dat is veel dubbelzinniger,
+# iedereen weet wat USA betekent, VS kan voor veel dingen staan
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
-msgstr "VS"
+msgstr "USA"
-#: ../rules/base.xml.in.h:616 ../rules/evdev.xml.in.h:616
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurts"
-#: ../rules/base.xml.in.h:617 ../rules/evdev.xml.in.h:617
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:618 ../rules/evdev.xml.in.h:618
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Oekraïne"
-#: ../rules/base.xml.in.h:619 ../rules/evdev.xml.in.h:619
+#: ../rules/base.xml.in.h:650
+msgid "Unicode additions (arrows and math operators)"
+msgstr "Unicode-aanvullingen (pijlen en wiskundige operatoren)"
+
+#: ../rules/base.xml.in.h:651
+msgid "Unicode additions (arrows and math operators). Math operators on default level"
+msgstr "Unicode-aanvullingen (pijlen en wiskundige operatoren). Wiskundige operatoren op het standaard niveau"
+
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:620 ../rules/evdev.xml.in.h:620
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Verenigd Koninkrijk"
-#: ../rules/base.xml.in.h:621 ../rules/evdev.xml.in.h:621
-msgid "Urdu"
-msgstr "Urdu"
+#: ../rules/base.xml.in.h:654
+msgid "Unitek KB-1925"
+msgstr "Unitek KB-1925"
+
+#: ../rules/base.xml.in.h:655
+msgid "Urdu, Alternative phonetic"
+msgstr "Urdu, alternatief fonetisch"
+
+#: ../rules/base.xml.in.h:656
+msgid "Urdu, Phonetic"
+msgstr "Urdu, fonetisch"
-#: ../rules/base.xml.in.h:622 ../rules/evdev.xml.in.h:622
+#: ../rules/base.xml.in.h:657
+msgid "Urdu, Winkeys"
+msgstr "Urdu, Win-toetsen"
+
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Bosnische digrafen gebruiken"
-#: ../rules/base.xml.in.h:623 ../rules/evdev.xml.in.h:623
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Kroatische digrafen gebruiken"
-#: ../rules/base.xml.in.h:624 ../rules/evdev.xml.in.h:624
-msgid "Use Slovenian digraphs"
-msgstr "Sloveense digrafen gebruiken"
-
# Guillemets of ook quillemets zijn Franse aanhalingstekens.
# Dit is de "Nederlandse" en dit is de «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:625 ../rules/evdev.xml.in.h:625
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Franse aanhalingstekens gebruiken voor citaten"
-#: ../rules/base.xml.in.h:626 ../rules/evdev.xml.in.h:626
-msgid "Use keyboard LED to show alternative layout."
-msgstr "Toetsenbord-lampje gebruiken om alternatieve indeling te tonen."
+#: ../rules/base.xml.in.h:661
+msgid "Use keyboard LED to show alternative layout"
+msgstr "Toetsenbord-LED gebruiken om alternatieve indeling te tonen"
-#: ../rules/base.xml.in.h:627 ../rules/evdev.xml.in.h:627
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Spatiebalk gebruiken voor het invoeren van niet-afbrekende (harde) spaties"
-#: ../rules/base.xml.in.h:628 ../rules/evdev.xml.in.h:628
+# Spatiebalk geeft de gebruikelijke spatie op elk niveau.
+#: ../rules/base.xml.in.h:663
+msgid "Usual space at any level"
+msgstr "Gebruikelijke spatie op elk niveau"
+
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:629 ../rules/evdev.xml.in.h:629
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Oezbekistan"
-#: ../rules/base.xml.in.h:630 ../rules/evdev.xml.in.h:630
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Viëtnam"
-#: ../rules/base.xml.in.h:631 ../rules/evdev.xml.in.h:631
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 internet toetsenbord"
-#: ../rules/base.xml.in.h:632 ../rules/evdev.xml.in.h:632
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:633 ../rules/evdev.xml.in.h:633
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 cijferblok met unicode-aanvullingen (pijlen en wiskundige operatoren)"
-#: ../rules/base.xml.in.h:634 ../rules/evdev.xml.in.h:634
-msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level."
-msgstr "Wang 724 cijferblok met unicode aanvullingen (pijlen en wiskundige operatoren). Wiskundige operatoren op het standaard niveau."
+#: ../rules/base.xml.in.h:670
+msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
+msgstr "Wang 724 cijferblok met unicode aanvullingen (pijlen en wiskundige operatoren). Wiskundige operatoren op het standaard niveau"
-#: ../rules/base.xml.in.h:635 ../rules/evdev.xml.in.h:635
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang model 724 azerty"
-#: ../rules/base.xml.in.h:636 ../rules/evdev.xml.in.h:636
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Westers"
-#: ../rules/base.xml.in.h:637 ../rules/evdev.xml.in.h:637
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:638 ../rules/evdev.xml.in.h:638
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Win-toetsen"
-#: ../rules/base.xml.in.h:639 ../rules/evdev.xml.in.h:639
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Met &lt;\\|&gt;-toets"
-#: ../rules/base.xml.in.h:640 ../rules/evdev.xml.in.h:640
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Met het Euro-teken bij de 5"
# Guillemets of ook quillemets zijn Franse aanhalingstekens.
# Dit is "Nederlands" en dit is de «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:641 ../rules/evdev.xml.in.h:641
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Met Franse aanhalingstekens"
-#: ../rules/base.xml.in.h:642 ../rules/evdev.xml.in.h:642
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! internettoetsenbord"
-#: ../rules/base.xml.in.h:643 ../rules/evdev.xml.in.h:643
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Yakut"
-#: ../rules/base.xml.in.h:644 ../rules/evdev.xml.in.h:644
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoruba"
-#: ../rules/base.xml.in.h:645 ../rules/evdev.xml.in.h:645
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z en ZHE omgewisseld"
-#: ../rules/base.xml.in.h:646 ../rules/evdev.xml.in.h:646
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:647 ../rules/evdev.xml.in.h:647
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:648 ../rules/evdev.xml.in.h:648
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/cijfers"
-#: ../rules/base.xml.in.h:649 ../rules/evdev.xml.in.h:649
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "cijfers"
-#: ../rules/base.xml.in.h:650 ../rules/evdev.xml.in.h:650
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "puntkomma en aanhalingsteken op afwijkende plek (historisch)"
-#: ../rules/base.xml.in.h:651 ../rules/evdev.xml.in.h:651
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:652 ../rules/evdev.xml.in.h:652
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
# brede backslash/uitgebreide backslash
-#: ../rules/base.xml.in.h:653 ../rules/evdev.xml.in.h:653
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, brede backslash"
-#: ../rules/base.xml.in.h:654 ../rules/evdev.xml.in.h:654
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/cijfers"
-#: ../rules/base.xml.in.h:655 ../rules/evdev.xml.in.h:655
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Combinerende accenten in plaats van dode toetsen"
+
+# Coeur d'Alene is a Salishan language spoken by only five of the 800 individuals in the Coeur d'Alene Tribe on the Coeur d'Alene Reservation in northern Idaho, United States.
+# http://en.wikipedia.org/wiki/Coeur_d'Alene_language
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Coeur D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Internationaal (AltGr Unicode combinatie)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Internationaal (AltGr Unicode combinatie, alternatief)"
+
+# toevoegen/toekennen
+#~ msgid "Add the EuroSign to the 2 key."
+#~ msgstr "Het Euro-teken toevoegen aan de 2-toets."
+
+# toevoegen/toekennen
+#~ msgid "Add the EuroSign to the 4 key."
+#~ msgstr "Het Euro-teken toevoegen aan de 4-toets."
+
+#~ msgid "Add the EuroSign to the 5 key."
+#~ msgstr "Het Euro-teken toevoegen aan de 5-toets."
+
+#~ msgid "Add the EuroSign to the E key."
+#~ msgstr "Het Euro-teken toevoegen aan de E-toets."
+
+#~ msgid "Alt+Ctrl change layout."
+#~ msgstr "Alt+Ctrl verandert de indeling."
+
+#~ msgid "Alt+Shift change layout."
+#~ msgstr "Alt+Shift verandert de indeling."
+
+# verandert/wijzigt hier beter dan veranderen/wijzigen
+#~ msgid "Both Alt keys together change layout."
+#~ msgstr "Beide Alt-toetsen samen verandert de indeling."
+
+#~ msgid "Both Ctrl keys together change layout."
+#~ msgstr "Beide Ctrl-toetsen samen verandert de indeling."
+
+#~ msgid "Both Shift keys together change layout."
+#~ msgstr "Beide Shift-toetsen samen verandert de indeling."
+
+#~ msgid "Brazilian ABNT2"
+#~ msgstr "Braziliaans ABNT2"
+
+#~ msgid "Caps Lock is Compose."
+#~ msgstr "Caps Lock is samensteltoets."
+
+#~ msgid "CapsLock LED shows alternative layout."
+#~ msgstr "CapsLock-lampje toont de alternatieve indeling."
+
+#~ msgid "CapsLock just locks the Shift modifier."
+#~ msgstr "CapsLock blokkeert slechts de Shift-toets."
+
+#~ msgid "CapsLock key changes layout."
+#~ msgstr "CapsLock-toets verandert de indeling."
+
+#~ msgid "Ctrl+Shift change layout."
+#~ msgstr "Ctrl+Shift verandert de indeling."
+
+#~ msgid "Hewlett-Packard Internet Keyboard 5181"
+#~ msgstr "Hewlett-Packard internet toetsenbord 5181"
+
+#~ msgid "Hewlett-Packard Internet Keyboard 5185"
+#~ msgstr "Hewlett-Packard internet toetsenbord 5185"
+
+#~ msgid "Hewlett-Packard SK-2505 Internet Keyboard"
+#~ msgstr "Hewlett-Packard SK-2505 internet toetsenbord"
+
+#~ msgid "IBM Rapid Access II (alternate option)"
+#~ msgstr "IBM Rapid Access II (alternatieve optie)"
+
+#~ msgid "Japanese 106-key"
+#~ msgstr "Japans 106-toetsen"
+
+# nummerblok/
+#~ msgid "Keypad"
+#~ msgstr "Nummerblok"
+
+#~ msgid "Kir"
+#~ msgstr "Kir"
+
+#~ msgid "Korean 106-key"
+#~ msgstr "Koreaans 106-toetsen"
+
+#~ msgid "LCtrl+LShift change layout."
+#~ msgstr "Linker Ctrl+Linker Shift verandert de indeling."
+
+#~ msgid "Layout switching"
+#~ msgstr "Wisselen van indeling"
+
+#~ msgid "Left Alt key changes layout."
+#~ msgstr "Linker Alt-toets verandert de indeling."
+
+#~ msgid "Left Ctrl key changes layout."
+#~ msgstr "Linker Ctrl-toets verandert de indeling."
+
+#~ msgid "Left Shift key changes layout."
+#~ msgstr "Linker Shift-toets verandert de indeling."
+
+#~ msgid "Left Win-key changes layout."
+#~ msgstr "Linker Win-toets verandert de indeling."
+
+#~ msgid "Left Win-key is Compose."
+#~ msgstr "Linker Win-toets is samensteltoets."
+
+#~ msgid "Legacy keypad"
+#~ msgstr "Historisch cijferblok"
+
+#~ msgid "Menu is Compose."
+#~ msgstr "Menu is samensteltoets."
+
+#~ msgid "Neostyle"
+#~ msgstr "Neostijl"
+
+#~ msgid "NumLock LED shows alternative layout."
+#~ msgstr "NumLock-lampje toont alternatieve indeling."
+
+#~ msgid "Press Left Alt key to choose 3rd level."
+#~ msgstr "De linker Alt-toets geeft het 3e niveau."
+
+#~ msgid "Press Left Win-key to choose 3rd level."
+#~ msgstr "De linker Win-toets geeft het 3e niveau."
+
+#~ msgid "Press Right Alt key to choose 3rd level."
+#~ msgstr "De rechter Alt-toets geeft het 3e niveau."
+
+#~ msgid "Press Right Ctrl to choose 3rd level."
+#~ msgstr "De rechter Ctrl-toets geeft het 3e niveau."
+
+#~ msgid "Press Right Win-key to choose 3rd level."
+#~ msgstr "De rechter Win-toets geeft het 3e niveau."
+
+# dubbelzinnig "beide"
+#~ msgid "Press any of Alt keys to choose 3rd level."
+#~ msgstr "Zowel de linker als de rechter Alt-toets geeft het 3e niveau."
+
+#~ msgid "Press any of Win-keys to choose 3rd level."
+#~ msgstr "Zowel de linker als de rechter Win-toets geeft het 3e niveau."
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Right Alt is Compose."
+#~ msgstr "Rechter Alt is samensteltoets."
+
+#~ msgid "Right Alt key changes layout."
+#~ msgstr "Rechter Alt-toets verandert de indeling."
+
+#~ msgid "Right Ctrl key changes layout."
+#~ msgstr "Rechter Ctrl-toets verandert de indeling."
+
+#~ msgid "Right Shift key changes layout."
+#~ msgstr "Rechter Shift-toets verandert de indeling."
+
+#~ msgid "Right Win-key changes layout."
+#~ msgstr "Rechter Win-toets verandert de indeling."
+
+#~ msgid "Right Win-key is Compose."
+#~ msgstr "Rechter Win-toets is samensteltoets."
+
+#~ msgid "ScrollLock LED shows alternative layout."
+#~ msgstr "ScrollLock-lampje toont alternatieve indeling."
+
+#~ msgid "Shift+CapsLock changes layout."
+#~ msgstr "Shift+CapsLock verandert de indeling."
+
+# dit is de uitleg van bovenstaand bericht
+#~ msgid "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
+#~ msgstr "De keycodes van twee toetsen omwisselen wanneer Mac-toetsenborden niet juist herkend worden door de kernel."
+
+#~ msgid "Third level choosers"
+#~ msgstr "3e niveau kiezers"
+
+#~ msgid "US keyboard with Slovenian digraphs"
+#~ msgstr "Amerikaans toetsenbord met Sloveense digrafen"
+
+#~ msgid "Urdu"
+#~ msgstr "Urdu"
+
+#~ msgid "Use Slovenian digraphs"
+#~ msgstr "Sloveense digrafen gebruiken"
+
#~ msgid "(Legacy) Dvorak"
#~ msgstr "(Historisch) Dvorak"
@@ -2697,26 +3068,12 @@ msgstr "qwertz"
#~ msgid "Belgian"
#~ msgstr "Belgisch"
-# verandert/wijzigt hier beter dan veranderen/wijzigen
-#~ msgid "Both Alt keys together change group"
-#~ msgstr "Beide Alt-toetsen samen verandert de groep."
-
-#~ msgid "Both Ctrl keys together change group"
-#~ msgstr "Beide Ctrl-toetsen samen verandert de groep."
-
-#~ msgid "Both Shift keys together change group"
-#~ msgstr "Beide Shift-toetsen samen verandert de groep."
-
#~ msgid "Bulgarian"
#~ msgstr "Bulgaars"
#~ msgid "Canadian"
#~ msgstr "Canadees"
-# BUG Caps Lock los van elkaar
-#~ msgid "Caps Lock is Compose"
-#~ msgstr "Caps Lock is samensteltoets"
-
#~ msgid "Caps Lock key changes group"
#~ msgstr "Caps Lock-toets verandert de groep"
@@ -2738,9 +3095,6 @@ msgstr "qwertz"
#~ msgid "Czech"
#~ msgstr "Tsjechisch"
-#~ msgid "Danish"
-#~ msgstr "Deens"
-
# (Zwitsers Duits)
#~ msgid "DeuCH"
#~ msgstr "DeuCH"
@@ -2773,18 +3127,12 @@ msgstr "qwertz"
#~ msgid "Left Alt key changes group"
#~ msgstr "Linker Alt-toets verandert de groep"
-#~ msgid "Left Alt key switches group while pressed"
-#~ msgstr "Linker Alt-toets wisselt de groep gedurende het indrukken"
-
#~ msgid "Left Ctrl key changes group"
#~ msgstr "Linker Ctrl-toets verandert de groep"
#~ msgid "Left Shift key changes group"
#~ msgstr "Linker Shift-toets verandert de groep"
-#~ msgid "Make CapsLock an additional Control"
-#~ msgstr "Van CapsLock een extra Ctrl maken"
-
#~ msgid "Norwegian"
#~ msgstr "Noors"
@@ -2819,10 +3167,6 @@ msgstr "qwertz"
#~ msgid "Right Alt key changes group"
#~ msgstr "Rechter Alt-toets verandert de groep"
-# BUG Alt ipv Alt key
-#~ msgid "Right Alt switches group while pressed"
-#~ msgstr "Rechter Alt wisselt de groep gedurende het indrukken"
-
#~ msgid "Right Control key works as Right Alt"
#~ msgstr "Rechter Ctrl-toets doet hetzelfde als de rechter Alt-toets"
@@ -2832,9 +3176,6 @@ msgstr "qwertz"
#~ msgid "Right Shift key changes group"
#~ msgstr "Rechter Shift-toets verandert de groep"
-#~ msgid "Scroll Lock changes group"
-#~ msgstr "ScrollLock verandert de groep"
-
#~ msgid "Scroll_Lock LED shows alternative group"
#~ msgstr "ScrollLock-lampje toont alternatieve groep"
diff --git a/xorg-server/xkbdata.src/po/ru.po b/xorg-server/xkbdata.src/po/ru.po
index 98fd37bcc..7765d7d84 100644
--- a/xorg-server/xkbdata.src/po/ru.po
+++ b/xorg-server/xkbdata.src/po/ru.po
@@ -1,18 +1,24 @@
-# Copyright (C) 2002 Free Software Foundation, Inc.
+# translation of xkeyboard-config-1.6.99.ru.po to Russian
+# Copyright (C) 2002, 2009 Free Software Foundation, Inc.
# Sergey V. Udaltsov<svu@users.sourceforge.net>
+# This file is distributed under the same license as the xkeyboard-config package.
+#
# Sergey E Kvyato <kvantos@plotinka.ru>, 2006.
-#
+# Nickolay V. Shmyrev <nshmyrev@yandex.ru>, 2006.
+# Yuri Kozlov <yuray@komyakino.ru>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: xfree86_xkb_xml 0.1\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2006-11-28 00:34+0300\n"
-"PO-Revision-Date: 2006-11-28 16:17+0000\n"
-"Last-Translator: Nickolay V. Shmyrev <nshmyrev@yandex.ru>\n"
-"Language-Team: <gnome-cyr@gnome.org>\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-17 20:10+0400\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <gnu@mx.ru>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: ../rules/base.xml.in.h:1
msgid "(F)"
@@ -31,132 +37,132 @@ msgid "(Legacy) Alternative, eliminate dead keys"
msgstr "(УÑтарело) ÐльтернативнаÑ, иÑключить Ñпециальные клавиши (dead keys)"
#: ../rules/base.xml.in.h:5
-msgid "(Legacy) Dvorak"
-msgstr "(УÑтарело) Dvorak"
-
-#: ../rules/base.xml.in.h:6
msgid "101/104 key Compatible"
msgstr "CовмеÑÑ‚Ð¸Ð¼Ð°Ñ c 101/104 кнопочной"
-#: ../rules/base.xml.in.h:7 ../rules/sun.xml.in.h:2
+#: ../rules/base.xml.in.h:6
msgid "101/qwerty/comma/Dead keys"
msgstr "pc101, qwerty, запÑтаÑ, Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:8 ../rules/sun.xml.in.h:3
+#: ../rules/base.xml.in.h:7
msgid "101/qwerty/comma/Eliminate dead keys"
msgstr "pc101, qwerty, запÑтаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:9 ../rules/sun.xml.in.h:4
+#: ../rules/base.xml.in.h:8
msgid "101/qwerty/dot/Dead keys"
msgstr "pc101, qwerty, точка, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:10 ../rules/sun.xml.in.h:5
+#: ../rules/base.xml.in.h:9
msgid "101/qwerty/dot/Eliminate dead keys"
msgstr "pc101, qwerty, точка, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:11 ../rules/sun.xml.in.h:6
+#: ../rules/base.xml.in.h:10
msgid "101/qwertz/comma/Dead keys"
msgstr "pc101, qwertz, запÑтаÑ, Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:12
+#: ../rules/base.xml.in.h:11
msgid "101/qwertz/comma/Eliminate dead keys"
msgstr "pc101, qwertz, запÑтаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:13 ../rules/sun.xml.in.h:7
+#: ../rules/base.xml.in.h:12
msgid "101/qwertz/dot/Dead keys"
msgstr "pc101, qwertz, точка, Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:14 ../rules/sun.xml.in.h:8
+#: ../rules/base.xml.in.h:13
msgid "101/qwertz/dot/Eliminate dead keys"
msgstr "pc101, qwertz, точка, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:15 ../rules/sun.xml.in.h:9
+#: ../rules/base.xml.in.h:14
msgid "102/qwerty/comma/Dead keys"
msgstr "pc102, qwerty, запÑтаÑ, Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:16 ../rules/sun.xml.in.h:10
+#: ../rules/base.xml.in.h:15
msgid "102/qwerty/comma/Eliminate dead keys"
msgstr "pc102, qwerty, запÑтаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:17 ../rules/sun.xml.in.h:11
+#: ../rules/base.xml.in.h:16
msgid "102/qwerty/dot/Dead keys"
msgstr "pc102, qwerty, точка, Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:18 ../rules/sun.xml.in.h:12
+#: ../rules/base.xml.in.h:17
msgid "102/qwerty/dot/Eliminate dead keys"
msgstr "pc102, qwerty, точка, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:19 ../rules/sun.xml.in.h:13
+#: ../rules/base.xml.in.h:18
msgid "102/qwertz/comma/Dead keys"
msgstr "pc102, qwertz, запÑтаÑ, Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:20 ../rules/sun.xml.in.h:14
+#: ../rules/base.xml.in.h:19
msgid "102/qwertz/comma/Eliminate dead keys"
msgstr "pc102, qwertz, запÑтаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:21 ../rules/sun.xml.in.h:15
+#: ../rules/base.xml.in.h:20
msgid "102/qwertz/dot/Dead keys"
msgstr "pc102, qwertz, точка, Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:22 ../rules/sun.xml.in.h:16
+#: ../rules/base.xml.in.h:21
msgid "102/qwertz/dot/Eliminate dead keys"
msgstr "pc102, qwertz, точка, иÑключить Ñпециальные клавиши (dead keys)"
+#: ../rules/base.xml.in.h:22
+msgid "2"
+msgstr "2"
+
#: ../rules/base.xml.in.h:23
+msgid "4"
+msgstr "4"
+
+#: ../rules/base.xml.in.h:24
+msgid "5"
+msgstr "5"
+
+#: ../rules/base.xml.in.h:25
msgid "A4Tech KB-21"
msgstr "A4Tech KB-21"
-#: ../rules/base.xml.in.h:24
+#: ../rules/base.xml.in.h:26
msgid "A4Tech KBS-8"
msgstr "A4Tech KBS-8"
-#: ../rules/base.xml.in.h:25
+#: ../rules/base.xml.in.h:27
msgid "A4Tech Wireless Desktop RFKB-23"
msgstr "A4Tech Wireless Desktop RFKB-23"
-#: ../rules/base.xml.in.h:26
+#: ../rules/base.xml.in.h:28
msgid "ACPI Standard"
msgstr "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ ACPI"
-#: ../rules/base.xml.in.h:27
+#: ../rules/base.xml.in.h:29
+msgid "ATM/phone-style"
+msgstr "в Ñтиле банкоматной/телефонной"
+
+#: ../rules/base.xml.in.h:30
msgid "Acer AirKey V"
msgstr "Acer AirKey V"
-#: ../rules/base.xml.in.h:28
+#: ../rules/base.xml.in.h:31
msgid "Acer C300"
msgstr "Acer C300"
-#: ../rules/base.xml.in.h:29
+#: ../rules/base.xml.in.h:32
msgid "Acer Ferrari 4000"
msgstr "Acer Ferrari 4000"
-#: ../rules/base.xml.in.h:30
-msgid "Acer TravelMate 800"
-msgstr "Acer TravelMate 800"
-
-#: ../rules/base.xml.in.h:31
-msgid "Add the EuroSign to the 2 key."
-msgstr "Добавить знак Евро к клавише 2."
-
-#: ../rules/base.xml.in.h:32
-msgid "Add the EuroSign to the 5 key."
-msgstr "Добавить знак Евро к клавише 5."
-
#: ../rules/base.xml.in.h:33
-msgid "Add the EuroSign to the E key."
-msgstr "Добавить знак Евро к клавише E."
+msgid "Acer Laptop"
+msgstr "Ðоутбук Acer"
#: ../rules/base.xml.in.h:34
-msgid "Add the standard behavior to Menu key."
-msgstr "Ðазначить обыкновенное поведение на клавишу Menu"
+msgid "Add the standard behavior to Menu key"
+msgstr "Добавить обыкновенное поведение на клавишу Menu"
#: ../rules/base.xml.in.h:35
-msgid "Adding the EuroSign to certain keys"
-msgstr "Добавить знак Евро к некоторым клавишам"
+msgid "Adding Esperanto circumflexes (supersigno)"
+msgstr "Добавление диакритичеÑких знаков ÑÑперанто"
#: ../rules/base.xml.in.h:36
-msgid "Adding the nobreakspace keysym to space key"
-msgstr "Добавить код запрета разрыва к коду пробела"
+msgid "Adding EuroSign to certain keys"
+msgstr "Добавление знака евро к некоторым клавишам"
#: ../rules/base.xml.in.h:37
msgid "Advance Scorpius KI"
@@ -183,2265 +189,2606 @@ msgid "Albania"
msgstr "ÐлбаниÑ"
#: ../rules/base.xml.in.h:43
-msgid "Alt and Meta are on the Alt keys (default)."
-msgstr "Alt и Meta на клавишах Alt (по умолчанию)."
+msgid "Alt and Meta are on Alt keys"
+msgstr "Alt и Meta на клавишах Alt"
#: ../rules/base.xml.in.h:44
-msgid "Alt is mapped to the right Win-key and Super to Menu."
-msgstr "Alt ÑоответÑтвует правой клавише Win, а Super - Menu."
+msgid "Alt is mapped to Right Win, Super to Menu"
+msgstr "Alt ÑоответÑтвует правой клавише Win, а Super - Menu"
#: ../rules/base.xml.in.h:45
-msgid "Alt+CapsLock changes group."
-msgstr "Клавиши Alt и Caps Lock, нажатые вмеÑте, менÑÑŽÑ‚ группу."
+msgid "Alt+CapsLock"
+msgstr "Alt+CapsLock"
#: ../rules/base.xml.in.h:46
-msgid "Alt+Ctrl changes group."
-msgstr "Alt+Ctrl менÑÑŽÑ‚ группу."
+msgid "Alt+Ctrl"
+msgstr "Alt+Ctrl"
#: ../rules/base.xml.in.h:47
-msgid "Alt+Shift changes group."
-msgstr "Alt+Shift менÑÑŽÑ‚ группу."
+msgid "Alt+Shift"
+msgstr "Alt+Shift"
#: ../rules/base.xml.in.h:48
+msgid "Alt+Space"
+msgstr "Alt+Пробел"
+
+#: ../rules/base.xml.in.h:49
msgid "Alt-Q"
msgstr "Alt-Q"
-#: ../rules/base.xml.in.h:49
+#: ../rules/base.xml.in.h:50
msgid "Alt/Win key behavior"
-msgstr "Клавиши Alt/Win"
+msgstr "Поведение клавиши Alt/Win"
-#: ../rules/base.xml.in.h:50
+#: ../rules/base.xml.in.h:51
msgid "Alternative"
msgstr "ÐльтернативнаÑ"
-#: ../rules/base.xml.in.h:51
+#: ../rules/base.xml.in.h:52
msgid "Alternative Eastern"
msgstr "ÐÐ»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð’Ð¾ÑточнаÑ"
-#: ../rules/base.xml.in.h:52
+#: ../rules/base.xml.in.h:53
+msgid "Alternative Phonetic"
+msgstr "ÐÐ»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð¤Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
+
+#: ../rules/base.xml.in.h:54
msgid "Alternative international (former us_intl)"
msgstr "ÐÐ»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð¼ÐµÐ¶Ð´ÑƒÐ½Ð°Ñ€Ð¾Ð´Ð½Ð°Ñ (Ð±Ñ‹Ð²ÑˆÐ°Ñ us_intl)"
-#: ../rules/base.xml.in.h:53
+#: ../rules/base.xml.in.h:55
msgid "Alternative, Sun dead keys"
msgstr "ÐльтернативнаÑ, Ñпециальные клавиши (dead keys) Sun"
-#: ../rules/base.xml.in.h:54
+#: ../rules/base.xml.in.h:56
msgid "Alternative, eliminate dead keys"
msgstr "ÐльтернативнаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:55
+#: ../rules/base.xml.in.h:57
msgid "Alternative, latin-9 only"
msgstr "ÐльтернативнаÑ, только latin-9"
-#: ../rules/base.xml.in.h:56
+#: ../rules/base.xml.in.h:58
msgid "And"
msgstr "Ðнд"
-#: ../rules/base.xml.in.h:57
+#: ../rules/base.xml.in.h:59
msgid "Andorra"
msgstr "Ðндорра"
-#: ../rules/base.xml.in.h:58
+#: ../rules/base.xml.in.h:60
+msgid "Any Alt key"
+msgstr "Ð›ÑŽÐ±Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt"
+
+#: ../rules/base.xml.in.h:61
+msgid "Any Win key"
+msgstr "Ð›ÑŽÐ±Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win"
+
+#: ../rules/base.xml.in.h:62
+msgid "Any Win key (while pressed)"
+msgstr "Ð›ÑŽÐ±Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win (на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ)"
+
+#: ../rules/base.xml.in.h:63
msgid "Apostrophe (') variant"
msgstr "Вариант Ñ Ð°Ð¿Ð¾Ñтрофом (')"
-#: ../rules/base.xml.in.h:59
+#: ../rules/base.xml.in.h:64
msgid "Apple"
msgstr "Apple"
-#: ../rules/base.xml.in.h:60
+#: ../rules/base.xml.in.h:65
msgid "Apple Laptop"
msgstr "Ðоутбук Apple"
-#: ../rules/base.xml.in.h:61
+#: ../rules/base.xml.in.h:66
msgid "Ara"
msgstr "Ðра"
-#: ../rules/base.xml.in.h:62
+#: ../rules/base.xml.in.h:67
msgid "Arabic"
msgstr "ÐрабÑкаÑ"
-#: ../rules/base.xml.in.h:63
+#: ../rules/base.xml.in.h:68
msgid "Arm"
msgstr "Ðрм"
-#: ../rules/base.xml.in.h:64
+#: ../rules/base.xml.in.h:69
msgid "Armenia"
msgstr "ÐрмениÑ"
-#: ../rules/base.xml.in.h:65
+#: ../rules/base.xml.in.h:70
+msgid "Asturian variant with bottom-dot H and bottom-dot L"
+msgstr "ÐÑтурлеонÑкий вариант Ñ Ð½Ð¸Ð¶Ð½Ð¸Ð¼Ð¸ точками у H и L"
+
+#: ../rules/base.xml.in.h:71
+msgid "Asus Laptop"
+msgstr "Ðоутбук Asus"
+
+#: ../rules/base.xml.in.h:72
+msgid "At bottom left"
+msgstr "Снизу Ñлева"
+
+#: ../rules/base.xml.in.h:73
+msgid "At left of 'A'"
+msgstr "Слева от 'A'"
+
+#: ../rules/base.xml.in.h:74
msgid "Aze"
msgstr "Ðзер"
-#: ../rules/base.xml.in.h:66
+#: ../rules/base.xml.in.h:75
msgid "Azerbaijan"
msgstr "Ðзербайджан"
-#: ../rules/base.xml.in.h:67
+#: ../rules/base.xml.in.h:76
msgid "Azona RF2300 wireless Internet Keyboard"
-msgstr "Azona RF2300 беÑÐ¿Ñ€Ð¾Ð²Ð¾Ð´Ð½Ð°Ñ \"интернет\" клавиатура"
+msgstr "Azona RF2300 wireless Internet Keyboard"
-#: ../rules/base.xml.in.h:68
+#: ../rules/base.xml.in.h:77
msgid "BTC 5090"
msgstr "BTC 5090"
-#: ../rules/base.xml.in.h:69
+#: ../rules/base.xml.in.h:78
msgid "BTC 5113RF Multimedia"
msgstr "BTC 5113RF Multimedia"
-#: ../rules/base.xml.in.h:70
+#: ../rules/base.xml.in.h:79
msgid "BTC 5126T"
msgstr "BTC 5126T"
-#: ../rules/base.xml.in.h:71
+#: ../rules/base.xml.in.h:80
+msgid "BTC 6301URF"
+msgstr "BTC 6301URF"
+
+#: ../rules/base.xml.in.h:81
msgid "BTC 9000"
msgstr "BTC 9000"
-#: ../rules/base.xml.in.h:72
+#: ../rules/base.xml.in.h:82
msgid "BTC 9000A"
msgstr "BTC 9000A"
-#: ../rules/base.xml.in.h:73
+#: ../rules/base.xml.in.h:83
msgid "BTC 9001AH"
msgstr "BTC 9001AH"
-#: ../rules/base.xml.in.h:74
+#: ../rules/base.xml.in.h:84
msgid "BTC 9019U"
msgstr "BTC 9019U"
-#: ../rules/base.xml.in.h:75
+#: ../rules/base.xml.in.h:85
+msgid "BTC 9116U Mini Wireless Internet and Gaming"
+msgstr "BTC 9116U Mini Wireless Internet and Gaming"
+
+#: ../rules/base.xml.in.h:86
+msgid "Baltic+"
+msgstr "Baltic+"
+
+#: ../rules/base.xml.in.h:87
msgid "Ban"
msgstr "Бан"
-#: ../rules/base.xml.in.h:76
+#: ../rules/base.xml.in.h:88
msgid "Bangladesh"
msgstr "Бангладеш"
-#: ../rules/base.xml.in.h:77 ../rules/sun.xml.in.h:22
+#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "БашкирÑкаÑ"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Бельг"
-#: ../rules/base.xml.in.h:78
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "БелоруÑÑиÑ"
-#: ../rules/base.xml.in.h:79
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "БельгиÑ"
-#: ../rules/base.xml.in.h:80
+#: ../rules/base.xml.in.h:93
+msgid "BenQ X-Touch"
+msgstr "BenQ X-Touch"
+
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:81
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:82
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "БенгальÑкаÑ"
-#: ../rules/base.xml.in.h:83
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "БенгальÑÐºÐ°Ñ ÐŸÑ€Ð¾Ð±Ð°Ñ‚"
-#: ../rules/base.xml.in.h:84
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Бепо, ÑргономичнаÑ, Ð¿Ð¾Ñ…Ð¾Ð¶Ð°Ñ Ð½Ð° Dvorak"
-#: ../rules/base.xml.in.h:85
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Бепо, ÑргономичнаÑ, Ð¿Ð¾Ñ…Ð¾Ð¶Ð°Ñ Ð½Ð° Dvorak, только latin-9"
-#: ../rules/base.xml.in.h:86 ../rules/sun.xml.in.h:24
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Болг"
-#: ../rules/base.xml.in.h:87
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Бут"
-#: ../rules/base.xml.in.h:88
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Бутан"
-#: ../rules/base.xml.in.h:89
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "БиблейÑкий иврит (Tiro)"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "БоÑн"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Бел"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "БоÑÐ½Ð¸Ñ Ð¸ Герцеговина"
-#: ../rules/base.xml.in.h:93
-msgid "Both Alt keys together change group."
-msgstr "Обе клавиши Alt, нажатые вмеÑте, менÑÑŽÑ‚ группу."
-
-#: ../rules/base.xml.in.h:94
-msgid "Both Ctrl keys together change group."
-msgstr "Обе клавиши Ctrl, нажатые вмеÑте, менÑÑŽÑ‚ группу."
+#: ../rules/base.xml.in.h:107
+msgid "Both Alt keys together"
+msgstr "Обе клавиши Alt, нажатые вмеÑте"
-#: ../rules/base.xml.in.h:95
-msgid "Both Shift keys together change group."
-msgstr "Обе клавиши Shift, нажатые вмеÑте, менÑÑŽÑ‚ группу."
+#: ../rules/base.xml.in.h:108
+msgid "Both Ctrl keys together"
+msgstr "Обе клавиши Ctrl, нажатые вмеÑте"
-#: ../rules/base.xml.in.h:96
-msgid "Both Win-keys switch group while pressed."
-msgstr "ÐšÐ°Ð¶Ð´Ð°Ñ Ð¸Ð· Win клавиш переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ."
+#: ../rules/base.xml.in.h:109
+msgid "Both Shift keys together"
+msgstr "Обе клавиши Shift, нажатые вмеÑте"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Браз"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:111
+msgid "Braille"
+msgstr "БрайлÑ"
+
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "БразилиÑ"
-#: ../rules/base.xml.in.h:99
-msgid "Brazilian ABNT2"
-msgstr "ABNT2"
+#: ../rules/base.xml.in.h:113
+msgid "Breton"
+msgstr "БретонÑкаÑ"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:114
+msgid "Brl"
+msgstr "Brl"
+
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internet Keyboard"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "БолгариÑ"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:118
+msgid "CRULP"
+msgstr "CRULP"
+
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Камбоджа"
-#: ../rules/base.xml.in.h:104 ../rules/sun.xml.in.h:29
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Кан"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Канада"
-#: ../rules/base.xml.in.h:106
-msgid "Caps Lock is Compose."
-msgstr "Клавиша Caps Lock ÑоответÑтвует клавише Compose."
+#: ../rules/base.xml.in.h:122
+msgid "Caps Lock"
+msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:107
-msgid "CapsLock LED shows alternative group."
-msgstr "Индикатор CapsLock отображает другую группу."
+#: ../rules/base.xml.in.h:123
+msgid "CapsLock"
+msgstr "CapsLock"
-#: ../rules/base.xml.in.h:108
-msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock."
-msgstr ""
-"ДейÑтвует как Shift Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¾Ð¹. Shift приоÑтанавливает дейÑтвие CapsLock."
+#: ../rules/base.xml.in.h:124
+msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
+msgstr "CapsLock (на первую раÑкладку), Shift+CapsLock (на поÑледнюю раÑкладку)"
-#: ../rules/base.xml.in.h:109
-msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock."
-msgstr "ДейÑтвует как Shift Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¾Ð¹. Shift не влиÑет на CapsLock."
+#: ../rules/base.xml.in.h:125
+msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
+msgstr "CapsLock (пока нажата), Alt+CapsLock выполнÑет первоначальную функцию capslock"
-#: ../rules/base.xml.in.h:110
-msgid "CapsLock just locks the Shift modifier."
-msgstr "ПроÑто блокирует модификатор Shift."
+#: ../rules/base.xml.in.h:126
+msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
+msgstr "CapsLock дейÑтвует как Shift Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¾Ð¹. Shift приоÑтанавливает дейÑтвие CapsLock"
-#: ../rules/base.xml.in.h:111 ../rules/sun.xml.in.h:33
-msgid "CapsLock key behavior"
-msgstr "Клавиша Caps Lock"
+#: ../rules/base.xml.in.h:127
+msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
+msgstr "CapsLock дейÑтвует как Shift Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¾Ð¹. Shift не влиÑет на CapsLock"
-#: ../rules/base.xml.in.h:112
-msgid "CapsLock key changes group."
-msgstr "Клавиша CapsLock менÑет группу."
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock выключен"
-#: ../rules/base.xml.in.h:113
-msgid "CapsLock toggles Shift so all keys are affected."
-msgstr ""
-"CapsLock включает Shift, таким образом что, он дейÑтвует Ñразу на вÑе "
-"клавиши."
+#: ../rules/base.xml.in.h:129
+msgid "CapsLock key behavior"
+msgstr "Поведение клавиши CapsLock"
-#: ../rules/base.xml.in.h:114
-msgid "CapsLock toggles normal capitalization of alphabetic characters."
-msgstr "Включает обычную капитализацию Ñимволов алфавита."
+#: ../rules/base.xml.in.h:130
+msgid "CapsLock toggles Shift so all keys are affected"
+msgstr "CapsLock включает Shift, таким образом что, он дейÑтвует Ñразу на вÑе клавиши"
-#: ../rules/base.xml.in.h:115
-msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock."
-msgstr ""
-"Включает внутреннюю капитализацию. Shift приоÑтанавливает дейÑтвие CapsLock."
+#: ../rules/base.xml.in.h:131
+msgid "CapsLock toggles normal capitalization of alphabetic characters"
+msgstr "CapsLock включает обычную капитализацию Ñимволов алфавита"
-#: ../rules/base.xml.in.h:116
-msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock."
-msgstr "Включает внутреннюю капитализацию. Shift не влиÑет на CapsLock."
+#: ../rules/base.xml.in.h:132
+msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
+msgstr "CapsLock включает внутреннюю капитализацию. Shift приоÑтанавливает дейÑтвие CapsLock"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:133
+msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
+msgstr "CapsLock включает внутреннюю капитализацию. Shift не влиÑет на CapsLock"
+
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
-msgstr "КаталонÑкий вариант Ñо Ñредней L"
+msgstr "КаталонÑкий вариант Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ в L поÑередине"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:135
+msgid "Cedilla"
+msgstr "Седиль"
+
+#: ../rules/base.xml.in.h:136
msgid "Che"
-msgstr "Швейц."
+msgstr "Швейц"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:137
+msgid "Cherokee"
+msgstr "Чероки"
+
+#: ../rules/base.xml.in.h:138
+msgid "Cherry B.UNLIMITED"
+msgstr "Cherry B.UNLIMITED"
+
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (альтернативный вариант)"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-Hub"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:142
+msgid "Cherry CyMotion Expert"
+msgstr "Cherry CyMotion Expert"
+
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:144
+msgid "Cherry CyMotion Master XPress"
+msgstr " Cherry CyMotion Master Linux"
+
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internet Keyboard"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:147
+msgid "Chicony KU-0108"
+msgstr "Chicony KU-0108"
+
+#: ../rules/base.xml.in.h:148
+msgid "Chicony KU-0420"
+msgstr "Chicony KU-0420"
+
+#: ../rules/base.xml.in.h:149
+msgid "China"
+msgstr "Китай"
+
+#: ../rules/base.xml.in.h:150
+msgid "Chuvash"
+msgstr "ЧувашиÑ"
+
+#: ../rules/base.xml.in.h:151
+msgid "Chuvash Latin"
+msgstr "ЧувашиÑ, Латиница"
+
+#: ../rules/base.xml.in.h:152
+msgid "Classic"
+msgstr "КлаÑÑичеÑкаÑ"
+
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "КлаÑÑичеÑÐºÐ°Ñ Dvorak"
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:154
+msgid "Classmate PC"
+msgstr "Classmate PC"
+
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:156
+msgid "Colemak"
+msgstr "Colemak"
+
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access Keyboard"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internet Keyboard (13 клавиш)"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internet Keyboard (18 клавиш)"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internet Keyboard (7 клавиш)"
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq Keyboard"
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Положение клавиши Compose"
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Конго, ДемократичеÑÐºÐ°Ñ Ñ€ÐµÑпублика"
-#: ../rules/base.xml.in.h:134
-msgid "Control is mapped to the Win-keys (and the usual Ctrl keys)."
-msgstr "Control иÑпользуетÑÑ Ð² качеÑтве клавиш Win (и как обычный Control)."
+#: ../rules/base.xml.in.h:164
+msgid "Control + Alt + Backspace"
+msgstr "Control + Alt + Backspace"
-#: ../rules/base.xml.in.h:135
-msgid "Croatia"
-msgstr "ХорватиÑ"
+#: ../rules/base.xml.in.h:165
+msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
+msgstr "Control иÑпользуетÑÑ Ð² качеÑтве клавиш Alt, Alt иÑпользуетÑÑ Ð² качеÑтве клавиш Win"
-#: ../rules/base.xml.in.h:136
-msgid "Ctrl key at bottom left"
-msgstr "Клавиша Ctrl Ñнизу Ñлева"
+#: ../rules/base.xml.in.h:166
+msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
+msgstr "Control иÑпользуетÑÑ Ð² качеÑтве клавиш Win (и как обычный Control)"
-#: ../rules/base.xml.in.h:137
-msgid "Ctrl key at left of 'A'"
-msgstr "Клавиша Ctrl Ñлева от 'Ф'"
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:168
+msgid "Crimean Tatar (Dobruca-1 Q)"
+msgstr "КрымÑкотатарÑÐºÐ°Ñ (Dobruca-1 Q)"
+
+#: ../rules/base.xml.in.h:169
+msgid "Crimean Tatar (Dobruca-2 Q)"
+msgstr "КрымÑкотатарÑÐºÐ°Ñ (Dobruca-2 Q)"
+
+#: ../rules/base.xml.in.h:170
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr "КрымÑкотатарÑÐºÐ°Ñ (Ñ‚ÑƒÑ€ÐµÑ†ÐºÐ°Ñ Alt-Q)"
+
+#: ../rules/base.xml.in.h:171
+msgid "Crimean Tatar (Turkish F)"
+msgstr "КрымÑкотатарÑÐºÐ°Ñ (Ñ‚ÑƒÑ€ÐµÑ†ÐºÐ°Ñ F)"
+
+#: ../rules/base.xml.in.h:172
+msgid "Crimean Tatar (Turkish Q)"
+msgstr "КрымÑкотатарÑÐºÐ°Ñ (Ñ‚ÑƒÑ€ÐµÑ†ÐºÐ°Ñ Q)"
+
+#: ../rules/base.xml.in.h:173
+msgid "Croatia"
+msgstr "ХорватиÑ"
+
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Положение клавиши Ctrl"
-#: ../rules/base.xml.in.h:139
-msgid "Ctrl+Shift changes group."
-msgstr "Ctrl+Shift менÑÑŽÑ‚ группу."
+#: ../rules/base.xml.in.h:175
+msgid "Ctrl+Shift"
+msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Кириллица"
-#: ../rules/base.xml.in.h:141 ../rules/sun.xml.in.h:39
+#: ../rules/base.xml.in.h:177
+msgid "Cyrillic with guillemets"
+msgstr "Кириллица Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ°Ð¼Ð¸ ёлочками"
+
+#: ../rules/base.xml.in.h:178
+msgid "Cyrillic, Z and ZHE swapped"
+msgstr "Кириллица, З и Ж переÑтавлены меÑтами"
+
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Чех"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "ЧехиÑ"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:181
+msgid "DOS"
+msgstr "DOS"
+
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "ДРК"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:145 ../rules/sun.xml.in.h:42
+#: ../rules/base.xml.in.h:184
+msgid "Dan"
+msgstr "Дан"
+
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Спец. Ñимвол Dead acute"
-#: ../rules/base.xml.in.h:146 ../rules/sun.xml.in.h:43
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Спец. Ñимвол Dead grave acute"
-#: ../rules/base.xml.in.h:147
-msgid "Default numpad keys."
+#: ../rules/base.xml.in.h:187
+msgid "Default numeric keypad keys"
msgstr "Клавиши цифровой клавиатуры по умолчанию"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-клавишный PC"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Ðоутбуки Dell Inspiron Ñерий 6xxx/8xxx"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:191
+msgid "Dell Laptop/notebook Precision M series"
+msgstr "Ðоутбуки Dell Precision Ñерий M"
+
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Ðоутбук Dell Ñерии Latitude"
-#: ../rules/base.xml.in.h:152
-msgid "Dell USB Multimedia Keybard"
+#: ../rules/base.xml.in.h:193
+msgid "Dell Precision M65"
+msgstr "Dell Precision M65"
+
+#: ../rules/base.xml.in.h:194
+msgid "Dell SK-8125"
+msgstr "Dell SK-8125"
+
+#: ../rules/base.xml.in.h:195
+msgid "Dell SK-8135"
+msgstr "Dell SK-8135"
+
+#: ../rules/base.xml.in.h:196
+msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB Multimedia Keyboard"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "ДаниÑ"
-#: ../rules/base.xml.in.h:154 ../rules/sun.xml.in.h:44
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Ðем"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa Wireless Desktop Keyboard"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Модели Diamond 9801/9802"
-#: ../rules/base.xml.in.h:157 ../rules/sun.xml.in.h:46
-msgid "Dnk"
-msgstr "Дат"
-
-#: ../rules/base.xml.in.h:158 ../rules/sun.xml.in.h:48
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:159
-msgid "Dvorak, Polish quotes on key \"1/!\""
-msgstr "Dvorak, польÑкие кавычки на клавише \"1/!\""
+#: ../rules/base.xml.in.h:202
+msgid "Dvorak (UK Punctuation)"
+msgstr "Дворак (английÑÐºÐ°Ñ Ñ€Ð°ÑÑтановка)"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:203
+msgid "Dvorak international"
+msgstr "Дворак, международнаÑ"
+
+#: ../rules/base.xml.in.h:204
+msgid "Dvorak, Polish quotes on key 1"
+msgstr "Дворак, польÑкие кавычки на клавише 1"
+
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
-msgstr "Dvorak, польÑкие кавычки на клавишах Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ°Ð¼Ð¸"
+msgstr "Дворак, польÑкие кавычки на клавишах Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ°Ð¼Ð¸"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:206
+msgid "E"
+msgstr "E"
+
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "ВоÑточный"
-#: ../rules/base.xml.in.h:162 ../rules/sun.xml.in.h:49
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "ИÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:209
+msgid "Enable extra typographic characters"
+msgstr "Включить дополнительные типографÑкие Ñимволы"
+
+#: ../rules/base.xml.in.h:210
+msgid "English"
+msgstr "ÐнглийÑкаÑ"
+
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:212
+msgid "Enter on keypad"
+msgstr "Enter на цифровой клавиатуре"
+
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "ЭÑп"
-#: ../rules/base.xml.in.h:165 ../rules/sun.xml.in.h:50
+#: ../rules/base.xml.in.h:214
+msgid "Ergonomic"
+msgstr "Ergonomic"
+
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "ИÑп"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "ЭÑперанто"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "ЭÑÑ‚"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "ЭÑтониÑ"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:219
+msgid "Eth"
+msgstr "Эфи"
+
+#: ../rules/base.xml.in.h:220
+msgid "Ethiopia"
+msgstr "ЭфиопиÑ"
+
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
-msgstr "Клавиатура управлÑÐµÐ¼Ð°Ñ Ð¿Ð¾ÑредÑтвом Evdev"
+msgstr "Клавиатура, управлÑÐµÐ¼Ð°Ñ Ð¿Ð¾ÑредÑтвом Evdev"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Эве"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "РаÑширеннаÑ"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:225
+msgid "Extended - Winkeys"
+msgstr "РаÑширеннаÑ, клавиши Win"
+
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "РаÑширенные функции Backslash"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "Вариант Ñ F"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:228
+msgid "FL90"
+msgstr "FL90"
+
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Фар"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "ОÑтрова Фаро"
-#: ../rules/base.xml.in.h:177 ../rules/sun.xml.in.h:51
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Фин"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "ФинлÑндиÑ"
-#: ../rules/base.xml.in.h:179 ../rules/sun.xml.in.h:53
+#. This assumes the KP_ abstract symbols are actually useful for some apps
+#. The description needs to be rewritten
+#: ../rules/base.xml.in.h:235
+msgid "Four-level key with abstract separators"
+msgstr "Четырёх-ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ñ Ð°Ð±Ñтрактными разделителÑми"
+
+#: ../rules/base.xml.in.h:236
+msgid "Four-level key with comma"
+msgstr "Четырёх-ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ñ Ð·Ð°Ð¿Ñтой"
+
+#: ../rules/base.xml.in.h:237
+msgid "Four-level key with dot"
+msgstr "Четырёх-ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹"
+
+#: ../rules/base.xml.in.h:238
+msgid "Four-level key with dot, latin-9 restriction"
+msgstr "Четырёх-ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹, ограничена latin-9"
+
+#: ../rules/base.xml.in.h:239
+msgid "Four-level key with momayyez"
+msgstr "Четырёх-ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ñ momayyez"
+
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Фр"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "ФранциÑ"
-#: ../rules/base.xml.in.h:181 ../rules/sun.xml.in.h:55
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "ФранцузÑкаÑ"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "ФранцузÑÐºÐ°Ñ (Macintosh)"
-#: ../rules/base.xml.in.h:183 ../rules/sun.xml.in.h:56
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "ФранцузÑÐºÐ°Ñ (унаÑледованнаÑ)"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "ФранцузÑÐºÐ°Ñ Dvorak"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "ФранцузÑкаÑ, Ñпециальные клавиши (dead keys) Sun"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "ФранцузÑкаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:248
+msgid "Fujitsu-Siemens Computers AMILO laptop"
+msgstr "Ðоутбук Fujitsu-Siemens Computers AMILO"
+
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Фула"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "Брит"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Га"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
-msgstr "Обычный 101-клавишный PC"
+msgstr "Обычный 101-клавишный ПК"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
-msgstr "Обычный 102-клавишный PC"
+msgstr "Обычный 102-клавишный (межд) ПК"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
-msgstr "Обычный 104-клавишный PC"
+msgstr "Обычный 104-клавишный ПК"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
-msgstr "Обычный 105-клавишный (Инт.) РС"
+msgstr "Обычный 105-клавишный (межд) ПК"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:260
+msgid "Genius KKB-2050HS"
+msgstr "Genius KKB-2050HS"
+
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Груз"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "ГрузиÑ"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:263
+msgid "Georgian"
+msgstr "ГрузинÑкаÑ"
+
+#: ../rules/base.xml.in.h:264
+msgid "Georgian AZERTY Tskapo"
+msgstr "ГрузинÑÐºÐ°Ñ AZERTY Tskapo"
+
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "ÐÐµÐ¼ÐµÑ†ÐºÐ°Ñ (Macintosh)"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "ÐемецкаÑ, Ñпециальные клавиши (dead keys) Sun"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "ÐемецкаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "ГерманиÑ"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Ган"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Гана"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Гре"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "ГрециÑ"
-#: ../rules/base.xml.in.h:208 ../rules/sun.xml.in.h:58
-msgid "Group Shift/Lock behavior"
-msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ñмены раÑкладки"
+#: ../rules/base.xml.in.h:273
+msgid "Group toggle on multiply/divide key"
+msgstr "Переключение групп по клавише умножениÑ/делениÑ"
+
+#: ../rules/base.xml.in.h:274
+msgid "Gui"
+msgstr "Гви"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:275
+msgid "Guinea"
+msgstr "ГвинеÑ"
+
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Гуджарати"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Гурмукхи"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:278
+msgid "Gurmukhi Jhelum"
+msgstr "Гурмукхи Jhelum"
+
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Гирашн"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:280
+msgid "Happy Hacking Keyboard"
+msgstr "Happy Hacking Keyboard"
+
+#: ../rules/base.xml.in.h:281
+msgid "Happy Hacking Keyboard for Mac"
+msgstr "Happy Hacking Keyboard Ð´Ð»Ñ Mac"
+
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Хауза"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internet Keyboard"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:221
-msgid "Hewlett-Packard SK-2501 Multimedia Keyboard"
-msgstr "Hewlett-Packard SK-2501 Multimedia Keyboard"
+#: ../rules/base.xml.in.h:291
+msgid "Hewlett-Packard Pavilion dv5"
+msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:222
-msgid "Hewlett-Packard SK-2505 Internet Keyboard"
-msgstr "Hewlett-Packard SK-2505 Internet Keyboard"
+#: ../rules/base.xml.in.h:292
+msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
+msgstr "Hewlett-Packard SK-250x Multimedia Keyboard"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:293
+msgid "Hewlett-Packard nx9020"
+msgstr "Hewlett-Packard nx9020"
+
+#: ../rules/base.xml.in.h:294
+msgid "Hexadecimal"
+msgstr "ШеÑтнадцатеричнаÑ"
+
+#: ../rules/base.xml.in.h:295
+msgid "Hindi Bolnagri"
+msgstr "Хинди Болнагри"
+
+#: ../rules/base.xml.in.h:296
+msgid "Hindi Wx"
+msgstr "Хинди Wx"
+
+#: ../rules/base.xml.in.h:297
+msgid "Homophonic"
+msgstr "ОмофоничеÑкаÑ"
+
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Хорв"
-#: ../rules/base.xml.in.h:225 ../rules/sun.xml.in.h:59
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Венг"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "ВенгриÑ"
-#: ../rules/base.xml.in.h:227
-msgid "Hyper is mapped to the Win-keys."
+#: ../rules/base.xml.in.h:302
+msgid "Hyper is mapped to Win-keys"
msgstr "Hyper ÑоответÑтвует клавишам Win"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:230
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:231
-msgid "IBM Rapid Access II (alternate option)"
-msgstr "IBM Rapid Access II (альтернативный вариант)"
+#: ../rules/base.xml.in.h:306
+msgid "IBM Space Saver"
+msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
+msgstr "IBM ThinkPad 560Z/600/600E/A22E, международный"
-#: ../rules/base.xml.in.h:234 ../rules/sun.xml.in.h:61
+#: ../rules/base.xml.in.h:309
+msgid "IBM ThinkPad R60/T60/R61/T61"
+msgstr "IBM ThinkPad R60/T60/R61/T61"
+
+#: ../rules/base.xml.in.h:310
+msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
+msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
+
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ISO"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "ИÑландиÑ"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:314
+msgid "Include dead tilde"
+msgstr "Включить \"Ñпециальную\" тильду"
+
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Инд"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "ИндиÑ"
-#: ../rules/base.xml.in.h:239 ../rules/sun.xml.in.h:62
+#: ../rules/base.xml.in.h:317
+msgid "International (AltGr dead keys)"
+msgstr "МеждународнаÑ, AltGr и Ñпец. клавишами ( dead keys)"
+
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "МеждународнаÑ, Ñо Ñпец. клавишами (dead keys)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "ИннуитÑкаÑ"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Иран"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Ирак"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "ИрландиÑ"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Ирл"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "ПерÑ"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Ирк"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "ИÑл"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Ивр"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Израиль"
-#: ../rules/base.xml.in.h:250 ../rules/sun.xml.in.h:63
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ит"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "ИталиÑ"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "ЯпониÑ"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japan (PC-98xx Series)"
-#: ../rules/base.xml.in.h:254
-msgid "Japanese 106-key"
-msgstr "ЯпонÑÐºÐ°Ñ 106-клавишнаÑ"
+#: ../rules/base.xml.in.h:333
+msgid "Japanese keyboard options"
+msgstr "ÐаÑтройки ÑпонÑкой клавиатуры"
-#: ../rules/base.xml.in.h:255 ../rules/sun.xml.in.h:66
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Яп"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:335
+msgid "Kalmyk"
+msgstr "КалмыкÑкаÑ"
+
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Кана"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:337
+msgid "Kana Lock key is locking"
+msgstr "Кана блокируетÑÑ ÐºÐ»Ð°Ð²Ð¸ÑˆÐµÐ¹ Lock"
+
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Каннада"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "КашубÑкий"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Каз"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "КазахÑкий Ñ Ð ÑƒÑÑким"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "КазахÑтан"
-#: ../rules/base.xml.in.h:262
-msgid "Keypad"
-msgstr "С доп. панелью"
+#: ../rules/base.xml.in.h:343
+msgid "Key sequence to kill the X server"
+msgstr "ÐšÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ Ð´Ð»Ñ Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ X-Ñервера"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:344
+msgid "Key to choose 3rd level"
+msgstr "Клавиша Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° 3-го уровнÑ"
+
+#: ../rules/base.xml.in.h:345
+msgid "Key(s) to change layout"
+msgstr "Клавиша(Ñ‹) Ð´Ð»Ñ Ñмены раÑкладки"
+
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:347
+msgid "Kgz"
+msgstr "Кир"
+
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Кхм"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:349
+msgid "Komi"
+msgstr "Коми"
+
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Кор"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "РеÑпублика КореÑ"
-#: ../rules/base.xml.in.h:267
-msgid "Korean 106-key"
-msgstr "КорейÑÐºÐ°Ñ 106-клавишнаÑ"
-
-#: ../rules/base.xml.in.h:268
-msgid "Kotoistus"
-msgstr "КотоиÑтуÑ"
+#: ../rules/base.xml.in.h:352
+msgid "Ktunaxa"
+msgstr "Кутенай"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "КурдÑкаÑ, (F)"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "КурдÑкаÑ, ÐрабÑко-латинÑкаÑ"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "КурдÑкаÑ, Латиница Alt-Q"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "КурдÑкаÑ, Латиница Q"
-#: ../rules/base.xml.in.h:273
-msgid "Kyr"
-msgstr "Кыр"
-
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "КиргизиÑ"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "ЛатÐм"
-#: ../rules/base.xml.in.h:276
-msgid "LCtrl+LShift changes group."
-msgstr "LCtrl+LShift менÑÑŽÑ‚ группу."
+#: ../rules/base.xml.in.h:359
+msgid "LEKP"
+msgstr "LEKP"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:360
+msgid "LEKPa"
+msgstr "LEKPa"
+
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Лао"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "ЛаоÑ"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Клавиатура Ð´Ð»Ñ Ð½Ð¾ÑƒÑ‚Ð±ÑƒÐºÐ¾Ð² Compaq (например Armada)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "\"Интернет\" клавиатура Ð´Ð»Ñ Ð½Ð¾ÑƒÑ‚Ð±ÑƒÐºÐ¾Ð² Compaq (например Presario)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Ðоутбуки eMachines m68xx"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "ЛатинÑкаÑ"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "ЛатиноамериканÑкаÑ"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
-msgstr "ЛатинÑÐºÐ°Ñ Unicode"
+msgstr "ЛатинÑÐºÐ°Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´Ð½Ð°Ñ"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
-msgstr "ЛатинÑÐºÐ°Ñ Unicode qwerty"
+msgstr "ЛатинÑÐºÐ°Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´Ð½Ð°Ñ qwerty"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "ЛатинÑÐºÐ°Ñ qwerty"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:371
+msgid "Latin unicode"
+msgstr "ЛатинÑÐºÐ°Ñ ÑŽÐ½Ð¸ÐºÐ¾Ð´Ð½Ð°Ñ"
+
+#: ../rules/base.xml.in.h:372
+msgid "Latin unicode qwerty"
+msgstr "ЛатинÑÐºÐ°Ñ ÑŽÐ½Ð¸ÐºÐ¾Ð´Ð½Ð°Ñ qwerty"
+
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
-msgstr "ЛатинÑÐºÐ°Ñ Ñ Ñ„Ñ€Ð°Ð½Ñ†ÑƒÐ·Ñкими кавычками"
+msgstr "ЛатинÑÐºÐ°Ñ Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ°Ð¼Ð¸ ёлочками"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "ЛатвиÑ"
-#: ../rules/base.xml.in.h:289
-msgid "Left Alt is swapped with left Win-key."
-msgstr "Левый Alt поменÑн меÑтами Ñ Ð»ÐµÐ²Ð¾Ð¹ клавишей Win"
+#: ../rules/base.xml.in.h:375
+msgid "Lav"
+msgstr "Лат"
-#: ../rules/base.xml.in.h:290
-msgid "Left Alt key changes group."
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt менÑет группу."
+#: ../rules/base.xml.in.h:376
+msgid "Left Alt"
+msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt"
-#: ../rules/base.xml.in.h:291
-msgid "Left Alt key switches group while pressed."
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ."
+#: ../rules/base.xml.in.h:377
+msgid "Left Alt (while pressed)"
+msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt (пока нажата)"
-#: ../rules/base.xml.in.h:292
-msgid "Left Ctrl key changes group."
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl менÑет группу."
+#: ../rules/base.xml.in.h:378
+msgid "Left Alt is swapped with Left Win"
+msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt поменÑна меÑтами Ñ Ð»ÐµÐ²Ð¾Ð¹ клавишей Win"
-#: ../rules/base.xml.in.h:293
-msgid "Left Shift key changes group."
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Shift менÑет группу."
+#: ../rules/base.xml.in.h:379
+msgid "Left Ctrl"
+msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl"
-#: ../rules/base.xml.in.h:294
-msgid "Left Win-key changes group."
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win менÑет группу."
+#: ../rules/base.xml.in.h:380
+msgid "Left Ctrl+Left Shift"
+msgstr "Левый Ctrl+Левый Shift"
-#: ../rules/base.xml.in.h:295
-msgid "Left Win-key is Compose."
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win ÑоответÑтвует клавише Compose."
+#: ../rules/base.xml.in.h:381
+msgid "Left Shift"
+msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Shift"
-#: ../rules/base.xml.in.h:296
-msgid "Left Win-key switches group while pressed."
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ."
+#: ../rules/base.xml.in.h:382
+msgid "Left Win"
+msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:383
+msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
+msgstr "Ð›ÐµÐ²Ð°Ñ Win (на первую раÑкладку), ÐŸÑ€Ð°Ð²Ð°Ñ Win/Menu (на поÑледнюю раÑкладку)"
+
+#: ../rules/base.xml.in.h:384
+msgid "Left Win (while pressed)"
+msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win (пока нажата)"
+
+#: ../rules/base.xml.in.h:385
+msgid "Left hand"
+msgstr "Ð”Ð»Ñ Ð»ÐµÐ²ÑˆÐµÐ¹"
+
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
-msgstr "Dvorak Ð´Ð»Ñ Ð»ÐµÐ²ÑˆÐµÐ¹"
+msgstr "Дворак Ð´Ð»Ñ Ð»ÐµÐ²ÑˆÐµÐ¹"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:387
+msgid "Legacy"
+msgstr "Legacy"
+
+#: ../rules/base.xml.in.h:388
+msgid "Legacy Wang 724"
+msgstr "Legacy Wang 724"
+
+#. Actually, with KP_SEPARATOR, as the old keypad(comma)
+#: ../rules/base.xml.in.h:390
+msgid "Legacy key with comma"
+msgstr "Клавиша Legacy Ñ Ð·Ð°Ð¿Ñтой"
+
+#: ../rules/base.xml.in.h:391
+msgid "Legacy key with dot"
+msgstr "Клавиша Legacy Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹"
+
+#: ../rules/base.xml.in.h:392
+msgid "Less-than/Greater-than"
+msgstr "Меньше чем/Больше чем"
+
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Литва"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:396
+msgid "Logitech Cordless Desktop (alternate option)"
+msgstr "Logitech Cordless Desktop (альтернативный вариант)"
+
+#: ../rules/base.xml.in.h:397
+msgid "Logitech Cordless Desktop EX110"
+msgstr "Logitech Cordless Desktop EX110"
+
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:304
-msgid "Logitech Cordless Desktop Pro"
-msgstr "Logitech Cordless Desktop Pro"
-
-#: ../rules/base.xml.in.h:305
-msgid "Logitech Cordless Desktop Pro (alternate option)"
-msgstr "Logitech Cordless Desktop Pro (альтернативный вариант)"
-
-#: ../rules/base.xml.in.h:306
-msgid "Logitech Cordless Desktop Pro (alternate option2)"
+#: ../rules/base.xml.in.h:401
+msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (альтернативный вариант 2)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
-msgstr "Дополнительные клавиши Logitech G15 Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ демона G15"
+msgstr "Дополнительные клавиши Logitech G15 Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñлужбы G15"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:405
+msgid "Logitech Generic Keyboard"
+msgstr "Logitech Generic Keyboard"
+
+#: ../rules/base.xml.in.h:406
+msgid "Logitech Internet 350 Keyboard"
+msgstr "Logitech Internet 350 Keyboard"
+
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internet Keyboard"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator Keyboard"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:409
+msgid "Logitech Media Elite Keyboard"
+msgstr "Logitech Media Elite Keyboard"
+
+#: ../rules/base.xml.in.h:410
+msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
+msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
+
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:412
+msgid "Logitech diNovo Edge Keyboard"
+msgstr "Logitech diNovo Edge Keyboard"
+
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (модель Y-RB6)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:418
+msgid "Lower Sorbian"
+msgstr "Ðижнелужицкий"
+
+#: ../rules/base.xml.in.h:419
+msgid "Lower Sorbian (qwertz)"
+msgstr "Ðижнелужицкий (qwertz)"
+
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Лит"
-#: ../rules/base.xml.in.h:319
-msgid "Lva"
-msgstr "Латв"
+#: ../rules/base.xml.in.h:421
+msgid "MESS"
+msgstr "MESS"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:422
+msgid "MNE"
+msgstr "MNE"
+
+#: ../rules/base.xml.in.h:423
+msgid "MacBook/MacBook Pro"
+msgstr "MacBook/MacBook Pro"
+
+#: ../rules/base.xml.in.h:424
+msgid "MacBook/MacBook Pro (Intl)"
+msgstr "MacBook/MacBook Pro (межд)"
+
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "МакедониÑ"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Старый Macintosh"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, Ñпециальные клавиши (dead keys) Sun"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:325
-msgid "Make CapsLock an additional Ctrl."
-msgstr "ИÑпользовать CapsLock как дополнительную клавишу Ctrl."
+#: ../rules/base.xml.in.h:430
+msgid "Make CapsLock an additional Backspace"
+msgstr "ИÑпользовать CapsLock как дополнительную клавишу Backspace"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:431
+msgid "Make CapsLock an additional Ctrl"
+msgstr "ИÑпользовать CapsLock как дополнительную клавишу Ctrl"
+
+#: ../rules/base.xml.in.h:432
+msgid "Make CapsLock an additional ESC"
+msgstr "ИÑпользовать CapsLock как дополнительную клавишу ESC"
+
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "ИÑпользовать CapsLock как дополнительную клавишу Hyper"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "ИÑпользовать CapsLock как дополнительную клавишу NumLock"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "ИÑпользовать CapsLock как дополнительную клавишу Super"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Мал"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Малайaлам"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:438
+msgid "Malayalam Lalitha"
+msgstr "Малайaлам (Lalitha)"
+
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Мальдивы"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Мальта"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "МальтийÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° Ñ Ñ€Ð°Ñкладкой US"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Мао"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Маори"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access Keyboard"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:336
-msgid "Menu is Compose."
-msgstr "Клавиша Menu ÑоответÑтвует клавише Compose."
+#: ../rules/base.xml.in.h:447
+msgid "Menu"
+msgstr "Menu"
-#: ../rules/base.xml.in.h:337
-msgid "Menu key changes group."
-msgstr "Клавиша Menu менÑет группу."
+#: ../rules/base.xml.in.h:448
+msgid "Meta is mapped to Left Win"
+msgstr "Meta ÑоответÑтвует левой клавише Win"
-#: ../rules/base.xml.in.h:338
-msgid "Meta is mapped to the Win-keys."
+#: ../rules/base.xml.in.h:449
+msgid "Meta is mapped to Win keys"
msgstr "Meta ÑоответÑтвует клавишам Win"
-#: ../rules/base.xml.in.h:339
-msgid "Meta is mapped to the left Win-key."
-msgstr "Meta ÑоответÑтвует левой клавише Win"
+#: ../rules/base.xml.in.h:450
+msgid "Microsoft Comfort Curve Keyboard 2000"
+msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, шведÑкаÑ"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:454
+msgid "Microsoft Natural Keyboard Elite"
+msgstr "Microsoft Natural Keyboard Elite"
+
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:458
+msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
+
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office Keyboard"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:348 ../rules/sun.xml.in.h:72
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Разные параметры ÑовмеÑтимоÑти"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Мак"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Мальт"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "МьÑнм"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Монг"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "МонголиÑ"
-#: ../rules/base.xml.in.h:354 ../rules/sun.xml.in.h:73
+#: ../rules/base.xml.in.h:467
+msgid "Montenegro"
+msgstr "ЧерногориÑ"
+
+#: ../rules/base.xml.in.h:468
+msgid "Morocco"
+msgstr "Марокко"
+
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "МногоÑзычнаÑ"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "МногоÑзычнаÑ, Ð¿ÐµÑ€Ð²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ"
-#: ../rules/base.xml.in.h:356 ../rules/sun.xml.in.h:74
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "МногоÑзычнаÑ, Ð²Ñ‚Ð¾Ñ€Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
-msgstr "МьÑнмар"
+msgstr "МьÑнма"
-#: ../rules/base.xml.in.h:358
-msgid "Neostyle"
-msgstr "Neostyle"
+#: ../rules/base.xml.in.h:473
+msgid "NICOLA-F style Backspace"
+msgstr "Backspace в Ñтиле NICOLA-F"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:474
+msgid "NLA"
+msgstr "NLA"
+
+#: ../rules/base.xml.in.h:475
+msgid "Nativo"
+msgstr "Nativo"
+
+#: ../rules/base.xml.in.h:476
+msgid "Nativo for Esperanto"
+msgstr "Nativo Ð´Ð»Ñ ÑÑперанто"
+
+#: ../rules/base.xml.in.h:477
+msgid "Nativo for USA keyboards"
+msgstr "Nativo Ð´Ð»Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€ в СШÐ"
+
+#: ../rules/base.xml.in.h:478
+msgid "Neo 2"
+msgstr "Neo 2"
+
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Ðеп"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Ðепал"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Ðидерланды"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "ÐÐ¾Ð²Ð°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
+
+#: ../rules/base.xml.in.h:483
+msgid "Nig"
+msgstr "Ðиг"
+
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "ÐигериÑ"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Флам"
-#: ../rules/base.xml.in.h:364 ../rules/sun.xml.in.h:75
+#: ../rules/base.xml.in.h:486
+msgid "Non-breakable space character at fourth level"
+msgstr "Символ неразрывного пробела на четвёртом уровне"
+
+#: ../rules/base.xml.in.h:487
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
+msgstr "Символ неразрывного пробела на четвёртом уровне, Ñимвол тонкого неразрывного пробела на шеÑтом уровне"
+
+#: ../rules/base.xml.in.h:488
+msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
+msgstr "Символ неразрывного пробела на четвёртом уровне, Ñимвол тонкого неразрывного пробела на шеÑтом уровне (Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ctrl+Shift)"
+
+#: ../rules/base.xml.in.h:489
+msgid "Non-breakable space character at second level"
+msgstr "Символ неразрывного пробела на втором уровне"
+
+#: ../rules/base.xml.in.h:490
+msgid "Non-breakable space character at third level"
+msgstr "Символ неразрывного пробела на третьем уровне"
+
+#: ../rules/base.xml.in.h:491
+msgid "Non-breakable space character at third level, nothing at fourth level"
+msgstr "Символ неразрывного пробела на третьем уровне, ничего на четвёртом"
+
+#: ../rules/base.xml.in.h:492
+msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
+msgstr "Символ неразрывного пробела на третьем уровне, Ñимвол тонкого неразрывного пробела на четвёртом уровне"
+
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Ðор"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¡Ð°Ð°Ð¼ÑкаÑ"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¡Ð°Ð°Ð¼ÑкаÑ, иÑÐºÐ»ÑŽÑ‡Ð°Ñ Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "ÐорвегиÑ"
-#: ../rules/base.xml.in.h:369
-msgid "NumLock LED shows alternative group."
-msgstr "Индикатор NumLock отображает доп. группу."
+#: ../rules/base.xml.in.h:498
+msgid "NumLock"
+msgstr "NumLock"
-#: ../rules/base.xml.in.h:370
-msgid "Numpad keys work as with Mac."
-msgstr "Клавиши цифровой клавиатуры работают как в Mac."
+#: ../rules/base.xml.in.h:499
+msgid "Numeric keypad delete key behaviour"
+msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸ delete на цифровой клавиатуре"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:500
+msgid "Numeric keypad keys work as with Mac"
+msgstr "Клавиши цифровой клавиатуры работают как в Mac"
+
+#: ../rules/base.xml.in.h:501
+msgid "Numeric keypad layout selection"
+msgstr "Выбора раÑкладки цифровой клавиатуры"
+
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:503
+msgid "OLPC"
+msgstr "OLPC"
+
+#: ../rules/base.xml.in.h:504
+msgid "OLPC Dari"
+msgstr "OLPC Dari"
+
+#: ../rules/base.xml.in.h:505
+msgid "OLPC Pashto"
+msgstr "OLPC Pashto"
+
+#: ../rules/base.xml.in.h:506
+msgid "OLPC Southern Uzbek"
+msgstr "Южно-узбекÑкий OLPC"
+
+#: ../rules/base.xml.in.h:507
+msgid "Occitan"
+msgstr "ОкÑитанÑкий"
+
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
-msgstr "Огхам (древнеирланÑкаÑ)"
+msgstr "Огхам"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Огхам IS434"
-#: ../rules/base.xml.in.h:374
-msgid "Oretec MCK-800 MM/Internet keyboard"
-msgstr "Oretec MCK-800 MM/Internet keyboard"
-
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "ОрийÑ"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:511
+msgid "Ortek MCK-800 MM/Internet keyboard"
+msgstr "Ortek MCK-800 MM/Internet keyboard"
+
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "ОÑетинÑкаÑ"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
-msgstr "ОÑетинÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° Windows"
+msgstr "ОÑетинÑкаÑ, Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°Ð¼Ð¸ Win"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:514
+msgid "Ossetian, legacy"
+msgstr "ОÑетинÑкаÑ, уÑтаревшаÑ"
+
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
-msgstr "PC-98xx"
+msgstr "PC-98xx Series"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Пак"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "ПакиÑтан"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "ПуштунÑкаÑ"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Паттачот"
-#: ../rules/base.xml.in.h:383 ../rules/sun.xml.in.h:78
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "ПерÑидÑкаÑ, Ñ Ð¿ÐµÑ€ÑидÑкой доп. панелью"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "ФонетичеÑкаÑ"
-#: ../rules/base.xml.in.h:384 ../rules/sun.xml.in.h:79
+#: ../rules/base.xml.in.h:522
+msgid "Phonetic Winkeys"
+msgstr "ФонетичеÑÐºÐ°Ñ Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°Ð¼Ð¸ Win"
+
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "ПольÑк"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Польша"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "ПолифоничеÑкаÑ"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "ПортугалиÑ"
-#: ../rules/base.xml.in.h:388
-msgid "Press Left Alt key to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ левой клавиши Alt."
-
-#: ../rules/base.xml.in.h:389
-msgid "Press Left Win-key to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ левой клавиши Win."
-
-#: ../rules/base.xml.in.h:390
-msgid "Press Menu key to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ клавиши Menu."
-
-#: ../rules/base.xml.in.h:391
-msgid ""
-"Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key."
-msgstr ""
-"Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ правой клавиши Alt. Shift и правый Alt вмеÑте "
-"работают как Multi_Key."
-
-#: ../rules/base.xml.in.h:392
-msgid "Press Right Alt key to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ правой клавиши Alt."
-
-#: ../rules/base.xml.in.h:393
-msgid "Press Right Ctrl to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ правой клавиши Ctrl."
-
-#: ../rules/base.xml.in.h:394
-msgid "Press Right Win-key to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ правой клавиши Win."
-
-#: ../rules/base.xml.in.h:395
-msgid "Press any of Alt keys to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ любой клавиши Alt."
-
-#: ../rules/base.xml.in.h:396
-msgid "Press any of Win-keys to choose 3rd level."
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ любой клавиши Win."
-
-#: ../rules/base.xml.in.h:397
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:398
-msgid "Pro Keypad"
-msgstr "Pro Ñ Ð´Ð¾Ð¿. панелью"
-
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Пробат"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:528
+msgid "Programmer Dvorak"
+msgstr "Дворак Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñтов"
+
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:401 ../rules/sun.xml.in.h:88
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Порт"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:403
-msgid "R-Alt switches group while pressed."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ."
+#: ../rules/base.xml.in.h:532
+msgid "Right Alt"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt"
-#: ../rules/base.xml.in.h:404
-msgid "Right Alt is Compose."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt ÑоответÑтвует клавише Alt."
+#: ../rules/base.xml.in.h:533
+msgid "Right Alt (while pressed)"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt (пока нажата)"
-#: ../rules/base.xml.in.h:405
-msgid "Right Alt key changes group."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt менÑет группу."
+#: ../rules/base.xml.in.h:534
+msgid "Right Alt key never chooses 3rd level"
+msgstr "По правой клавише Alt никогда не выбираетÑÑ Ñ‚Ñ€ÐµÑ‚Ð¸Ð¹ уровень"
-#: ../rules/base.xml.in.h:406
-msgid "Right Ctrl is Compose."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl ÑоответÑтвует клавише Compose."
+#: ../rules/base.xml.in.h:535
+msgid "Right Alt, Shift+Right Alt key is Multi_Key"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt, Shift и правый Alt вмеÑте работают как Multi_Key"
-#: ../rules/base.xml.in.h:407
-msgid "Right Ctrl key changes group."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl менÑет группу."
+#: ../rules/base.xml.in.h:536
+msgid "Right Ctrl"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl"
-#: ../rules/base.xml.in.h:408
-msgid "Right Ctrl key switches group while pressed."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ."
+#: ../rules/base.xml.in.h:537
+msgid "Right Ctrl (while pressed)"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl (пока нажата)"
-#: ../rules/base.xml.in.h:409
-msgid "Right Ctrl key works as Right Alt."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl работает как Ð¿Ñ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt."
+#: ../rules/base.xml.in.h:538
+msgid "Right Ctrl as Right Alt"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl работает как Ð¿Ñ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt"
-#: ../rules/base.xml.in.h:410
-msgid "Right Shift key changes group."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Shift менÑет группу."
+#: ../rules/base.xml.in.h:539
+msgid "Right Shift"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Shift"
-#: ../rules/base.xml.in.h:411
-msgid "Right Win-key changes group."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win менÑет группу."
+#: ../rules/base.xml.in.h:540
+msgid "Right Win"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win"
-#: ../rules/base.xml.in.h:412
-msgid "Right Win-key is Compose."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win ÑоответÑтвует клавише Compose."
+#: ../rules/base.xml.in.h:541
+msgid "Right Win (while pressed)"
+msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win (пока нажата)"
-#: ../rules/base.xml.in.h:413
-msgid "Right Win-key switches group while pressed."
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Win переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ."
+#: ../rules/base.xml.in.h:542
+msgid "Right hand"
+msgstr "Ð”Ð»Ñ Ð¿Ñ€Ð°Ð²ÑˆÐµÐ¹"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
-msgstr "Dvorak Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÑˆÐµÐ¹"
+msgstr "Дворак Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÑˆÐµÐ¹"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "РумыниÑ"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "РумынÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° Ñ Ð½ÐµÐ¼ÐµÑ†ÐºÐ¸Ð¼Ð¸ буквами"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
-msgstr ""
-"РумынÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° Ñ Ð½ÐµÐ¼ÐµÑ†ÐºÐ¸Ð¼Ð¸ буквами, иÑключить Ñпециальные клавиши "
-"(dead keys)"
+msgstr "РумынÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° Ñ Ð½ÐµÐ¼ÐµÑ†ÐºÐ¸Ð¼Ð¸ буквами, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Рум"
-#: ../rules/base.xml.in.h:419 ../rules/sun.xml.in.h:94
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "РуÑ"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "РоÑÑиÑ"
-#: ../rules/base.xml.in.h:421 ../rules/sun.xml.in.h:95
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "РуÑÑкаÑ"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "РуÑÑÐºÐ°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:552
+msgid "Russian phonetic Dvorak"
+msgstr "РуÑÑкий фонетичеÑкий Дворак"
+
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "РуÑÑÐºÐ°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ, иÑключить Ñпециальные клавиши (dead keys)"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
-msgstr "РуÑÑкий Ñ ÐšÐ°Ð·Ð°Ñ…Ñким"
-
-#: ../rules/base.xml.in.h:425
-msgid "SCG"
-msgstr "СМÐ"
+msgstr "РуÑÑÐºÐ°Ñ Ñ ÐšÐ°Ð·Ð°Ñ…Ñкой"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
+msgid "SRB"
+msgstr "SRB"
+
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:562
+msgid "SVEN Slim 303"
+msgstr "SVEN Slim 303"
+
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:434
-msgid "ScrollLock LED shows alternative group."
-msgstr "Индикатор ScrollLock отображает доп. группу."
+#: ../rules/base.xml.in.h:565
+msgid "Scroll Lock"
+msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:435
-msgid "Serbia and Montenegro"
-msgstr "Ð¡ÐµÑ€Ð±Ð¸Ñ Ð¸ ЧерногориÑ"
+#: ../rules/base.xml.in.h:566
+msgid "ScrollLock"
+msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:436
-msgid "Shift with numpad keys works as in MS Windows."
-msgstr ""
-"Клавиша Shift Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°Ð¼Ð¸ цифровой клавиатуры работают также как в MS "
-"Windows."
+#: ../rules/base.xml.in.h:567
+msgid "Secwepemctsin"
+msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:437
-msgid "Shift+CapsLock changes group."
-msgstr "Клавиши Shift и Caps Lock, нажатые вмеÑте, менÑÑŽÑ‚ группу."
+#: ../rules/base.xml.in.h:568
+msgid "Semi-colon on third level"
+msgstr "Точка Ñ Ð·Ð°Ð¿Ñтой на третьем уровне"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
+msgid "Serbia"
+msgstr "СербиÑ"
+
+#: ../rules/base.xml.in.h:570
+msgid "Shift cancels CapsLock"
+msgstr "Shift отменÑет CapsLock"
+
+#: ../rules/base.xml.in.h:571
+msgid "Shift does not cancel NumLock, chooses 3d level instead"
+msgstr "Shift не отменÑет NumLock, а выбирает третий уровень"
+
+#: ../rules/base.xml.in.h:572
+msgid "Shift with numeric keypad keys works as in MS Windows"
+msgstr "Клавиша Shift Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°Ð¼Ð¸ цифровой клавиатуры работают также как в MS Windows"
+
+#: ../rules/base.xml.in.h:573
+msgid "Shift+CapsLock"
+msgstr "Shift+CapsLock"
+
+#: ../rules/base.xml.in.h:574
+msgid "Simple"
+msgstr "ПроÑтаÑ"
+
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "СловакиÑ"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "СловениÑ"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Ð®Ð¶Ð½Ð°Ñ Ðфрика"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Южно-узбекÑкаÑ"
-#: ../rules/base.xml.in.h:442
-msgid "Space key output nobreakspace at fourth level."
-msgstr "Пробел выдаёт неразделÑемый пробел на четвёртом уровне."
-
-#: ../rules/base.xml.in.h:443
-msgid "Space key output nobreakspace at second level."
-msgstr "Пробел выдаёт неразделÑемый пробел на втором уровне."
-
-#: ../rules/base.xml.in.h:444
-msgid "Space key output nobreakspace at third level."
-msgstr "Пробел выдаёт неразделÑемый пробел на третьем уровне."
-
-#: ../rules/base.xml.in.h:445
-msgid "Space key output space at any level."
-msgstr "Пробел выдаёт пробел на каждом уровне."
-
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "ИÑпаниÑ"
-#: ../rules/base.xml.in.h:447 ../rules/sun.xml.in.h:102
-msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server."
-msgstr "Специальные клавиши (Ctrl+Alt+&lt;клв&gt;) обрабатываютÑÑ Ñервером."
+#: ../rules/base.xml.in.h:580
+msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
+msgstr "Специальные клавиши (Ctrl+Alt+&lt;клв&gt;) обрабатываютÑÑ Ñервером"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "ШрЛ"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Шри Ланка"
-#: ../rules/base.xml.in.h:450 ../rules/sun.xml.in.h:103
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "СтандартнаÑ"
+#: ../rules/base.xml.in.h:584
+msgid "Standard (Cedilla)"
+msgstr "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ (Ñедиль)"
+
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ RSTU, руÑÑкаÑ"
-#: ../rules/base.xml.in.h:455 ../rules/sun.xml.in.h:111
+#: ../rules/base.xml.in.h:589
+msgid "Sun Type 5/6"
+msgstr "Sun Type 5/6"
+
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Специальные клавиши (dead keys) Sun"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:457
-msgid "Super is mapped to the Win-keys (default)."
-msgstr "Super ÑоответÑтвует клавишам Win (по умолчанию)"
+#: ../rules/base.xml.in.h:592
+msgid "Svdvorak"
+msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:458 ../rules/sun.xml.in.h:112
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Слов"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Cловен"
-#: ../rules/base.xml.in.h:460
-msgid "Swap Ctrl and CapsLock."
-msgstr "ПоменÑÑ‚ÑŒ меÑтами клавиши Ctrl и CapsLock."
+#: ../rules/base.xml.in.h:595
+msgid "Swap Ctrl and CapsLock"
+msgstr "ПоменÑÑ‚ÑŒ меÑтами клавиши Ctrl и CapsLock"
-#: ../rules/base.xml.in.h:461
-msgid "Swap keycodes of two keys when Mac keyboards are misdetected by kernel."
-msgstr ""
-"ПереÑтавить коды двух клавиш когда клавиатура Mac неправильно определÑетÑÑ "
-"Ñдром."
+#: ../rules/base.xml.in.h:596
+msgid "Swap ESC and CapsLock"
+msgstr "ПоменÑÑ‚ÑŒ меÑтами клавиши ESC и CapsLock"
-#: ../rules/base.xml.in.h:462 ../rules/sun.xml.in.h:114
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Швед"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "ШвециÑ"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "ШвейцариÑ"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (карманный ПК)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "ÐÑÑ"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "СирийÑкаÑ"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "СирийÑкаÑ"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "СирийÑÐºÐ°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "ТаджикиÑтан"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "ТамильÑкаÑ"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "ТамильÑÐºÐ°Ñ \"ÐŸÐµÑ‡Ð°Ñ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½ÐºÐ°\" TAB"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "ТамильÑÐºÐ°Ñ \"ÐŸÐµÑ‡Ð°Ñ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½ÐºÐ°\" TSCII"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "ТамильÑÐºÐ°Ñ Unicode"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:611
+msgid "Targa Visionary 811"
+msgstr "Targa Visionary 811"
+
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "ТатарÑкаÑ"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Телугу"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Таи"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Таиланд"
-#: ../rules/base.xml.in.h:480 ../rules/sun.xml.in.h:118
-msgid "Third level choosers"
-msgstr "Выбор 3-го уровнÑ"
+#: ../rules/base.xml.in.h:616
+msgid "Tibetan"
+msgstr "ТибетÑкаÑ"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:617
+msgid "Tibetan (with ASCII numerals)"
+msgstr "ТибетÑÐºÐ°Ñ (Ñ Ñ†Ð¸Ñ„Ñ€Ð°Ð¼Ð¸ ASCII)"
+
+#: ../rules/base.xml.in.h:618
+msgid "Tifinagh"
+msgstr "ТифинагÑкаÑ"
+
+#: ../rules/base.xml.in.h:619
+msgid "Tifinagh Alternative"
+msgstr "ТифинагÑÐºÐ°Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ"
+
+#: ../rules/base.xml.in.h:620
+msgid "Tifinagh Alternative Phonetic"
+msgstr "ТифинагÑÐºÐ°Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
+
+#: ../rules/base.xml.in.h:621
+msgid "Tifinagh Extended"
+msgstr "ТифинагÑÐºÐ°Ñ Ñ€Ð°ÑширеннаÑ"
+
+#: ../rules/base.xml.in.h:622
+msgid "Tifinagh Extended Phonetic"
+msgstr "ТифинагÑÐºÐ°Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
+
+#: ../rules/base.xml.in.h:623
+msgid "Tifinagh Phonetic"
+msgstr "ТифинагÑÐºÐ°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
+
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Вариант Ñ Ñ‚Ð¸Ð»ÑŒÐ´Ð¾Ð¹ (~)"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Тадж"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:626
+msgid "To the corresponding key in a Dvorak keyboard."
+msgstr "Ðа ÑоответÑтвующую клавишу на клавиатуре Дворак."
+
+#: ../rules/base.xml.in.h:627
+msgid "To the corresponding key in a Qwerty keyboard."
+msgstr "Ðа ÑоответÑтвующую клавишу на клавиатуре Qwerty."
+
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Ð¢Ñ€Ð°Ð´Ð¸Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
+
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access Keyboard"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:631
+msgid "Trust Slimline"
+msgstr "Trust Slimline"
+
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:486 ../rules/sun.xml.in.h:119
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Тур"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "ТурциÑ"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:635
+msgid "Turkmenistan"
+msgstr "ТуркмениÑ"
+
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "ÐŸÐµÑ‡Ð°Ñ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½ÐºÐ°"
-#: ../rules/base.xml.in.h:489 ../rules/sun.xml.in.h:123
-msgid "U.S. English"
-msgstr "ÐнглийÑÐºÐ°Ñ (СШÐ)"
+#: ../rules/base.xml.in.h:637
+msgid "UCW layout (accented letters only)"
+msgstr "РаÑкладка UCW (только Ñимволы акцентов)"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Клавиатура Ð¡Ð¨Ð Ñ Ð±Ð¾ÑнийÑкими диграфами"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Клавиатура Ð¡Ð¨Ð Ñ Ð±Ð¾ÑнийÑкими буквами"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Клавиатура Ð¡Ð¨Ð Ñ Ñ…Ð¾Ñ€Ð²Ð°Ñ‚Ñкими диграфами"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Клавиатура Ð¡Ð¨Ð Ñ Ñ…Ð¾Ñ€Ð²Ð°Ñ‚Ñкими буквами"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:642
+msgid "US keyboard with Estonian letters"
+msgstr "Клавиатура Ð¡Ð¨Ð Ñ ÑÑтонÑкими буквами"
+
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Клавиатура Ð¡Ð¨Ð Ñ Ð¸Ñ‚Ð°Ð»ÑŒÑнÑкими буквами"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Клавиатура Ð¡Ð¨Ð Ñ Ð»Ð¸Ñ‚Ð¾Ð²Ñкими буквами"
-#: ../rules/base.xml.in.h:495
-msgid "US keyboard with Slovenian digraphs"
-msgstr "Клавиатура СШРÑо ÑловенÑкими диграфами"
-
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Клавиатура СШРÑо ÑловенÑкими буквами"
-#: ../rules/base.xml.in.h:497 ../rules/sun.xml.in.h:125
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "СШÐ"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:647
+msgid "Udmurt"
+msgstr "УдмуртÑкаÑ"
+
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Укр"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Украина"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:650
+msgid "Unicode additions (arrows and math operators)"
+msgstr "Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑŽÐ½Ð¸ÐºÐ¾Ð´Ð° (Ñтрелки и математичеÑкие операторы)"
+
+#: ../rules/base.xml.in.h:651
+msgid "Unicode additions (arrows and math operators). Math operators on default level"
+msgstr "Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑŽÐ½Ð¸ÐºÐ¾Ð´Ð° (Ñтрелки и математичеÑкие операторы). МатематичеÑкие операторы на уровне по умолчанию"
+
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:501 ../rules/sun.xml.in.h:126
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "ÐнглийÑÐºÐ°Ñ (ВеликобританиÑ)"
-#: ../rules/base.xml.in.h:502
-msgid "Urdu"
-msgstr "Урду"
+#: ../rules/base.xml.in.h:654
+msgid "Unitek KB-1925"
+msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:655
+msgid "Urdu, Alternative phonetic"
+msgstr "Урду, Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкаÑ"
+
+#: ../rules/base.xml.in.h:656
+msgid "Urdu, Phonetic"
+msgstr "Урду, фонетичеÑкаÑ"
+
+#: ../rules/base.xml.in.h:657
+msgid "Urdu, Winkeys"
+msgstr "Урду, Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°Ð¼Ð¸ Win"
+
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "ИÑпользовать боÑнийÑкие диграфы"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "ИÑпользовать хорватÑкие диграфы"
-#: ../rules/base.xml.in.h:505
-msgid "Use Slovenian digraphs"
-msgstr "ИÑпользовать ÑловенÑкие диграфы"
-
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
-msgstr "ИÑпользовать французÑкие кавычки как кавычки"
+msgstr "ИÑпользовать кавычки ёлочки как кавычки"
-#: ../rules/base.xml.in.h:507
-msgid "Use keyboard LED to show alternative group."
-msgstr "ИÑпользование клавиатурных индикаторов Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿. групп."
+#: ../rules/base.xml.in.h:661
+msgid "Use keyboard LED to show alternative layout"
+msgstr "ИÑпользовать клавиатурные индикаторы Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… раÑкладок"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:662
+msgid "Using space key to input non-breakable space character"
+msgstr "Клавиша пробела иÑпользуетÑÑ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° Ñимвола неразрывного пробела"
+
+#: ../rules/base.xml.in.h:663
+msgid "Usual space at any level"
+msgstr "Обычный пробел на любом уровне"
+
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Узб"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "УзбекиÑтан"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Вьетнам"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:667
+msgid "ViewSonic KU-306 Internet Keyboard"
+msgstr "ViewSonic KU-306 Internet Keyboard"
+
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Вьет"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:669
+msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
+msgstr "Wang 724 keypad Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñми юникода (Ñтрелки и математичеÑкие операторы)"
+
+#: ../rules/base.xml.in.h:670
+msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
+msgstr "Wang 724 keypad Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñми юникода (Ñтрелки и математичеÑкие операторы). МатематичеÑкие операторы на уровне по умолчанию"
+
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang model 724 azerty"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "ЗападнаÑ"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
-msgstr "Клавиатура Windows"
+msgstr "Клавиши Win"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "С клавишей &lt;\\|&gt;"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:676
+msgid "With EuroSign on 5"
+msgstr "С знаком Евро к клавише 5"
+
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
-msgstr "С французÑкими кавычками"
+msgstr "С кавычками ёлочками"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internet Keyboard"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:679
+msgid "Yakut"
+msgstr "ЯкутÑкаÑ"
+
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Йоруба"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
-msgstr "З и Ж переÑтавлены"
+msgstr "З и Ж переÑтавлены меÑтами"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "ЮÐР"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/цифры"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "цифры"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:686
+msgid "displaced semicolon and quote (obsolete)"
+msgstr "Ñмещённые точка Ñ Ð·Ð°Ð¿Ñтой и кавычка (уÑтарело)"
+
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:526 ../rules/sun.xml.in.h:131
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, раÑширенные функции Backslash"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/цифры"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
-#: ../rules/sun.xml.in.h:1
-msgid "\"Typewriter\""
-msgstr "ÐŸÐµÑ‡Ð°Ñ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½ÐºÐ°"
-
-#: ../rules/sun.xml.in.h:17
-msgid "Acts as Shift with locking. Shift cancels Caps."
-msgstr ""
-"ДейÑтвует как Shift Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¾Ð¹. Shift приоÑтанавливает дейÑтвие Caps."
-
-#: ../rules/sun.xml.in.h:18
-msgid "Acts as Shift with locking. Shift doesn't cancel Caps."
-msgstr "ДейÑтвует как Shift Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¾Ð¹. Shift не влиÑет на Caps."
-
-#: ../rules/sun.xml.in.h:19
-msgid "Alt+Control changes group"
-msgstr "Alt+Control менÑÑŽÑ‚ группу"
-
-#: ../rules/sun.xml.in.h:20
-msgid "Alt+Shift changes group"
-msgstr "Alt+Shift менÑÑŽÑ‚ группу"
-
-#: ../rules/sun.xml.in.h:21
-msgid "Basic"
-msgstr "ОÑновные"
-
-#: ../rules/sun.xml.in.h:23
-msgid "Belgian"
-msgstr "БельгийÑкаÑ"
-
-#: ../rules/sun.xml.in.h:25
-msgid "Both Alt keys together change group"
-msgstr "Обе клавиши Alt, нажатые вмеÑте, менÑÑŽÑ‚ группу"
-
-#: ../rules/sun.xml.in.h:26
-msgid "Both Ctrl keys together change group"
-msgstr "Обе клавиши Ctrl, нажатые вмеÑте, менÑÑŽÑ‚ группу"
-
-#: ../rules/sun.xml.in.h:27
-msgid "Both Shift keys together change group"
-msgstr "Обе клавиши Shift, нажатые вмеÑте, менÑÑŽÑ‚ группу"
-
-#: ../rules/sun.xml.in.h:28
-msgid "Bulgarian"
-msgstr "БолгарÑкаÑ"
-
-#: ../rules/sun.xml.in.h:30
-msgid "Canadian"
-msgstr "КанадÑкаÑ"
-
-#: ../rules/sun.xml.in.h:31
-msgid "Caps Lock is Compose"
-msgstr "Клавиша Caps Lock ÑоответÑтвует клавише Compose"
-
-#: ../rules/sun.xml.in.h:32
-msgid "Caps Lock key changes group"
-msgstr "Клавиша Caps Lock менÑет группу"
-
-#: ../rules/sun.xml.in.h:34
-msgid "Caps_Lock LED shows alternative group"
-msgstr "Индикатор Caps_Lock отображает другую группу"
-
-#: ../rules/sun.xml.in.h:35
-msgid "Control Key Position"
-msgstr "Положение клавиши Control"
-
-#: ../rules/sun.xml.in.h:36
-msgid "Control key at bottom left"
-msgstr "Клавиша Control Ñнизу Ñлева"
-
-#: ../rules/sun.xml.in.h:37
-msgid "Control key at left of 'A'"
-msgstr "Клавиша Control Ñлева от 'Ф'"
-
-#: ../rules/sun.xml.in.h:38
-msgid "Control+Shift changes group"
-msgstr "Control+Shift менÑÑŽÑ‚ группу"
-
-#: ../rules/sun.xml.in.h:40
-msgid "Czech"
-msgstr "ЧешÑкий"
-
-#: ../rules/sun.xml.in.h:41
-msgid "Danish"
-msgstr "ДатÑкий"
-
-#: ../rules/sun.xml.in.h:45
-msgid "DeuCH"
-msgstr "ÐемШВ"
-
-#: ../rules/sun.xml.in.h:47
-msgid "Dvo"
-msgstr "Dvo"
-
-#: ../rules/sun.xml.in.h:52
-msgid "Finnish"
-msgstr "ФинÑкаÑ"
-
-#: ../rules/sun.xml.in.h:54
-msgid "FraCH"
-msgstr "ФраШВ"
-
-#: ../rules/sun.xml.in.h:57
-msgid "German"
-msgstr "ÐемецкаÑ"
-
-#: ../rules/sun.xml.in.h:60
-msgid "Hungarian"
-msgstr "ВенгерÑкаÑ"
-
-#: ../rules/sun.xml.in.h:64
-msgid "Italian"
-msgstr "ИтальÑнÑкаÑ"
-
-#: ../rules/sun.xml.in.h:65
-msgid "Japanese"
-msgstr "ЯпонÑкаÑ"
-
-#: ../rules/sun.xml.in.h:67
-msgid "Left Alt key changes group"
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt менÑет группу"
-
-#: ../rules/sun.xml.in.h:68
-msgid "Left Alt key switches group while pressed"
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ"
-
-#: ../rules/sun.xml.in.h:69
-msgid "Left Ctrl key changes group"
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl менÑет группу"
-
-#: ../rules/sun.xml.in.h:70
-msgid "Left Shift key changes group"
-msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Shift менÑет группу"
-
-#: ../rules/sun.xml.in.h:71
-msgid "Make CapsLock an additional Control"
-msgstr "ИÑпользовать CapsLock как дополнительную клавишу Control"
-
-#: ../rules/sun.xml.in.h:76
-msgid "Norwegian"
-msgstr "ÐорвежÑкаÑ"
-
-#: ../rules/sun.xml.in.h:77
-msgid "Num_Lock LED shows alternative group"
-msgstr "Индикатор Num_Lock отображает дополнительную группу"
-
-#: ../rules/sun.xml.in.h:80
-msgid "Polish"
-msgstr "ПольÑкаÑ"
-
-#: ../rules/sun.xml.in.h:81
-msgid "Polish with Polish quotes on key \"1/!\""
-msgstr "ПольÑÐºÐ°Ñ Ñ Ð¿Ð¾Ð»ÑŒÑкими кавычками на клавишах \"1/!\""
-
-#: ../rules/sun.xml.in.h:82
-msgid "Portuguese"
-msgstr "ПортугальÑкаÑ"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
-#: ../rules/sun.xml.in.h:83
-msgid "Press Left Alt key to choose 3rd level"
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ левой клавиши Alt"
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "ÐÑ‚ÑинÑкаÑ"
-#: ../rules/sun.xml.in.h:84
-msgid "Press Right Alt key to choose 3rd level"
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ правой клавиши Alt"
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Объединённые надбуквенные знаки вмеÑте Ñпец. клавиш (dead keys)"
-#: ../rules/sun.xml.in.h:85
-msgid ""
-"Press Right Alt-key to choose 3rd level, Shift+Right Alt-key is Multi_Key"
-msgstr ""
-"Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ правой клавиши Alt. Shift и правый Alt вмеÑте "
-"работают как Multi_Key"
-
-#: ../rules/sun.xml.in.h:86
-msgid "Press Right Control to choose 3rd level"
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ правой клавиши Control"
-
-#: ../rules/sun.xml.in.h:87
-msgid "Press any of Alt keys to choose 3rd level"
-msgstr "Выбор 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸ÐµÐ¼ любой клавиши Alt"
-
-#: ../rules/sun.xml.in.h:89
-msgid "Right Alt key changes group"
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt менÑет группу"
-
-#: ../rules/sun.xml.in.h:90
-msgid "Right Alt switches group while pressed"
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt переключает группу на Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ"
-
-#: ../rules/sun.xml.in.h:91
-msgid "Right Control key works as Right Alt"
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Control работает как Ð¿Ñ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Alt"
-
-#: ../rules/sun.xml.in.h:92
-msgid "Right Ctrl key changes group"
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Ctrl менÑет группу"
-
-#: ../rules/sun.xml.in.h:93
-msgid "Right Shift key changes group"
-msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° Shift менÑет группу"
-
-#: ../rules/sun.xml.in.h:96
-msgid "Scroll Lock changes group"
-msgstr "Scroll Lock менÑет группу"
-
-#: ../rules/sun.xml.in.h:97
-msgid "Scroll_Lock LED shows alternative group"
-msgstr "Индикатор Scroll_Lock отображает дополнительную группу"
-
-#: ../rules/sun.xml.in.h:98
-msgid "Shift with numpad keys works as in MS Windows"
-msgstr ""
-"Клавиша Shift Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°Ð¼Ð¸ цифровой клавиатуры работают также как в MS Windows"
-
-#: ../rules/sun.xml.in.h:99
-msgid "Shift+CapsLock changes group"
-msgstr "Клавиши Shift и Caps Lock, нажатые вмеÑте, менÑÑŽÑ‚ группу"
-
-#: ../rules/sun.xml.in.h:100
-msgid "Slovak"
-msgstr "СловацкаÑ"
-
-#: ../rules/sun.xml.in.h:101
-msgid "Spanish"
-msgstr "ИÑпанÑкаÑ"
-
-#: ../rules/sun.xml.in.h:104
-msgid "Sun Type 4"
-msgstr "Sun Type 4"
-
-#: ../rules/sun.xml.in.h:105
-msgid "Sun Type 5"
-msgstr "Sun Type 5"
-
-#: ../rules/sun.xml.in.h:106
-msgid "Sun Type 5 European"
-msgstr "Sun Type 5 ЕвропейÑкаÑ"
-
-#: ../rules/sun.xml.in.h:107
-msgid "Sun Type 5 Unix"
-msgstr "Sun Type 5 Ð´Ð»Ñ Unix"
-
-#: ../rules/sun.xml.in.h:108
-msgid "Sun Type 6"
-msgstr "Sun Type 6"
-
-#: ../rules/sun.xml.in.h:109
-msgid "Sun Type 6 Unix"
-msgstr "Sun Type 6 Ð´Ð»Ñ Unix"
-
-#: ../rules/sun.xml.in.h:110
-msgid "Sun Type 6 with Euro key"
-msgstr "Sun Type 6 Ñо знаком евро"
-
-#: ../rules/sun.xml.in.h:113
-msgid "Swap Control and Caps Lock"
-msgstr "ПоменÑÑ‚ÑŒ меÑтами клавиши Control и Caps Lock"
-
-#: ../rules/sun.xml.in.h:115
-msgid "Swedish"
-msgstr "ШведÑкаÑ"
-
-#: ../rules/sun.xml.in.h:116
-msgid "Swiss French"
-msgstr "ШвейцарÑÐºÐ°Ñ Ñ„Ñ€Ð°Ð½Ñ†ÑƒÐ·ÑкаÑ"
-
-#: ../rules/sun.xml.in.h:117
-msgid "Swiss German"
-msgstr "ШвейцарÑÐºÐ°Ñ Ð½ÐµÐ¼ÐµÑ†ÐºÐ°Ñ"
-
-#: ../rules/sun.xml.in.h:120
-msgid "Turkish"
-msgstr "ТурецкаÑ"
-
-#: ../rules/sun.xml.in.h:121
-msgid "Turkish (F)"
-msgstr "Ð¢ÑƒÑ€ÐµÑ†ÐºÐ°Ñ Ñ (F)"
-
-#: ../rules/sun.xml.in.h:122
-msgid "Turkish Alt-Q Layout"
-msgstr "Ð¢ÑƒÑ€ÐµÑ†ÐºÐ°Ñ Ñ€Ð°Ñкладка Ñ Alt-Q"
-
-#: ../rules/sun.xml.in.h:124
-msgid "U.S. English w/ ISO9995-3"
-msgstr "ÐнглийÑÐºÐ°Ñ (СШÐ) Ñ ISO9995-3"
-
-#: ../rules/sun.xml.in.h:127
-msgid "Use keyboard LED to show alternative group"
-msgstr ""
-"ИÑпользование клавиатурных индикаторов Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… групп"
-
-#: ../rules/sun.xml.in.h:128
-msgid "Uses internal capitalization. Shift cancels Caps."
-msgstr ""
-"Включает внутреннюю раÑÑтановку заглавных. Shift приоÑтанавливает дейÑтвие "
-"CapsLock."
-
-#: ../rules/sun.xml.in.h:129
-msgid "Uses internal capitalization. Shift doesn't cancel Caps."
-msgstr ""
-"Включает внутреннюю раÑÑтановку заглавных. Shift не влиÑет на CapsLock."
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "СалишÑÐºÐ°Ñ ÐºÑ‘Ñ€-д’ален"
-#: ../rules/sun.xml.in.h:130
-msgid "bksl"
-msgstr "bksl"
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "ÐœÐµÐ¶Ð´ÑƒÐ½Ð°Ñ€Ð¾Ð´Ð½Ð°Ñ (Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ñ‘Ð½Ð½Ð°Ñ Ñ AltGr Unicode)"
-#: ../rules/sun.xml.in.h:132
-msgid "type4"
-msgstr "type4"
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "ÐœÐµÐ¶Ð´ÑƒÐ½Ð°Ñ€Ð¾Ð´Ð½Ð°Ñ (Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ñ‘Ð½Ð½Ð°Ñ Ñ AltGr Unicode, альтернативнаÑ)"
diff --git a/xorg-server/xkbdata.src/po/sv.po b/xorg-server/xkbdata.src/po/sv.po
index ae54b0508..b12bbec22 100644
--- a/xorg-server/xkbdata.src/po/sv.po
+++ b/xorg-server/xkbdata.src/po/sv.po
@@ -6,2688 +6,2828 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.5\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-01-13 23:12+0000\n"
-"PO-Revision-Date: 2009-02-24 19:37+0100\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-18 10:00+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../rules/base.xml.in.h:1 ../rules/evdev.xml.in.h:1
+#: ../rules/base.xml.in.h:1
msgid "(F)"
msgstr "(F)"
-#: ../rules/base.xml.in.h:2 ../rules/evdev.xml.in.h:2
+#: ../rules/base.xml.in.h:2
msgid "(Legacy) Alternative"
msgstr "(Äldre) Alternativ"
-#: ../rules/base.xml.in.h:3 ../rules/evdev.xml.in.h:3
+#: ../rules/base.xml.in.h:3
msgid "(Legacy) Alternative, Sun dead keys"
msgstr "(Äldre) Alternativ, Sun stumma tangenter"
-#: ../rules/base.xml.in.h:4 ../rules/evdev.xml.in.h:4
+#: ../rules/base.xml.in.h:4
msgid "(Legacy) Alternative, eliminate dead keys"
msgstr "(Äldre) Alternativ, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:5 ../rules/evdev.xml.in.h:5
+#: ../rules/base.xml.in.h:5
msgid "101/104 key Compatible"
msgstr "101/104-tangenters kompatibel"
-#: ../rules/base.xml.in.h:6 ../rules/evdev.xml.in.h:6
+#: ../rules/base.xml.in.h:6
msgid "101/qwerty/comma/Dead keys"
msgstr "101/qwerty/komma/Stumma tangenter"
-#: ../rules/base.xml.in.h:7 ../rules/evdev.xml.in.h:7
+#: ../rules/base.xml.in.h:7
msgid "101/qwerty/comma/Eliminate dead keys"
msgstr "101/qwerty/komma/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:8 ../rules/evdev.xml.in.h:8
+#: ../rules/base.xml.in.h:8
msgid "101/qwerty/dot/Dead keys"
msgstr "101/qwerty/punkt/Stumma tangenter"
-#: ../rules/base.xml.in.h:9 ../rules/evdev.xml.in.h:9
+#: ../rules/base.xml.in.h:9
msgid "101/qwerty/dot/Eliminate dead keys"
msgstr "101/qwerty/punkt/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:10 ../rules/evdev.xml.in.h:10
+#: ../rules/base.xml.in.h:10
msgid "101/qwertz/comma/Dead keys"
msgstr "101/qwertz/komma/Stumma tangenter"
-#: ../rules/base.xml.in.h:11 ../rules/evdev.xml.in.h:11
+#: ../rules/base.xml.in.h:11
msgid "101/qwertz/comma/Eliminate dead keys"
msgstr "101/qwertz/komma/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:12 ../rules/evdev.xml.in.h:12
+#: ../rules/base.xml.in.h:12
msgid "101/qwertz/dot/Dead keys"
msgstr "101/qwertz/punkt/Stumma tangenter"
-#: ../rules/base.xml.in.h:13 ../rules/evdev.xml.in.h:13
+#: ../rules/base.xml.in.h:13
msgid "101/qwertz/dot/Eliminate dead keys"
msgstr "101/qwertz/punkt/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:14 ../rules/evdev.xml.in.h:14
+#: ../rules/base.xml.in.h:14
msgid "102/qwerty/comma/Dead keys"
msgstr "102/qwerty/komma/Stumma tangenter"
-#: ../rules/base.xml.in.h:15 ../rules/evdev.xml.in.h:15
+#: ../rules/base.xml.in.h:15
msgid "102/qwerty/comma/Eliminate dead keys"
msgstr "102/qwerty/komma/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:16 ../rules/evdev.xml.in.h:16
+#: ../rules/base.xml.in.h:16
msgid "102/qwerty/dot/Dead keys"
msgstr "102/qwerty/punkt/Stumma tangenter"
-#: ../rules/base.xml.in.h:17 ../rules/evdev.xml.in.h:17
+#: ../rules/base.xml.in.h:17
msgid "102/qwerty/dot/Eliminate dead keys"
msgstr "102/qwerty/punkt/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:18 ../rules/evdev.xml.in.h:18
+#: ../rules/base.xml.in.h:18
msgid "102/qwertz/comma/Dead keys"
msgstr "102/qwertz/komma/Stumma tangenter"
-#: ../rules/base.xml.in.h:19 ../rules/evdev.xml.in.h:19
+#: ../rules/base.xml.in.h:19
msgid "102/qwertz/comma/Eliminate dead keys"
msgstr "102/qwertz/komma/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:20 ../rules/evdev.xml.in.h:20
+#: ../rules/base.xml.in.h:20
msgid "102/qwertz/dot/Dead keys"
msgstr "102/qwertz/punkt/Stumma tangenter"
-#: ../rules/base.xml.in.h:21 ../rules/evdev.xml.in.h:21
+#: ../rules/base.xml.in.h:21
msgid "102/qwertz/dot/Eliminate dead keys"
msgstr "102/qwertz/punkt/Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:22 ../rules/evdev.xml.in.h:22
+#: ../rules/base.xml.in.h:22
msgid "2"
msgstr "2"
-#: ../rules/base.xml.in.h:23 ../rules/evdev.xml.in.h:23
+#: ../rules/base.xml.in.h:23
msgid "4"
msgstr "4"
-#: ../rules/base.xml.in.h:24 ../rules/evdev.xml.in.h:24
+#: ../rules/base.xml.in.h:24
msgid "5"
msgstr "5"
-#: ../rules/base.xml.in.h:25 ../rules/evdev.xml.in.h:25
+#: ../rules/base.xml.in.h:25
msgid "A4Tech KB-21"
msgstr "A4Tech KB-21"
-#: ../rules/base.xml.in.h:26 ../rules/evdev.xml.in.h:26
+#: ../rules/base.xml.in.h:26
msgid "A4Tech KBS-8"
msgstr "A4Tech KBS-8"
-#: ../rules/base.xml.in.h:27 ../rules/evdev.xml.in.h:27
+#: ../rules/base.xml.in.h:27
msgid "A4Tech Wireless Desktop RFKB-23"
msgstr "A4Tech Wireless Desktop RFKB-23"
-#: ../rules/base.xml.in.h:28 ../rules/evdev.xml.in.h:28
+#: ../rules/base.xml.in.h:28
msgid "ACPI Standard"
msgstr "ACPI-standard"
-#: ../rules/base.xml.in.h:29 ../rules/evdev.xml.in.h:29
+#: ../rules/base.xml.in.h:29
msgid "ATM/phone-style"
-msgstr "Bankomat/telefonliknande"
+msgstr "Knappsats/telefonliknande"
-#: ../rules/base.xml.in.h:30 ../rules/evdev.xml.in.h:30
+#: ../rules/base.xml.in.h:30
msgid "Acer AirKey V"
msgstr "Acer AirKey V"
-#: ../rules/base.xml.in.h:31 ../rules/evdev.xml.in.h:31
+#: ../rules/base.xml.in.h:31
msgid "Acer C300"
msgstr "Acer C300"
-#: ../rules/base.xml.in.h:32 ../rules/evdev.xml.in.h:32
+#: ../rules/base.xml.in.h:32
msgid "Acer Ferrari 4000"
msgstr "Acer Ferrari 4000"
-#: ../rules/base.xml.in.h:33 ../rules/evdev.xml.in.h:33
+#: ../rules/base.xml.in.h:33
msgid "Acer Laptop"
msgstr "Bärbar Acer-dator"
-#: ../rules/base.xml.in.h:34 ../rules/evdev.xml.in.h:34
+#: ../rules/base.xml.in.h:34
msgid "Add the standard behavior to Menu key"
msgstr "Lägg till standardbeteendet till Meny-tangenten"
-#: ../rules/base.xml.in.h:35 ../rules/evdev.xml.in.h:35
+#: ../rules/base.xml.in.h:35
msgid "Adding Esperanto circumflexes (supersigno)"
msgstr "Lägger till Esperanto-circumflex (supersigno)"
-#: ../rules/base.xml.in.h:36 ../rules/evdev.xml.in.h:36
+#: ../rules/base.xml.in.h:36
msgid "Adding EuroSign to certain keys"
msgstr "Lägger till eurotecknet till vissa tangenter"
-#: ../rules/base.xml.in.h:37 ../rules/evdev.xml.in.h:37
+#: ../rules/base.xml.in.h:37
msgid "Advance Scorpius KI"
msgstr "Advance Scorpius KI"
-#: ../rules/base.xml.in.h:38 ../rules/evdev.xml.in.h:38
+#: ../rules/base.xml.in.h:38
msgid "Afg"
msgstr "Afg"
-#: ../rules/base.xml.in.h:39 ../rules/evdev.xml.in.h:39
+#: ../rules/base.xml.in.h:39
msgid "Afghanistan"
msgstr "Afganistan"
-#: ../rules/base.xml.in.h:40 ../rules/evdev.xml.in.h:40
+#: ../rules/base.xml.in.h:40
msgid "Akan"
msgstr "Akan"
-#: ../rules/base.xml.in.h:41 ../rules/evdev.xml.in.h:41
+#: ../rules/base.xml.in.h:41
msgid "Alb"
msgstr "Alb"
-#: ../rules/base.xml.in.h:42 ../rules/evdev.xml.in.h:42
+#: ../rules/base.xml.in.h:42
msgid "Albania"
msgstr "Albanien"
-#: ../rules/base.xml.in.h:43 ../rules/evdev.xml.in.h:43
+#: ../rules/base.xml.in.h:43
msgid "Alt and Meta are on Alt keys"
msgstr "Alt och Meta finns på Alt-tangenterna"
-#: ../rules/base.xml.in.h:44 ../rules/evdev.xml.in.h:44
+#: ../rules/base.xml.in.h:44
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt är mappad till högra Win-tangenten och Super till Meny"
-#: ../rules/base.xml.in.h:45 ../rules/evdev.xml.in.h:45
+#: ../rules/base.xml.in.h:45
msgid "Alt+CapsLock"
msgstr "Alt+CapsLock"
-#: ../rules/base.xml.in.h:46 ../rules/evdev.xml.in.h:46
+#: ../rules/base.xml.in.h:46
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:47 ../rules/evdev.xml.in.h:47
+#: ../rules/base.xml.in.h:47
msgid "Alt+Shift"
msgstr "Alt+Skift"
-#: ../rules/base.xml.in.h:48 ../rules/evdev.xml.in.h:48
+#: ../rules/base.xml.in.h:48
msgid "Alt+Space"
msgstr "Alt+Blanksteg"
-#: ../rules/base.xml.in.h:49 ../rules/evdev.xml.in.h:49
+#: ../rules/base.xml.in.h:49
msgid "Alt-Q"
msgstr "Alt-Q"
-#: ../rules/base.xml.in.h:50 ../rules/evdev.xml.in.h:50
+#: ../rules/base.xml.in.h:50
msgid "Alt/Win key behavior"
msgstr "Alt/Win-tangentbeteende"
-#: ../rules/base.xml.in.h:51 ../rules/evdev.xml.in.h:51
+#: ../rules/base.xml.in.h:51
msgid "Alternative"
msgstr "Alternativ"
-#: ../rules/base.xml.in.h:52 ../rules/evdev.xml.in.h:52
+#: ../rules/base.xml.in.h:52
msgid "Alternative Eastern"
msgstr "Alternativ östlig"
-#: ../rules/base.xml.in.h:53 ../rules/evdev.xml.in.h:53
+#: ../rules/base.xml.in.h:53
msgid "Alternative Phonetic"
msgstr "Alternativ fonetisk"
-#: ../rules/base.xml.in.h:54 ../rules/evdev.xml.in.h:54
+#: ../rules/base.xml.in.h:54
msgid "Alternative international (former us_intl)"
msgstr "Alternativ internationell (tidigare us_intl)"
-#: ../rules/base.xml.in.h:55 ../rules/evdev.xml.in.h:55
+#: ../rules/base.xml.in.h:55
msgid "Alternative, Sun dead keys"
msgstr "Alternativ, Sun stumma tangenter"
-#: ../rules/base.xml.in.h:56 ../rules/evdev.xml.in.h:56
+#: ../rules/base.xml.in.h:56
msgid "Alternative, eliminate dead keys"
msgstr "Alternativ, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:57 ../rules/evdev.xml.in.h:57
+#: ../rules/base.xml.in.h:57
msgid "Alternative, latin-9 only"
msgstr "Alternativ, endast latin-9"
-#: ../rules/base.xml.in.h:58 ../rules/evdev.xml.in.h:58
+#: ../rules/base.xml.in.h:58
msgid "And"
msgstr "And"
-#: ../rules/base.xml.in.h:59 ../rules/evdev.xml.in.h:59
+#: ../rules/base.xml.in.h:59
msgid "Andorra"
msgstr "Andorra"
-#: ../rules/base.xml.in.h:60 ../rules/evdev.xml.in.h:60
+#: ../rules/base.xml.in.h:60
msgid "Any Alt key"
msgstr "Valfri Alt-tangent"
-#: ../rules/base.xml.in.h:61 ../rules/evdev.xml.in.h:61
+#: ../rules/base.xml.in.h:61
msgid "Any Win key"
msgstr "Valfri Win-tangent"
-#: ../rules/base.xml.in.h:62 ../rules/evdev.xml.in.h:62
+#: ../rules/base.xml.in.h:62
msgid "Any Win key (while pressed)"
msgstr "Valfri Win-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:63 ../rules/evdev.xml.in.h:63
+#: ../rules/base.xml.in.h:63
msgid "Apostrophe (') variant"
msgstr "Apostrof (') variant"
-#: ../rules/base.xml.in.h:64 ../rules/evdev.xml.in.h:64
+#: ../rules/base.xml.in.h:64
msgid "Apple"
msgstr "Apple"
-#: ../rules/base.xml.in.h:65 ../rules/evdev.xml.in.h:65
+#: ../rules/base.xml.in.h:65
msgid "Apple Laptop"
msgstr "Bärbar Apple-dator"
-#: ../rules/base.xml.in.h:66 ../rules/evdev.xml.in.h:66
+#: ../rules/base.xml.in.h:66
msgid "Ara"
msgstr "Ara"
-#: ../rules/base.xml.in.h:67 ../rules/evdev.xml.in.h:67
+#: ../rules/base.xml.in.h:67
msgid "Arabic"
msgstr "Arabisk"
-#: ../rules/base.xml.in.h:68 ../rules/evdev.xml.in.h:68
+#: ../rules/base.xml.in.h:68
msgid "Arm"
msgstr "Arm"
-#: ../rules/base.xml.in.h:69 ../rules/evdev.xml.in.h:69
+#: ../rules/base.xml.in.h:69
msgid "Armenia"
msgstr "Armenien"
-#: ../rules/base.xml.in.h:70 ../rules/evdev.xml.in.h:70
+#: ../rules/base.xml.in.h:70
msgid "Asturian variant with bottom-dot H and bottom-dot L"
msgstr "Asturisk variant med nederpunkts H och nederpunkts L"
-#: ../rules/base.xml.in.h:71 ../rules/evdev.xml.in.h:71
+#: ../rules/base.xml.in.h:71
msgid "Asus Laptop"
msgstr "Bärbar Asus-dator"
-#: ../rules/base.xml.in.h:72 ../rules/evdev.xml.in.h:72
+#: ../rules/base.xml.in.h:72
msgid "At bottom left"
msgstr "Nere till vänster"
-#: ../rules/base.xml.in.h:73 ../rules/evdev.xml.in.h:73
+#: ../rules/base.xml.in.h:73
msgid "At left of 'A'"
msgstr "Vänster om \"A\""
-#: ../rules/base.xml.in.h:74 ../rules/evdev.xml.in.h:74
+#: ../rules/base.xml.in.h:74
msgid "Aze"
msgstr "Aze"
-#: ../rules/base.xml.in.h:75 ../rules/evdev.xml.in.h:75
+#: ../rules/base.xml.in.h:75
msgid "Azerbaijan"
msgstr "Azerbajdzjan"
-#: ../rules/base.xml.in.h:76 ../rules/evdev.xml.in.h:76
+#: ../rules/base.xml.in.h:76
msgid "Azona RF2300 wireless Internet Keyboard"
msgstr "Azona RF2300 wireless Internet Keyboard"
-#: ../rules/base.xml.in.h:77 ../rules/evdev.xml.in.h:77
+#: ../rules/base.xml.in.h:77
msgid "BTC 5090"
msgstr "BTC 5090"
-#: ../rules/base.xml.in.h:78 ../rules/evdev.xml.in.h:78
+#: ../rules/base.xml.in.h:78
msgid "BTC 5113RF Multimedia"
msgstr "BTC 5113RF Multimedia"
-#: ../rules/base.xml.in.h:79 ../rules/evdev.xml.in.h:79
+#: ../rules/base.xml.in.h:79
msgid "BTC 5126T"
msgstr "BTC 5126T"
-#: ../rules/base.xml.in.h:80 ../rules/evdev.xml.in.h:80
+#: ../rules/base.xml.in.h:80
msgid "BTC 6301URF"
msgstr "BTC 6301URF"
-#: ../rules/base.xml.in.h:81 ../rules/evdev.xml.in.h:81
+#: ../rules/base.xml.in.h:81
msgid "BTC 9000"
msgstr "BTC 9000"
-#: ../rules/base.xml.in.h:82 ../rules/evdev.xml.in.h:82
+#: ../rules/base.xml.in.h:82
msgid "BTC 9000A"
msgstr "BTC 9000A"
-#: ../rules/base.xml.in.h:83 ../rules/evdev.xml.in.h:83
+#: ../rules/base.xml.in.h:83
msgid "BTC 9001AH"
msgstr "BTC 9001AH"
-#: ../rules/base.xml.in.h:84 ../rules/evdev.xml.in.h:84
+#: ../rules/base.xml.in.h:84
msgid "BTC 9019U"
msgstr "BTC 9019U"
-#: ../rules/base.xml.in.h:85 ../rules/evdev.xml.in.h:85
+#: ../rules/base.xml.in.h:85
msgid "BTC 9116U Mini Wireless Internet and Gaming"
msgstr "BTC 9116U Mini Wireless Internet and Gaming"
-#: ../rules/base.xml.in.h:86 ../rules/evdev.xml.in.h:86
+#: ../rules/base.xml.in.h:86
+msgid "Baltic+"
+msgstr "Baltisk+"
+
+#: ../rules/base.xml.in.h:87
msgid "Ban"
msgstr "Ban"
-#: ../rules/base.xml.in.h:87 ../rules/evdev.xml.in.h:87
+#: ../rules/base.xml.in.h:88
msgid "Bangladesh"
msgstr "Bangladesh"
-#: ../rules/base.xml.in.h:88 ../rules/evdev.xml.in.h:88
+#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Basjkiriska"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:89 ../rules/evdev.xml.in.h:89
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Vitryssland"
-#: ../rules/base.xml.in.h:90 ../rules/evdev.xml.in.h:90
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Belgien"
-#: ../rules/base.xml.in.h:91 ../rules/evdev.xml.in.h:91
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:92 ../rules/evdev.xml.in.h:92
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:93 ../rules/evdev.xml.in.h:93
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:94 ../rules/evdev.xml.in.h:94
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Bengalisk"
-#: ../rules/base.xml.in.h:95 ../rules/evdev.xml.in.h:95
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Bengali Probhat"
-#: ../rules/base.xml.in.h:96 ../rules/evdev.xml.in.h:96
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, ergonomisk, Dvorak"
-#: ../rules/base.xml.in.h:97 ../rules/evdev.xml.in.h:97
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, ergonomisk, Dvorak, endast latin-9"
-#: ../rules/base.xml.in.h:98 ../rules/evdev.xml.in.h:98
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:99 ../rules/evdev.xml.in.h:99
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:100 ../rules/evdev.xml.in.h:100
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhutan"
-#: ../rules/base.xml.in.h:101 ../rules/evdev.xml.in.h:101
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Biblisk hebreisk (Tiro)"
-#: ../rules/base.xml.in.h:102 ../rules/evdev.xml.in.h:102
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:103 ../rules/evdev.xml.in.h:103
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:104 ../rules/evdev.xml.in.h:104
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bosnien och Herzegovina"
-#: ../rules/base.xml.in.h:105 ../rules/evdev.xml.in.h:105
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "BÃ¥da Alt-tangenterna tillsammans"
-#: ../rules/base.xml.in.h:106 ../rules/evdev.xml.in.h:106
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "BÃ¥da Ctrl-tangenterna tillsammans"
-#: ../rules/base.xml.in.h:107 ../rules/evdev.xml.in.h:107
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "BÃ¥da Skift-tangenterna tillsammans"
-#: ../rules/base.xml.in.h:108 ../rules/evdev.xml.in.h:108
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:109 ../rules/evdev.xml.in.h:109
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:110 ../rules/evdev.xml.in.h:110
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Brasilien"
-#: ../rules/base.xml.in.h:111 ../rules/evdev.xml.in.h:111
-msgid "Brazilian ABNT2"
-msgstr "Brasiliansk ABNT2"
-
-#: ../rules/base.xml.in.h:112 ../rules/evdev.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Breton"
-#: ../rules/base.xml.in.h:113 ../rules/evdev.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114 ../rules/evdev.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Brother Internettangentbord"
-#: ../rules/base.xml.in.h:115 ../rules/evdev.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116 ../rules/evdev.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bulgarien"
-#: ../rules/base.xml.in.h:117 ../rules/evdev.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118 ../rules/evdev.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Cambodia"
-#: ../rules/base.xml.in.h:119 ../rules/evdev.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120 ../rules/evdev.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Kanada"
-#: ../rules/base.xml.in.h:121 ../rules/evdev.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:122 ../rules/evdev.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:123 ../rules/evdev.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "CapsLock (till första layouten), Skift+CapsLock (till sista layouten)"
-#: ../rules/base.xml.in.h:124 ../rules/evdev.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "CapsLock (när den trycks ned), Alt+CapsLock gör ursprunglig capslock-åtgärd"
-#: ../rules/base.xml.in.h:125 ../rules/evdev.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
-msgstr "CapsLock fungerar som Skift med låsning. Skift \"pausar\" Caps Lock"
+msgstr "CapsLock fungerar som Skift med låsning. Skift \"pausar\" CapsLock"
-#: ../rules/base.xml.in.h:126 ../rules/evdev.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "CapsLock fungerar som Skift med låsning. Skift påverkar inte CapsLock"
-#: ../rules/base.xml.in.h:127 ../rules/evdev.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock är inaktiverad"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
-msgstr "Beteende för Caps Lock-tangenten"
+msgstr "Beteende för CapsLock-tangenten"
-#: ../rules/base.xml.in.h:128 ../rules/evdev.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "CapsLock växlar Skift så alla tangenter påverkas"
-#: ../rules/base.xml.in.h:129 ../rules/evdev.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock växlar normalt skiftläge på alfabetiska tecken"
-#: ../rules/base.xml.in.h:130 ../rules/evdev.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "CapsLock använder intern skiftlägesstyrning. Skift \"pausar\" CapsLock"
-#: ../rules/base.xml.in.h:131 ../rules/evdev.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "CapsLock använder intern skiftlägesstyrning. Skift påverkar inte CapsLock"
-#: ../rules/base.xml.in.h:132 ../rules/evdev.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Katalansk variant med mittenpunkts L"
-#: ../rules/base.xml.in.h:133 ../rules/evdev.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cedilj"
-#: ../rules/base.xml.in.h:134 ../rules/evdev.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135 ../rules/evdev.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Cherokee"
-#: ../rules/base.xml.in.h:136 ../rules/evdev.xml.in.h:136
+#: ../rules/base.xml.in.h:138
+msgid "Cherry B.UNLIMITED"
+msgstr "Cherry B.UNLIMITED"
+
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:137 ../rules/evdev.xml.in.h:137
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (alternativ)"
-#: ../rules/base.xml.in.h:138 ../rules/evdev.xml.in.h:138
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd USB-hubb"
-#: ../rules/base.xml.in.h:139 ../rules/evdev.xml.in.h:139
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:140 ../rules/evdev.xml.in.h:140
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:141 ../rules/evdev.xml.in.h:141
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:142 ../rules/evdev.xml.in.h:142
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Chicony Internettangentbord"
-#: ../rules/base.xml.in.h:143 ../rules/evdev.xml.in.h:143
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:144 ../rules/evdev.xml.in.h:144
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:145 ../rules/evdev.xml.in.h:145
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:146 ../rules/evdev.xml.in.h:146
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Kina"
-#: ../rules/base.xml.in.h:147 ../rules/evdev.xml.in.h:147
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Tjuvasjiska"
-#: ../rules/base.xml.in.h:148 ../rules/evdev.xml.in.h:148
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Tjuvasjiska latin"
-#: ../rules/base.xml.in.h:149 ../rules/evdev.xml.in.h:149
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Klassisk"
-#: ../rules/base.xml.in.h:150 ../rules/evdev.xml.in.h:150
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Klassisk Dvorak"
-#: ../rules/base.xml.in.h:151 ../rules/evdev.xml.in.h:151
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:152 ../rules/evdev.xml.in.h:152
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:153 ../rules/evdev.xml.in.h:153
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:154 ../rules/evdev.xml.in.h:154
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Compaq Easy Access-tangentbord"
-#: ../rules/base.xml.in.h:155 ../rules/evdev.xml.in.h:155
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Compaq Internettangentbord (13 tangenter)"
-#: ../rules/base.xml.in.h:156 ../rules/evdev.xml.in.h:156
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Compaq Internettangentbord (18 tangenter)"
-#: ../rules/base.xml.in.h:157 ../rules/evdev.xml.in.h:157
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Compaq Internettangentbord (7 tangenter)"
-#: ../rules/base.xml.in.h:158 ../rules/evdev.xml.in.h:158
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Compaq iPaq-tangentbord"
-#: ../rules/base.xml.in.h:159 ../rules/evdev.xml.in.h:159
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Position för Compose-tangenten"
-#: ../rules/base.xml.in.h:160 ../rules/evdev.xml.in.h:160
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Kongo, Demokratiska republiken"
-#: ../rules/base.xml.in.h:161 ../rules/evdev.xml.in.h:161
+#: ../rules/base.xml.in.h:164
+msgid "Control + Alt + Backspace"
+msgstr "Control + Alt + Backsteg"
+
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Control är mappad till Win-tangenterna, Alt-tangenten är mappad till Win-tangenterna"
-#: ../rules/base.xml.in.h:162 ../rules/evdev.xml.in.h:162
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Control är mappad till Win-tangenterna (och de vanliga Ctrl-tangenterna)"
-#: ../rules/base.xml.in.h:163 ../rules/evdev.xml.in.h:163
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
+msgid "Crimean Tatar (Dobruca-1 Q)"
+msgstr "Krimtatariska (Dobruca-1 Q)"
+
+#: ../rules/base.xml.in.h:169
+msgid "Crimean Tatar (Dobruca-2 Q)"
+msgstr "Krimtatariska (Dobruca-2 Q)"
+
+#: ../rules/base.xml.in.h:170
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr "Krimtatariska (Turkiska Alt-Q)"
+
+#: ../rules/base.xml.in.h:171
+msgid "Crimean Tatar (Turkish F)"
+msgstr "Krimtatariska (Turkiska F)"
+
+#: ../rules/base.xml.in.h:172
+msgid "Crimean Tatar (Turkish Q)"
+msgstr "Krimtatariska (Turkiska Q)"
+
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Kroatien"
-#: ../rules/base.xml.in.h:164 ../rules/evdev.xml.in.h:164
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Position för Ctrl-tangenten"
-#: ../rules/base.xml.in.h:165 ../rules/evdev.xml.in.h:165
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Skift"
-#: ../rules/base.xml.in.h:166 ../rules/evdev.xml.in.h:166
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Kyrillisk"
-#: ../rules/base.xml.in.h:167 ../rules/evdev.xml.in.h:167
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Kyrillisk med gåsögon"
-#: ../rules/base.xml.in.h:168 ../rules/evdev.xml.in.h:168
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Kyrillisk, Z och ZHE utbytta"
-#: ../rules/base.xml.in.h:169 ../rules/evdev.xml.in.h:169
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:170 ../rules/evdev.xml.in.h:170
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Tjeckien"
-#: ../rules/base.xml.in.h:171 ../rules/evdev.xml.in.h:171
+#: ../rules/base.xml.in.h:181
+msgid "DOS"
+msgstr "DOS"
+
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:172 ../rules/evdev.xml.in.h:172
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:173 ../rules/evdev.xml.in.h:173
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:174 ../rules/evdev.xml.in.h:174
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Stum akut accent"
-#: ../rules/base.xml.in.h:175 ../rules/evdev.xml.in.h:175
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Stum grav och akut accent"
-#: ../rules/base.xml.in.h:176 ../rules/evdev.xml.in.h:176
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Standardtangenter för numeriskt tangentbord"
-#: ../rules/base.xml.in.h:177 ../rules/evdev.xml.in.h:177
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:178 ../rules/evdev.xml.in.h:178
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell 101-tangenters PC"
-#: ../rules/base.xml.in.h:179 ../rules/evdev.xml.in.h:179
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Bärbar Dell Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:180 ../rules/evdev.xml.in.h:180
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Bärbar Dell Precision M series"
-#: ../rules/base.xml.in.h:181 ../rules/evdev.xml.in.h:181
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Bärbar Dell Latitude-serien"
-#: ../rules/base.xml.in.h:182 ../rules/evdev.xml.in.h:182
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:183 ../rules/evdev.xml.in.h:183
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:184 ../rules/evdev.xml.in.h:184
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:185 ../rules/evdev.xml.in.h:185
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Dell USB-multimediatangentbord"
-#: ../rules/base.xml.in.h:186 ../rules/evdev.xml.in.h:186
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Danmark"
-#: ../rules/base.xml.in.h:187 ../rules/evdev.xml.in.h:187
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:188 ../rules/evdev.xml.in.h:188
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Dexxa trådlöst skrivbordstangentbord"
-#: ../rules/base.xml.in.h:189 ../rules/evdev.xml.in.h:189
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Diamond 9801/9802-serien"
-#: ../rules/base.xml.in.h:190 ../rules/evdev.xml.in.h:190
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:191 ../rules/evdev.xml.in.h:191
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (brittisk-engelska skiljetecken)"
-#: ../rules/base.xml.in.h:192 ../rules/evdev.xml.in.h:192
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak internationell"
-#: ../rules/base.xml.in.h:193 ../rules/evdev.xml.in.h:193
-msgid "Dvorak, Polish quotes on key \"1/!\""
-msgstr "Dvorak, polska citattecken på tangent \"1/!\""
+#: ../rules/base.xml.in.h:204
+msgid "Dvorak, Polish quotes on key 1"
+msgstr "Dvorak, polska citattecken på tangent 1"
-#: ../rules/base.xml.in.h:194 ../rules/evdev.xml.in.h:194
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, polska citattecken på citattangent"
-#: ../rules/base.xml.in.h:195 ../rules/evdev.xml.in.h:195
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:196 ../rules/evdev.xml.in.h:196
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Östlig"
-#: ../rules/base.xml.in.h:197 ../rules/evdev.xml.in.h:197
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:198 ../rules/evdev.xml.in.h:198
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Aktivera extra typografiska tecken"
-#: ../rules/base.xml.in.h:199 ../rules/evdev.xml.in.h:199
+#: ../rules/base.xml.in.h:210
+msgid "English"
+msgstr "Engelsk"
+
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:200 ../rules/evdev.xml.in.h:200
+#: ../rules/base.xml.in.h:212
+msgid "Enter on keypad"
+msgstr "Enter på numeriskt tangentbord"
+
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:201 ../rules/evdev.xml.in.h:201
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Ergonomisk"
-#: ../rules/base.xml.in.h:202 ../rules/evdev.xml.in.h:202
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:203 ../rules/evdev.xml.in.h:203
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:204 ../rules/evdev.xml.in.h:204
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:205 ../rules/evdev.xml.in.h:205
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Estland"
-#: ../rules/base.xml.in.h:206 ../rules/evdev.xml.in.h:206
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:207 ../rules/evdev.xml.in.h:207
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Etiopien"
-#: ../rules/base.xml.in.h:208 ../rules/evdev.xml.in.h:208
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Evdev-hanterat tangentbord"
-#: ../rules/base.xml.in.h:209 ../rules/evdev.xml.in.h:209
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:210 ../rules/evdev.xml.in.h:210
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:211 ../rules/evdev.xml.in.h:211
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Utökad"
-#: ../rules/base.xml.in.h:212 ../rules/evdev.xml.in.h:212
+#: ../rules/base.xml.in.h:225
+msgid "Extended - Winkeys"
+msgstr "Utökat - Windows-tangenter"
+
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Utökat omvänt snedstreck"
-#: ../rules/base.xml.in.h:213 ../rules/evdev.xml.in.h:213
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "F-bokstavs (F) variant"
-#: ../rules/base.xml.in.h:214 ../rules/evdev.xml.in.h:214
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:215 ../rules/evdev.xml.in.h:215
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:216 ../rules/evdev.xml.in.h:216
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Färöarna"
-#: ../rules/base.xml.in.h:217 ../rules/evdev.xml.in.h:217
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:218 ../rules/evdev.xml.in.h:218
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Finland"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:221 ../rules/evdev.xml.in.h:221
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Fjärdenivåstangent med abstrakta avgränsare"
-#: ../rules/base.xml.in.h:222 ../rules/evdev.xml.in.h:222
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Fjärdenivåstangent med komma"
-#: ../rules/base.xml.in.h:223 ../rules/evdev.xml.in.h:223
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Fjärdenivåstangent med punkt"
-#: ../rules/base.xml.in.h:224 ../rules/evdev.xml.in.h:224
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Fjärdenivåstangent med punkt, latin-9-begränsning"
-#: ../rules/base.xml.in.h:225 ../rules/evdev.xml.in.h:225
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Fjärdenivåstangent med momayyez"
-#: ../rules/base.xml.in.h:226 ../rules/evdev.xml.in.h:226
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:227 ../rules/evdev.xml.in.h:227
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Frankrike"
-#: ../rules/base.xml.in.h:228 ../rules/evdev.xml.in.h:228
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Fransk"
-#: ../rules/base.xml.in.h:229 ../rules/evdev.xml.in.h:229
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Fransk (Macintosh)"
-#: ../rules/base.xml.in.h:230 ../rules/evdev.xml.in.h:230
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Fransk (äldre)"
-#: ../rules/base.xml.in.h:231 ../rules/evdev.xml.in.h:231
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Fransk Dvorak"
-#: ../rules/base.xml.in.h:232 ../rules/evdev.xml.in.h:232
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Fransk, Sun stumma tangenter"
-#: ../rules/base.xml.in.h:233 ../rules/evdev.xml.in.h:233
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Fransk, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:234 ../rules/evdev.xml.in.h:234
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Fujitsu-Siemens Computers AMILO bärbar dator"
-#: ../rules/base.xml.in.h:235 ../rules/evdev.xml.in.h:235
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:236 ../rules/evdev.xml.in.h:236
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:237 ../rules/evdev.xml.in.h:237
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:238 ../rules/evdev.xml.in.h:238
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "Allmän 101-tangenters PC"
-#: ../rules/base.xml.in.h:239 ../rules/evdev.xml.in.h:239
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "Allmän 102-tangenters (internationell) PC"
-#: ../rules/base.xml.in.h:240 ../rules/evdev.xml.in.h:240
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "Allmän 104-tangenters PC"
-#: ../rules/base.xml.in.h:241 ../rules/evdev.xml.in.h:241
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "Allmän 105-tangenters (internationell) PC"
-#: ../rules/base.xml.in.h:242 ../rules/evdev.xml.in.h:242
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:243 ../rules/evdev.xml.in.h:243
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Comfy KB-16M / Genius MM-tangentbord KWD-910"
-#: ../rules/base.xml.in.h:244 ../rules/evdev.xml.in.h:244
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
-#: ../rules/base.xml.in.h:245 ../rules/evdev.xml.in.h:245
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
-#: ../rules/base.xml.in.h:246 ../rules/evdev.xml.in.h:246
+#: ../rules/base.xml.in.h:260
+msgid "Genius KKB-2050HS"
+msgstr "Genius KKB-2050HS"
+
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:247 ../rules/evdev.xml.in.h:247
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Georgien"
-#: ../rules/base.xml.in.h:248 ../rules/evdev.xml.in.h:248
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Georgisk"
-#: ../rules/base.xml.in.h:249 ../rules/evdev.xml.in.h:249
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Georgian AZERTY Tskapo"
-#: ../rules/base.xml.in.h:250 ../rules/evdev.xml.in.h:250
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Tysk (Macintosh)"
-#: ../rules/base.xml.in.h:251 ../rules/evdev.xml.in.h:251
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Tysk, Sun stumma tangenter"
-#: ../rules/base.xml.in.h:252 ../rules/evdev.xml.in.h:252
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Tysk, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:253 ../rules/evdev.xml.in.h:253
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Tyskland"
-#: ../rules/base.xml.in.h:254 ../rules/evdev.xml.in.h:254
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:255 ../rules/evdev.xml.in.h:255
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Ghana"
-#: ../rules/base.xml.in.h:256 ../rules/evdev.xml.in.h:256
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:257 ../rules/evdev.xml.in.h:257
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Grekland"
-#: ../rules/base.xml.in.h:258 ../rules/evdev.xml.in.h:258
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Gruppväxling på multiplicera/dividera-tangent"
-#: ../rules/base.xml.in.h:259 ../rules/evdev.xml.in.h:259
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:260 ../rules/evdev.xml.in.h:260
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Guinea"
-#: ../rules/base.xml.in.h:261 ../rules/evdev.xml.in.h:261
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gujaratisk"
-#: ../rules/base.xml.in.h:262 ../rules/evdev.xml.in.h:262
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gurmukhisk"
-#: ../rules/base.xml.in.h:263 ../rules/evdev.xml.in.h:263
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gurmukhi Jhelum"
-#: ../rules/base.xml.in.h:264 ../rules/evdev.xml.in.h:264
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Gyration"
-#: ../rules/base.xml.in.h:265 ../rules/evdev.xml.in.h:265
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Happy Hacking-tangentbord"
-#: ../rules/base.xml.in.h:266 ../rules/evdev.xml.in.h:266
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Happy Hacking-tangentbord för Mac"
-#: ../rules/base.xml.in.h:267 ../rules/evdev.xml.in.h:267
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hausa"
-#: ../rules/base.xml.in.h:268 ../rules/evdev.xml.in.h:268
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Hewlett-Packard Internettangentbord"
-#: ../rules/base.xml.in.h:269 ../rules/evdev.xml.in.h:269
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:270 ../rules/evdev.xml.in.h:270
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:271 ../rules/evdev.xml.in.h:271
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:272 ../rules/evdev.xml.in.h:272
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:273 ../rules/evdev.xml.in.h:273
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:274 ../rules/evdev.xml.in.h:274
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:275 ../rules/evdev.xml.in.h:275
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:276 ../rules/evdev.xml.in.h:276
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:277 ../rules/evdev.xml.in.h:277
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Hewlett-Packard SK-250x Multimedia Keyboard"
-#: ../rules/base.xml.in.h:278 ../rules/evdev.xml.in.h:278
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:279 ../rules/evdev.xml.in.h:279
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Hexadecimal"
-#: ../rules/base.xml.in.h:280 ../rules/evdev.xml.in.h:280
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hindi bolnagri"
-#: ../rules/base.xml.in.h:281 ../rules/evdev.xml.in.h:281
+#: ../rules/base.xml.in.h:296
+msgid "Hindi Wx"
+msgstr "Hindi Wx"
+
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Homofonisk"
-#: ../rules/base.xml.in.h:282 ../rules/evdev.xml.in.h:282
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:283 ../rules/evdev.xml.in.h:283
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:284 ../rules/evdev.xml.in.h:284
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:285 ../rules/evdev.xml.in.h:285
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Ungern"
-#: ../rules/base.xml.in.h:286 ../rules/evdev.xml.in.h:286
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper är mappad till Win-tangenterna"
-#: ../rules/base.xml.in.h:287 ../rules/evdev.xml.in.h:287
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:288 ../rules/evdev.xml.in.h:288
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "IBM Rapid Access"
-#: ../rules/base.xml.in.h:289 ../rules/evdev.xml.in.h:289
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "IBM Rapid Access II"
-#: ../rules/base.xml.in.h:290 ../rules/evdev.xml.in.h:290
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:291 ../rules/evdev.xml.in.h:291
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:292 ../rules/evdev.xml.in.h:292
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#: ../rules/base.xml.in.h:293 ../rules/evdev.xml.in.h:293
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:294 ../rules/evdev.xml.in.h:294
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:295 ../rules/evdev.xml.in.h:295
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO-alternativ"
-#: ../rules/base.xml.in.h:296 ../rules/evdev.xml.in.h:296
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Island"
-#: ../rules/base.xml.in.h:297 ../rules/evdev.xml.in.h:297
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Igbo"
-#: ../rules/base.xml.in.h:298 ../rules/evdev.xml.in.h:298
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Inkludera dött tilde-tecken"
-#: ../rules/base.xml.in.h:299 ../rules/evdev.xml.in.h:299
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:300 ../rules/evdev.xml.in.h:300
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Indien"
-#: ../rules/base.xml.in.h:301 ../rules/evdev.xml.in.h:301
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Internationell (AltGr med stumma tangenter)"
-#: ../rules/base.xml.in.h:302 ../rules/evdev.xml.in.h:302
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Internationell (med stumma tangenter)"
-#: ../rules/base.xml.in.h:303 ../rules/evdev.xml.in.h:303
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:304 ../rules/evdev.xml.in.h:304
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "Iran"
-#: ../rules/base.xml.in.h:305 ../rules/evdev.xml.in.h:305
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "Irak"
-#: ../rules/base.xml.in.h:306 ../rules/evdev.xml.in.h:306
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Irland"
-#: ../rules/base.xml.in.h:307 ../rules/evdev.xml.in.h:307
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:308 ../rules/evdev.xml.in.h:308
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:309 ../rules/evdev.xml.in.h:309
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irk"
-#: ../rules/base.xml.in.h:310 ../rules/evdev.xml.in.h:310
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:311 ../rules/evdev.xml.in.h:311
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:312 ../rules/evdev.xml.in.h:312
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Israel"
-#: ../rules/base.xml.in.h:313 ../rules/evdev.xml.in.h:313
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:314 ../rules/evdev.xml.in.h:314
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Italien"
-#: ../rules/base.xml.in.h:315 ../rules/evdev.xml.in.h:315
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Japan"
-#: ../rules/base.xml.in.h:316 ../rules/evdev.xml.in.h:316
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Japan (PC-98xx-serien)"
-#: ../rules/base.xml.in.h:317 ../rules/evdev.xml.in.h:317
-msgid "Japanese 106-key"
-msgstr "Japansk 106-tangenters"
-
-#: ../rules/base.xml.in.h:318 ../rules/evdev.xml.in.h:318
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Tangentbordsalternativ för japanska"
-#: ../rules/base.xml.in.h:319 ../rules/evdev.xml.in.h:319
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:320 ../rules/evdev.xml.in.h:320
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmyk"
# Även kanaresisk (äldre form)
-#: ../rules/base.xml.in.h:321 ../rules/evdev.xml.in.h:321
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:322 ../rules/evdev.xml.in.h:322
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Kana Lock-tangent låser"
# Även kanaresisk (äldre form)
-#: ../rules/base.xml.in.h:323 ../rules/evdev.xml.in.h:323
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:324 ../rules/evdev.xml.in.h:324
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kashubian"
-#: ../rules/base.xml.in.h:325 ../rules/evdev.xml.in.h:325
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:326 ../rules/evdev.xml.in.h:326
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kazakisk med ryska"
-#: ../rules/base.xml.in.h:327 ../rules/evdev.xml.in.h:327
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kazakstan"
-#: ../rules/base.xml.in.h:328 ../rules/evdev.xml.in.h:328
+#: ../rules/base.xml.in.h:343
+msgid "Key sequence to kill the X server"
+msgstr "Tangentsekvens för att döda X-servern"
+
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Tangent för att välja tredje nivå"
-#: ../rules/base.xml.in.h:329 ../rules/evdev.xml.in.h:329
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "Tangent(er) för att byta layout"
-#: ../rules/base.xml.in.h:330 ../rules/evdev.xml.in.h:330
-msgid "Keypad"
-msgstr "Knappsats"
-
-#: ../rules/base.xml.in.h:331 ../rules/evdev.xml.in.h:331
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:332 ../rules/evdev.xml.in.h:332
+#: ../rules/base.xml.in.h:347
+msgid "Kgz"
+msgstr "Kgz"
+
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:333 ../rules/evdev.xml.in.h:333
-msgid "Kir"
-msgstr "Kir"
-
-#: ../rules/base.xml.in.h:334 ../rules/evdev.xml.in.h:334
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:335 ../rules/evdev.xml.in.h:335
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:336 ../rules/evdev.xml.in.h:336
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Korea, Republiken"
-#: ../rules/base.xml.in.h:337 ../rules/evdev.xml.in.h:337
-msgid "Korean 106-key"
-msgstr "Koreansk 106-tangenters"
-
-#: ../rules/base.xml.in.h:338 ../rules/evdev.xml.in.h:338
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:339 ../rules/evdev.xml.in.h:339
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kurdisk, (F)"
-#: ../rules/base.xml.in.h:340 ../rules/evdev.xml.in.h:340
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kurdisk, Arabisk-Latin"
-#: ../rules/base.xml.in.h:341 ../rules/evdev.xml.in.h:341
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kurdisk, Latin Alt-Q"
-#: ../rules/base.xml.in.h:342 ../rules/evdev.xml.in.h:342
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kurdisk, Latin Q"
-#: ../rules/base.xml.in.h:343 ../rules/evdev.xml.in.h:343
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kirgizistan"
-#: ../rules/base.xml.in.h:344 ../rules/evdev.xml.in.h:344
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:345 ../rules/evdev.xml.in.h:345
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:346 ../rules/evdev.xml.in.h:346
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:347 ../rules/evdev.xml.in.h:347
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:348 ../rules/evdev.xml.in.h:348
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Laos"
-#: ../rules/base.xml.in.h:349 ../rules/evdev.xml.in.h:349
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Laptop-tangentbord för bärbar Compaq-dator (t.ex. Armada)"
-#: ../rules/base.xml.in.h:350 ../rules/evdev.xml.in.h:350
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Internettangentbord för bärbar Compaq-dator (t.ex. Presario)"
-#: ../rules/base.xml.in.h:351 ../rules/evdev.xml.in.h:351
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Bärbar eMachines m68xx"
-#: ../rules/base.xml.in.h:352 ../rules/evdev.xml.in.h:352
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "Latin"
-#: ../rules/base.xml.in.h:353 ../rules/evdev.xml.in.h:353
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "Latin Amerikansk"
-#: ../rules/base.xml.in.h:354 ../rules/evdev.xml.in.h:354
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "Latin Unicode"
-#: ../rules/base.xml.in.h:355 ../rules/evdev.xml.in.h:355
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "Latin Unicode qwerty"
-#: ../rules/base.xml.in.h:356 ../rules/evdev.xml.in.h:356
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "Latin qwerty"
-#: ../rules/base.xml.in.h:357 ../rules/evdev.xml.in.h:357
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "Latin unicode"
-#: ../rules/base.xml.in.h:358 ../rules/evdev.xml.in.h:358
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "Latin unicode qwerty"
-#: ../rules/base.xml.in.h:359 ../rules/evdev.xml.in.h:359
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "Latin med gåsögon"
-#: ../rules/base.xml.in.h:360 ../rules/evdev.xml.in.h:360
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Lettland"
-#: ../rules/base.xml.in.h:361 ../rules/evdev.xml.in.h:361
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:362 ../rules/evdev.xml.in.h:362
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Vänster alt"
-#: ../rules/base.xml.in.h:363 ../rules/evdev.xml.in.h:363
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Vänster Alt (då den trycks ned)"
-#: ../rules/base.xml.in.h:364 ../rules/evdev.xml.in.h:364
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Vänster Alt är utbytt med vänster Win-tangent"
-#: ../rules/base.xml.in.h:365 ../rules/evdev.xml.in.h:365
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Vänster Ctrl"
-#: ../rules/base.xml.in.h:366 ../rules/evdev.xml.in.h:366
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Vänster ctrl+vänster skift"
-#: ../rules/base.xml.in.h:367 ../rules/evdev.xml.in.h:367
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Vänster skift"
-#: ../rules/base.xml.in.h:368 ../rules/evdev.xml.in.h:368
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Vänster Win-tangent"
-#: ../rules/base.xml.in.h:369 ../rules/evdev.xml.in.h:369
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Vänster Win (till första layouten), Höger Win/Meny (till sista layouten)"
-#: ../rules/base.xml.in.h:370 ../rules/evdev.xml.in.h:370
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Vänster Win-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:371 ../rules/evdev.xml.in.h:371
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Vänsterhänt"
-#: ../rules/base.xml.in.h:372 ../rules/evdev.xml.in.h:372
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Vänsterhänt Dvorak"
-#: ../rules/base.xml.in.h:373 ../rules/evdev.xml.in.h:373
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Äldre"
-#: ../rules/base.xml.in.h:374 ../rules/evdev.xml.in.h:374
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Gammalt Wang 724"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:376 ../rules/evdev.xml.in.h:376
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Äldre tangent med komma"
-#: ../rules/base.xml.in.h:377 ../rules/evdev.xml.in.h:377
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Äldre tangent med punkt"
-#: ../rules/base.xml.in.h:378 ../rules/evdev.xml.in.h:378
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Mindre än/Större än"
-#: ../rules/base.xml.in.h:379 ../rules/evdev.xml.in.h:379
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Litauen"
-#: ../rules/base.xml.in.h:380 ../rules/evdev.xml.in.h:380
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Logitech Access Keyboard"
-#: ../rules/base.xml.in.h:381 ../rules/evdev.xml.in.h:381
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:382 ../rules/evdev.xml.in.h:382
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (alternativ)"
-#: ../rules/base.xml.in.h:383 ../rules/evdev.xml.in.h:383
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:384 ../rules/evdev.xml.in.h:384
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:385 ../rules/evdev.xml.in.h:385
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:386 ../rules/evdev.xml.in.h:386
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:387 ../rules/evdev.xml.in.h:387
-msgid "Logitech Cordless Desktop Pro (alternate option2)"
-msgstr "Logitech Cordless Desktop Pro (alternativ2)"
+#: ../rules/base.xml.in.h:401
+msgid "Logitech Cordless Desktop Pro (alternate option 2)"
+msgstr "Logitech Cordless Desktop Pro (alternativt val 2)"
-#: ../rules/base.xml.in.h:388 ../rules/evdev.xml.in.h:388
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:389 ../rules/evdev.xml.in.h:389
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:390 ../rules/evdev.xml.in.h:390
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 extratangenter via G15daemon"
-#: ../rules/base.xml.in.h:391 ../rules/evdev.xml.in.h:391
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Logitech Generic Keyboard"
-#: ../rules/base.xml.in.h:392 ../rules/evdev.xml.in.h:392
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Logitech Internet 350 Keyboard"
-#: ../rules/base.xml.in.h:393 ../rules/evdev.xml.in.h:393
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Logitech Internettangentbord"
-#: ../rules/base.xml.in.h:394 ../rules/evdev.xml.in.h:394
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Logitech Internet Navigator-tangentbord"
-#: ../rules/base.xml.in.h:395 ../rules/evdev.xml.in.h:395
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Logitech Media Elite Keyboard"
-#: ../rules/base.xml.in.h:396 ../rules/evdev.xml.in.h:396
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Logitech Ultra-X Cordless Media Desktop Keyboard"
-#: ../rules/base.xml.in.h:397 ../rules/evdev.xml.in.h:397
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Logitech Ultra-X Keyboard"
-#: ../rules/base.xml.in.h:398 ../rules/evdev.xml.in.h:398
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Logitech diNovo Edge Keyboard"
-#: ../rules/base.xml.in.h:399 ../rules/evdev.xml.in.h:399
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Logitech diNovo Keyboard"
-#: ../rules/base.xml.in.h:400 ../rules/evdev.xml.in.h:400
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:401 ../rules/evdev.xml.in.h:401
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Logitech iTouch Cordless Keyboard (modell Y-RB6)"
-#: ../rules/base.xml.in.h:402 ../rules/evdev.xml.in.h:402
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Logitech iTouch Internet Navigator Keyboard SE"
-#: ../rules/base.xml.in.h:403 ../rules/evdev.xml.in.h:403
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Logitech iTouch Internet Navigator Keyboard SE (USB)"
-#: ../rules/base.xml.in.h:404 ../rules/evdev.xml.in.h:404
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "LÃ¥gsorbiska"
-#: ../rules/base.xml.in.h:405 ../rules/evdev.xml.in.h:405
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "LÃ¥gsorbiska (qwertz)"
-#: ../rules/base.xml.in.h:406 ../rules/evdev.xml.in.h:406
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:407 ../rules/evdev.xml.in.h:407
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:408 ../rules/evdev.xml.in.h:408
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:409 ../rules/evdev.xml.in.h:409
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:410 ../rules/evdev.xml.in.h:410
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (Intl)"
-#: ../rules/base.xml.in.h:411 ../rules/evdev.xml.in.h:411
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Makedonien"
-#: ../rules/base.xml.in.h:412 ../rules/evdev.xml.in.h:412
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:413 ../rules/evdev.xml.in.h:413
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh gammal"
-#: ../rules/base.xml.in.h:414 ../rules/evdev.xml.in.h:414
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, Sun stumma tangenter"
-#: ../rules/base.xml.in.h:415 ../rules/evdev.xml.in.h:415
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:416 ../rules/evdev.xml.in.h:416
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Gör CapsLock till ytterligare en backstegstangent"
-#: ../rules/base.xml.in.h:417 ../rules/evdev.xml.in.h:417
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Gör CapsLock till ytterligare en Ctrl-tangent"
-#: ../rules/base.xml.in.h:418 ../rules/evdev.xml.in.h:418
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Gör CapsLock till ytterligare en ESC-tangent"
-#: ../rules/base.xml.in.h:419 ../rules/evdev.xml.in.h:419
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Gör CapsLock till ytterligare en Hyper-tangent"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Gör CapsLock till ytterligare en NumLock-tangent"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Gör CapsLock till ytterligare en Super-tangent"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:420 ../rules/evdev.xml.in.h:420
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:421 ../rules/evdev.xml.in.h:421
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
-#: ../rules/base.xml.in.h:422 ../rules/evdev.xml.in.h:422
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Maldiverna"
-#: ../rules/base.xml.in.h:423 ../rules/evdev.xml.in.h:423
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Malta"
-#: ../rules/base.xml.in.h:424 ../rules/evdev.xml.in.h:424
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Maltesiskt tangentbord med USA-layout"
-#: ../rules/base.xml.in.h:425 ../rules/evdev.xml.in.h:425
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:426 ../rules/evdev.xml.in.h:426
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Maori"
-#: ../rules/base.xml.in.h:427 ../rules/evdev.xml.in.h:427
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:428 ../rules/evdev.xml.in.h:428
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Memorex MX2500 EZ-Access-tangentbord"
-#: ../rules/base.xml.in.h:429 ../rules/evdev.xml.in.h:429
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:430 ../rules/evdev.xml.in.h:430
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Meny"
-#: ../rules/base.xml.in.h:431 ../rules/evdev.xml.in.h:431
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta är mappad till vänster Win-tangent"
-#: ../rules/base.xml.in.h:432 ../rules/evdev.xml.in.h:432
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta är mappad till Win-tangenterna"
-#: ../rules/base.xml.in.h:433 ../rules/evdev.xml.in.h:433
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:434 ../rules/evdev.xml.in.h:434
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Microsoft Internet Keyboard"
-#: ../rules/base.xml.in.h:435 ../rules/evdev.xml.in.h:435
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Microsoft Internet Keyboard Pro, svensk"
-#: ../rules/base.xml.in.h:436 ../rules/evdev.xml.in.h:436
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:437 ../rules/evdev.xml.in.h:437
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:438 ../rules/evdev.xml.in.h:438
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:439 ../rules/evdev.xml.in.h:439
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:440 ../rules/evdev.xml.in.h:440
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:441 ../rules/evdev.xml.in.h:441
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:442 ../rules/evdev.xml.in.h:442
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Microsoft Office-tangentbord"
-#: ../rules/base.xml.in.h:443 ../rules/evdev.xml.in.h:443
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:444 ../rules/evdev.xml.in.h:444
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Diverse kompatibilitetsalternativ"
-#: ../rules/base.xml.in.h:445 ../rules/evdev.xml.in.h:445
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:446 ../rules/evdev.xml.in.h:446
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:447 ../rules/evdev.xml.in.h:447
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:448 ../rules/evdev.xml.in.h:448
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:449 ../rules/evdev.xml.in.h:449
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mongoliet"
-#: ../rules/base.xml.in.h:450 ../rules/evdev.xml.in.h:450
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Montenegro"
-#: ../rules/base.xml.in.h:451 ../rules/evdev.xml.in.h:451
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Marocko"
-#: ../rules/base.xml.in.h:452 ../rules/evdev.xml.in.h:452
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Flerspråkig"
-#: ../rules/base.xml.in.h:453 ../rules/evdev.xml.in.h:453
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Flerspråkig, första delen"
-#: ../rules/base.xml.in.h:454 ../rules/evdev.xml.in.h:454
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Flerspråkig, andra delen"
-#: ../rules/base.xml.in.h:455 ../rules/evdev.xml.in.h:455
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Myanmar"
-#: ../rules/base.xml.in.h:456 ../rules/evdev.xml.in.h:456
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Backsteg i NICOLA-F-stil"
-#: ../rules/base.xml.in.h:457 ../rules/evdev.xml.in.h:457
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:458 ../rules/evdev.xml.in.h:458
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:459 ../rules/evdev.xml.in.h:459
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo för Esperanto"
-#: ../rules/base.xml.in.h:460 ../rules/evdev.xml.in.h:460
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo för amerikanska tangentbord"
-#: ../rules/base.xml.in.h:461 ../rules/evdev.xml.in.h:461
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:462 ../rules/evdev.xml.in.h:462
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:463 ../rules/evdev.xml.in.h:463
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Nepal"
-#: ../rules/base.xml.in.h:464 ../rules/evdev.xml.in.h:464
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Nederländerna"
-#: ../rules/base.xml.in.h:465 ../rules/evdev.xml.in.h:465
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Ny fonetisk"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:466 ../rules/evdev.xml.in.h:466
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Nigeria"
-#: ../rules/base.xml.in.h:467 ../rules/evdev.xml.in.h:467
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:468 ../rules/evdev.xml.in.h:468
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Icke-brytande blankstegstecken på fjärde nivån"
-#: ../rules/base.xml.in.h:469 ../rules/evdev.xml.in.h:469
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Icke-brytande blankstegstecken på fjärde nivån, tunt icke-brytande blankstegstecken på sjätte nivån"
-#: ../rules/base.xml.in.h:470 ../rules/evdev.xml.in.h:470
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Icke-brytande blankstegstecken på fjärde nivån, tunt icke-brytande blankstegstecken på sjätte nivån (via Ctrl+Skift)"
-#: ../rules/base.xml.in.h:471 ../rules/evdev.xml.in.h:471
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Icke-brytande blankstegstecken på andra nivån"
-#: ../rules/base.xml.in.h:472 ../rules/evdev.xml.in.h:472
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Icke-brytande blankstegstecken på tredje nivån"
-#: ../rules/base.xml.in.h:473 ../rules/evdev.xml.in.h:473
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Icke-brytande blankstegstecken på tredje nivån, ingenting på fjärde nivån"
-#: ../rules/base.xml.in.h:474 ../rules/evdev.xml.in.h:474
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Icke-brytande blankstegstecken på tredje nivån, tunt icke-brytande blankstegstecken på fjärde nivån"
-#: ../rules/base.xml.in.h:475 ../rules/evdev.xml.in.h:475
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:476 ../rules/evdev.xml.in.h:476
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Nordsamisk"
-#: ../rules/base.xml.in.h:477 ../rules/evdev.xml.in.h:477
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Nordsamisk, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:478 ../rules/evdev.xml.in.h:478
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:479 ../rules/evdev.xml.in.h:479
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Norge"
-#: ../rules/base.xml.in.h:480 ../rules/evdev.xml.in.h:480
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
# KONTROLLERA DENNA
-#: ../rules/base.xml.in.h:481 ../rules/evdev.xml.in.h:481
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Beteende för Delete-tangent på numeriskt tangentbord"
-#: ../rules/base.xml.in.h:482 ../rules/evdev.xml.in.h:482
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Tangenter på det numeriska tangentbordet fungerar som på Mac"
-#: ../rules/base.xml.in.h:483 ../rules/evdev.xml.in.h:483
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Layoutval för numeriskt tangentbord"
-#: ../rules/base.xml.in.h:484 ../rules/evdev.xml.in.h:484
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:485 ../rules/evdev.xml.in.h:485
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:486 ../rules/evdev.xml.in.h:486
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:487 ../rules/evdev.xml.in.h:487
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pashto"
-#: ../rules/base.xml.in.h:488 ../rules/evdev.xml.in.h:488
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Södra Uzbekistan"
-#: ../rules/base.xml.in.h:489 ../rules/evdev.xml.in.h:489
+#: ../rules/base.xml.in.h:507
+msgid "Occitan"
+msgstr "Occitan"
+
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:490 ../rules/evdev.xml.in.h:490
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogham IS434"
-#: ../rules/base.xml.in.h:491 ../rules/evdev.xml.in.h:491
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Oriya"
-#: ../rules/base.xml.in.h:492 ../rules/evdev.xml.in.h:492
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Ortek MCK-800 MM/Internet-tangentbord"
-#: ../rules/base.xml.in.h:493 ../rules/evdev.xml.in.h:493
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "Ossetisk"
-#: ../rules/base.xml.in.h:494 ../rules/evdev.xml.in.h:494
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "Ossetisk, Win-tangenter"
-#: ../rules/base.xml.in.h:495 ../rules/evdev.xml.in.h:495
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "Ossetisk, äldre"
-#: ../rules/base.xml.in.h:496 ../rules/evdev.xml.in.h:496
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "PC-98xx-serien"
-#: ../rules/base.xml.in.h:497 ../rules/evdev.xml.in.h:497
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:498 ../rules/evdev.xml.in.h:498
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pakistan"
-#: ../rules/base.xml.in.h:499 ../rules/evdev.xml.in.h:499
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pashto"
-#: ../rules/base.xml.in.h:500 ../rules/evdev.xml.in.h:500
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pattachote"
-#: ../rules/base.xml.in.h:501 ../rules/evdev.xml.in.h:501
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Persiska, med persiskt numeriskt tangentbord"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Fonetisk"
-#: ../rules/base.xml.in.h:502 ../rules/evdev.xml.in.h:502
+#: ../rules/base.xml.in.h:522
+msgid "Phonetic Winkeys"
+msgstr "Fonetisk, Windows-tangenter"
+
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:503 ../rules/evdev.xml.in.h:503
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Polen"
-#: ../rules/base.xml.in.h:504 ../rules/evdev.xml.in.h:504
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Polytonic"
-#: ../rules/base.xml.in.h:505 ../rules/evdev.xml.in.h:505
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Portugal"
-#: ../rules/base.xml.in.h:506 ../rules/evdev.xml.in.h:506
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:507 ../rules/evdev.xml.in.h:507
-msgid "Pro Keypad"
-msgstr "Pro Keypad"
-
-#: ../rules/base.xml.in.h:508 ../rules/evdev.xml.in.h:508
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:509 ../rules/evdev.xml.in.h:509
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Dvorak för programmerare"
-#: ../rules/base.xml.in.h:510 ../rules/evdev.xml.in.h:510
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:511 ../rules/evdev.xml.in.h:511
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:512 ../rules/evdev.xml.in.h:512
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:513 ../rules/evdev.xml.in.h:513
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Höger Alt"
-#: ../rules/base.xml.in.h:514 ../rules/evdev.xml.in.h:514
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Höger Alt-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:515 ../rules/evdev.xml.in.h:515
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Höger Alt-tangent väljer aldrig tredje nivån"
-#: ../rules/base.xml.in.h:516 ../rules/evdev.xml.in.h:516
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Höger Alt-tangent, Skift+Höger Alt-tangent är Multi_Key"
-#: ../rules/base.xml.in.h:517 ../rules/evdev.xml.in.h:517
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Höger Ctrl"
-#: ../rules/base.xml.in.h:518 ../rules/evdev.xml.in.h:518
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Höger Ctrl-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:519 ../rules/evdev.xml.in.h:519
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Höger Ctrl-tangent fungerar som höger Alt"
-#: ../rules/base.xml.in.h:520 ../rules/evdev.xml.in.h:520
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Höger skift"
-#: ../rules/base.xml.in.h:521 ../rules/evdev.xml.in.h:521
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Höger Win-tangent"
-#: ../rules/base.xml.in.h:522 ../rules/evdev.xml.in.h:522
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Höger Win-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:523 ../rules/evdev.xml.in.h:523
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Högerhänt"
-#: ../rules/base.xml.in.h:524 ../rules/evdev.xml.in.h:524
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Högerhänt Dvorak"
-#: ../rules/base.xml.in.h:525 ../rules/evdev.xml.in.h:525
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rumänien"
-#: ../rules/base.xml.in.h:526 ../rules/evdev.xml.in.h:526
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Rumänskt tangentbord med tyska bokstäver"
-#: ../rules/base.xml.in.h:527 ../rules/evdev.xml.in.h:527
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Rumänskt tangentbord med tyska bokstäver, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:528 ../rules/evdev.xml.in.h:528
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:529 ../rules/evdev.xml.in.h:529
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Rus"
-#: ../rules/base.xml.in.h:530 ../rules/evdev.xml.in.h:530
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Ryssland"
-#: ../rules/base.xml.in.h:531 ../rules/evdev.xml.in.h:531
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Rysk"
-#: ../rules/base.xml.in.h:532 ../rules/evdev.xml.in.h:532
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Rysk fonetiskt"
-#: ../rules/base.xml.in.h:533 ../rules/evdev.xml.in.h:533
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Rysk fonetisk dvorak"
-#: ../rules/base.xml.in.h:534 ../rules/evdev.xml.in.h:534
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Rysk fonetiskt, eliminera stumma tangenter"
-#: ../rules/base.xml.in.h:535 ../rules/evdev.xml.in.h:535
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Ryska med kazakiska"
-#: ../rules/base.xml.in.h:536 ../rules/evdev.xml.in.h:536
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "SILVERCREST Multimedia Wireless Keyboard"
-#: ../rules/base.xml.in.h:537 ../rules/evdev.xml.in.h:537
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:538 ../rules/evdev.xml.in.h:538
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:539 ../rules/evdev.xml.in.h:539
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:540 ../rules/evdev.xml.in.h:540
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:541 ../rules/evdev.xml.in.h:541
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:542 ../rules/evdev.xml.in.h:542
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:543 ../rules/evdev.xml.in.h:543
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:544 ../rules/evdev.xml.in.h:544
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:545 ../rules/evdev.xml.in.h:545
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:546 ../rules/evdev.xml.in.h:546
+#: ../rules/base.xml.in.h:565
+msgid "Scroll Lock"
+msgstr "Scroll Lock"
+
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:547 ../rules/evdev.xml.in.h:547
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:548 ../rules/evdev.xml.in.h:548
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Semikolon på tredje nivå"
-#: ../rules/base.xml.in.h:549 ../rules/evdev.xml.in.h:549
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Serbien"
-#: ../rules/base.xml.in.h:550 ../rules/evdev.xml.in.h:550
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Skift avbryter CapsLock"
-#: ../rules/base.xml.in.h:551 ../rules/evdev.xml.in.h:551
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Skift avbryter inte NumLock, väljer tredje nivån istället"
-#: ../rules/base.xml.in.h:552 ../rules/evdev.xml.in.h:552
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Skift med tangenterna på numeriska tangentbordet fungerar som i MS Windows"
-#: ../rules/base.xml.in.h:553 ../rules/evdev.xml.in.h:553
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Skift+CapsLock"
-#: ../rules/base.xml.in.h:554 ../rules/evdev.xml.in.h:554
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "Enkel"
-#: ../rules/base.xml.in.h:555 ../rules/evdev.xml.in.h:555
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Slovakien"
-#: ../rules/base.xml.in.h:556 ../rules/evdev.xml.in.h:556
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Slovenien"
-#: ../rules/base.xml.in.h:557 ../rules/evdev.xml.in.h:557
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Sydafrika"
-#: ../rules/base.xml.in.h:558 ../rules/evdev.xml.in.h:558
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Södra Uzbekistan"
-#: ../rules/base.xml.in.h:559 ../rules/evdev.xml.in.h:559
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Spanien"
-#: ../rules/base.xml.in.h:560 ../rules/evdev.xml.in.h:560
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Specialtangenter (Ctrl+Alt+&lt;tangent&gt;) hanteras i en server"
-#: ../rules/base.xml.in.h:561 ../rules/evdev.xml.in.h:561
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:562 ../rules/evdev.xml.in.h:562
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: ../rules/base.xml.in.h:563 ../rules/evdev.xml.in.h:563
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Standard"
-#: ../rules/base.xml.in.h:564 ../rules/evdev.xml.in.h:564
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Standard (Cedilj)"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:566 ../rules/evdev.xml.in.h:566
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "Standard RSTU"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:568 ../rules/evdev.xml.in.h:568
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "Standard RSTU på rysk layout"
-#: ../rules/base.xml.in.h:569 ../rules/evdev.xml.in.h:569
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun Type 5/6"
-#: ../rules/base.xml.in.h:570 ../rules/evdev.xml.in.h:570
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Sun stumma tangenter"
-#: ../rules/base.xml.in.h:571 ../rules/evdev.xml.in.h:571
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Super Power Multimedia Keyboard"
-#: ../rules/base.xml.in.h:572 ../rules/evdev.xml.in.h:572
-msgid "Super is mapped to Win keys"
-msgstr "Super-tangenten är mappad till Win-tangenterna"
-
-#: ../rules/base.xml.in.h:573 ../rules/evdev.xml.in.h:573
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:574 ../rules/evdev.xml.in.h:574
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:575 ../rules/evdev.xml.in.h:575
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:576 ../rules/evdev.xml.in.h:576
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Byt Ctrl och CapsLock"
-#: ../rules/base.xml.in.h:577 ../rules/evdev.xml.in.h:577
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Byt ESC och CapsLock"
-#: ../rules/base.xml.in.h:578 ../rules/evdev.xml.in.h:578
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:579 ../rules/evdev.xml.in.h:579
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Sverige"
-#: ../rules/base.xml.in.h:580 ../rules/evdev.xml.in.h:580
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Schweiz"
-#: ../rules/base.xml.in.h:581 ../rules/evdev.xml.in.h:581
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:582 ../rules/evdev.xml.in.h:582
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:583 ../rules/evdev.xml.in.h:583
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Syrien"
-#: ../rules/base.xml.in.h:584 ../rules/evdev.xml.in.h:584
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Syrisk"
-#: ../rules/base.xml.in.h:585 ../rules/evdev.xml.in.h:585
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Syrisk fonetisk"
-#: ../rules/base.xml.in.h:586 ../rules/evdev.xml.in.h:586
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:587 ../rules/evdev.xml.in.h:587
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Tajikistan"
-#: ../rules/base.xml.in.h:588 ../rules/evdev.xml.in.h:588
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Tamilsk"
-#: ../rules/base.xml.in.h:589 ../rules/evdev.xml.in.h:589
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Tamil TAB Typewriter"
-#: ../rules/base.xml.in.h:590 ../rules/evdev.xml.in.h:590
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Tamil TSCII Typewriter"
-#: ../rules/base.xml.in.h:591 ../rules/evdev.xml.in.h:591
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Tamilisk Unicode"
-#: ../rules/base.xml.in.h:592 ../rules/evdev.xml.in.h:592
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:593 ../rules/evdev.xml.in.h:593
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:594 ../rules/evdev.xml.in.h:594
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Telugo"
-#: ../rules/base.xml.in.h:595 ../rules/evdev.xml.in.h:595
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:596 ../rules/evdev.xml.in.h:596
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thailand"
-#: ../rules/base.xml.in.h:597 ../rules/evdev.xml.in.h:597
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tibetisk"
-#: ../rules/base.xml.in.h:598 ../rules/evdev.xml.in.h:598
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetisk (med ASCII-taltecken)"
-#: ../rules/base.xml.in.h:599 ../rules/evdev.xml.in.h:599
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Tifinagh"
-#: ../rules/base.xml.in.h:600 ../rules/evdev.xml.in.h:600
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Tifinagh alternativ"
-#: ../rules/base.xml.in.h:601 ../rules/evdev.xml.in.h:601
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Tifinagh alternativ fonetisk"
-#: ../rules/base.xml.in.h:602 ../rules/evdev.xml.in.h:602
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Tifinagh utökad"
-#: ../rules/base.xml.in.h:603 ../rules/evdev.xml.in.h:603
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Tifinagh utökad fonetisk"
-#: ../rules/base.xml.in.h:604 ../rules/evdev.xml.in.h:604
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Tifinagh fonetisk"
-#: ../rules/base.xml.in.h:605 ../rules/evdev.xml.in.h:605
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Tilde (~) variant"
-#: ../rules/base.xml.in.h:606 ../rules/evdev.xml.in.h:606
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:607 ../rules/evdev.xml.in.h:607
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Till motsvarande tangent på ett Dvorak-tangentbord."
-#: ../rules/base.xml.in.h:608 ../rules/evdev.xml.in.h:608
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Till motsvarande tangent på ett Qwerty-tangentbord."
-#: ../rules/base.xml.in.h:609 ../rules/evdev.xml.in.h:609
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:610 ../rules/evdev.xml.in.h:610
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
+msgstr "Traditionell fonetisk"
+
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Trust Direct Access-tangentbord"
-#: ../rules/base.xml.in.h:611 ../rules/evdev.xml.in.h:611
+#: ../rules/base.xml.in.h:631
+msgid "Trust Slimline"
+msgstr "Trust Slimline"
+
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
-#: ../rules/base.xml.in.h:612 ../rules/evdev.xml.in.h:612
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:613 ../rules/evdev.xml.in.h:613
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Turkiet"
-#: ../rules/base.xml.in.h:614 ../rules/evdev.xml.in.h:614
+#: ../rules/base.xml.in.h:635
+msgid "Turkmenistan"
+msgstr "Turkmenistan"
+
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Skrivmaskin"
-#: ../rules/base.xml.in.h:615 ../rules/evdev.xml.in.h:615
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "UCW-layout (endast bokstäver med accenter)"
-#: ../rules/base.xml.in.h:616 ../rules/evdev.xml.in.h:616
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "USA-tangentbord med bosniska digrafer"
-#: ../rules/base.xml.in.h:617 ../rules/evdev.xml.in.h:617
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "USA-tangentbord med bosniska bokstäver"
-#: ../rules/base.xml.in.h:618 ../rules/evdev.xml.in.h:618
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "USA-tangentbord med kroatiska digrafer"
-#: ../rules/base.xml.in.h:619 ../rules/evdev.xml.in.h:619
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "USA-tangentbord med kroatiska bokstäver"
-#: ../rules/base.xml.in.h:620 ../rules/evdev.xml.in.h:620
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "USA-tangentbord med estniska bokstäver"
-#: ../rules/base.xml.in.h:621 ../rules/evdev.xml.in.h:621
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "USA-tangentbord med italienska bokstäver"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "USA-tangentbord med litauiska bokstäver"
-#: ../rules/base.xml.in.h:622 ../rules/evdev.xml.in.h:622
-msgid "US keyboard with Slovenian digraphs"
-msgstr "USA-tangentbord med slovenska digrafer"
-
-#: ../rules/base.xml.in.h:623 ../rules/evdev.xml.in.h:623
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "USA-tangentbord med slovenska bokstäver"
-#: ../rules/base.xml.in.h:624 ../rules/evdev.xml.in.h:624
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "USA"
-#: ../rules/base.xml.in.h:625 ../rules/evdev.xml.in.h:625
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:626 ../rules/evdev.xml.in.h:626
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:627 ../rules/evdev.xml.in.h:627
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "Ukraina"
-#: ../rules/base.xml.in.h:628 ../rules/evdev.xml.in.h:628
-msgid "Unicode"
-msgstr "Unicode"
-
-#: ../rules/base.xml.in.h:629 ../rules/evdev.xml.in.h:629
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode-tillägg (pilar och matematikoperatorer)"
-#: ../rules/base.xml.in.h:630 ../rules/evdev.xml.in.h:630
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Unicode-tillägg (pilar och matematikoperatorer). Matematikoperatorer på standardnivå"
-#: ../rules/base.xml.in.h:631 ../rules/evdev.xml.in.h:631
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "UnicodeExpert"
-#: ../rules/base.xml.in.h:632 ../rules/evdev.xml.in.h:632
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Storbritannien"
-#: ../rules/base.xml.in.h:633 ../rules/evdev.xml.in.h:633
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:634 ../rules/evdev.xml.in.h:634
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, alternativ fonetisk"
-#: ../rules/base.xml.in.h:635 ../rules/evdev.xml.in.h:635
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, fonetisk"
-#: ../rules/base.xml.in.h:636 ../rules/evdev.xml.in.h:636
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, Win-tangenter"
-#: ../rules/base.xml.in.h:637 ../rules/evdev.xml.in.h:637
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Använd bosniska digrafer"
-#: ../rules/base.xml.in.h:638 ../rules/evdev.xml.in.h:638
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Använd kroatiska digrafer"
-#: ../rules/base.xml.in.h:639 ../rules/evdev.xml.in.h:639
-msgid "Use Slovenian digraphs"
-msgstr "Använd slovenska digrafer"
-
-#: ../rules/base.xml.in.h:640 ../rules/evdev.xml.in.h:640
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Använd gåsögon för citattecken"
-#: ../rules/base.xml.in.h:641 ../rules/evdev.xml.in.h:641
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Använd tangentbordslampa för att visa alternativ layout"
-#: ../rules/base.xml.in.h:642 ../rules/evdev.xml.in.h:642
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Använder blankstegstangenten för att mata in icke-brytande blankstegstecken"
-#: ../rules/base.xml.in.h:643 ../rules/evdev.xml.in.h:643
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Vanligt blanksteg på alla nivåer"
-#: ../rules/base.xml.in.h:644 ../rules/evdev.xml.in.h:644
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:645 ../rules/evdev.xml.in.h:645
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uzbekistan"
-#: ../rules/base.xml.in.h:646 ../rules/evdev.xml.in.h:646
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Vietnam"
-#: ../rules/base.xml.in.h:647 ../rules/evdev.xml.in.h:647
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "ViewSonic KU-306 internettangentbord"
-#: ../rules/base.xml.in.h:648 ../rules/evdev.xml.in.h:648
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:649 ../rules/evdev.xml.in.h:649
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Wang 724 numeriskt tangentbord med unicode-tillägg (pilar och matematikoperatorer)"
-#: ../rules/base.xml.in.h:650 ../rules/evdev.xml.in.h:650
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Wang 724 numeriskt tangentbord med unicode-tillägg (pilar och matematikoperatorer). Matematikoperatorer på standardnivå"
-#: ../rules/base.xml.in.h:651 ../rules/evdev.xml.in.h:651
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang modell 724 azerty"
-#: ../rules/base.xml.in.h:652 ../rules/evdev.xml.in.h:652
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Västlig"
-#: ../rules/base.xml.in.h:653 ../rules/evdev.xml.in.h:653
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook Model XP5"
-#: ../rules/base.xml.in.h:654 ../rules/evdev.xml.in.h:654
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Win-tangenter"
-#: ../rules/base.xml.in.h:655 ../rules/evdev.xml.in.h:655
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Med &lt;\\|&gt;-tangent"
-#: ../rules/base.xml.in.h:656 ../rules/evdev.xml.in.h:656
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Med eurotecknet till tangenten 5"
-#: ../rules/base.xml.in.h:657 ../rules/evdev.xml.in.h:657
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Med gåsögon"
-#: ../rules/base.xml.in.h:658 ../rules/evdev.xml.in.h:658
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Yahoo! Internettangentbord"
-#: ../rules/base.xml.in.h:659 ../rules/evdev.xml.in.h:659
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Jakutiska"
-#: ../rules/base.xml.in.h:660 ../rules/evdev.xml.in.h:660
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoruba"
-#: ../rules/base.xml.in.h:661 ../rules/evdev.xml.in.h:661
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Z och ZHE utbytta"
-#: ../rules/base.xml.in.h:662 ../rules/evdev.xml.in.h:662
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:663 ../rules/evdev.xml.in.h:663
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:664 ../rules/evdev.xml.in.h:664
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/siffror"
-#: ../rules/base.xml.in.h:665 ../rules/evdev.xml.in.h:665
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "siffror"
-#: ../rules/base.xml.in.h:666 ../rules/evdev.xml.in.h:666
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "flyttat semikolon och citattecken (föråldrat)"
-#: ../rules/base.xml.in.h:667 ../rules/evdev.xml.in.h:667
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:668 ../rules/evdev.xml.in.h:668
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:669 ../rules/evdev.xml.in.h:669
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, utökat omvänt snedstreck"
-#: ../rules/base.xml.in.h:670 ../rules/evdev.xml.in.h:670
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/siffror"
-#: ../rules/base.xml.in.h:671 ../rules/evdev.xml.in.h:671
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Atsina"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Kombinerade accenter istället för stumma tangenter"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Internationell (AltGr med kombinerad Unicode)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Internationell (AltGr med kombinerad Unicode, alternativ)"
+
+#~ msgid "Keypad"
+#~ msgstr "Knappsats"
+
+#~ msgid "Pro"
+#~ msgstr "Pro"
+
+#~ msgid "Pro Keypad"
+#~ msgstr "Pro Keypad"
+
+#~ msgid "Standard Phonetic"
+#~ msgstr "Fonetisk, standard"
+
+#~ msgid "Brazilian ABNT2"
+#~ msgstr "Brasiliansk ABNT2"
+
+#~ msgid "Japanese 106-key"
+#~ msgstr "Japansk 106-tangenters"
+
+#~ msgid "Kir"
+#~ msgstr "Kir"
+
+#~ msgid "Korean 106-key"
+#~ msgstr "Koreansk 106-tangenters"
+
+#~ msgid "Super is mapped to Win keys"
+#~ msgstr "Super-tangenten är mappad till Win-tangenterna"
+
+#~ msgid "US keyboard with Slovenian digraphs"
+#~ msgstr "USA-tangentbord med slovenska digrafer"
+
+#~ msgid "Unicode"
+#~ msgstr "Unicode"
+
+#~ msgid "Use Slovenian digraphs"
+#~ msgstr "Använd slovenska digrafer"
+
#~ msgid "Add the EuroSign to the 2 key."
#~ msgstr "Lägg till eurotecknet till tangenten 2."
@@ -2706,9 +2846,6 @@ msgstr "qwertz"
#~ msgid "Alt+Shift change layout."
#~ msgstr "Alt+Shift byter layout."
-#~ msgid "Baltic+"
-#~ msgstr "Baltisk+"
-
#~ msgid "Both Alt keys together change layout."
#~ msgstr "BÃ¥da Alt-tangenterna tillsammans byter layout."
@@ -2718,9 +2855,6 @@ msgstr "qwertz"
#~ msgid "Both Shift keys together change layout."
#~ msgstr "BÃ¥da Skift-tangenterna tillsammans byter layout."
-#~ msgid "Caps Lock is Compose."
-#~ msgstr "Caps Lock är Compose."
-
#~ msgid "CapsLock LED shows alternative layout."
#~ msgstr "CapsLock-lampan visar alternativ layout."
@@ -3048,9 +3182,6 @@ msgstr "qwertz"
#~ msgid "Turkish Alt-Q Layout"
#~ msgstr "Turkisk Alt-Q-layout"
-#~ msgid "U.S. English"
-#~ msgstr "Engelskamerikansk"
-
#~ msgid "U.S. English w/ ISO9995-3"
#~ msgstr "Engelskamerikansk med ISO9995-3"
@@ -3114,9 +3245,6 @@ msgstr "qwertz"
#~ msgid "Tamil INSCRIPT"
#~ msgstr "Tamil INSCRIPT"
-#~ msgid "US keyboard with Maltian letters"
-#~ msgstr "USA-tangentbord med maltesiska bokstäver"
-
#~ msgid "si1452"
#~ msgstr "si1452"
@@ -3162,9 +3290,6 @@ msgstr "qwertz"
#~ msgid "Hin"
#~ msgstr "Hin"
-#~ msgid "Hindi"
-#~ msgstr "Hindisk"
-
#~ msgid "INSCRIPT layout"
#~ msgstr "INSCRIPT-layout"
diff --git a/xorg-server/xkbdata.src/po/vi.po b/xorg-server/xkbdata.src/po/vi.po
index 69d7fb7b5..d69f2498d 100644
--- a/xorg-server/xkbdata.src/po/vi.po
+++ b/xorg-server/xkbdata.src/po/vi.po
@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 1.6pre1\n"
+"Project-Id-Version: xkeyboard-config 1.6.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2009-05-12 23:49+0100\n"
-"PO-Revision-Date: 2009-05-13 20:36+0930\n"
+"POT-Creation-Date: 2009-09-15 23:31+0100\n"
+"PO-Revision-Date: 2009-09-19 14:33+0930\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
"MIME-Version: 1.0\n"
@@ -373,2382 +373,2426 @@ msgid "Bangladesh"
msgstr "Băng-la-đexợ"
#: ../rules/base.xml.in.h:89
+msgid "Bashkirian"
+msgstr "Ba-s-khi-ri"
+
+#: ../rules/base.xml.in.h:90
msgid "Bel"
msgstr "Bel"
-#: ../rules/base.xml.in.h:90
+#: ../rules/base.xml.in.h:91
msgid "Belarus"
msgstr "Bê-la-rút"
-#: ../rules/base.xml.in.h:91
+#: ../rules/base.xml.in.h:92
msgid "Belgium"
msgstr "Bỉ"
-#: ../rules/base.xml.in.h:92
+#: ../rules/base.xml.in.h:93
msgid "BenQ X-Touch"
msgstr "BenQ X-Touch"
-#: ../rules/base.xml.in.h:93
+#: ../rules/base.xml.in.h:94
msgid "BenQ X-Touch 730"
msgstr "BenQ X-Touch 730"
-#: ../rules/base.xml.in.h:94
+#: ../rules/base.xml.in.h:95
msgid "BenQ X-Touch 800"
msgstr "BenQ X-Touch 800"
-#: ../rules/base.xml.in.h:95
+#: ../rules/base.xml.in.h:96
msgid "Bengali"
msgstr "Ben-ga-li"
-#: ../rules/base.xml.in.h:96
+#: ../rules/base.xml.in.h:97
msgid "Bengali Probhat"
msgstr "Ben-ga-li Probhat"
-#: ../rules/base.xml.in.h:97
+#: ../rules/base.xml.in.h:98
msgid "Bepo, ergonomic, Dvorak way"
msgstr "Bepo, tối ưu nhân tố, cách Dvorak"
-#: ../rules/base.xml.in.h:98
+#: ../rules/base.xml.in.h:99
msgid "Bepo, ergonomic, Dvorak way, latin-9 only"
msgstr "Bepo, tối ưu nhân tố, cách Dvorak, chỉ Latin-9"
-#: ../rules/base.xml.in.h:99
+#: ../rules/base.xml.in.h:100
msgid "Bgr"
msgstr "Bgr"
-#: ../rules/base.xml.in.h:100
+#: ../rules/base.xml.in.h:101
msgid "Bhu"
msgstr "Bhu"
-#: ../rules/base.xml.in.h:101
+#: ../rules/base.xml.in.h:102
msgid "Bhutan"
msgstr "Bhu-tan"
-#: ../rules/base.xml.in.h:102
+#: ../rules/base.xml.in.h:103
msgid "Biblical Hebrew (Tiro)"
msgstr "Do Thái kinh thánh (Tiro)"
-#: ../rules/base.xml.in.h:103
+#: ../rules/base.xml.in.h:104
msgid "Bih"
msgstr "Bih"
-#: ../rules/base.xml.in.h:104
+#: ../rules/base.xml.in.h:105
msgid "Blr"
msgstr "Blr"
-#: ../rules/base.xml.in.h:105
+#: ../rules/base.xml.in.h:106
msgid "Bosnia and Herzegovina"
msgstr "Bô-xni-a và Héc-xê-gô-vi-na"
-#: ../rules/base.xml.in.h:106
+#: ../rules/base.xml.in.h:107
msgid "Both Alt keys together"
msgstr "Cả hai phím Alt với nhau"
-#: ../rules/base.xml.in.h:107
+#: ../rules/base.xml.in.h:108
msgid "Both Ctrl keys together"
msgstr "Cả hai phím Ctrl với nhau"
-#: ../rules/base.xml.in.h:108
+#: ../rules/base.xml.in.h:109
msgid "Both Shift keys together"
msgstr "Cả hai phím Shift với nhau"
-#: ../rules/base.xml.in.h:109
+#: ../rules/base.xml.in.h:110
msgid "Bra"
msgstr "Bra"
-#: ../rules/base.xml.in.h:110
+#: ../rules/base.xml.in.h:111
msgid "Braille"
msgstr "Chữ nổi"
-#: ../rules/base.xml.in.h:111
+#: ../rules/base.xml.in.h:112
msgid "Brazil"
msgstr "Bra-xin"
-#: ../rules/base.xml.in.h:112
+#: ../rules/base.xml.in.h:113
msgid "Breton"
msgstr "Bợ-re-ton"
-#: ../rules/base.xml.in.h:113
+#: ../rules/base.xml.in.h:114
msgid "Brl"
msgstr "Brl"
-#: ../rules/base.xml.in.h:114
+#: ../rules/base.xml.in.h:115
msgid "Brother Internet Keyboard"
msgstr "Bàn phím Internet Brother"
-#: ../rules/base.xml.in.h:115
+#: ../rules/base.xml.in.h:116
msgid "Buckwalter"
msgstr "Buckwalter"
-#: ../rules/base.xml.in.h:116
+#: ../rules/base.xml.in.h:117
msgid "Bulgaria"
msgstr "Bun-ga-ri"
-#: ../rules/base.xml.in.h:117
+#: ../rules/base.xml.in.h:118
msgid "CRULP"
msgstr "CRULP"
-#: ../rules/base.xml.in.h:118
+#: ../rules/base.xml.in.h:119
msgid "Cambodia"
msgstr "Căm Bốt"
-#: ../rules/base.xml.in.h:119
+#: ../rules/base.xml.in.h:120
msgid "Can"
msgstr "Can"
-#: ../rules/base.xml.in.h:120
+#: ../rules/base.xml.in.h:121
msgid "Canada"
msgstr "Ca-na-da"
-#: ../rules/base.xml.in.h:121
+#: ../rules/base.xml.in.h:122
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:122
+#: ../rules/base.xml.in.h:123
msgid "CapsLock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:123
+#: ../rules/base.xml.in.h:124
msgid "CapsLock (to first layout), Shift+CapsLock (to last layout)"
msgstr "CapsLock (tới bố trí đầu tiên), Shift+CapsLock (tới bố trí cuối cùng)"
-#: ../rules/base.xml.in.h:124
+#: ../rules/base.xml.in.h:125
msgid "CapsLock (while pressed), Alt+CapsLock does the original capslock action"
msgstr "CapsLock (trong khi bấm), Alt+CapsLock thì làm việc gốc khoá chữ hoa"
-#: ../rules/base.xml.in.h:125
+#: ../rules/base.xml.in.h:126
msgid "CapsLock acts as Shift with locking. Shift \"pauses\" CapsLock"
msgstr "CapsLock hoạt động như Shift mà cũng khoá. Shift « tạm dừng » CapsLock."
-#: ../rules/base.xml.in.h:126
+#: ../rules/base.xml.in.h:127
msgid "CapsLock acts as Shift with locking. Shift doesn't affect CapsLock"
msgstr "CapsLock hoạt động như Shift mà cũng khoá. Shift không có tác động CapsLock."
-#: ../rules/base.xml.in.h:127
+#: ../rules/base.xml.in.h:128
+msgid "CapsLock is disabled"
+msgstr "CapsLock bị tắt"
+
+#: ../rules/base.xml.in.h:129
msgid "CapsLock key behavior"
msgstr "Äặc Ä‘iểm của phím CapsLock"
-#: ../rules/base.xml.in.h:128
+#: ../rules/base.xml.in.h:130
msgid "CapsLock toggles Shift so all keys are affected"
msgstr "CapsLock bật tắt Shift thì má»i phím Ä‘á»u bị ảnh hưởng"
-#: ../rules/base.xml.in.h:129
+#: ../rules/base.xml.in.h:131
msgid "CapsLock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock bật tắt viết hoa thông thÆ°á»ng của các ký tá»± chữ cái"
-#: ../rules/base.xml.in.h:130
+#: ../rules/base.xml.in.h:132
msgid "CapsLock uses internal capitalization. Shift \"pauses\" CapsLock"
msgstr "CapsLock sử dụng chức năng viết hoa nội bộ. Shift « tạm dừng » CapsLock."
-#: ../rules/base.xml.in.h:131
+#: ../rules/base.xml.in.h:133
msgid "CapsLock uses internal capitalization. Shift doesn't affect CapsLock"
msgstr "CapsLock sử dụng chức năng viết hoa nội bộ. Shift không có tác động CapsLock."
-#: ../rules/base.xml.in.h:132
+#: ../rules/base.xml.in.h:134
msgid "Catalan variant with middle-dot L"
msgstr "Biến thể Ca-ta-lan có chữ L chấm giữa"
# Tên bố trí bàn phím ?
-#: ../rules/base.xml.in.h:133
+#: ../rules/base.xml.in.h:135
msgid "Cedilla"
msgstr "Cedilla"
-#: ../rules/base.xml.in.h:134
+#: ../rules/base.xml.in.h:136
msgid "Che"
msgstr "Che"
-#: ../rules/base.xml.in.h:135
+#: ../rules/base.xml.in.h:137
msgid "Cherokee"
msgstr "Che-rô-khi"
-#: ../rules/base.xml.in.h:136
+#: ../rules/base.xml.in.h:138
msgid "Cherry B.UNLIMITED"
msgstr "Cherry B.VÔ_HẠN"
-#: ../rules/base.xml.in.h:137
+#: ../rules/base.xml.in.h:139
msgid "Cherry Blue Line CyBo@rd"
msgstr "Cherry Blue Line CyBo@rd"
-#: ../rules/base.xml.in.h:138
+#: ../rules/base.xml.in.h:140
msgid "Cherry Blue Line CyBo@rd (alternate option)"
msgstr "Cherry Blue Line CyBo@rd (luân phiên tùy chá»n)"
-#: ../rules/base.xml.in.h:139
+#: ../rules/base.xml.in.h:141
msgid "Cherry CyBo@rd USB-Hub"
msgstr "Cherry CyBo@rd Cái Nối USB"
-#: ../rules/base.xml.in.h:140
+#: ../rules/base.xml.in.h:142
msgid "Cherry CyMotion Expert"
msgstr "Cherry CyMotion Expert"
-#: ../rules/base.xml.in.h:141
+#: ../rules/base.xml.in.h:143
msgid "Cherry CyMotion Master Linux"
msgstr "Cherry CyMotion Master Linux"
-#: ../rules/base.xml.in.h:142
+#: ../rules/base.xml.in.h:144
msgid "Cherry CyMotion Master XPress"
msgstr "Cherry CyMotion Master XPress"
-#: ../rules/base.xml.in.h:143
+#: ../rules/base.xml.in.h:145
msgid "Chicony Internet Keyboard"
msgstr "Bàn phím Internet Chicony"
-#: ../rules/base.xml.in.h:144
+#: ../rules/base.xml.in.h:146
msgid "Chicony KB-9885"
msgstr "Chicony KB-9885"
-#: ../rules/base.xml.in.h:145
+#: ../rules/base.xml.in.h:147
msgid "Chicony KU-0108"
msgstr "Chicony KU-0108"
-#: ../rules/base.xml.in.h:146
+#: ../rules/base.xml.in.h:148
msgid "Chicony KU-0420"
msgstr "Chicony KU-0420"
-#: ../rules/base.xml.in.h:147
+#: ../rules/base.xml.in.h:149
msgid "China"
msgstr "Trung Quốc"
-#: ../rules/base.xml.in.h:148
+#: ../rules/base.xml.in.h:150
msgid "Chuvash"
msgstr "Chu-vasợ"
-#: ../rules/base.xml.in.h:149
+#: ../rules/base.xml.in.h:151
msgid "Chuvash Latin"
msgstr "Chu-vasợ La-tinh"
-#: ../rules/base.xml.in.h:150
+#: ../rules/base.xml.in.h:152
msgid "Classic"
msgstr "Kinh điển"
-#: ../rules/base.xml.in.h:151
+#: ../rules/base.xml.in.h:153
msgid "Classic Dvorak"
msgstr "Dvorak kinh điển"
-#: ../rules/base.xml.in.h:152
+#: ../rules/base.xml.in.h:154
msgid "Classmate PC"
msgstr "Classmate PC"
-#: ../rules/base.xml.in.h:153
+#: ../rules/base.xml.in.h:155
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:154
+#: ../rules/base.xml.in.h:156
msgid "Colemak"
msgstr "Colemak"
-#: ../rules/base.xml.in.h:155
+#: ../rules/base.xml.in.h:157
msgid "Compaq Easy Access Keyboard"
msgstr "Bàn phím Truy cập Dễ dàng của Compaq"
-#: ../rules/base.xml.in.h:156
+#: ../rules/base.xml.in.h:158
msgid "Compaq Internet Keyboard (13 keys)"
msgstr "Bàn phím Internet Compaq (13 phím)"
-#: ../rules/base.xml.in.h:157
+#: ../rules/base.xml.in.h:159
msgid "Compaq Internet Keyboard (18 keys)"
msgstr "Bàn phím Internet Compaq (18 phím)"
-#: ../rules/base.xml.in.h:158
+#: ../rules/base.xml.in.h:160
msgid "Compaq Internet Keyboard (7 keys)"
msgstr "Bàn phím Internet Compaq (7 phím)"
-#: ../rules/base.xml.in.h:159
+#: ../rules/base.xml.in.h:161
msgid "Compaq iPaq Keyboard"
msgstr "Bàn phím iPaq Compaq"
-#: ../rules/base.xml.in.h:160
+#: ../rules/base.xml.in.h:162
msgid "Compose key position"
msgstr "Vị trí phím Soạn thảo"
-#: ../rules/base.xml.in.h:161
+#: ../rules/base.xml.in.h:163
msgid "Congo, Democratic Republic of the"
msgstr "Cộng Hoà Dân Chủ Công-gô"
-#: ../rules/base.xml.in.h:162
+#: ../rules/base.xml.in.h:164
msgid "Control + Alt + Backspace"
msgstr "Control + Alt + Backspace"
-#: ../rules/base.xml.in.h:163
+#: ../rules/base.xml.in.h:165
msgid "Control is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Control ánh xạ tới các phím Alt, Alt ánh xạ tới các phím Win"
-#: ../rules/base.xml.in.h:164
+#: ../rules/base.xml.in.h:166
msgid "Control is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Control ánh xạ tá»›i các phím Win (và các phím Ctrl thÆ°á»ng dùng)"
-#: ../rules/base.xml.in.h:165
+#: ../rules/base.xml.in.h:167
+msgid "Creative Desktop Wireless 7000"
+msgstr "Creative Desktop Wireless 7000"
+
+#: ../rules/base.xml.in.h:168
msgid "Crimean Tatar (Dobruca-1 Q)"
msgstr "Ta-tă Cợ-ri-mia (Dobruca-1 Q)"
-#: ../rules/base.xml.in.h:166
+#: ../rules/base.xml.in.h:169
msgid "Crimean Tatar (Dobruca-2 Q)"
msgstr "Ta-tă Cợ-ri-mia (Dobruca-2 Q)"
-#: ../rules/base.xml.in.h:167
+#: ../rules/base.xml.in.h:170
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Ta-tă Cợ-ri-mia (Thổ Nhĩ Kỳ Alt-Q)"
-#: ../rules/base.xml.in.h:168
+#: ../rules/base.xml.in.h:171
msgid "Crimean Tatar (Turkish F)"
msgstr "Ta-tă Cợ-ri-mia (Thổ Nhĩ Kỳ F)"
-#: ../rules/base.xml.in.h:169
+#: ../rules/base.xml.in.h:172
msgid "Crimean Tatar (Turkish Q)"
msgstr "Ta-tă Cợ-ri-mia (Thổ Nhĩ Kỳ Q)"
-#: ../rules/base.xml.in.h:170
+#: ../rules/base.xml.in.h:173
msgid "Croatia"
msgstr "Cợ-rô-a-ti-a"
-#: ../rules/base.xml.in.h:171
+#: ../rules/base.xml.in.h:174
msgid "Ctrl key position"
msgstr "Vị trí phím Ctrl"
-#: ../rules/base.xml.in.h:172
+#: ../rules/base.xml.in.h:175
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:173
+#: ../rules/base.xml.in.h:176
msgid "Cyrillic"
msgstr "Ki-rin"
-#: ../rules/base.xml.in.h:174
+#: ../rules/base.xml.in.h:177
msgid "Cyrillic with guillemets"
msgstr "Ki-rin với « chim uria »"
-#: ../rules/base.xml.in.h:175
+#: ../rules/base.xml.in.h:178
msgid "Cyrillic, Z and ZHE swapped"
msgstr "Ki-rin, đổi chỗ Z và ZHE"
-#: ../rules/base.xml.in.h:176
+#: ../rules/base.xml.in.h:179
msgid "Cze"
msgstr "Cze"
-#: ../rules/base.xml.in.h:177
+#: ../rules/base.xml.in.h:180
msgid "Czechia"
msgstr "Séc"
-#: ../rules/base.xml.in.h:178
+#: ../rules/base.xml.in.h:181
msgid "DOS"
msgstr "DOS"
-#: ../rules/base.xml.in.h:179
+#: ../rules/base.xml.in.h:182
msgid "DRC"
msgstr "DRC"
-#: ../rules/base.xml.in.h:180
+#: ../rules/base.xml.in.h:183
msgid "DTK2000"
msgstr "DTK2000"
-#: ../rules/base.xml.in.h:181
+#: ../rules/base.xml.in.h:184
msgid "Dan"
msgstr "Dan"
-#: ../rules/base.xml.in.h:182
+#: ../rules/base.xml.in.h:185
msgid "Dead acute"
msgstr "Chết sắc"
-#: ../rules/base.xml.in.h:183
+#: ../rules/base.xml.in.h:186
msgid "Dead grave acute"
msgstr "Chết huyá»n sắc"
-#: ../rules/base.xml.in.h:184
+#: ../rules/base.xml.in.h:187
msgid "Default numeric keypad keys"
msgstr "Các phím vùng số mặc định"
-#: ../rules/base.xml.in.h:185
+#: ../rules/base.xml.in.h:188
msgid "Dell"
msgstr "Dell"
-#: ../rules/base.xml.in.h:186
+#: ../rules/base.xml.in.h:189
msgid "Dell 101-key PC"
msgstr "Dell PC 101 phím"
-#: ../rules/base.xml.in.h:187
+#: ../rules/base.xml.in.h:190
msgid "Dell Laptop/notebook Inspiron 6xxx/8xxx"
msgstr "Xách tay Dell Inspiron 6xxx/8xxx"
-#: ../rules/base.xml.in.h:188
+#: ../rules/base.xml.in.h:191
msgid "Dell Laptop/notebook Precision M series"
msgstr "Xách tay Dell dãy Precision M"
-#: ../rules/base.xml.in.h:189
+#: ../rules/base.xml.in.h:192
msgid "Dell Latitude series laptop"
msgstr "Xách tay Dell dãy Latitude"
-#: ../rules/base.xml.in.h:190
+#: ../rules/base.xml.in.h:193
msgid "Dell Precision M65"
msgstr "Dell Precision M65"
-#: ../rules/base.xml.in.h:191
+#: ../rules/base.xml.in.h:194
msgid "Dell SK-8125"
msgstr "Dell SK-8125"
-#: ../rules/base.xml.in.h:192
+#: ../rules/base.xml.in.h:195
msgid "Dell SK-8135"
msgstr "Dell SK-8135"
-#: ../rules/base.xml.in.h:193
+#: ../rules/base.xml.in.h:196
msgid "Dell USB Multimedia Keyboard"
msgstr "Bàn phím đa phương tiện USB Dell"
-#: ../rules/base.xml.in.h:194
+#: ../rules/base.xml.in.h:197
msgid "Denmark"
msgstr "Äan Mạch"
-#: ../rules/base.xml.in.h:195
+#: ../rules/base.xml.in.h:198
msgid "Deu"
msgstr "Deu"
-#: ../rules/base.xml.in.h:196
+#: ../rules/base.xml.in.h:199
msgid "Dexxa Wireless Desktop Keyboard"
msgstr "Bàn phím Không dây Dexxa cho Desktop"
-#: ../rules/base.xml.in.h:197
+#: ../rules/base.xml.in.h:200
msgid "Diamond 9801 / 9802 series"
msgstr "Sê ri Diamond 9801 / 9802"
-#: ../rules/base.xml.in.h:198
+#: ../rules/base.xml.in.h:201
msgid "Dvorak"
msgstr "Dvorak"
-#: ../rules/base.xml.in.h:199
+#: ../rules/base.xml.in.h:202
msgid "Dvorak (UK Punctuation)"
msgstr "Dvorak (dấu chấm câu Quốc Anh)"
-#: ../rules/base.xml.in.h:200
+#: ../rules/base.xml.in.h:203
msgid "Dvorak international"
msgstr "Dvorak quốc tế"
-#: ../rules/base.xml.in.h:201
+#: ../rules/base.xml.in.h:204
msgid "Dvorak, Polish quotes on key 1"
msgstr "Dvorak, dấu ngoặc tiếng Ba Lan trên phím 1"
-#: ../rules/base.xml.in.h:202
+#: ../rules/base.xml.in.h:205
msgid "Dvorak, Polish quotes on quotemark key"
msgstr "Dvorak, dấu ngoặc Polish trên phím đánh dấu ngoặc"
-#: ../rules/base.xml.in.h:203
+#: ../rules/base.xml.in.h:206
msgid "E"
msgstr "E"
-#: ../rules/base.xml.in.h:204
+#: ../rules/base.xml.in.h:207
msgid "Eastern"
msgstr "Äông"
-#: ../rules/base.xml.in.h:205
+#: ../rules/base.xml.in.h:208
msgid "Eliminate dead keys"
msgstr "Phím chết loại trừ"
-#: ../rules/base.xml.in.h:206
+#: ../rules/base.xml.in.h:209
msgid "Enable extra typographic characters"
msgstr "Bật thêm ký tự thuật in máy"
-#: ../rules/base.xml.in.h:207
+#: ../rules/base.xml.in.h:210
msgid "English"
msgstr "Anh"
-#: ../rules/base.xml.in.h:208
+#: ../rules/base.xml.in.h:211
msgid "Ennyah DKB-1008"
msgstr "Ennyah DKB-1008"
-#: ../rules/base.xml.in.h:209
+#: ../rules/base.xml.in.h:212
msgid "Enter on keypad"
msgstr "Enter trên vùng phím"
-#: ../rules/base.xml.in.h:210
+#: ../rules/base.xml.in.h:213
msgid "Epo"
msgstr "Epo"
-#: ../rules/base.xml.in.h:211
+#: ../rules/base.xml.in.h:214
msgid "Ergonomic"
msgstr "Tối ưu nhân tố"
-#: ../rules/base.xml.in.h:212
+#: ../rules/base.xml.in.h:215
msgid "Esp"
msgstr "Esp"
-#: ../rules/base.xml.in.h:213
+#: ../rules/base.xml.in.h:216
msgid "Esperanto"
msgstr "Ét-pe-ran-tô"
-#: ../rules/base.xml.in.h:214
+#: ../rules/base.xml.in.h:217
msgid "Est"
msgstr "Est"
-#: ../rules/base.xml.in.h:215
+#: ../rules/base.xml.in.h:218
msgid "Estonia"
msgstr "Ex-tô-ni-a"
-#: ../rules/base.xml.in.h:216
+#: ../rules/base.xml.in.h:219
msgid "Eth"
msgstr "Eth"
-#: ../rules/base.xml.in.h:217
+#: ../rules/base.xml.in.h:220
msgid "Ethiopia"
msgstr "Ê-ti-ô-pi"
-#: ../rules/base.xml.in.h:218
+#: ../rules/base.xml.in.h:221
msgid "Evdev-managed keyboard"
msgstr "Bàn phím quản lý bằng Evdev"
-#: ../rules/base.xml.in.h:219
+#: ../rules/base.xml.in.h:222
msgid "Everex STEPnote"
msgstr "Everex STEPnote"
-#: ../rules/base.xml.in.h:220
+#: ../rules/base.xml.in.h:223
msgid "Ewe"
msgstr "Ewe"
-#: ../rules/base.xml.in.h:221
+#: ../rules/base.xml.in.h:224
msgid "Extended"
msgstr "Mở rộng"
-#: ../rules/base.xml.in.h:222
+#: ../rules/base.xml.in.h:225
msgid "Extended - Winkeys"
msgstr "Mở rộng — Winkeys"
-#: ../rules/base.xml.in.h:223
+#: ../rules/base.xml.in.h:226
msgid "Extended Backslash"
msgstr "Gạch chéo ngược Mở rộng"
-#: ../rules/base.xml.in.h:224
+#: ../rules/base.xml.in.h:227
msgid "F-letter (F) variant"
msgstr "Phương án chữ cái F (F)"
-#: ../rules/base.xml.in.h:225
+#: ../rules/base.xml.in.h:228
msgid "FL90"
msgstr "FL90"
-#: ../rules/base.xml.in.h:226
+#: ../rules/base.xml.in.h:229
msgid "Fao"
msgstr "Fao"
-#: ../rules/base.xml.in.h:227
+#: ../rules/base.xml.in.h:230
msgid "Faroe Islands"
msgstr "Quần Äảo Pha-rô"
-#: ../rules/base.xml.in.h:228
+#: ../rules/base.xml.in.h:231
msgid "Fin"
msgstr "Fin"
-#: ../rules/base.xml.in.h:229
+#: ../rules/base.xml.in.h:232
msgid "Finland"
msgstr "Phần Lan"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:232
+#: ../rules/base.xml.in.h:235
msgid "Four-level key with abstract separators"
msgstr "Phím bốn bậc có bộ phân cách ảo"
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:236
msgid "Four-level key with comma"
msgstr "Phím bốn bậc có dấu phẩy"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:237
msgid "Four-level key with dot"
msgstr "Phím bốn bậc có chấm"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:238
msgid "Four-level key with dot, latin-9 restriction"
msgstr "Phím bốn bậc có chấm, sự hạn chế latin-9"
-#: ../rules/base.xml.in.h:236
+#: ../rules/base.xml.in.h:239
msgid "Four-level key with momayyez"
msgstr "Phím bốn bậc có momayyez"
-#: ../rules/base.xml.in.h:237
+#: ../rules/base.xml.in.h:240
msgid "Fra"
msgstr "Fra"
-#: ../rules/base.xml.in.h:238
+#: ../rules/base.xml.in.h:241
msgid "France"
msgstr "Pháp"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:242
msgid "French"
msgstr "Pháp"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:243
msgid "French (Macintosh)"
msgstr "Pháp (Macintosh)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:244
msgid "French (legacy)"
msgstr "Pháp (di sản)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:245
msgid "French Dvorak"
msgstr "Pháp Dvorak"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:246
msgid "French, Sun dead keys"
msgstr "Pháp, phím chết Sun"
-#: ../rules/base.xml.in.h:244
+#: ../rules/base.xml.in.h:247
msgid "French, eliminate dead keys"
msgstr "Pháp, phím chết loại trừ"
-#: ../rules/base.xml.in.h:245
+#: ../rules/base.xml.in.h:248
msgid "Fujitsu-Siemens Computers AMILO laptop"
msgstr "Máy tính xách tay AMILO Fujitsu-Siemens"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:249
msgid "Fula"
msgstr "Fula"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:250
msgid "GBr"
msgstr "GBr"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:251
msgid "Ga"
msgstr "Ga"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:252
msgid "Generic 101-key PC"
msgstr "PC chung 101 phím"
-#: ../rules/base.xml.in.h:250
+#: ../rules/base.xml.in.h:253
msgid "Generic 102-key (Intl) PC"
msgstr "PC chung 102 phím (Intl)"
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:254
msgid "Generic 104-key PC"
msgstr "PC chung 104 phím"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:255
msgid "Generic 105-key (Intl) PC"
msgstr "PC chung 105 phím (Intl)"
# Name: don't translate/Tên: đừng dịch
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:256
msgid "Genius Comfy KB-12e"
msgstr "Genius Comfy KB-12e"
-#: ../rules/base.xml.in.h:254
+#: ../rules/base.xml.in.h:257
msgid "Genius Comfy KB-16M / Genius MM Keyboard KWD-910"
msgstr "Genius Tiện lợi KB-16M / Bàn phím Genius MM KWD-910"
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:258
msgid "Genius Comfy KB-21e-Scroll"
msgstr "Genius Comfy KB-21e-Scroll"
# Name: don't translate/Tên: đừng dịch
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:259
msgid "Genius KB-19e NB"
msgstr "Genius KB-19e NB"
# Name: don't translate/Tên: đừng dịch
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:260
msgid "Genius KKB-2050HS"
msgstr "Genius KKB-2050HS"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:261
msgid "Geo"
msgstr "Geo"
-#: ../rules/base.xml.in.h:259
+#: ../rules/base.xml.in.h:262
msgid "Georgia"
msgstr "Gi-oa-gi-a"
-#: ../rules/base.xml.in.h:260
+#: ../rules/base.xml.in.h:263
msgid "Georgian"
msgstr "Gi-oa-gi-a"
-#: ../rules/base.xml.in.h:261
+#: ../rules/base.xml.in.h:264
msgid "Georgian AZERTY Tskapo"
msgstr "Gi-oa-gi-a AZERTY Tskapo"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:265
msgid "German (Macintosh)"
msgstr "Äức (Macintosh)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:266
msgid "German, Sun dead keys"
msgstr "Äức, phím chết Sun"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:267
msgid "German, eliminate dead keys"
msgstr "Äức, phím chết loại trừ"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:268
msgid "Germany"
msgstr "Äức"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:269
msgid "Gha"
msgstr "Gha"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:270
msgid "Ghana"
msgstr "Gha-na"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:271
msgid "Gre"
msgstr "Gre"
-#: ../rules/base.xml.in.h:269
+#: ../rules/base.xml.in.h:272
msgid "Greece"
msgstr "Hy Lạp"
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:273
msgid "Group toggle on multiply/divide key"
msgstr "Bật/tắt bó với phím nhân/chia"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:274
msgid "Gui"
msgstr "Gui"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:275
msgid "Guinea"
msgstr "Ghi-nê"
-#: ../rules/base.xml.in.h:273
+#: ../rules/base.xml.in.h:276
msgid "Gujarati"
msgstr "Gu-gia-ra-ti"
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:277
msgid "Gurmukhi"
msgstr "Gổ-mu-khi"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:278
msgid "Gurmukhi Jhelum"
msgstr "Gổ-mu-khi Jhelum"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:279
msgid "Gyration"
msgstr "Sự chuyển hồi"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:280
msgid "Happy Hacking Keyboard"
msgstr "Bàn phím Happy Hacking"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:281
msgid "Happy Hacking Keyboard for Mac"
msgstr "Bàn phím Happy Hacking cho Mac"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:282
msgid "Hausa"
msgstr "Hau-xa"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:283
msgid "Hewlett-Packard Internet Keyboard"
msgstr "Bàn phím Internet Hewlett-Packard"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:284
msgid "Hewlett-Packard Omnibook 500 FA"
msgstr "Hewlett-Packard Omnibook 500 FA"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:285
msgid "Hewlett-Packard Omnibook 5xx"
msgstr "Hewlett-Packard Omnibook 5xx"
-#: ../rules/base.xml.in.h:283
+#: ../rules/base.xml.in.h:286
msgid "Hewlett-Packard Omnibook 6000/6100"
msgstr "Hewlett-Packard Omnibook 6000/6100"
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:287
msgid "Hewlett-Packard Omnibook XE3 GC"
msgstr "Hewlett-Packard Omnibook XE3 GC"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:288
msgid "Hewlett-Packard Omnibook XE3 GF"
msgstr "Hewlett-Packard Omnibook XE3 GF"
-#: ../rules/base.xml.in.h:286
+#: ../rules/base.xml.in.h:289
msgid "Hewlett-Packard Omnibook XT1000"
msgstr "Hewlett-Packard Omnibook XT1000"
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:290
msgid "Hewlett-Packard Pavilion ZT11xx"
msgstr "Hewlett-Packard Pavilion ZT11xx"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:291
msgid "Hewlett-Packard Pavilion dv5"
msgstr "Hewlett-Packard Pavilion dv5"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:292
msgid "Hewlett-Packard SK-250x Multimedia Keyboard"
msgstr "Bàn phím phim nhạc Hewlett-Packard SK-250x"
-#: ../rules/base.xml.in.h:290
+#: ../rules/base.xml.in.h:293
msgid "Hewlett-Packard nx9020"
msgstr "Hewlett-Packard nx9020"
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:294
msgid "Hexadecimal"
msgstr "Thập lục"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:295
msgid "Hindi Bolnagri"
msgstr "Hin-Ä‘i Bolnagri"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:296
msgid "Hindi Wx"
msgstr "Hin-Ä‘i Wx"
-#: ../rules/base.xml.in.h:294
+#: ../rules/base.xml.in.h:297
msgid "Homophonic"
msgstr "Cùng một chủ điệu"
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:298
msgid "Honeywell Euroboard"
msgstr "Honeywell Euroboard"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:299
msgid "Hrv"
msgstr "Hrv"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:300
msgid "Hun"
msgstr "Hun"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:301
msgid "Hungary"
msgstr "Hun-ga-ri"
-#: ../rules/base.xml.in.h:299
+#: ../rules/base.xml.in.h:302
msgid "Hyper is mapped to Win-keys"
msgstr "Hyper ánh xạ tới các phím Win"
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:303
msgid "IBM (LST 1205-92)"
msgstr "IBM (LST 1205-92)"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:304
msgid "IBM Rapid Access"
msgstr "Truy cập nhanh IBM"
-#: ../rules/base.xml.in.h:302
+#: ../rules/base.xml.in.h:305
msgid "IBM Rapid Access II"
msgstr "Truy cập nhanh IBM II"
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:306
msgid "IBM Space Saver"
msgstr "IBM Space Saver"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:307
msgid "IBM ThinkPad 560Z/600/600E/A22E"
msgstr "IBM ThinkPad 560Z/600/600E/A22E"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:308
msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
msgstr "IBM ThinkPad 560Z/600/600E/A22E, quốc tế"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:309
msgid "IBM ThinkPad R60/T60/R61/T61"
msgstr "IBM ThinkPad R60/T60/R61/T61"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:310
msgid "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
msgstr "IBM ThinkPad Z60m/Z60t/Z61m/Z61t"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:311
msgid "ISO Alternate"
msgstr "ISO Xen kẽ"
-#: ../rules/base.xml.in.h:309
+#: ../rules/base.xml.in.h:312
msgid "Iceland"
msgstr "Băng Äảo"
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:313
msgid "Igbo"
msgstr "Ig-bô"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:314
msgid "Include dead tilde"
msgstr "Bao gồm dấu sóng chết"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:315
msgid "Ind"
msgstr "Ind"
-#: ../rules/base.xml.in.h:313
+#: ../rules/base.xml.in.h:316
msgid "India"
msgstr "Ấn Äá»™"
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:317
msgid "International (AltGr dead keys)"
msgstr "Quốc tế (với phím chết AltGr)"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:318
msgid "International (with dead keys)"
msgstr "Quốc tế (với phím chết)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:319
msgid "Inuktitut"
msgstr "I-nukh-ti-tu-th"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:320
msgid "Iran"
msgstr "I-rắn"
-#: ../rules/base.xml.in.h:318
+#: ../rules/base.xml.in.h:321
msgid "Iraq"
msgstr "I-rắc"
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:322
msgid "Ireland"
msgstr "Ãi-nhÄ©-lan"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:323
msgid "Irl"
msgstr "Irl"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:324
msgid "Irn"
msgstr "Irn"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:325
msgid "Irq"
msgstr "Irq"
-#: ../rules/base.xml.in.h:323
+#: ../rules/base.xml.in.h:326
msgid "Isl"
msgstr "Isl"
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:327
msgid "Isr"
msgstr "Isr"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:328
msgid "Israel"
msgstr "Do Thái"
-#: ../rules/base.xml.in.h:326
+#: ../rules/base.xml.in.h:329
msgid "Ita"
msgstr "Ita"
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:330
msgid "Italy"
msgstr "Ã"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:331
msgid "Japan"
msgstr "Nhật Bản"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:332
msgid "Japan (PC-98xx Series)"
msgstr "Nhật (dãy PC-98xx)"
-#: ../rules/base.xml.in.h:330
+#: ../rules/base.xml.in.h:333
msgid "Japanese keyboard options"
msgstr "Tùy chá»n bàn phím tiếng Nhật"
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:334
msgid "Jpn"
msgstr "Jpn"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:335
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:336
msgid "Kana"
msgstr "Kana"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:337
msgid "Kana Lock key is locking"
msgstr "Phím Kana Lock sẽ khoá"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:338
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:339
msgid "Kashubian"
msgstr "Kha-su-bi"
-#: ../rules/base.xml.in.h:337
+#: ../rules/base.xml.in.h:340
msgid "Kaz"
msgstr "Kaz"
-#: ../rules/base.xml.in.h:338
+#: ../rules/base.xml.in.h:341
msgid "Kazakh with Russian"
msgstr "Kha-xắc với tiếng Nga"
-#: ../rules/base.xml.in.h:339
+#: ../rules/base.xml.in.h:342
msgid "Kazakhstan"
msgstr "Kha-xắc-x-tanh"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:343
msgid "Key sequence to kill the X server"
msgstr "Dãy phím để giết trình phục vụ X"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:344
msgid "Key to choose 3rd level"
msgstr "Phím để chá»n cấp ba"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:345
msgid "Key(s) to change layout"
msgstr "(Các) phím để chuyển đổi bố trí"
-#: ../rules/base.xml.in.h:343
-msgid "Keypad"
-msgstr "Vùng phím"
-
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:346
msgid "Keytronic FlexPro"
msgstr "Keytronic FlexPro"
-#: ../rules/base.xml.in.h:345
+#: ../rules/base.xml.in.h:347
msgid "Kgz"
msgstr "Kgz"
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:348
msgid "Khm"
msgstr "Khm"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:349
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:350
msgid "Kor"
msgstr "Kor"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:351
msgid "Korea, Republic of"
msgstr "Cộng Hoà Nam Hàn"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:352
msgid "Ktunaxa"
msgstr "Ktunaxa"
-#: ../rules/base.xml.in.h:351
+#: ../rules/base.xml.in.h:353
msgid "Kurdish, (F)"
msgstr "Kuổ-đít (F)"
-#: ../rules/base.xml.in.h:352
+#: ../rules/base.xml.in.h:354
msgid "Kurdish, Arabic-Latin"
msgstr "Kuổ-đít, A Rập/La-tinh"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:355
msgid "Kurdish, Latin Alt-Q"
msgstr "Kuổ-đít, La-tinh Alt-Q"
-#: ../rules/base.xml.in.h:354
+#: ../rules/base.xml.in.h:356
msgid "Kurdish, Latin Q"
msgstr "Kuổ-đít, La-tinh Q"
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:357
msgid "Kyrgyzstan"
msgstr "Kyr-gi-x-tanh"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:358
msgid "LAm"
msgstr "LAm"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:359
msgid "LEKP"
msgstr "LEKP"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:360
msgid "LEKPa"
msgstr "LEKPa"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:361
msgid "Lao"
msgstr "Lào"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:362
msgid "Laos"
msgstr "Lào"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:363
msgid "Laptop/notebook Compaq (eg. Armada) Laptop Keyboard"
msgstr "Bàn phím nhá» gá»n cho máy xách tay/notebook Compaq (ví dụ Armada)"
-#: ../rules/base.xml.in.h:362
+#: ../rules/base.xml.in.h:364
msgid "Laptop/notebook Compaq (eg. Presario) Internet Keyboard"
msgstr "Bàn phím Internet cho máy xách tay/notebook Compaq (ví dụ Presario)"
-#: ../rules/base.xml.in.h:363
+#: ../rules/base.xml.in.h:365
msgid "Laptop/notebook eMachines m68xx"
msgstr "Xách tay eMachines m68xx"
-#: ../rules/base.xml.in.h:364
+#: ../rules/base.xml.in.h:366
msgid "Latin"
msgstr "La-tinh"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:367
msgid "Latin American"
msgstr "La-tinh Mỹ"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:368
msgid "Latin Unicode"
msgstr "La-tinh Unicode"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:369
msgid "Latin Unicode qwerty"
msgstr "La-tinh Unicode qwerty"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:370
msgid "Latin qwerty"
msgstr "La-tinh qwerty"
-#: ../rules/base.xml.in.h:369
+#: ../rules/base.xml.in.h:371
msgid "Latin unicode"
msgstr "La-tinh Unicode"
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:372
msgid "Latin unicode qwerty"
msgstr "La-tinh Unicode QWERTY"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:373
msgid "Latin with guillemets"
msgstr "La-tinh với « chim uria »"
-#: ../rules/base.xml.in.h:372
+#: ../rules/base.xml.in.h:374
msgid "Latvia"
msgstr "Lát-via"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:375
msgid "Lav"
msgstr "Lav"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:376
msgid "Left Alt"
msgstr "Alt trái"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:377
msgid "Left Alt (while pressed)"
msgstr "Alt trái (trong khi bấm)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:378
msgid "Left Alt is swapped with Left Win"
msgstr "Alt bên trái được trao đổi với phím Win bên trái"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:379
msgid "Left Ctrl"
msgstr "Ctrl trái"
-#: ../rules/base.xml.in.h:378
+#: ../rules/base.xml.in.h:380
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl trái+Shift trái"
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:381
msgid "Left Shift"
msgstr "Shift trái"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:382
msgid "Left Win"
msgstr "Win trái"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:383
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Win trái (tới bố trí đầu tiên), Win phải/Trình đơn (tới bố trí cuối cùng)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:384
msgid "Left Win (while pressed)"
msgstr "Win trái (trong khi bấm)"
-#: ../rules/base.xml.in.h:383
+#: ../rules/base.xml.in.h:385
msgid "Left hand"
msgstr "Thuận tay trái"
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:386
msgid "Left handed Dvorak"
msgstr "Dvorak thuận tay trái"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:387
msgid "Legacy"
msgstr "Thừa tự"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:388
msgid "Legacy Wang 724"
msgstr "Wang 724 thừa tự"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:390
msgid "Legacy key with comma"
msgstr "Phím thừa tự có dấu phẩy"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:391
msgid "Legacy key with dot"
msgstr "Phím thừa tự có chấm"
-#: ../rules/base.xml.in.h:390
+#: ../rules/base.xml.in.h:392
msgid "Less-than/Greater-than"
msgstr "Nhá»/Lá»›n hÆ¡n"
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:393
msgid "Lithuania"
msgstr "Li-tu-a-ni"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:394
msgid "Logitech Access Keyboard"
msgstr "Bàn phím Truy cập Logitech"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:395
msgid "Logitech Cordless Desktop"
msgstr "Logitech Cordless Desktop"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:396
msgid "Logitech Cordless Desktop (alternate option)"
msgstr "Logitech Cordless Desktop (tùy chá»n thay thế)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:397
msgid "Logitech Cordless Desktop EX110"
msgstr "Logitech Cordless Desktop EX110"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:398
msgid "Logitech Cordless Desktop LX-300"
msgstr "Logitech Cordless Desktop LX-300"
-#: ../rules/base.xml.in.h:397
+#: ../rules/base.xml.in.h:399
msgid "Logitech Cordless Desktop Navigator"
msgstr "Logitech Cordless Desktop Navigator"
-#: ../rules/base.xml.in.h:398
+#: ../rules/base.xml.in.h:400
msgid "Logitech Cordless Desktop Optical"
msgstr "Logitech Cordless Desktop Optical"
-#: ../rules/base.xml.in.h:399
+#: ../rules/base.xml.in.h:401
msgid "Logitech Cordless Desktop Pro (alternate option 2)"
msgstr "Logitech Cordless Desktop Pro (luân phiên tùy chá»n 2)"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:402
msgid "Logitech Cordless Desktop iTouch"
msgstr "Logitech Cordless Desktop iTouch"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:403
msgid "Logitech Cordless Freedom/Desktop Navigator"
msgstr "Logitech Cordless Freedom/Desktop Navigator"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:404
msgid "Logitech G15 extra keys via G15daemon"
msgstr "Logitech G15 các phím thêm thông qua G15daemon"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:405
msgid "Logitech Generic Keyboard"
msgstr "Bàn phím chung Logitech"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:406
msgid "Logitech Internet 350 Keyboard"
msgstr "Bàn phím Internet Logitech 350"
-#: ../rules/base.xml.in.h:405
+#: ../rules/base.xml.in.h:407
msgid "Logitech Internet Keyboard"
msgstr "Bàn phím Internet Logitech"
-#: ../rules/base.xml.in.h:406
+#: ../rules/base.xml.in.h:408
msgid "Logitech Internet Navigator Keyboard"
msgstr "Bàn phím Logitech Internet Navigator"
-#: ../rules/base.xml.in.h:407
+#: ../rules/base.xml.in.h:409
msgid "Logitech Media Elite Keyboard"
msgstr "Bàn phím Logitech Media Elite"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:410
msgid "Logitech Ultra-X Cordless Media Desktop Keyboard"
msgstr "Bàn phím Logitech Ultra-X Cordless Media Desktop"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:411
msgid "Logitech Ultra-X Keyboard"
msgstr "Bàn phím Logitech Ultra-X"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:412
msgid "Logitech diNovo Edge Keyboard"
msgstr "Bàn phím Logitech diNovo Edge"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:413
msgid "Logitech diNovo Keyboard"
msgstr "Bàn phím Logitech diNovo"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:414
msgid "Logitech iTouch"
msgstr "Logitech iTouch"
-#: ../rules/base.xml.in.h:413
+#: ../rules/base.xml.in.h:415
msgid "Logitech iTouch Cordless Keyboard (model Y-RB6)"
msgstr "Bàn phím Không dây Logitech iTouch (mẫu mã Y-RB6)"
-#: ../rules/base.xml.in.h:414
+#: ../rules/base.xml.in.h:416
msgid "Logitech iTouch Internet Navigator Keyboard SE"
msgstr "Bàn phím Logitech iTouch Internet Navigator SE"
-#: ../rules/base.xml.in.h:415
+#: ../rules/base.xml.in.h:417
msgid "Logitech iTouch Internet Navigator Keyboard SE (USB)"
msgstr "Bàn phím Logitech iTouch Internet Navigator SE (USB)"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:418
msgid "Lower Sorbian"
msgstr "Xoa-bi Thấp"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:419
msgid "Lower Sorbian (qwertz)"
msgstr "Xoa-bi Thấp (qwertz)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:420
msgid "Ltu"
msgstr "Ltu"
-#: ../rules/base.xml.in.h:419
+#: ../rules/base.xml.in.h:421
msgid "MESS"
msgstr "MESS"
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:422
msgid "MNE"
msgstr "MNE"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:423
msgid "MacBook/MacBook Pro"
msgstr "MacBook/MacBook Pro"
-#: ../rules/base.xml.in.h:422
+#: ../rules/base.xml.in.h:424
msgid "MacBook/MacBook Pro (Intl)"
msgstr "MacBook/MacBook Pro (quốc tế)"
-#: ../rules/base.xml.in.h:423
+#: ../rules/base.xml.in.h:425
msgid "Macedonia"
msgstr "Ma-xê-đô-ni-a"
-#: ../rules/base.xml.in.h:424
+#: ../rules/base.xml.in.h:426
msgid "Macintosh"
msgstr "Macintosh"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:427
msgid "Macintosh Old"
msgstr "Macintosh CÅ©"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:428
msgid "Macintosh, Sun dead keys"
msgstr "Macintosh, phím chết Sun"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:429
msgid "Macintosh, eliminate dead keys"
msgstr "Macintosh, phím chết loại trừ"
-#: ../rules/base.xml.in.h:428
+#: ../rules/base.xml.in.h:430
msgid "Make CapsLock an additional Backspace"
msgstr "Äặt CapsLock làm má»™t phím Xoá lùi bổ sung"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:431
msgid "Make CapsLock an additional Ctrl"
msgstr "Äặt CapsLock làm má»™t phím Ctrl bổ sung"
-#: ../rules/base.xml.in.h:430
+#: ../rules/base.xml.in.h:432
msgid "Make CapsLock an additional ESC"
msgstr "Äặt CapsLock làm má»™t phím ESC bổ sung"
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:433
+msgid "Make CapsLock an additional Hyper"
+msgstr "Äặt CapsLock làm má»™t phím Hyper bổ sung"
+
+#: ../rules/base.xml.in.h:434
+msgid "Make CapsLock an additional NumLock"
+msgstr "Äặt CapsLock làm má»™t phím NumLock bổ sung"
+
+#: ../rules/base.xml.in.h:435
+msgid "Make CapsLock an additional Super"
+msgstr "Äặt CapsLock làm má»™t phím Super bổ sung"
+
+#: ../rules/base.xml.in.h:436
msgid "Mal"
msgstr "Mal"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:437
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:438
msgid "Malayalam Lalitha"
msgstr "Malayalam Lalitha"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:439
msgid "Maldives"
msgstr "Man-đi-vơ-xợ"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:440
msgid "Malta"
msgstr "Man-tợ"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:441
msgid "Maltese keyboard with US layout"
msgstr "Bàn phím Man-tợ có bố trí Mỹ"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:442
msgid "Mao"
msgstr "Mao"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:443
msgid "Maori"
msgstr "Mao-ri"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:444
msgid "Memorex MX1998"
msgstr "Memorex MX1998"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:445
msgid "Memorex MX2500 EZ-Access Keyboard"
msgstr "Bàn phím Memorex MX2500 EZ-Access"
-#: ../rules/base.xml.in.h:441
+#: ../rules/base.xml.in.h:446
msgid "Memorex MX2750"
msgstr "Memorex MX2750"
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:447
msgid "Menu"
msgstr "Trình đơn"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:448
msgid "Meta is mapped to Left Win"
msgstr "Meta ánh xạ tới Win trái"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:449
msgid "Meta is mapped to Win keys"
msgstr "Meta ánh xạ tới các phím Win"
-#: ../rules/base.xml.in.h:445
+#: ../rules/base.xml.in.h:450
msgid "Microsoft Comfort Curve Keyboard 2000"
msgstr "Microsoft Comfort Curve Keyboard 2000"
-#: ../rules/base.xml.in.h:446
+#: ../rules/base.xml.in.h:451
msgid "Microsoft Internet Keyboard"
msgstr "Bàn phím Internet Microsoft"
-#: ../rules/base.xml.in.h:447
+#: ../rules/base.xml.in.h:452
msgid "Microsoft Internet Keyboard Pro, Swedish"
msgstr "Bàn phím Internet Microsoft Pro, Thụy Äiển"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:453
msgid "Microsoft Natural"
msgstr "Microsoft Natural"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:454
msgid "Microsoft Natural Keyboard Elite"
msgstr "Microsoft Natural Keyboard Elite"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:455
msgid "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:456
msgid "Microsoft Natural Keyboard Pro OEM"
msgstr "Microsoft Natural Keyboard Pro OEM"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:457
msgid "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
msgstr "Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro"
-#: ../rules/base.xml.in.h:453
+#: ../rules/base.xml.in.h:458
msgid "Microsoft Natural Wireless Ergonomic Keyboard 7000"
msgstr "Microsoft Natural Wireless Ergonomic Keyboard 7000"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:459
msgid "Microsoft Office Keyboard"
msgstr "Bàn phím Văn phòng Microsoft"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:460
msgid "Microsoft Wireless Multimedia Keyboard 1.0A"
msgstr "Microsoft Wireless Multimedia Keyboard 1.0A"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:461
msgid "Miscellaneous compatibility options"
msgstr "Tùy chá»n tÆ°Æ¡ng thích khác"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:462
msgid "Mkd"
msgstr "Mkd"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:463
msgid "Mlt"
msgstr "Mlt"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:464
msgid "Mmr"
msgstr "Mmr"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:465
msgid "Mng"
msgstr "Mng"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:466
msgid "Mongolia"
msgstr "Mông Cổ"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:467
msgid "Montenegro"
msgstr "Mon-te-nê-gợ-rô"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:468
msgid "Morocco"
msgstr "Ma Rốc"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:469
msgid "Multilingual"
msgstr "Äa ngôn ngữ"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:470
msgid "Multilingual, first part"
msgstr "Äa ngôn ngữ, phần đầu"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:471
msgid "Multilingual, second part"
msgstr "Äa ngôn ngữ, phần hai"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:472
msgid "Myanmar"
msgstr "Miến Äiện"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:473
msgid "NICOLA-F style Backspace"
msgstr "Xoá lùi kiểu NICOLA-F"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:474
msgid "NLA"
msgstr "NLA"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:475
msgid "Nativo"
msgstr "Nativo"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:476
msgid "Nativo for Esperanto"
msgstr "Nativo cho Ét-pe-ran-tô"
-#: ../rules/base.xml.in.h:472
+#: ../rules/base.xml.in.h:477
msgid "Nativo for USA keyboards"
msgstr "Nativo cho bàn phím Mỹ"
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:478
msgid "Neo 2"
msgstr "Neo 2"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:479
msgid "Nep"
msgstr "Nep"
-#: ../rules/base.xml.in.h:475
+#: ../rules/base.xml.in.h:480
msgid "Nepal"
msgstr "Ne-pan"
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:481
msgid "Netherlands"
msgstr "Hà Lan"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:482
+msgid "New phonetic"
+msgstr "Ngữ âm mới"
+
+#: ../rules/base.xml.in.h:483
msgid "Nig"
msgstr "Nig"
-#: ../rules/base.xml.in.h:478
+#: ../rules/base.xml.in.h:484
msgid "Nigeria"
msgstr "Ni-gê-ri-a"
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:485
msgid "Nld"
msgstr "Nld"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:486
msgid "Non-breakable space character at fourth level"
msgstr "Ký tự dấu cách không thể ngắt ở bậc thứ tư"
-#: ../rules/base.xml.in.h:481
+#: ../rules/base.xml.in.h:487
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Ký tự dấu cách không thể ngắt ở bậc thứ tư, ký tự dấu cách không thể ngắt mảnh ở bậc thứ sáu"
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:488
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Ký tự dấu cách không thể ngắt ở bậc thứ tư, ký tự dấu cách không thể ngắt mảnh ở bậc thứ sáu (dùng Ctrl+Shift)"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:489
msgid "Non-breakable space character at second level"
msgstr "Ký tự dấu cách không thể ngắt ở bậc thứ hai"
-#: ../rules/base.xml.in.h:484
+#: ../rules/base.xml.in.h:490
msgid "Non-breakable space character at third level"
msgstr "Ký tự dấu cách không thể ngắt ở bậc thứ ba"
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:491
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Ký tự dấu cách không thể ngắt ở bậc thứ ba, không nhập gì ở bậc thứ tư"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:492
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Ký tự dấu cách không thể ngắt ở bậc thứ ba, ký tự dấu cách không thể ngắt mảnh ở bậc thứ tư"
-#: ../rules/base.xml.in.h:487
+#: ../rules/base.xml.in.h:493
msgid "Nor"
msgstr "Nor"
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:494
msgid "Northern Saami"
msgstr "Bắc Xa-mi"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:495
msgid "Northern Saami, eliminate dead keys"
msgstr "Bắc Xa-mi, phím chết loại trừ"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:496
msgid "Northgate OmniKey 101"
msgstr "Northgate OmniKey 101"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:497
msgid "Norway"
msgstr "Na Uy"
-#: ../rules/base.xml.in.h:492
+#: ../rules/base.xml.in.h:498
msgid "NumLock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:499
msgid "Numeric keypad delete key behaviour"
msgstr "Ứng xử phím xoá của vùng số"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:500
msgid "Numeric keypad keys work as with Mac"
msgstr "Phím vùng số hoạt động như trên Mac"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:501
msgid "Numeric keypad layout selection"
msgstr "Chá»n bố trí vùng phím số"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:502
msgid "OADG 109A"
msgstr "OADG 109A"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:503
msgid "OLPC"
msgstr "OLPC"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:504
msgid "OLPC Dari"
msgstr "OLPC Dari"
-#: ../rules/base.xml.in.h:499
+#: ../rules/base.xml.in.h:505
msgid "OLPC Pashto"
msgstr "OLPC Pas-tô"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:506
msgid "OLPC Southern Uzbek"
msgstr "OLPC Nam Ux-béc"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:507
msgid "Occitan"
msgstr "Óc-khi-tanh"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:508
msgid "Ogham"
msgstr "Og-âm"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:509
msgid "Ogham IS434"
msgstr "Ogam IS434"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:510
msgid "Oriya"
msgstr "Ô-ri-a"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:511
msgid "Ortek MCK-800 MM/Internet keyboard"
msgstr "Bàn phím Ortek MCK-800 MM/Internet"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:512
msgid "Ossetian"
msgstr "O-xét"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:513
msgid "Ossetian, Winkeys"
msgstr "O-xét, phím Win"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:514
msgid "Ossetian, legacy"
msgstr "O-xét, thừa tự"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:515
msgid "PC-98xx Series"
msgstr "Sê ri PC-98xx"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:516
msgid "Pak"
msgstr "Pak"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:517
msgid "Pakistan"
msgstr "Pa-khi-x-tanh"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:518
msgid "Pashto"
msgstr "Pas-tô"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:519
msgid "Pattachote"
msgstr "Pa-ta-chô-te"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:520
+msgid "Persian, with Persian Keypad"
+msgstr "Ba Tư có vùng phím Ba Tư"
+
+#: ../rules/base.xml.in.h:521
msgid "Phonetic"
msgstr "Ngữ âm"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:522
msgid "Phonetic Winkeys"
msgstr "Winkeys ngữ âm"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:523
msgid "Pol"
msgstr "Pol"
-#: ../rules/base.xml.in.h:517
+#: ../rules/base.xml.in.h:524
msgid "Poland"
msgstr "Phần Lan"
-#: ../rules/base.xml.in.h:518
+#: ../rules/base.xml.in.h:525
msgid "Polytonic"
msgstr "Nhiá»u âm"
-#: ../rules/base.xml.in.h:519
+#: ../rules/base.xml.in.h:526
msgid "Portugal"
msgstr "Bồ Äào Nha"
-#: ../rules/base.xml.in.h:520
-msgid "Pro"
-msgstr "Pro"
-
-#: ../rules/base.xml.in.h:521
-msgid "Pro Keypad"
-msgstr "Vùng phím Pro"
-
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:527
msgid "Probhat"
msgstr "Probhat"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:528
msgid "Programmer Dvorak"
msgstr "Programmer Dvorak"
-#: ../rules/base.xml.in.h:524
+#: ../rules/base.xml.in.h:529
msgid "Propeller Voyager (KTEZ-1000)"
msgstr "Propeller Voyager (KTEZ-1000)"
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:530
msgid "Prt"
msgstr "Prt"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:531
msgid "QTronix Scorpius 98N+"
msgstr "QTronix Scorpius 98N+"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:532
msgid "Right Alt"
msgstr "Alt phải"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:533
msgid "Right Alt (while pressed)"
msgstr "Alt phải (trong khi bấm)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:534
msgid "Right Alt key never chooses 3rd level"
msgstr "Phím Alt bên phải không bao giá» chá»n bậc thứ 3"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:535
msgid "Right Alt, Shift+Right Alt key is Multi_Key"
msgstr "Alt phải, phím Shift+Right Alt là Multi_Key"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:536
msgid "Right Ctrl"
msgstr "Ctrl phải"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:537
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl phải (trong khi bấm)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:538
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl phải làm Alt phải"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:539
msgid "Right Shift"
msgstr "Shift phải"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:540
msgid "Right Win"
msgstr "Win phải"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:541
msgid "Right Win (while pressed)"
msgstr "Win phải (trong khi bấm)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:542
msgid "Right hand"
msgstr "Thuận tay phải"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:543
msgid "Right handed Dvorak"
msgstr "Dvorak thuận tay phải"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:544
msgid "Romania"
msgstr "Rô-ma-ni"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:545
msgid "Romanian keyboard with German letters"
msgstr "Bàn phím Rô-ma-ni vá»›i các chữ cái Äức"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:546
msgid "Romanian keyboard with German letters, eliminate dead keys"
msgstr "Bàn phím Rô-ma-ni vá»›i các chữ cái Äức, các phím chết loại trừ"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:547
msgid "Rou"
msgstr "Rou"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:548
msgid "Rus"
msgstr "Nga"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:549
msgid "Russia"
msgstr "Nga"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:550
msgid "Russian"
msgstr "Nga"
-#: ../rules/base.xml.in.h:546
+#: ../rules/base.xml.in.h:551
msgid "Russian phonetic"
msgstr "Nga ngữ âm"
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:552
msgid "Russian phonetic Dvorak"
msgstr "Nga ngữ âm Dvorak"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:553
msgid "Russian phonetic, eliminate dead keys"
msgstr "Nga ngữ âm, phím chết loại trừ"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:554
msgid "Russian with Kazakh"
msgstr "Nga có Kha-xắc"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:555
msgid "SILVERCREST Multimedia Wireless Keyboard"
msgstr "Bàn phím Không dây Äa phÆ°Æ¡ng tiện SILVERCREST"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:556
msgid "SK-1300"
msgstr "SK-1300"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:557
msgid "SK-2500"
msgstr "SK-2500"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:558
msgid "SK-6200"
msgstr "SK-6200"
-#: ../rules/base.xml.in.h:554
+#: ../rules/base.xml.in.h:559
msgid "SK-7100"
msgstr "SK-7100"
-#: ../rules/base.xml.in.h:555
+#: ../rules/base.xml.in.h:560 ../rules/base.extras.xml.in.h:7
msgid "SRB"
msgstr "SRB"
-#: ../rules/base.xml.in.h:556
+#: ../rules/base.xml.in.h:561
msgid "SVEN Ergonomic 2500"
msgstr "SVEN Ergonomic 2500"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:562
msgid "SVEN Slim 303"
msgstr "SVEN Slim 303"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:563
msgid "Samsung SDM 4500P"
msgstr "Samsung SDM 4500P"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:564
msgid "Samsung SDM 4510P"
msgstr "Samsung SDM 4510P"
-#: ../rules/base.xml.in.h:560
+#: ../rules/base.xml.in.h:565
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:561
+#: ../rules/base.xml.in.h:566
msgid "ScrollLock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:562
+#: ../rules/base.xml.in.h:567
msgid "Secwepemctsin"
msgstr "Secwepemctsin"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:568
msgid "Semi-colon on third level"
msgstr "Dấu chấm phẩy ở cấp ba"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:569 ../rules/base.extras.xml.in.h:8
msgid "Serbia"
msgstr "Xéc-bi"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:570
msgid "Shift cancels CapsLock"
msgstr "Shift thôi CapsLock"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:571
msgid "Shift does not cancel NumLock, chooses 3d level instead"
msgstr "Shift không thôi Numlock, chá»n cấp ba để thay thế"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:572
msgid "Shift with numeric keypad keys works as in MS Windows"
msgstr "Shift với các phím vùng số làm việc như trong MS Windows"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:573
msgid "Shift+CapsLock"
msgstr "Shift+CapsLock"
-#: ../rules/base.xml.in.h:569
+#: ../rules/base.xml.in.h:574
msgid "Simple"
msgstr "ÄÆ¡n giản"
-#: ../rules/base.xml.in.h:570
+#: ../rules/base.xml.in.h:575
msgid "Slovakia"
msgstr "Xlô-vác"
-#: ../rules/base.xml.in.h:571
+#: ../rules/base.xml.in.h:576
msgid "Slovenia"
msgstr "Xlô-ven"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:577
msgid "South Africa"
msgstr "Nam Phi"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:578
msgid "Southern Uzbek"
msgstr "Nam Ux-béc"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:579
msgid "Spain"
msgstr "Tây Ban Nha"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:580
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Các ký tự đặc biệt (Ctrl+Alt+&lt;key&gt;) được xử lý bằng một trình phục vụ"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:581
msgid "SrL"
msgstr "SrL"
-#: ../rules/base.xml.in.h:577
+#: ../rules/base.xml.in.h:582
msgid "Sri Lanka"
msgstr "Tích-lan"
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:583
msgid "Standard"
msgstr "Tiêu chuẩn"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:584
msgid "Standard (Cedilla)"
msgstr "Chuẩn (dấu móc dưới)"
-#: ../rules/base.xml.in.h:580
-msgid "Standard Phonetic"
-msgstr "Ngữ âm tiêu chuẩn"
-
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:586
msgid "Standard RSTU"
msgstr "RSTU chuẩn"
#. RSTU 2019-91
-#: ../rules/base.xml.in.h:584
+#: ../rules/base.xml.in.h:588
msgid "Standard RSTU on Russian layout"
msgstr "RSTU chuẩn trên bố trí tiếng Nga"
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:589
msgid "Sun Type 5/6"
msgstr "Sun kiểu 5/6"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:590
msgid "Sun dead keys"
msgstr "Phím chết Sun"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:591
msgid "Super Power Multimedia Keyboard"
msgstr "Bàn phím Phim nhạc Siêu Năng Lực"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:592
msgid "Svdvorak"
msgstr "Svdvorak"
-#: ../rules/base.xml.in.h:589
+#: ../rules/base.xml.in.h:593
msgid "Svk"
msgstr "Svk"
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:594
msgid "Svn"
msgstr "Svn"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:595
msgid "Swap Ctrl and CapsLock"
msgstr "Trao đổi Ctrl và CapsLock"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:596
msgid "Swap ESC and CapsLock"
msgstr "Trao đổi ESC và CapsLock"
-#: ../rules/base.xml.in.h:593
+#: ../rules/base.xml.in.h:597
msgid "Swe"
msgstr "Swe"
-#: ../rules/base.xml.in.h:594
+#: ../rules/base.xml.in.h:598
msgid "Sweden"
msgstr "Thuỵ Äiển"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:599
msgid "Switzerland"
msgstr "Thuỵ Sĩ"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:600
msgid "Symplon PaceBook (tablet PC)"
msgstr "Symplon PaceBook (tablet PC)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:601
msgid "Syr"
msgstr "Syr"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:602
msgid "Syria"
msgstr "Xy-ri"
-#: ../rules/base.xml.in.h:599
+#: ../rules/base.xml.in.h:603
msgid "Syriac"
msgstr "Xi-ri"
-#: ../rules/base.xml.in.h:600
+#: ../rules/base.xml.in.h:604
msgid "Syriac phonetic"
msgstr "Xy-ri ngữ âm"
-#: ../rules/base.xml.in.h:601
+#: ../rules/base.xml.in.h:605
msgid "TIS-820.2538"
msgstr "TIS-820.2538"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:606
msgid "Tajikistan"
msgstr "Ta-gikh-x-tanh"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:607
msgid "Tamil"
msgstr "Ta-min"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:608
msgid "Tamil TAB Typewriter"
msgstr "Ta-min TAB máy chữ"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:609
msgid "Tamil TSCII Typewriter"
msgstr "Ta-min TSCII máy chữ"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:610
msgid "Tamil Unicode"
msgstr "Ta-min Unicode"
-#: ../rules/base.xml.in.h:607
+#: ../rules/base.xml.in.h:611
msgid "Targa Visionary 811"
msgstr "Targa Visionary 811"
-#: ../rules/base.xml.in.h:608
+#: ../rules/base.xml.in.h:612
msgid "Tatar"
msgstr "Ta-tă"
-#: ../rules/base.xml.in.h:609
+#: ../rules/base.xml.in.h:613
msgid "Telugu"
msgstr "Te-lu-gu"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:614
msgid "Tha"
msgstr "Tha"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:615
msgid "Thailand"
msgstr "Thái Lan"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:616
msgid "Tibetan"
msgstr "Tây Tạng"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:617
msgid "Tibetan (with ASCII numerals)"
msgstr "Tây Tạng (có chữ số ASCII)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:618
msgid "Tifinagh"
msgstr "Ti-phi-nac"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:619
msgid "Tifinagh Alternative"
msgstr "Ti-phi-nac tÆ°Æ¡ng Ä‘Æ°Æ¡ng"
-#: ../rules/base.xml.in.h:616
+#: ../rules/base.xml.in.h:620
msgid "Tifinagh Alternative Phonetic"
msgstr "Ti-phi-nac ngữ âm tương đương"
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:621
msgid "Tifinagh Extended"
msgstr "Ti-phi-nac mở rộng"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:622
msgid "Tifinagh Extended Phonetic"
msgstr "Ti-phi-nac mở rộng ngữ âm"
-#: ../rules/base.xml.in.h:619
+#: ../rules/base.xml.in.h:623
msgid "Tifinagh Phonetic"
msgstr "Ti-phi-nac ngữ âm"
-#: ../rules/base.xml.in.h:620
+#: ../rules/base.xml.in.h:624
msgid "Tilde (~) variant"
msgstr "Phương án dấu sóng (~)"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:625
msgid "Tjk"
msgstr "Tjk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:626
msgid "To the corresponding key in a Dvorak keyboard."
msgstr "Tới phím tương ứng trên một bàn phím Dvorak."
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:627
msgid "To the corresponding key in a Qwerty keyboard."
msgstr "Tới phím tương ứng trên một bàn phím Qwerty."
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:628
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-#: ../rules/base.xml.in.h:625
-msgid "Traditional Phonetic"
+#: ../rules/base.xml.in.h:629
+msgid "Traditional phonetic"
msgstr "Ngữ âm truyá»n thống"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:630
msgid "Trust Direct Access Keyboard"
msgstr "Bàn phím Truy cập Thẳng Tin tưởng"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:631
msgid "Trust Slimline"
msgstr "Trust Slimline"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:632
msgid "Trust Wireless Keyboard Classic"
msgstr "Bàn Phím Cổ điển Không dây Tin tưởng"
-#: ../rules/base.xml.in.h:629
+#: ../rules/base.xml.in.h:633
msgid "Tur"
msgstr "Tur"
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:634
msgid "Turkey"
msgstr "Thổ Nhĩ Kỳ"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:635
msgid "Turkmenistan"
msgstr "Thổ-kh-me-ni-x-tanh"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:636
msgid "Typewriter"
msgstr "Máy chữ"
-#: ../rules/base.xml.in.h:633
+#: ../rules/base.xml.in.h:637
msgid "UCW layout (accented letters only)"
msgstr "Bố trí UCW (chỉ chữ có dấu)"
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:638
msgid "US keyboard with Bosnian digraphs"
msgstr "Bàn phím Mỹ với các chữ ghép Bo-x-ni-a"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:639
msgid "US keyboard with Bosnian letters"
msgstr "Bàn phím Mỹ với các chữ cái Bo-x-ni-a"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:640
msgid "US keyboard with Croatian digraphs"
msgstr "Bàn phím Mỹ với các chữ ghép Cợ-rô-a-ti-a"
-#: ../rules/base.xml.in.h:637
+#: ../rules/base.xml.in.h:641
msgid "US keyboard with Croatian letters"
msgstr "Bàn phím Mỹ với các chữ cái Croát-chi-a"
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:642
msgid "US keyboard with Estonian letters"
msgstr "Bàn phím Mỹ với các chữ cái E-x-tô-ni-a"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:643
+msgid "US keyboard with Italian letters"
+msgstr "Bàn phím Mỹ vá»›i các chữ cái Ã"
+
+#: ../rules/base.xml.in.h:644
msgid "US keyboard with Lithuanian letters"
msgstr "Bàn phím Mỹ với các chữ cái Li-tu-a-nia"
-#: ../rules/base.xml.in.h:640
+#: ../rules/base.xml.in.h:645
msgid "US keyboard with Slovenian letters"
msgstr "Bàn phím Mỹ với các chữ cái Xlô-ven"
-#: ../rules/base.xml.in.h:641
+#: ../rules/base.xml.in.h:646 ../rules/base.extras.xml.in.h:9
msgid "USA"
msgstr "Mỹ"
-#: ../rules/base.xml.in.h:642
+#: ../rules/base.xml.in.h:647
msgid "Udmurt"
msgstr "U-đ-muổt"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:648
msgid "Ukr"
msgstr "Ukr"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:649
msgid "Ukraine"
msgstr "U-cợ-rainh"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:650
msgid "Unicode additions (arrows and math operators)"
msgstr "Phần thêm Unicode (các mÅ©i tên và toán tá»­ toán há»c)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:651
msgid "Unicode additions (arrows and math operators). Math operators on default level"
msgstr "Phần thêm Unicode (các mÅ©i tên và toán tá»­ toán há»c). Bậc mặc định thì nhập các toán tá»­ toán há»c."
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:652
msgid "UnicodeExpert"
msgstr "Unicode Chuyên môn"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:653
msgid "United Kingdom"
msgstr "Vương Quốc Anh"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:654
msgid "Unitek KB-1925"
msgstr "Unitek KB-1925"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:655
msgid "Urdu, Alternative phonetic"
msgstr "Urdu, Ngữ âm xen kẽ"
-#: ../rules/base.xml.in.h:651
+#: ../rules/base.xml.in.h:656
msgid "Urdu, Phonetic"
msgstr "Urdu, Ngữ âm"
-#: ../rules/base.xml.in.h:652
+#: ../rules/base.xml.in.h:657
msgid "Urdu, Winkeys"
msgstr "Urdu, Phím Win"
-#: ../rules/base.xml.in.h:653
+#: ../rules/base.xml.in.h:658
msgid "Use Bosnian digraphs"
msgstr "Dùng chữ ghép Bo-x-ni-a"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:659
msgid "Use Croatian digraphs"
msgstr "Dùng chữ ghép Cợ-rô-a-ti-a"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:660
msgid "Use guillemets for quotes"
msgstr "Dùng « chim uria » làm dấu trích dẫn"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:661
msgid "Use keyboard LED to show alternative layout"
msgstr "Sử dụng đèn bàn phím để chỉ ra bố trí xen kẽ"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:662
msgid "Using space key to input non-breakable space character"
msgstr "Dùng phím dài để nhập ký tự dấu cách không thể ngắt"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:663
msgid "Usual space at any level"
msgstr "Dấu cách bình thÆ°á»ng ở má»i bậc"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:664
msgid "Uzb"
msgstr "Uzb"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:665
msgid "Uzbekistan"
msgstr "Uz-be-khi-xtanh"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:666
msgid "Vietnam"
msgstr "Việt Nam"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:667
msgid "ViewSonic KU-306 Internet Keyboard"
msgstr "Bàn phím Internet ViewSonic KU-306"
-#: ../rules/base.xml.in.h:663
+#: ../rules/base.xml.in.h:668
msgid "Vnm"
msgstr "Vnm"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:669
msgid "Wang 724 keypad with unicode additions (arrows and math operators)"
msgstr "Vùng phím Wang 724 có phần thêm Unicode (các mÅ©i tên và toán tá»­ toán há»c)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:670
msgid "Wang 724 keypad with unicode additions (arrows and math operators). Math operators on default level"
msgstr "Vùng phím Wang 724 có phần thêm Unicode (các mÅ©i tên và toán tá»­ toán há»c). Mặc định thì nhập toán tá»­ toán há»c."
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:671
msgid "Wang model 724 azerty"
msgstr "Wang mô hình 724 azerty"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:672
msgid "Western"
msgstr "Phương Tây"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:673
msgid "Winbook Model XP5"
msgstr "Winbook kiểu mẫu XP5"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:674
msgid "Winkeys"
msgstr "Phím Win"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:675
msgid "With &lt;\\|&gt; key"
msgstr "Với phím &lt;\\|&gt;"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:676
msgid "With EuroSign on 5"
msgstr "Thêm ký hiệu đồng Euro vào phím 5."
-#: ../rules/base.xml.in.h:672
+#: ../rules/base.xml.in.h:677
msgid "With guillemets"
msgstr "Với « chim uria »"
-#: ../rules/base.xml.in.h:673
+#: ../rules/base.xml.in.h:678
msgid "Yahoo! Internet Keyboard"
msgstr "Bàn phím Internet Yahoo!"
-#: ../rules/base.xml.in.h:674
+#: ../rules/base.xml.in.h:679
msgid "Yakut"
msgstr "Ya-khú-th"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:680
msgid "Yoruba"
msgstr "Yoa-ru-ba"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:681
msgid "Z and ZHE swapped"
msgstr "Äổi chá»— Z và ZHE"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:682
msgid "Zar"
msgstr "Zar"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:683
msgid "azerty"
msgstr "azerty"
-#: ../rules/base.xml.in.h:679
+#: ../rules/base.xml.in.h:684
msgid "azerty/digits"
msgstr "azerty/chữ số"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:685
msgid "digits"
msgstr "chữ số"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:686
msgid "displaced semicolon and quote (obsolete)"
msgstr "dấu chấm phẩy và dấu trích dẫn bị dịch (quá cũ)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:687
msgid "lyx"
msgstr "lyx"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:688
msgid "qwerty"
msgstr "qwerty"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:689
msgid "qwerty, extended Backslash"
msgstr "qwerty, Gạch ngược mở rộng"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:690
msgid "qwerty/digits"
msgstr "qwerty/chữ số"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:691
msgid "qwertz"
msgstr "qwertz"
+
+#: ../rules/base.extras.xml.in.h:1
+msgid "APL"
+msgstr "APL"
+
+#: ../rules/base.extras.xml.in.h:2
+msgid "Atsina"
+msgstr "Ãt-xi-na"
+
+#: ../rules/base.extras.xml.in.h:3
+msgid "Combining accents instead of dead keys"
+msgstr "Tổ hợp dấu phụ thay cho phím chết"
+
+#: ../rules/base.extras.xml.in.h:4
+msgid "Couer D'alene Salish"
+msgstr "Couer D'alene Salish"
+
+#: ../rules/base.extras.xml.in.h:5
+msgid "International (AltGr Unicode combining)"
+msgstr "Quốc tế (tổ hợp Unicode AltGr)"
+
+#: ../rules/base.extras.xml.in.h:6
+msgid "International (AltGr Unicode combining, alternative)"
+msgstr "Quốc tế (tổ hợp Unicode AltGr, thay thế)"
diff --git a/xorg-server/xkbdata.src/symbols/inet b/xorg-server/xkbdata.src/symbols/inet
index 7300e76da..f6cd6ac91 100644
--- a/xorg-server/xkbdata.src/symbols/inet
+++ b/xorg-server/xkbdata.src/symbols/inet
@@ -119,6 +119,7 @@ xkb_symbols "evdev" {
key <HNGL> { [ Hangul ] };
key <HJCV> { [ Hangul_Hanja ] };
+ key <FK22> { [ XF86TouchpadToggle ] };
// key <I120> { [ ] }; // KEY_MACRO
key <I126> { [ plusminus ] };
diff --git a/xorg-server/xkbdata.src/symbols/symbols.dir b/xorg-server/xkbdata.src/symbols/symbols.dir
index 79681dbee..2479c1640 100644
--- a/xorg-server/xkbdata.src/symbols/symbols.dir
+++ b/xorg-server/xkbdata.src/symbols/symbols.dir
@@ -1,204 +1,129 @@
--dp----- a------- am(basic)
---p----- a------- am(olpc)
--------- -------- am(phonetic)
---p----- a------- am(phonetic-alt)
---p----- a------- am(eastern)
---p----- a------- am(western)
---p----- a------- am(eastern-alt)
--dp----- -m------ terminate(ctrl_alt_bksp)
--dp----- a------- fr(basic)
---p----- a------- fr(Sundeadkeys)
---p----- a------- fr(sundeadkeys)
---p----- a------- fr(nodeadkeys)
---p----- a------- fr(oss)
---p----- a------- fr(oss_latin9)
---p----- a------- fr(oss_Sundeadkeys)
---p----- a------- fr(oss_sundeadkeys)
---p----- a------- fr(oss_nodeadkeys)
---p----- a------- fr(latin9)
---p----- a------- fr(latin9_Sundeadkeys)
---p----- a------- fr(latin9_sundeadkeys)
---p----- a------- fr(latin9_nodeadkeys)
---p----- a------- fr(bepo)
---p----- a------- fr(bepo_latin9)
---p----- am------ fr(dvorak)
---p----- a------- fr(bre)
---p----- a------- fr(oci)
---p----- a------- fr(mac)
---p----- a------- fr(geo)
+-dp----- a------- mn(basic)
+--p----- a------- mn(olpc)
+--p----- -m------ compose(ralt)
+--p----- -m------ compose(lwin)
+--p----- -m------ compose(rwin)
+--p----- -m------ compose(menu)
+--p----- -m------ compose(rctrl)
+--p----- -m------ compose(caps)
+--p----- -m------ compose(102)
+-d------ -------- de(basic)
+--p----- a------- de(nodeadkeys)
+--p----- a------- de(deadgraveacute)
+--p----- a------- de(deadacute)
+--p----- a------- de(ro)
+--p----- a------- de(ro_nodeadkeys)
+--p----- a------- de(dvorak)
+--p----- a------- de(Sundeadkeys)
+--p----- a------- de(sundeadkeys)
+--p----- amk----- de(neo)
+--p----- a------- de(mac)
+--p----- a------- de(mac_nodeadkeys)
+--p----- a------- de(dsb)
+--p----- a------- de(dsb_qwertz)
+--p----- a------- de(qwerty)
+-------- -------- extras/rs(combiningkeys)
+--p----- a------- extras/us(intl-unicode)
+--p----- a------- extras/us(alt-intl-unicode)
+--p----- a------- extras/us(ats)
+--p----- a------- extras/us(crd)
+--p----- am------ extras/apl(common)
+--p----- am------ extras/apl(unified)
+-dp----- am------ extras/apl(sax)
+--p----- am------ extras/apl(apl2)
+--p----- am------ extras/apl(aplplusII)
+--p----- am------ extras/apl(aplx)
+-dp----- a------- il(basic)
+--p----- a------- il(lyx)
+--p----- a------- il(phonetic)
+--p----- a------- il(biblical)
+-dp----- a------- ro(basic)
+--p----- a------- ro(cedilla)
+--p----- a------- ro(std)
+--p----- a------- ro(std_cedilla)
+--p----- a------- ro(winkeys)
+--p----- -------- ro(crh_f)
+--p----- -------- ro(crh_alt)
+--p----- -------- ro(crh_dobruca1)
+--p----- -------- ro(crh_dobruca2)
+--p----- -------- eurosign(e)
+--p----- -------- eurosign(2)
+--p----- -------- eurosign(4)
+--p----- -------- eurosign(5)
+-dp----- a------- me(basic)
+--p----- a------- me(cyrillic)
+--p----- a------- me(cyrillicyz)
+--p----- a------- me(latinunicode)
+--p----- a------- me(latinyz)
+--p----- a------- me(latinunicodeyz)
+-------- -------- me(cyrillicalternatequotes)
+-------- -------- me(latinalternatequotes)
+-dp----- a------- mm(basic)
+-dp----- a------- ma(arabic)
+--p----- a------- ma(french)
+--p----- a------- ma(tifinagh)
+--p----- a------- ma(tifinagh-phonetic)
+--p----- a------- ma(tifinagh-extended)
+--p----- a------- ma(tifinagh-extended-phonetic)
+--p----- a------- ma(tifinagh-alt)
+--p----- a------- ma(tifinagh-alt-phonetic)
+-dp----- a------- fi(kotoistus)
+--p----- a------- fi(classic)
+h-p----- a------- fi(fi)
+--p----- a------- fi(nodeadkeys)
+-------- -------- fi(smi)
+--p----- a------- fi(mac)
+-dp----- a------- bt(basic)
+-dp----- a------- ie(basic)
+--p----- a------- ie(CloGaelach)
+--p----- a------- ie(UnicodeExpert)
+--p----- a------- ie(ogam)
+--p----- a------- ie(ogam_is434)
+-dp----- a------- be(basic)
+--p----- a------- be(oss)
+--p----- a------- be(oss_frbe)
+--p----- a------- be(oss_latin9)
+--p----- a------- be(oss_Sundeadkeys)
+--p----- a------- be(oss_sundeadkeys)
+--p----- a------- be(iso-alternate)
+--p----- a------- be(sundeadkeys)
+--p----- a------- be(Sundeadkeys)
+--p----- a------- be(nodeadkeys)
+--p----- a------- be(wang)
+--p----- --kf---- srvr_ctrl(xfree86)
+--p----- --k----- srvr_ctrl(stdkeypad)
+--p----- ---f---- srvr_ctrl(fkey2vt)
+--p----- --kf---- srvr_ctrl(no_srvr_keys)
+-dp----- a------- ba(basic)
+--p----- a------- ba(us)
+--p----- a------- ba(alternatequotes)
+--p----- a------- ba(unicode)
+--p----- a------- ba(unicodeus)
-dp----- a------- ng(basic)
--p----- a------- ng(yoruba)
--p----- a------- ng(igbo)
--p----- a------- ng(hausa)
--p----- a------- ng(olpc)
--dp----- a------- np(basic)
---p----- a------- np(olpc)
--dp----- a------- nl(basic)
---p----- a------- nl(std)
---p----- a------- nl(Sundeadkeys)
---p----- a------- nl(sundeadkeys)
---p----- a------- nl(mac)
--dp----- a------- ad(basic)
--dp----- a------- ua(unicode)
---p----- a------- ua(legacy)
---p----- a------- ua(winkeys)
---p----- a------- ua(typewriter)
---p----- a------- ua(phonetic)
---p----- a------- ua(rstu)
---p----- a------- ua(rstu_ru)
---p----- a------- ua(homophonic)
---p----- -------- ua(crh)
---p----- -------- ua(crh_f)
---p----- -------- ua(crh_alt)
--dp----- a------- rs(basic)
---p----- a------- rs(latin)
---p----- a------- rs(yz)
-h-p----- a------- rs(common)
-h-p----- a------- rs(cyralpha)
-h-p----- a------- rs(latalpha)
-h-p----- a------- rs(twoletter)
-h-p----- a------- rs(latlevel3)
-h-p----- a------- rs(cyrlevel3)
---p----- a------- rs(latinunicode)
---p----- a------- rs(latinyz)
---p----- a------- rs(latinunicodeyz)
--------- -------- rs(alternatequotes)
--------- -------- rs(latinalternatequotes)
--dp----- a------- cd(basic)
--dp----- a------- epo(basic)
---p----- a------- epo(legacy)
---p----- -------- epo(qwerty)
---p----- -------- epo(dvorak)
--dp----- a------- tj(basic)
--------- -------- tj(legacy)
-dp----- a------- af(basic)
--p----- a------- af(ps)
--p----- a------- af(uz)
--p----- a------- af(olpc-ps)
--p----- a------- af(olpc-fa)
--p----- a------- af(olpc-uz)
--dp----- a------- ch(basic)
---p----- a------- ch(de)
---p----- a------- ch(de_Sundeadkeys)
---p----- a------- ch(de_sundeadkeys)
---p----- a------- ch(de_nodeadkeys)
---p----- a------- ch(fr)
---p----- a------- ch(fr_Sundeadkeys)
---p----- a------- ch(fr_sundeadkeys)
---p----- a------- ch(fr_nodeadkeys)
---p----- a------- ch(de_mac)
---p----- a------- ch(fr_mac)
--dp----- am------ pc(pc105)
-h-p----- a------- pc(function)
-h-p----- a------- pc(editing)
--dp----- a------- pl(basic)
---p----- a------- pl(qwertz)
---p----- a------- pl(dvorak)
---p----- a------- pl(dvorak_quotes)
---p----- a------- pl(dvorak_altquotes)
---p----- a------- pl(csb)
---p----- a------- pl(ru_phonetic_dvorak)
--dp----- a------- th(basic)
---p----- a------- th(pat)
---p----- a------- th(tis)
---p----- a------- th(olpc)
--dp----- a------- no(basic)
---p----- a------- no(nodeadkeys)
---p----- a------- no(dvorak)
---p----- a------- no(smi)
---p----- a------- no(smi_nodeadkeys)
---p----- a------- no(mac)
---p----- a------- no(mac_nodeadkeys)
--dp----- a------- iq(basic)
---p----- a------- iq(ku)
---p----- a------- iq(ku_f)
---p----- a------- iq(ku_alt)
---p----- a------- iq(ku_ara)
--dp----- am------ lt(basic)
---p----- am------ lt(us)
---p----- am------ lt(std)
---p----- am------ lt(ibm)
---p----- am------ lt(lekp)
---p----- am------ lt(lekpa)
---p----- am------ lt(balticplus)
---p----- --k----- kpdl(dot)
---p----- --k----- kpdl(comma)
---p----- --k----- kpdl(dotoss)
---p----- --k----- kpdl(dotoss_latin9)
---p----- --k----- kpdl(commaoss)
---p----- --k----- kpdl(momayyezoss)
---p----- --k----- kpdl(kposs)
---p----- --k----- kpdl(semi)
--dp----- a------- il(basic)
---p----- a------- il(lyx)
---p----- a------- il(phonetic)
---p----- a------- il(biblical)
--dp----- a------- sn(basic)
--dp----- a------- in(deva)
---p----- a------- in(bolnagri)
---p----- a------- in(ben)
--------- -------- in(ben_probhat)
---p----- a------- in(guj)
---p----- a------- in(kan)
---p----- a------- in(mal)
---p----- a------- in(mal_lalitha)
---p----- a------- in(ori)
---p----- a------- in(tam)
---p----- a------- in(tam_unicode)
---p----- a------- in(tam_keyboard_with_numerals)
---p----- a------- in(tam_TSCII)
---p----- a------- in(tam_TAB)
---p----- a------- in(tel)
---p----- a------- in(urd-phonetic)
---p----- a------- in(urd-phonetic3)
---p----- a------- in(urd-winkeys)
---p----- a------- in(guru)
---p----- a------- in(jhelum)
---p----- a------- in(olpc)
---p----- a------- in(hin-wx)
+-dp----- a------- dk(basic)
+--p----- a------- dk(nodeadkeys)
+--p----- a------- dk(mac)
+--p----- a------- dk(mac_nodeadkeys)
+--p----- a------- dk(dvorak)
-dp----- a------- fo(basic)
--p----- a------- fo(nodeadkeys)
--dp----- a------- hr(basic)
---p----- a------- hr(us)
---p----- a------- hr(alternatequotes)
---p----- a------- hr(unicode)
---p----- a------- hr(unicodeus)
--dp----- a------- by(basic)
---p----- a------- by(legacy)
---p----- a------- by(latin)
--dp----- -------- tr(basic)
---p----- -------- tr(f)
---p----- -------- tr(alt)
---p----- a------- tr(Sundeadkeys)
---p----- a------- tr(sundeadkeys)
---p----- -------- tr(ku)
---p----- -------- tr(ku_f)
---p----- -------- tr(ku_alt)
---p----- -------- tr(intl)
---p----- a------- tr(olpc)
---p----- -------- tr(crh)
---p----- -------- tr(crh_f)
---p----- -------- tr(crh_alt)
--dp----- a------- gn(basic)
--dp----- a------- es(basic)
---p----- a------- es(Sundeadkeys)
---p----- a------- es(sundeadkeys)
---p----- a------- es(nodeadkeys)
---p----- a------- es(dvorak)
---p----- a------- es(cat)
---p----- a------- es(ast)
---p----- a------- es(mac)
---p----- a------- es(olpc)
---p----- a------- es(deadtilde)
--dp----- a------- cz(basic)
--------- -------- cz(bksl)
---p----- a------- cz(qwerty)
--------- -------- cz(qwerty_bksl)
---p----- a---g--- cz(ucw)
--dp----- a------- bd(basic)
--------- -------- bd(probhat)
--dp----- a------- kh(basic)
---p----- a------- kh(olpc)
+-dp----- a---g--- gr(basic)
+--p----- a---g--- gr(simple)
+h-p----- a---g--- gr(bare)
+--p----- a---g--- gr(extended)
+--p----- a---g--- gr(polytonic)
+--p----- a---g--- gr(nodeadkeys)
+-------- -------- sony_vndr/us(nwp5461)
-dp----- -------- hu(basic)
--p----- -------- hu(standard)
--p----- -------- hu(nodeadkeys)
@@ -227,50 +152,23 @@ h-p----- --k----- hu(def_dot)
h-p----- a------- hu(def_dead)
h-p----- a------- hu(def_nodead)
h-p----- a------- hu(def_common)
--dp----- a------- ir(pes)
---p----- a------- ir(pes_keypad)
-h-p----- a------- ir(pes_part_basic)
-h-p----- a------- ir(pes_part_ext)
-h-p----- a------- ir(pes_part_keypad)
---p----- a------- ir(ku)
---p----- a------- ir(ku_f)
---p----- a------- ir(ku_alt)
---p----- a------- ir(ku_ara)
--dp----- a------- mt(basic)
---p----- a------- mt(us)
--------- -------- sgi_vndr/jp(jp106)
--------- -------- sgi_vndr/jp(alternate106)
--dp----- a------- pk(urd-phonetic)
---p----- a------- pk(urd-crulp)
---p----- a------- pk(urd-nla)
---p----- a------- pk(ara)
---p----- a------- pk(olpc)
--------- -------- sun_vndr/fr(type4)
--------- -------- sun_vndr/fr(type5)
--------- -------- sun_vndr/fr(type6)
--------- -------- sun_vndr/nl(type4)
--------- -------- sun_vndr/tuv(type4basic)
--------- -------- sun_vndr/tuv(type4)
--------- -------- sun_vndr/tuv(type5basic)
--------- -------- sun_vndr/tuv(type5)
--------- -------- sun_vndr/pl(type5)
--------- -------- sun_vndr/no(type4)
--------- -------- sun_vndr/no(type5)
--------- -------- sun_vndr/usb(sun_usb)
--dp----- a------- sun_vndr/lt(type5)
--------- -------- sun_vndr/tr(basic)
--------- -------- sun_vndr/tr(type6Q)
--------- -------- sun_vndr/tr(type6F)
---p----- -------- sun_vndr/es(type4)
---p----- -------- sun_vndr/es(type5)
---p----- -------- sun_vndr/es(type6)
--------- -------- sun_vndr/cz(type5)
--dp----- a------- sun_vndr/hu(type5)
--------- -------- sun_vndr/sw(type4de)
--------- -------- sun_vndr/sw(type4fr)
--------- -------- sun_vndr/sw(type5fr)
--------- -------- sun_vndr/sw(type5de)
+-------- -------- sun_vndr/de(type4)
+-------- -------- sun_vndr/fi(basic)
+-------- -------- sun_vndr/ko(type4)
+-------- -------- sun_vndr/ko(type5)
+--p----- -------- sun_vndr/ko(type6)
+-------- -------- sun_vndr/tw(type4)
+-------- -------- sun_vndr/tw(type5)
+--p----- -------- sun_vndr/tw(type6)
+-------- -------- sun_vndr/dk(type4)
+-------- -------- sun_vndr/dk(type5)
-------- -------- sun_vndr/gr(type5)
+-dp----- a------- sun_vndr/hu(type5)
+-------- -------- sun_vndr/cz(type5)
+-dp----- -------- sun_vndr/solaris(defaults)
+--p----- -------- sun_vndr/solaris(keynames)
+--p----- -------- sun_vndr/solaris(xf86keynames)
+-dp----- a------- sun_vndr/lt(type5)
-------- -------- sun_vndr/jp(basic)
-------- -------- sun_vndr/jp(type4)
-------- -------- sun_vndr/jp(type5)
@@ -280,18 +178,30 @@ h-p----- a------- ir(pes_part_keypad)
-------- -------- sun_vndr/jp(J3100)
-------- -------- sun_vndr/jp(Muhenkan_x86)
--p----- -------- sun_vndr/jp(type7)
+-------- -------- sun_vndr/no(type4)
+-------- -------- sun_vndr/no(type5)
+-dp----- a------- sun_vndr/lv(type5)
+-------- -------- sun_vndr/pl(type5)
-------- -------- sun_vndr/gb(type4)
--p----- -------- sun_vndr/gb(type5)
--p----- -------- sun_vndr/gb(type6)
--------- -------- sun_vndr/se(type4)
--------- -------- sun_vndr/se(type5)
---p----- -------- sun_vndr/se(type6)
--------- -------- sun_vndr/dk(type4)
--------- -------- sun_vndr/dk(type5)
+-------- -------- sun_vndr/tr(basic)
+-------- -------- sun_vndr/tr(type6Q)
+-------- -------- sun_vndr/tr(type6F)
-------- -------- sun_vndr/pt(type4)
-------- -------- sun_vndr/pt(type5)
--p----- -------- sun_vndr/pt(type6)
--------- -------- sun_vndr/cs(type5)
+-------- -------- sun_vndr/sw(type4de)
+-------- -------- sun_vndr/sw(type4fr)
+-------- -------- sun_vndr/sw(type5fr)
+-------- -------- sun_vndr/sw(type5de)
+-------- -------- sun_vndr/fr(type4)
+-------- -------- sun_vndr/fr(type5)
+-------- -------- sun_vndr/fr(type6)
+-------- -------- sun_vndr/nl(type4)
+-------- -------- sun_vndr/se(type4)
+-------- -------- sun_vndr/se(type5)
+--p----- -------- sun_vndr/se(type6)
h------- -------- sun_vndr/us(sunbasic)
h------- -------- sun_vndr/us(left_funkeys)
h------- -------- sun_vndr/us(volumekeys)
@@ -307,53 +217,31 @@ h------- -------- sun_vndr/us(volumekeys)
-------- -------- sun_vndr/us(pc104)
-------- -------- sun_vndr/us(pc101currency)
-------- -------- sun_vndr/us(US101A_Sun)
--------- -------- sun_vndr/de(type4)
--dp----- -------- sun_vndr/solaris(defaults)
---p----- -------- sun_vndr/solaris(keynames)
---p----- -------- sun_vndr/solaris(xf86keynames)
+--p----- -------- sun_vndr/es(type4)
+--p----- -------- sun_vndr/es(type5)
+--p----- -------- sun_vndr/es(type6)
-------- -------- sun_vndr/it(type4)
-------- -------- sun_vndr/it(type5)
--p----- -------- sun_vndr/it(type6)
--------- -------- sun_vndr/tw(type4)
--------- -------- sun_vndr/tw(type5)
---p----- -------- sun_vndr/tw(type6)
+-------- -------- sun_vndr/tuv(type4basic)
+-------- -------- sun_vndr/tuv(type4)
+-------- -------- sun_vndr/tuv(type5basic)
+-------- -------- sun_vndr/tuv(type5)
+-------- -------- sun_vndr/cs(type5)
+-------- -------- sun_vndr/usb(sun_usb)
-------- -------- sun_vndr/ru(basic)
--p----- -------- sun_vndr/ru(type6)
--dp----- a------- sun_vndr/lv(type5)
--------- -------- sun_vndr/ko(type4)
--------- -------- sun_vndr/ko(type5)
---p----- -------- sun_vndr/ko(type6)
--------- -------- sun_vndr/fi(basic)
--dp----- a------- ro(basic)
---p----- a------- ro(cedilla)
---p----- a------- ro(std)
---p----- a------- ro(std_cedilla)
---p----- a------- ro(winkeys)
---p----- -------- ro(crh_f)
---p----- -------- ro(crh_alt)
---p----- -------- ro(crh_dobruca1)
---p----- -------- ro(crh_dobruca2)
--dp----- a------- mm(basic)
--dp----- a------- ee(basic)
---p----- a------- ee(nodeadkeys)
---p----- a------- ee(dvorak)
---p----- a------- ee(us)
-hdp----- -m------ capslock(capslock)
-h-p----- -m------ capslock(shiftlock)
-h-p----- -m------ capslock(grouplock)
-h-p----- -m------ capslock(swapescape)
-h-p----- -m------ capslock(groupshift)
-h-p----- -m------ capslock(escape)
-h-p----- -m------ capslock(backspace)
-h-p----- -m------ capslock(super)
-h-p----- -m------ capslock(hyper)
-h-p----- -m------ capslock(none)
-h-p----- -m------ capslock(numlock)
--dp----- a------- is(basic)
---p----- a------- is(Sundeadkeys)
---p----- a------- is(nodeadkeys)
---p----- a------- is(mac)
---p----- a------- is(dvorak)
+-dp----- a------- az(latin)
+--p----- a------- az(cyrillic)
+-dp----- a------- ge(basic)
+--p----- a------- ge(qwerty)
+--p----- a------- ge(ergonomic)
+--p----- a------- ge(mess)
+--p----- a------- ge(ru)
+--p----- a------- ge(os)
+-------- -------- hp_vndr/us(hil)
+-dp----- a------- et(basic)
+--p----- a------- et(olpc)
-d------ -------- br(abnt2)
--p----- a------- br(nodeadkeys)
--p----- a------- br(thinkpad)
@@ -362,69 +250,85 @@ h-p----- -m------ capslock(numlock)
--p----- a------- br(nativo)
--p----- a------- br(nativo-us)
--p----- a------- br(nativo-epo)
--dp----- -------- latin(basic)
---p----- -------- latin(type2)
---p----- -------- latin(type3)
---p----- -------- latin(type4)
---p----- -------- latin(nodeadkeys)
---p----- -------- latin(type2_nodeadkeys)
---p----- -------- latin(type3_nodeadkeys)
---p----- -------- latin(type4_nodeadkeys)
--dp----- a------- mao(basic)
--dp----- a---g--- gr(basic)
---p----- a---g--- gr(simple)
-h-p----- a---g--- gr(bare)
---p----- a---g--- gr(extended)
---p----- a---g--- gr(polytonic)
---p----- a---g--- gr(nodeadkeys)
+-dp----- -------- typo(base)
+-dp----- a------- kz(basic)
+--p----- a------- kz(ruskaz)
+--p----- a------- kz(kazrus)
+--p----- a------- kz(olpc)
+--p----- --k----- kpdl(dot)
+--p----- --k----- kpdl(comma)
+--p----- --k----- kpdl(dotoss)
+--p----- --k----- kpdl(dotoss_latin9)
+--p----- --k----- kpdl(commaoss)
+--p----- --k----- kpdl(momayyezoss)
+--p----- --k----- kpdl(kposs)
+--p----- --k----- kpdl(semi)
+-dp----- a------- kh(basic)
+--p----- a------- kh(olpc)
+-dp----- a------- cn(basic)
+--p----- a------- cn(tib)
+--p----- a------- cn(tib_asciinum)
+--p----- -m------ altwin(meta_alt)
+--p----- -m------ altwin(ctrl_win)
+--p----- -m------ altwin(ctrl_alt_win)
+--p----- -m------ altwin(meta_win)
+--p----- -m------ altwin(left_meta_win)
+--p----- -m------ altwin(hyper_win)
+--p----- -m------ altwin(menu)
+--p----- -m------ altwin(alt_super_win)
+--p----- -m------ altwin(swap_lalt_lwin)
+--p----- -m------ ctrl(nocaps)
+--p----- -m------ ctrl(swapcaps)
+--p----- -m------ ctrl(ctrl_ac)
+--p----- -m------ ctrl(ctrl_aa)
+--p----- -m------ ctrl(ctrl_ra)
+-dp----- a------- lk(sin_phonetic)
+--p----- a------- lk(tam_unicode)
+--p----- a------- lk(tam_TAB)
+-dp----- a------- cz(basic)
+-------- -------- cz(bksl)
+--p----- a------- cz(qwerty)
+-------- -------- cz(qwerty_bksl)
+--p----- a---g--- cz(ucw)
+-dp----- a------- bg(bds)
+--p----- a------- bg(phonetic)
+--p----- a------- bg(bas_phonetic)
+h-p----- a------- bg(latin)
+-dp----- a------- sk(basic)
+-------- -------- sk(bksl)
+--p----- a------- sk(qwerty)
+-------- -------- sk(qwerty_bksl)
+-dp----- am------ lt(basic)
+--p----- am------ lt(us)
+--p----- am------ lt(std)
+--p----- am------ lt(ibm)
+--p----- am------ lt(lekp)
+--p----- am------ lt(lekpa)
+--p----- am------ lt(balticplus)
+-------- -------- fujitsu_vndr/jp
+-------- -------- fujitsu_vndr/us
+-dp----- a------- sn(basic)
+-dp----- -m------ terminate(ctrl_alt_bksp)
+-dp----- a------- gn(basic)
+-dp----- a------- rs(basic)
+--p----- a------- rs(latin)
+--p----- a------- rs(yz)
+h-p----- a------- rs(common)
+h-p----- a------- rs(cyralpha)
+h-p----- a------- rs(latalpha)
+h-p----- a------- rs(twoletter)
+h-p----- a------- rs(latlevel3)
+h-p----- a------- rs(cyrlevel3)
+--p----- a------- rs(latinunicode)
+--p----- a------- rs(latinyz)
+--p----- a------- rs(latinunicodeyz)
+-------- -------- rs(alternatequotes)
+-------- -------- rs(latinalternatequotes)
-dp----- a------- jp(106)
h-p----- a------- jp(common)
--p----- a------- jp(OADG109A)
--p----- a------- jp(kana)
--p----- a------- jp(nicola_f_bs)
--d------ a------- kr(kr106)
--------- a------- kr(kr104)
-h-p----- ---f---- kr(koreankeys)
-h-p----- ---f---- kr(koreankeys_raltctl)
--dp----- a------- ara(basic)
---p----- a------- ara(qwerty)
---p----- a------- ara(azerty)
---p----- a------- ara(digits)
---p----- a------- ara(qwerty_digits)
---p----- a------- ara(azerty_digits)
---p----- a------- ara(buckwalter)
---p----- a------- ara(olpc)
--d------ -------- xfree68_vndr/ataritt(us)
--------- -------- xfree68_vndr/ataritt(de)
--d------ -------- xfree68_vndr/amiga(usa1)
--dp----- a------- gb(basic)
---p----- a------- gb(intl)
---p----- a------- gb(extd)
---p----- a------- gb(colemak)
---p----- a------- gb(dvorak)
---p----- a------- gb(dvorakukp)
---p----- a------- gb(mac)
---p----- -------- eurosign(e)
---p----- -------- eurosign(2)
---p----- -------- eurosign(4)
---p----- -------- eurosign(5)
--dp----- -------- typo(base)
--dp----- -m------ level3(ralt_switch)
---p----- -m------ level3(ralt_alt)
---p----- -m------ level3(ralt_switch_multikey)
-h-p----- -m------ level3(ralt_switch_for_alts_toggle)
---p----- -m------ level3(alt_switch)
---p----- -m------ level3(lalt_switch)
---p----- -m------ level3(switch)
---p----- -m------ level3(menu_switch)
---p----- -m------ level3(win_switch)
---p----- -m------ level3(lwin_switch)
---p----- -m------ level3(rwin_switch)
---p----- -m------ level3(enter_switch)
---p----- --kf---- srvr_ctrl(xfree86)
---p----- --k----- srvr_ctrl(stdkeypad)
---p----- ---f---- srvr_ctrl(fkey2vt)
---p----- --kf---- srvr_ctrl(no_srvr_keys)
h-p----- --k----- keypad(overlay)
h-p----- --k----- keypad(overlay1)
h-p----- --k----- keypad(overlay2)
@@ -448,73 +352,168 @@ hdp----- --k----- keypad(x11)
--p----- --k----- keypad(ops)
--p----- --k----- keypad(hex)
--p----- --k----- keypad(atm)
--dp----- a------- se(basic)
---p----- a------- se(se)
---p----- a------- se(nodeadkeys)
---p----- a------- se(dvorak)
---p----- a------- se(rus)
---p----- a------- se(rus_nodeadkeys)
--------- -------- se(smi)
---p----- a------- se(mac)
---p----- a------- se(svdvorak)
--dp----- a------- dk(basic)
---p----- a------- dk(nodeadkeys)
---p----- a------- dk(mac)
---p----- a------- dk(mac_nodeadkeys)
---p----- a------- dk(dvorak)
--dp----- a------- cn(basic)
---p----- a------- cn(tib)
---p----- a------- cn(tib_asciinum)
--dp----- a------- uz(cyrillic)
---p----- a------- uz(latin)
---p----- -------- uz(crh)
---p----- -------- uz(crh_f)
---p----- -------- uz(crh_alt)
--dp----- a------- sk(basic)
--------- -------- sk(bksl)
---p----- a------- sk(qwerty)
--------- -------- sk(qwerty_bksl)
--dp----- a------- me(basic)
---p----- a------- me(cyrillic)
---p----- a------- me(cyrillicyz)
---p----- a------- me(latinunicode)
---p----- a------- me(latinyz)
---p----- a------- me(latinunicodeyz)
--------- -------- me(cyrillicalternatequotes)
--------- -------- me(latinalternatequotes)
--dp----- a------- mk(basic)
---p----- a------- mk(nodeadkeys)
--dp----- a------- mn(basic)
---p----- a------- mn(olpc)
---p----- -m------ altwin(meta_alt)
---p----- -m------ altwin(ctrl_win)
---p----- -m------ altwin(ctrl_alt_win)
---p----- -m------ altwin(meta_win)
---p----- -m------ altwin(left_meta_win)
---p----- -m------ altwin(hyper_win)
---p----- -m------ altwin(menu)
---p----- -m------ altwin(alt_super_win)
---p----- -m------ altwin(swap_lalt_lwin)
+-dp----- a------- hr(basic)
+--p----- a------- hr(us)
+--p----- a------- hr(alternatequotes)
+--p----- a------- hr(unicode)
+--p----- a------- hr(unicodeus)
+-dp----- a------- brai(home_row)
+--p----- a------- brai(left_hand)
+--p----- a------- brai(right_hand)
+h-p----- --k----- brai(keypad)
+-dp----- a------- latam(basic)
+--p----- a------- latam(Sundeadkeys)
+--p----- a------- latam(sundeadkeys)
+--p----- a------- latam(nodeadkeys)
+--p----- a------- latam(deadtilde)
+-dp----- a------- sy(basic)
+--p----- a------- sy(syc)
+--p----- a------- sy(syc_phonetic)
+--p----- a------- sy(ku)
+--p----- a------- sy(ku_f)
+--p----- a------- sy(ku_alt)
+-dp----- a------- am(basic)
+--p----- a------- am(olpc)
+-------- -------- am(phonetic)
+--p----- a------- am(phonetic-alt)
+--p----- a------- am(eastern)
+--p----- a------- am(western)
+--p----- a------- am(eastern-alt)
+--p----- -m------ level5(rctrl_switch)
+-d------ a------- kr(kr106)
+-------- a------- kr(kr104)
+h-p----- ---f---- kr(koreankeys)
+h-p----- ---f---- kr(koreankeys_raltctl)
+-d------ -------- xfree68_vndr/amiga(usa1)
+-d------ -------- xfree68_vndr/ataritt(us)
+-------- -------- xfree68_vndr/ataritt(de)
+-dp----- a------- no(basic)
+--p----- a------- no(nodeadkeys)
+--p----- a------- no(dvorak)
+--p----- a------- no(smi)
+--p----- a------- no(smi_nodeadkeys)
+--p----- a------- no(mac)
+--p----- a------- no(mac_nodeadkeys)
+-dp----- a------- mv(basic)
+-dp----- -------- latin(basic)
+--p----- -------- latin(type2)
+--p----- -------- latin(type3)
+--p----- -------- latin(type4)
+--p----- -------- latin(nodeadkeys)
+--p----- -------- latin(type2_nodeadkeys)
+--p----- -------- latin(type3_nodeadkeys)
+--p----- -------- latin(type4_nodeadkeys)
+-dp----- a------- ua(unicode)
+--p----- a------- ua(legacy)
+--p----- a------- ua(winkeys)
+--p----- a------- ua(typewriter)
+--p----- a------- ua(phonetic)
+--p----- a------- ua(rstu)
+--p----- a------- ua(rstu_ru)
+--p----- a------- ua(homophonic)
+--p----- -------- ua(crh)
+--p----- -------- ua(crh_f)
+--p----- -------- ua(crh_alt)
+-dp----- a------- al(basic)
+-dp----- a------- iq(basic)
+--p----- a------- iq(ku)
+--p----- a------- iq(ku_f)
+--p----- a------- iq(ku_alt)
+--p----- a------- iq(ku_ara)
+-dp----- am------ pc(pc105)
+h-p----- a------- pc(function)
+h-p----- a------- pc(editing)
+-dp----- am------ lv(basic)
+--p----- am------ lv(apostrophe)
+--p----- am------ lv(tilde)
+--p----- am------ lv(fkey)
+-dp----- a------- si(basic)
+--p----- a------- si(us)
+--p----- a------- si(alternatequotes)
+-dp----- a------- by(basic)
+--p----- a------- by(legacy)
+--p----- a------- by(latin)
+-dp----- -m------ level3(ralt_switch)
+--p----- -m------ level3(ralt_alt)
+--p----- -m------ level3(ralt_switch_multikey)
+h-p----- -m------ level3(ralt_switch_for_alts_toggle)
+--p----- -m------ level3(alt_switch)
+--p----- -m------ level3(lalt_switch)
+--p----- -m------ level3(switch)
+--p----- -m------ level3(menu_switch)
+--p----- -m------ level3(win_switch)
+--p----- -m------ level3(lwin_switch)
+--p----- -m------ level3(rwin_switch)
+--p----- -m------ level3(enter_switch)
-------- am------ olpc(olpc)
--d------ -------- macintosh_vndr/fr(extended)
--------- -------- macintosh_vndr/fr(nodeadkeys)
--dp----- a------- macintosh_vndr/nl(basic)
---p----- a------- macintosh_vndr/ch(extended)
---p----- a------- macintosh_vndr/ch(de)
---p----- a------- macintosh_vndr/ch(fr)
---p----- a------- macintosh_vndr/ch(nodeadkeys)
--dp----- a------- macintosh_vndr/no(basic)
---p----- a------- macintosh_vndr/no(nodeadkeys)
--dp----- a------- macintosh_vndr/es(basic)
--dp----- a------- macintosh_vndr/is(basic)
---p----- a------- macintosh_vndr/is(nodeadkeys)
--dp----- a------- macintosh_vndr/gb(basic)
--dp----- a------- macintosh_vndr/se(basic)
---p----- a------- macintosh_vndr/se(nodeadkeys)
+-dp----- a------- pl(basic)
+--p----- a------- pl(qwertz)
+--p----- a------- pl(dvorak)
+--p----- a------- pl(dvorak_quotes)
+--p----- a------- pl(dvorak_altquotes)
+--p----- a------- pl(csb)
+--p----- a------- pl(ru_phonetic_dvorak)
+-dp----- a------- gb(basic)
+--p----- a------- gb(intl)
+--p----- a------- gb(extd)
+--p----- a------- gb(colemak)
+--p----- a------- gb(dvorak)
+--p----- a------- gb(dvorakukp)
+--p----- a------- gb(mac)
+-dp----- a------- in(deva)
+--p----- a------- in(bolnagri)
+--p----- a------- in(ben)
+-------- -------- in(ben_probhat)
+--p----- a------- in(guj)
+--p----- a------- in(kan)
+--p----- a------- in(mal)
+--p----- a------- in(mal_lalitha)
+--p----- a------- in(ori)
+--p----- a------- in(tam)
+--p----- a------- in(tam_unicode)
+--p----- a------- in(tam_keyboard_with_numerals)
+--p----- a------- in(tam_TSCII)
+--p----- a------- in(tam_TAB)
+--p----- a------- in(tel)
+--p----- a------- in(urd-phonetic)
+--p----- a------- in(urd-phonetic3)
+--p----- a------- in(urd-winkeys)
+--p----- a------- in(guru)
+--p----- a------- in(jhelum)
+--p----- a------- in(olpc)
+--p----- a------- in(hin-wx)
+--p----- -m------ shift(breaks_caps)
+-dp----- a------- ch(basic)
+--p----- a------- ch(de)
+--p----- a------- ch(de_Sundeadkeys)
+--p----- a------- ch(de_sundeadkeys)
+--p----- a------- ch(de_nodeadkeys)
+--p----- a------- ch(fr)
+--p----- a------- ch(fr_Sundeadkeys)
+--p----- a------- ch(fr_sundeadkeys)
+--p----- a------- ch(fr_nodeadkeys)
+--p----- a------- ch(de_mac)
+--p----- a------- ch(fr_mac)
+-------- -------- sgi_vndr/jp(jp106)
+-------- -------- sgi_vndr/jp(alternate106)
+-dp----- a------- macintosh_vndr/de(basic)
+--p----- a------- macintosh_vndr/de(Sundeadkeys)
+--p----- a------- macintosh_vndr/de(sundeadkeys)
+--p----- a------- macintosh_vndr/de(nodeadkeys)
+-dp----- a------- macintosh_vndr/fi(basic)
+--p----- a------- macintosh_vndr/fi(nodeadkeys)
--p----- a------- macintosh_vndr/dk(basic)
-dp----- a------- macintosh_vndr/dk(full)
--p----- a------- macintosh_vndr/dk(nodeadkeys)
--p----- a------- macintosh_vndr/dk(macbookpro)
+-dp----- a------- macintosh_vndr/latam(basic)
+-dp----- a------- macintosh_vndr/no(basic)
+--p----- a------- macintosh_vndr/no(nodeadkeys)
+-dp----- a------- macintosh_vndr/gb(basic)
+--p----- a------- macintosh_vndr/ch(extended)
+--p----- a------- macintosh_vndr/ch(de)
+--p----- a------- macintosh_vndr/ch(fr)
+--p----- a------- macintosh_vndr/ch(nodeadkeys)
-dp----- -m------ macintosh_vndr/apple(extended)
--p----- -m------ macintosh_vndr/apple(laptop)
--p----- -m------ macintosh_vndr/apple(laptop_bad_switch)
@@ -522,17 +521,35 @@ hdp----- --k----- keypad(x11)
--p----- a------- macintosh_vndr/pt(Sundeadkeys)
--p----- a------- macintosh_vndr/pt(sundeadkeys)
--p----- a------- macintosh_vndr/pt(nodeadkeys)
+-d------ -------- macintosh_vndr/fr(extended)
+-------- -------- macintosh_vndr/fr(nodeadkeys)
+-dp----- a------- macintosh_vndr/nl(basic)
+-dp----- a------- macintosh_vndr/se(basic)
+--p----- a------- macintosh_vndr/se(nodeadkeys)
-------- -------- macintosh_vndr/us(extended)
h------- -------- macintosh_vndr/us(oldmac)
--dp----- a------- macintosh_vndr/de(basic)
---p----- a------- macintosh_vndr/de(Sundeadkeys)
---p----- a------- macintosh_vndr/de(sundeadkeys)
---p----- a------- macintosh_vndr/de(nodeadkeys)
+-dp----- a------- macintosh_vndr/es(basic)
-------- -------- macintosh_vndr/it(extended)
--dp----- a------- macintosh_vndr/latam(basic)
--dp----- a------- macintosh_vndr/fi(basic)
---p----- a------- macintosh_vndr/fi(nodeadkeys)
---p----- -m------ level5(rctrl_switch)
+-dp----- a------- macintosh_vndr/is(basic)
+--p----- a------- macintosh_vndr/is(nodeadkeys)
+-dp----- a------- bd(basic)
+-------- -------- bd(probhat)
+-dp----- -------- tr(basic)
+--p----- -------- tr(f)
+--p----- -------- tr(alt)
+--p----- a------- tr(Sundeadkeys)
+--p----- a------- tr(sundeadkeys)
+--p----- -------- tr(ku)
+--p----- -------- tr(ku_f)
+--p----- -------- tr(ku_alt)
+--p----- -------- tr(intl)
+--p----- a------- tr(olpc)
+--p----- -------- tr(crh)
+--p----- -------- tr(crh_f)
+--p----- -------- tr(crh_alt)
+-dp----- a------- tj(basic)
+-------- -------- tj(legacy)
+-dp----- a------- mao(basic)
-dp----- a------- pt(basic)
--p----- a------- pt(Sundeadkeys)
--p----- a------- pt(sundeadkeys)
@@ -543,92 +560,14 @@ h------- -------- macintosh_vndr/us(oldmac)
--p----- a------- pt(nativo)
--p----- a------- pt(nativo-us)
--p----- a------- pt(nativo-epo)
--dp----- a------- ge(basic)
---p----- a------- ge(qwerty)
---p----- a------- ge(ergonomic)
---p----- a------- ge(mess)
---p----- a------- ge(ru)
---p----- a------- ge(os)
--------- -------- sony_vndr/us(nwp5461)
--dp----- am------ za(basic)
--------- -------- hp_vndr/us(hil)
--------- -------- extras/rs(combiningkeys)
---p----- am------ extras/apl(common)
---p----- am------ extras/apl(unified)
--dp----- am------ extras/apl(sax)
---p----- am------ extras/apl(apl2)
---p----- am------ extras/apl(aplplusII)
---p----- am------ extras/apl(aplx)
---p----- a------- extras/us(intl-unicode)
---p----- a------- extras/us(alt-intl-unicode)
---p----- a------- extras/us(ats)
---p----- a------- extras/us(crd)
--dp----- a------- ie(basic)
---p----- a------- ie(CloGaelach)
---p----- a------- ie(UnicodeExpert)
---p----- a------- ie(ogam)
---p----- a------- ie(ogam_is434)
---p----- -m------ group(switch)
---p----- -m------ group(lswitch)
---p----- -m------ group(win_switch)
---p----- -m------ group(lwin_switch)
---p----- -m------ group(rwin_switch)
---p----- -m------ group(rctrl_switch)
---p----- -m------ group(toggle)
---p----- -m------ group(shifts_toggle)
---p----- -m------ group(ctrl_shift_toggle)
---p----- -m------ group(lctrl_lshift_toggle)
---p----- -m------ group(shift_caps_toggle)
---p----- -m------ group(shift_caps_switch)
---p----- -m------ group(win_menu_switch)
---p----- -m------ group(ctrl_alt_toggle)
---p----- -m------ group(alt_shift_toggle)
---p----- -m------ group(menu_toggle)
---p----- -m------ group(lwin_toggle)
---p----- -m------ group(rwin_toggle)
---p----- -m------ group(ctrls_toggle)
---p----- -m------ group(alts_toggle)
---p----- -m------ group(lshift_toggle)
---p----- -m------ group(rshift_toggle)
---p----- -m------ group(lalt_toggle)
---p----- -m------ group(lctrl_toggle)
---p----- -m------ group(rctrl_toggle)
---p----- -m------ group(alt_caps_toggle)
-h-p----- -m------ group(olpc)
---p----- -m------ group(alt_space_toggle)
---p----- -m------ group(sclk_toggle)
--dp----- am------ us(basic)
---p----- a------- us(euro)
---p----- a------- us(intl)
---p----- a------- us(alt-intl)
---p----- a------- us(dvorak)
---p----- a------- us(dvorak-intl)
---p----- a------- us(dvorak-l)
---p----- a------- us(dvorak-r)
---p----- a------- us(dvorak-classic)
---p----- a------- us(dvp)
---p----- a------- us(rus)
---p----- a------- us(mac)
---p----- a------- us(colemak)
---p----- a------- us(altgr-intl)
---p----- a------- us(classmate)
---p----- a------- us(classmate-intl)
---p----- a------- us(classmate-alt-intl)
---p----- a------- us(classmate-altgr-intl)
---p----- a------- us(olpc)
---p----- a------- us(olpc2)
---p----- am------ us(chr)
--dp----- a------- et(basic)
---p----- a------- et(olpc)
--d------ -------- nec_vndr/jp(pc98)
--dp----- a------- ma(arabic)
---p----- a------- ma(french)
---p----- a------- ma(tifinagh)
---p----- a------- ma(tifinagh-phonetic)
---p----- a------- ma(tifinagh-extended)
---p----- a------- ma(tifinagh-extended-phonetic)
---p----- a------- ma(tifinagh-alt)
---p----- a------- ma(tifinagh-alt-phonetic)
+-dp----- a------- ara(basic)
+--p----- a------- ara(qwerty)
+--p----- a------- ara(azerty)
+--p----- a------- ara(digits)
+--p----- a------- ara(qwerty_digits)
+--p----- a------- ara(azerty_digits)
+--p----- a------- ara(buckwalter)
+--p----- a------- ara(olpc)
-dp----- -------- ca(fr)
-------- -------- ca(fr-dvorak)
--p----- -------- ca(fr-legacy)
@@ -640,45 +579,7 @@ h-p----- -m------ group(olpc)
-------- -------- ca(olpc)
--p----- a------- ca(kut)
--p----- a------- ca(eng)
---p----- -------- nbsp(none)
---p----- -------- nbsp(level2)
---p----- -------- nbsp(level3)
---p----- -------- nbsp(level3s)
---p----- -------- nbsp(level3n)
---p----- -------- nbsp(level4)
---p----- -------- nbsp(level4n)
---p----- -------- nbsp(level4nl)
--dp----- a------- ba(basic)
---p----- a------- ba(us)
---p----- a------- ba(alternatequotes)
---p----- a------- ba(unicode)
---p----- a------- ba(unicodeus)
--dp----- a------- vn(basic)
--d------ -------- de(basic)
---p----- a------- de(nodeadkeys)
---p----- a------- de(deadgraveacute)
---p----- a------- de(deadacute)
---p----- a------- de(ro)
---p----- a------- de(ro_nodeadkeys)
---p----- a------- de(dvorak)
---p----- a------- de(Sundeadkeys)
---p----- a------- de(sundeadkeys)
---p----- amk----- de(neo)
---p----- a------- de(mac)
---p----- a------- de(mac_nodeadkeys)
---p----- a------- de(dsb)
---p----- a------- de(dsb_qwertz)
---p----- a------- de(qwerty)
--dp----- a------- it(basic)
---p----- a------- it(nodeadkeys)
---p----- a------- it(mac)
---p----- a------- it(geo)
--------- -------- it(olpc)
---p----- am------ it(us)
--dp----- a------- bg(bds)
---p----- a------- bg(phonetic)
---p----- a------- bg(bas_phonetic)
-h-p----- a------- bg(latin)
+-d------ -------- nec_vndr/jp(pc98)
h-p----- a------- inet(media_common)
h-p----- a------- inet(nav_common)
h-p----- a------- inet(acpi_common)
@@ -790,53 +691,150 @@ h-p----- a------- inet(logitech_set3)
--p----- a------- inet(creativedw7000)
--p----- a------- inet(compalfl90)
--p----- a------- inet(pc105)
--dp----- a------- latam(basic)
---p----- a------- latam(Sundeadkeys)
---p----- a------- latam(sundeadkeys)
---p----- a------- latam(nodeadkeys)
---p----- a------- latam(deadtilde)
--dp----- a------- sy(basic)
---p----- a------- sy(syc)
---p----- a------- sy(syc_phonetic)
---p----- a------- sy(ku)
---p----- a------- sy(ku_f)
---p----- a------- sy(ku_alt)
--dp----- a------- lk(sin_phonetic)
---p----- a------- lk(tam_unicode)
---p----- a------- lk(tam_TAB)
--------- -------- digital_vndr/pc(pc)
--------- -------- digital_vndr/pc(pc104)
--------- -------- digital_vndr/us(us)
--------- -------- digital_vndr/us(vt105-tw)
--------- -------- digital_vndr/us(vt105-dp)
--------- -------- digital_vndr/us(vt105)
--------- -------- digital_vndr/us(vt108-tw)
--------- -------- digital_vndr/us(vt108-dp)
--------- -------- digital_vndr/us(vt108)
--------- -------- digital_vndr/us(unix)
--------- -------- digital_vndr/us(pcxalga)
--------- -------- digital_vndr/us(pcxal)
--------- -------- digital_vndr/us(pcxalaa)
--------- -------- digital_vndr/us(pcxalfa)
--------- -------- digital_vndr/us(pcxalka)
--------- -------- digital_vndr/us(lk44x)
--------- -------- digital_vndr/us(pc104)
--d------ -------- digital_vndr/lk(common)
--------- -------- digital_vndr/lk(lk401)
--------- -------- digital_vndr/vt(vt105)
--------- -------- digital_vndr/vt(vt108)
--dp----- a------- be(basic)
---p----- a------- be(oss)
---p----- a------- be(oss_frbe)
---p----- a------- be(oss_latin9)
---p----- a------- be(oss_Sundeadkeys)
---p----- a------- be(oss_sundeadkeys)
---p----- a------- be(iso-alternate)
---p----- a------- be(sundeadkeys)
---p----- a------- be(Sundeadkeys)
---p----- a------- be(nodeadkeys)
---p----- a------- be(wang)
--dp----- a------- mv(basic)
+-dp----- a------- ir(pes)
+--p----- a------- ir(pes_keypad)
+h-p----- a------- ir(pes_part_basic)
+h-p----- a------- ir(pes_part_ext)
+h-p----- a------- ir(pes_part_keypad)
+--p----- a------- ir(ku)
+--p----- a------- ir(ku_f)
+--p----- a------- ir(ku_alt)
+--p----- a------- ir(ku_ara)
+-dp----- a------- fr(basic)
+--p----- a------- fr(Sundeadkeys)
+--p----- a------- fr(sundeadkeys)
+--p----- a------- fr(nodeadkeys)
+--p----- a------- fr(oss)
+--p----- a------- fr(oss_latin9)
+--p----- a------- fr(oss_Sundeadkeys)
+--p----- a------- fr(oss_sundeadkeys)
+--p----- a------- fr(oss_nodeadkeys)
+--p----- a------- fr(latin9)
+--p----- a------- fr(latin9_Sundeadkeys)
+--p----- a------- fr(latin9_sundeadkeys)
+--p----- a------- fr(latin9_nodeadkeys)
+--p----- a------- fr(bepo)
+--p----- a------- fr(bepo_latin9)
+--p----- am------ fr(dvorak)
+--p----- a------- fr(bre)
+--p----- a------- fr(oci)
+--p----- a------- fr(mac)
+--p----- a------- fr(geo)
+--p----- -------- nbsp(none)
+--p----- -------- nbsp(level2)
+--p----- -------- nbsp(level3)
+--p----- -------- nbsp(level3s)
+--p----- -------- nbsp(level3n)
+--p----- -------- nbsp(level4)
+--p----- -------- nbsp(level4n)
+--p----- -------- nbsp(level4nl)
+-dp----- a------- nl(basic)
+--p----- a------- nl(std)
+--p----- a------- nl(Sundeadkeys)
+--p----- a------- nl(sundeadkeys)
+--p----- a------- nl(mac)
+-dp----- a------- cd(basic)
+-dp----- a------- se(basic)
+--p----- a------- se(se)
+--p----- a------- se(nodeadkeys)
+--p----- a------- se(dvorak)
+--p----- a------- se(rus)
+--p----- a------- se(rus_nodeadkeys)
+-------- -------- se(smi)
+--p----- a------- se(mac)
+--p----- a------- se(svdvorak)
+-dp----- am------ us(basic)
+--p----- a------- us(euro)
+--p----- a------- us(intl)
+--p----- a------- us(alt-intl)
+--p----- a------- us(dvorak)
+--p----- a------- us(dvorak-intl)
+--p----- a------- us(dvorak-l)
+--p----- a------- us(dvorak-r)
+--p----- a------- us(dvorak-classic)
+--p----- a------- us(dvp)
+--p----- a------- us(rus)
+--p----- a------- us(mac)
+--p----- a------- us(colemak)
+--p----- a------- us(altgr-intl)
+--p----- a------- us(classmate)
+--p----- a------- us(classmate-intl)
+--p----- a------- us(classmate-alt-intl)
+--p----- a------- us(classmate-altgr-intl)
+--p----- a------- us(olpc)
+--p----- a------- us(olpc2)
+--p----- am------ us(chr)
+-dp----- a------- la(basic)
+--p----- -m------ group(switch)
+--p----- -m------ group(lswitch)
+--p----- -m------ group(win_switch)
+--p----- -m------ group(lwin_switch)
+--p----- -m------ group(rwin_switch)
+--p----- -m------ group(rctrl_switch)
+--p----- -m------ group(toggle)
+--p----- -m------ group(shifts_toggle)
+--p----- -m------ group(ctrl_shift_toggle)
+--p----- -m------ group(lctrl_lshift_toggle)
+--p----- -m------ group(shift_caps_toggle)
+--p----- -m------ group(shift_caps_switch)
+--p----- -m------ group(win_menu_switch)
+--p----- -m------ group(ctrl_alt_toggle)
+--p----- -m------ group(alt_shift_toggle)
+--p----- -m------ group(menu_toggle)
+--p----- -m------ group(lwin_toggle)
+--p----- -m------ group(rwin_toggle)
+--p----- -m------ group(ctrls_toggle)
+--p----- -m------ group(alts_toggle)
+--p----- -m------ group(lshift_toggle)
+--p----- -m------ group(rshift_toggle)
+--p----- -m------ group(lalt_toggle)
+--p----- -m------ group(lctrl_toggle)
+--p----- -m------ group(rctrl_toggle)
+--p----- -m------ group(alt_caps_toggle)
+h-p----- -m------ group(olpc)
+--p----- -m------ group(alt_space_toggle)
+--p----- -m------ group(sclk_toggle)
+-dp----- am------ za(basic)
+-dp----- a------- vn(basic)
+-dp----- -------- tm(basic)
+--p----- -------- tm(alt)
+-dp----- a------- es(basic)
+--p----- a------- es(Sundeadkeys)
+--p----- a------- es(sundeadkeys)
+--p----- a------- es(nodeadkeys)
+--p----- a------- es(dvorak)
+--p----- a------- es(cat)
+--p----- a------- es(ast)
+--p----- a------- es(mac)
+--p----- a------- es(olpc)
+--p----- a------- es(deadtilde)
+-dp----- a------- it(basic)
+--p----- a------- it(nodeadkeys)
+--p----- a------- it(mac)
+--p----- a------- it(geo)
+-------- -------- it(olpc)
+--p----- am------ it(us)
+-dp----- a------- th(basic)
+--p----- a------- th(pat)
+--p----- a------- th(tis)
+--p----- a------- th(olpc)
+-dp----- a------- pk(urd-phonetic)
+--p----- a------- pk(urd-crulp)
+--p----- a------- pk(urd-nla)
+--p----- a------- pk(ara)
+--p----- a------- pk(olpc)
+-dp----- a------- is(basic)
+--p----- a------- is(Sundeadkeys)
+--p----- a------- is(nodeadkeys)
+--p----- a------- is(mac)
+--p----- a------- is(dvorak)
+-dp----- a------- np(basic)
+--p----- a------- np(olpc)
+-dp----- a------- kg(basic)
+--p----- a------- kg(phonetic)
+-dp----- a------- ad(basic)
+-dp----- a------- mt(basic)
+--p----- a------- mt(us)
-dp----- a------- ru(winkeys)
h-p----- a------- ru(common)
--p----- a------- ru(legacy)
@@ -855,46 +853,53 @@ h-p----- a------- ru(common)
--p----- a------- ru(xal)
--p----- a------- ru(dos)
--p----- a------- ru(bak)
--dp----- am------ lv(basic)
---p----- am------ lv(apostrophe)
---p----- am------ lv(tilde)
---p----- am------ lv(fkey)
--dp----- a------- si(basic)
---p----- a------- si(us)
---p----- a------- si(alternatequotes)
--dp----- a------- bt(basic)
---p----- -m------ compose(ralt)
---p----- -m------ compose(lwin)
---p----- -m------ compose(rwin)
---p----- -m------ compose(menu)
---p----- -m------ compose(rctrl)
---p----- -m------ compose(caps)
---p----- -m------ compose(102)
--dp----- a------- az(latin)
---p----- a------- az(cyrillic)
---p----- -m------ ctrl(nocaps)
---p----- -m------ ctrl(swapcaps)
---p----- -m------ ctrl(ctrl_ac)
---p----- -m------ ctrl(ctrl_aa)
---p----- -m------ ctrl(ctrl_ra)
--dp----- a------- brai(home_row)
---p----- a------- brai(left_hand)
---p----- a------- brai(right_hand)
-h-p----- --k----- brai(keypad)
--dp----- -------- tm(basic)
---p----- -------- tm(alt)
--dp----- a------- kz(basic)
---p----- a------- kz(ruskaz)
---p----- a------- kz(kazrus)
---p----- a------- kz(olpc)
--dp----- a------- la(basic)
--dp----- a------- fi(kotoistus)
---p----- a------- fi(classic)
-h-p----- a------- fi(fi)
---p----- a------- fi(nodeadkeys)
--------- -------- fi(smi)
---p----- a------- fi(mac)
--dp----- a------- al(basic)
+-d------ -------- digital_vndr/lk(common)
+-------- -------- digital_vndr/lk(lk401)
+-------- -------- digital_vndr/pc(pc)
+-------- -------- digital_vndr/pc(pc104)
+-------- -------- digital_vndr/vt(vt105)
+-------- -------- digital_vndr/vt(vt108)
+-------- -------- digital_vndr/us(us)
+-------- -------- digital_vndr/us(vt105-tw)
+-------- -------- digital_vndr/us(vt105-dp)
+-------- -------- digital_vndr/us(vt105)
+-------- -------- digital_vndr/us(vt108-tw)
+-------- -------- digital_vndr/us(vt108-dp)
+-------- -------- digital_vndr/us(vt108)
+-------- -------- digital_vndr/us(unix)
+-------- -------- digital_vndr/us(pcxalga)
+-------- -------- digital_vndr/us(pcxal)
+-------- -------- digital_vndr/us(pcxalaa)
+-------- -------- digital_vndr/us(pcxalfa)
+-------- -------- digital_vndr/us(pcxalka)
+-------- -------- digital_vndr/us(lk44x)
+-------- -------- digital_vndr/us(pc104)
+-dp----- a------- epo(basic)
+--p----- a------- epo(legacy)
+--p----- -------- epo(qwerty)
+--p----- -------- epo(dvorak)
+hdp----- -m------ capslock(capslock)
+h-p----- -m------ capslock(shiftlock)
+h-p----- -m------ capslock(grouplock)
+h-p----- -m------ capslock(swapescape)
+h-p----- -m------ capslock(groupshift)
+h-p----- -m------ capslock(escape)
+h-p----- -m------ capslock(backspace)
+h-p----- -m------ capslock(super)
+h-p----- -m------ capslock(hyper)
+h-p----- -m------ capslock(none)
+h-p----- -m------ capslock(numlock)
+-dp----- a------- mk(basic)
+--p----- a------- mk(nodeadkeys)
+-dp----- a------- uz(cyrillic)
+--p----- a------- uz(latin)
+--p----- -------- uz(crh)
+--p----- -------- uz(crh_f)
+--p----- -------- uz(crh_alt)
+-dp----- a------- ee(basic)
+--p----- a------- ee(nodeadkeys)
+--p----- a------- ee(dvorak)
+--p----- a------- ee(us)
-dp----- a------- gh(basic)
--p----- a------- gh(akan)
--p----- a------- gh(ga)
@@ -902,8 +907,3 @@ h-p----- a------- fi(fi)
--p----- a------- gh(fula)
--p----- a------- gh(hausa)
--p----- a------- gh(generic)
--------- -------- fujitsu_vndr/jp
--------- -------- fujitsu_vndr/us
--dp----- a------- kg(basic)
---p----- a------- kg(phonetic)
---p----- -m------ shift(breaks_caps)
diff --git a/xorg-server/xkbdata.src/types/types.dir b/xorg-server/xkbdata.src/types/types.dir
index 9e15cdc98..746d2f4d2 100644
--- a/xorg-server/xkbdata.src/types/types.dir
+++ b/xorg-server/xkbdata.src/types/types.dir
@@ -1,18 +1,18 @@
--dp----- -------- pc(default)
-dp----- -------- mousekeys(default)
--p----- -------- caps(internal)
--p----- -------- caps(internal_nocancel)
--p----- -------- caps(shift)
--p----- -------- caps(shift_nocancel)
--dp----- -------- extra(default)
---p----- -------- extra(keypad)
---p----- -------- extra(mac_keypad)
-d------ -------- default(default)
--dp----- -------- iso9995(default)
-d------ -------- complete(complete)
+-dp----- -------- iso9995(default)
+-d------ -------- basic(basic)
-dp----- -------- level5(default)
+-dp----- -------- pc(default)
+-dp----- -------- extra(default)
+--p----- -------- extra(keypad)
+--p----- -------- extra(mac_keypad)
-dp----- -------- cancel(Shift_Cancels_Caps)
--d------ -------- basic(basic)
-dp----- -------- numpad(pc)
--p----- -------- numpad(mac)
--p----- -------- numpad(microsoft)
diff --git a/xorg-server/xkbdata.src/xkeyboard-config.spec b/xorg-server/xkbdata.src/xkeyboard-config.spec
index 65f2153a1..3f6f7694d 100644
--- a/xorg-server/xkbdata.src/xkeyboard-config.spec
+++ b/xorg-server/xkbdata.src/xkeyboard-config.spec
@@ -1,6 +1,6 @@
Name: xkeyboard-config
Summary: XML-based XKB configuration registry
-Version: 1.6.99
+Version: 1.7
Release: 1
License: X11/MIT
Group: User Interface/X