aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2015-06-15 20:27:26 +0200
committermarha <marha@users.sourceforge.net>2015-06-15 20:27:26 +0200
commite8d5e7c4bb11f7fcb0a4ba5c13f43e7929849a2f (patch)
treea88d66b3d34f8e008f08e2bd77889c6c6718ab11
parent0b3be550b20ad9f991f77bf979b2c306a7d4ef11 (diff)
downloadvcxsrv-e8d5e7c4bb11f7fcb0a4ba5c13f43e7929849a2f.tar.gz
vcxsrv-e8d5e7c4bb11f7fcb0a4ba5c13f43e7929849a2f.tar.bz2
vcxsrv-e8d5e7c4bb11f7fcb0a4ba5c13f43e7929849a2f.zip
fontconfig libX11 libxcb xcb-proto mesa pixman xserver xkeyboard-config git update 15 June 2015release/external
xserver commit fa12f2c150b2f50de9dac4a2b09265f13af353af libxcb commit f85661c3bca97faa72431df92a3867be39a74e23 libxcb/xcb-proto commit fef8a4cdc2cacd9541a656026371a3d338dadb8e xkeyboard-config commit 61fb58a95a071cc1c212f6d3808908c086219fe0 libX11 commit f0286b2770ece10aef5e2e8c004260217f12fd25 pixman commit eebc1b78200aff075dbcae9c8d00edad1f830d91 fontconfig commit f6d61c9beed856a925bd60c025b55284b2d88161 mesa commit 932d1613d1e15ec22555e5ec09105c49eb850e36
-rw-r--r--fontconfig/README40
-rw-r--r--fontconfig/configure.ac2
-rw-r--r--fontconfig/doc/fontconfig-devel.sgml1
-rw-r--r--fontconfig/doc/fontconfig-user.sgml6
-rw-r--r--fontconfig/fontconfig/fontconfig.h10
-rw-r--r--fontconfig/src/fccache.c6
-rw-r--r--fontconfig/src/fcdbg.c88
-rw-r--r--fontconfig/src/fcdefault.c1
-rw-r--r--fontconfig/src/fcfreetype.c80
-rw-r--r--fontconfig/src/fcinit.c28
-rw-r--r--fontconfig/src/fcint.h41
-rw-r--r--fontconfig/src/fcmatch.c44
-rw-r--r--fontconfig/src/fcname.c20
-rw-r--r--fontconfig/src/fcobjs.c31
-rw-r--r--fontconfig/src/fcobjs.h1
-rw-r--r--fontconfig/src/fcpat.c6
-rw-r--r--fontconfig/src/fcrange.c109
-rw-r--r--fontconfig/src/fcxml.c63
-rw-r--r--libX11/modules/im/ximcp/imLcPrs.c6
-rw-r--r--libX11/modules/om/generic/omGeneric.c2
-rw-r--r--libX11/src/FontNames.c2
-rw-r--r--libX11/src/GetFPath.c2
-rw-r--r--libX11/src/ListExt.c2
-rw-r--r--libxcb/src/c_client.py103
-rw-r--r--libxcb/src/xcb_in.c1
-rw-r--r--libxcb/src/xcb_out.c85
-rw-r--r--libxcb/src/xcbext.h77
-rw-r--r--libxcb/xcb-proto/doc/xml-xcb.txt11
-rw-r--r--libxcb/xcb-proto/src/present.xml10
-rw-r--r--libxcb/xcb-proto/src/xprint.xml8
-rw-r--r--mesalib/Android.common.mk9
-rw-r--r--mesalib/Android.mk12
-rw-r--r--mesalib/CleanSpec.mk1
-rw-r--r--mesalib/VERSION2
-rw-r--r--mesalib/configure.ac32
-rw-r--r--mesalib/docs/GL3.txt16
-rw-r--r--mesalib/docs/devinfo.html394
-rw-r--r--mesalib/docs/index.html19
-rw-r--r--mesalib/docs/relnotes.html3
-rw-r--r--mesalib/docs/relnotes/10.5.6.html147
-rw-r--r--mesalib/docs/relnotes/10.5.7.html103
-rw-r--r--mesalib/docs/relnotes/10.6.0.html248
-rw-r--r--mesalib/docs/relnotes/10.7.0.html60
-rw-r--r--mesalib/include/EGL/egl.h562
-rw-r--r--mesalib/include/EGL/eglext.h258
-rw-r--r--mesalib/include/EGL/eglmesaext.h33
-rw-r--r--mesalib/include/EGL/eglplatform.h19
-rw-r--r--mesalib/include/KHR/khrplatform.h19
-rw-r--r--mesalib/scons/llvm.py4
-rw-r--r--mesalib/src/Makefile.am3
-rw-r--r--mesalib/src/gallium/Android.common.mk8
-rw-r--r--mesalib/src/gallium/Android.mk15
-rw-r--r--mesalib/src/gallium/auxiliary/Android.mk11
-rw-r--r--mesalib/src/gallium/auxiliary/hud/hud_context.c6
-rw-r--r--mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c3
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blit.c6
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blitter.c27
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blitter.h16
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_dump_state.c2
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format_etc.c3
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_math.h20
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_tests.h8
-rw-r--r--mesalib/src/glsl/Android.mk1
-rw-r--r--mesalib/src/glsl/Makefile.am33
-rw-r--r--mesalib/src/glsl/SConscript4
-rw-r--r--mesalib/src/glsl/ast_array_index.cpp2
-rw-r--r--mesalib/src/glsl/ast_function.cpp30
-rw-r--r--mesalib/src/glsl/ast_to_hir.cpp128
-rw-r--r--mesalib/src/glsl/builtin_functions.cpp18
-rw-r--r--mesalib/src/glsl/glsl_parser_extras.cpp4
-rw-r--r--mesalib/src/glsl/glsl_types.cpp2
-rw-r--r--mesalib/src/glsl/glsl_types.h14
-rw-r--r--mesalib/src/glsl/ir.cpp4
-rw-r--r--mesalib/src/glsl/ir.h24
-rw-r--r--mesalib/src/glsl/ir_hierarchical_visitor.cpp9
-rw-r--r--mesalib/src/glsl/ir_hierarchical_visitor.h3
-rw-r--r--mesalib/src/glsl/ir_hv_accept.cpp6
-rw-r--r--mesalib/src/glsl/ir_print_visitor.cpp5
-rw-r--r--mesalib/src/glsl/ir_print_visitor.h1
-rw-r--r--mesalib/src/glsl/ir_uniform.h5
-rw-r--r--mesalib/src/glsl/ir_visitor.h2
-rw-r--r--mesalib/src/glsl/link_atomics.cpp2
-rw-r--r--mesalib/src/glsl/link_uniform_initializers.cpp4
-rw-r--r--mesalib/src/glsl/link_uniforms.cpp55
-rw-r--r--mesalib/src/glsl/link_varyings.cpp2
-rw-r--r--mesalib/src/glsl/linker.cpp30
-rw-r--r--mesalib/src/glsl/lower_clip_distance.cpp8
-rw-r--r--mesalib/src/glsl/main.cpp8
-rw-r--r--mesalib/src/glsl/nir/glsl_to_nir.cpp15
-rw-r--r--mesalib/src/glsl/nir/nir_intrinsics.h20
-rw-r--r--mesalib/src/glsl/nir/nir_lower_atomics.c2
-rw-r--r--mesalib/src/glsl/nir/nir_lower_io.c2
-rw-r--r--mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c5
-rw-r--r--mesalib/src/glsl/nir/nir_opt_algebraic.py2
-rw-r--r--mesalib/src/glsl/nir/nir_opt_peephole_ffma.c19
-rw-r--r--mesalib/src/glsl/standalone_scaffolding.cpp2
-rw-r--r--mesalib/src/loader/Android.mk2
-rw-r--r--mesalib/src/loader/Makefile.am10
-rw-r--r--mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml22
-rw-r--r--mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml10
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml10
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_base_instance.xml9
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_clip_control.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_copy_image.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml158
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml11
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml46
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml36
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml3
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_robustness.xml40
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml28
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml122
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_sync.xml14
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_view.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml14
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml106
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml28
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml94
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml16
-rw-r--r--mesalib/src/mapi/glapi/gen/GL3x.xml100
-rw-r--r--mesalib/src/mapi/glapi/gen/GL4x.xml10
-rw-r--r--mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/KHR_debug.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/Makefile.am8
-rw-r--r--mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/OES_EGL_image.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/OES_fixed_point.xml123
-rw-r--r--mesalib/src/mapi/glapi/gen/OES_single_precision.xml17
-rw-r--r--mesalib/src/mapi/glapi/gen/apiexec.py240
-rw-r--r--mesalib/src/mapi/glapi/gen/es_EXT.xml166
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_proto_recv.py62
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_proto_send.py70
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_proto_size.py99
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_server_table.py38
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_API.dtd2
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_API.xml1741
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py41
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_XML.py20
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_and_es_API.xml86
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_apitemp.py44
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_enums.py34
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_genexec.py90
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_gentable.py34
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_procs.py52
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_table.py97
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py47
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_x86_asm.py45
-rw-r--r--mesalib/src/mapi/glapi/gen/remap_helper.py53
-rw-r--r--mesalib/src/mapi/glapi/gen/static_data.py1729
-rw-r--r--mesalib/src/mesa/Android.gen.mk16
-rw-r--r--mesalib/src/mesa/Android.libmesa_glsl_utils.mk6
-rw-r--r--mesalib/src/mesa/Makefile.am1
-rw-r--r--mesalib/src/mesa/drivers/SConscript3
-rw-r--r--mesalib/src/mesa/drivers/common/meta_blit.c6
-rw-r--r--mesalib/src/mesa/drivers/common/meta_tex_subimage.c12
-rw-r--r--mesalib/src/mesa/drivers/dri/Makefile.am1
-rw-r--r--mesalib/src/mesa/drivers/dri/common/Android.mk8
-rw-r--r--mesalib/src/mesa/drivers/dri/common/Makefile.am6
-rw-r--r--mesalib/src/mesa/drivers/dri/common/Makefile.sources4
-rw-r--r--mesalib/src/mesa/drivers/dri/common/SConscript2
-rw-r--r--mesalib/src/mesa/drivers/dri/common/dri_util.c22
-rw-r--r--mesalib/src/mesa/drivers/dri/swrast/swrast.c4
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SConscript33
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp697
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h95
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef39
-rw-r--r--mesalib/src/mesa/main/api_exec.h3
-rw-r--r--mesalib/src/mesa/main/api_loopback.c2
-rw-r--r--mesalib/src/mesa/main/arrayobj.c22
-rw-r--r--mesalib/src/mesa/main/attrib.c22
-rw-r--r--mesalib/src/mesa/main/blit.c7
-rw-r--r--mesalib/src/mesa/main/bufferobj.c105
-rw-r--r--mesalib/src/mesa/main/buffers.c21
-rw-r--r--mesalib/src/mesa/main/clear.c32
-rw-r--r--mesalib/src/mesa/main/config.h13
-rw-r--r--mesalib/src/mesa/main/context.c73
-rw-r--r--mesalib/src/mesa/main/copyimage.c39
-rw-r--r--mesalib/src/mesa/main/depth.c6
-rw-r--r--mesalib/src/mesa/main/dlist.c30
-rw-r--r--mesalib/src/mesa/main/errors.c1
-rw-r--r--mesalib/src/mesa/main/extensions.c2
-rw-r--r--mesalib/src/mesa/main/fbobject.c103
-rw-r--r--mesalib/src/mesa/main/formats.c11
-rw-r--r--mesalib/src/mesa/main/genmipmap.c7
-rw-r--r--mesalib/src/mesa/main/get.c12
-rw-r--r--mesalib/src/mesa/main/get_hash_params.py8
-rw-r--r--mesalib/src/mesa/main/getstring.c16
-rw-r--r--mesalib/src/mesa/main/glformats.c43
-rw-r--r--mesalib/src/mesa/main/glformats.h2
-rw-r--r--mesalib/src/mesa/main/glheader.h6
-rw-r--r--mesalib/src/mesa/main/hash.c28
-rw-r--r--mesalib/src/mesa/main/hash.h3
-rw-r--r--mesalib/src/mesa/main/mtypes.h14
-rw-r--r--mesalib/src/mesa/main/pipelineobj.c6
-rw-r--r--mesalib/src/mesa/main/program_resource.c6
-rw-r--r--mesalib/src/mesa/main/queryobj.c7
-rw-r--r--mesalib/src/mesa/main/readpix.c25
-rw-r--r--mesalib/src/mesa/main/readpix.h3
-rw-r--r--mesalib/src/mesa/main/samplerobj.c7
-rw-r--r--mesalib/src/mesa/main/shader_query.cpp25
-rw-r--r--mesalib/src/mesa/main/shaderapi.c6
-rw-r--r--mesalib/src/mesa/main/shaderobj.c4
-rw-r--r--mesalib/src/mesa/main/shared.c1
-rw-r--r--mesalib/src/mesa/main/state.c2
-rw-r--r--mesalib/src/mesa/main/texgetimage.c14
-rw-r--r--mesalib/src/mesa/main/teximage.c76
-rw-r--r--mesalib/src/mesa/main/texobj.c14
-rw-r--r--mesalib/src/mesa/main/texparam.c84
-rw-r--r--mesalib/src/mesa/main/texstorage.c7
-rw-r--r--mesalib/src/mesa/main/textureview.c95
-rw-r--r--mesalib/src/mesa/main/textureview.h9
-rw-r--r--mesalib/src/mesa/main/transformfeedback.c42
-rw-r--r--mesalib/src/mesa/main/uniform_query.cpp15
-rw-r--r--mesalib/src/mesa/main/uniforms.h4
-rw-r--r--mesalib/src/mesa/main/varray.c64
-rw-r--r--mesalib/src/mesa/main/version.c75
-rw-r--r--mesalib/src/mesa/main/version.h3
-rw-r--r--mesalib/src/mesa/main/vtxfmt.c2
-rw-r--r--mesalib/src/mesa/program/dummy_errors.c30
-rw-r--r--mesalib/src/mesa/program/ir_to_mesa.cpp20
-rw-r--r--mesalib/src/mesa/program/prog_execute.c2
-rw-r--r--mesalib/src/mesa/program/prog_instruction.c12
-rw-r--r--mesalib/src/mesa/program/prog_instruction.h33
-rw-r--r--mesalib/src/mesa/program/prog_optimize.c4
-rw-r--r--mesalib/src/mesa/program/prog_print.c8
-rw-r--r--mesalib/src/mesa/program/prog_to_nir.c108
-rw-r--r--mesalib/src/mesa/program/program.c24
-rw-r--r--mesalib/src/mesa/program/program_parse.y8
-rw-r--r--mesalib/src/mesa/program/program_parse_extra.c4
-rw-r--r--mesalib/src/mesa/program/programopt.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_atom_shader.c2
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_bitmap.c8
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_blit.c4
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_clear.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_drawpixels.c8
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_drawtex.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_program.c8
-rw-r--r--mesalib/src/mesa/state_tracker/st_context.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_draw.c2
-rw-r--r--mesalib/src/mesa/state_tracker/st_extensions.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp829
-rw-r--r--mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h2
-rw-r--r--mesalib/src/mesa/state_tracker/st_manager.c3
-rw-r--r--mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c9
-rw-r--r--mesalib/src/mesa/state_tracker/st_program.c24
-rw-r--r--mesalib/src/mesa/state_tracker/st_program.h1
-rw-r--r--mesalib/src/mesa/tnl/t_context.c1
-rw-r--r--mesalib/src/mesa/vbo/vbo_exec_array.c5
-rw-r--r--pixman/pixman/pixman-arm-common.h11
-rw-r--r--pixman/pixman/pixman-arm-neon.c24
-rw-r--r--pixman/pixman/pixman-arm-simd.c18
-rw-r--r--pixman/pixman/pixman-inlines.h3
-rw-r--r--pixman/pixman/pixman-mips-dspr2.c8
-rw-r--r--pixman/pixman/pixman-mips-dspr2.h6
-rw-r--r--pixman/pixman/pixman-mmx.c24
-rw-r--r--pixman/pixman/pixman-sse2.c24
-rw-r--r--pixman/test/solid-test.c9
-rw-r--r--xorg-server/config/10-evdev.conf40
-rw-r--r--xorg-server/config/Makefile.am4
-rw-r--r--xorg-server/dix/devices.c4
-rw-r--r--xorg-server/dix/getevents.c27
-rw-r--r--xorg-server/dix/inpututils.c78
-rw-r--r--xorg-server/glamor/glamor_largepixmap.c9
-rw-r--r--xorg-server/glamor/glamor_render.c9
-rw-r--r--xorg-server/hw/xfree86/common/xf86Module.h2
-rw-r--r--xorg-server/hw/xfree86/common/xf86Xinput.c4
-rw-r--r--xorg-server/hw/xfree86/os-support/linux/lnx_init.c12
-rw-r--r--xorg-server/hw/xwayland/xwayland-cursor.c26
-rw-r--r--xorg-server/hw/xwayland/xwayland-input.c2
-rw-r--r--xorg-server/hw/xwayland/xwayland.c4
-rw-r--r--xorg-server/hw/xwayland/xwayland.h4
-rw-r--r--xorg-server/include/input.h15
-rw-r--r--xorg-server/include/inpututils.h2
-rw-r--r--xorg-server/include/os.h17
-rw-r--r--xorg-server/os/access.c109
-rw-r--r--xorg-server/os/auth.c8
-rw-r--r--xorg-server/os/backtrace.c4
-rw-r--r--xorg-server/present/present.c8
-rw-r--r--xorg-server/test/input.c63
-rw-r--r--xorg-server/xkeyboard-config/NEWS2
-rw-r--r--xorg-server/xkeyboard-config/configure.ac2
-rw-r--r--xorg-server/xkeyboard-config/po/ca.po2201
-rw-r--r--xorg-server/xkeyboard-config/po/cs.po1514
-rw-r--r--xorg-server/xkeyboard-config/po/da.po1673
-rw-r--r--xorg-server/xkeyboard-config/po/de.po1514
-rw-r--r--xorg-server/xkeyboard-config/po/es.po1674
-rw-r--r--xorg-server/xkeyboard-config/po/fr.po1512
-rw-r--r--xorg-server/xkeyboard-config/po/gl.po1514
-rw-r--r--xorg-server/xkeyboard-config/po/ko.po1518
-rw-r--r--xorg-server/xkeyboard-config/po/nl.po1547
-rw-r--r--xorg-server/xkeyboard-config/po/pl.po1512
-rw-r--r--xorg-server/xkeyboard-config/po/sv.po1517
-rw-r--r--xorg-server/xkeyboard-config/po/uk.po1671
-rw-r--r--xorg-server/xkeyboard-config/rules/base.xml.in2
-rw-r--r--xorg-server/xkeyboard-config/symbols/cm52
-rw-r--r--xorg-server/xkeyboard-config/symbols/lk12
-rw-r--r--xorg-server/xkeyboard-config/symbols/ph2
327 files changed, 17483 insertions, 15436 deletions
diff --git a/fontconfig/README b/fontconfig/README
index 4a4dc307b..8f04b9b3c 100644
--- a/fontconfig/README
+++ b/fontconfig/README
@@ -1,12 +1,48 @@
Fontconfig
Font configuration and customization library
- Version 2.11.93 (2.12 RC3)
- 2015-03-09
+ Version 2.11.94 (2.12 RC4)
+ 2015-06-02
Check INSTALL for compilation and installation instructions.
Report bugs to https://bugs.freedesktop.org in the fontconfig module.
+2.11.94 (2.12 RC4)
+
+Akira TAGOH (16):
+ Remove the dead code
+ Bug 89617 - FcConfigAppFontAddFile() returns false on any font file
+ Fix unknown attribute in Win32
+ Fix SIGFPE
+ Fix a typo for the latest cache version
+ Fix a typo in fontconfig-user.sgml
+ Drop unmaintained code
+ Observe blanks to compute correct languages in fc-query/fc-scan
+ Add missing description for usage
+ Make FC_SCALE deprecated
+ Bug 90148 - Don't warn if cachedir isn't specified
+ Fix memory leaks after FcFini()
+ Fix a typo
+ Fix a crash
+ Detect the overflow for the object ID
+ Revert the previous change
+
+Behdad Esfahbod (11):
+ Fix bitmap scaling
+ Add su[pport for symbol fonts
+ Write ranges using a [start finish) format
+ Only set FC_SIZE for scalable fonts if OS/2 version 5 is present
+ Add bitmap-only font size as Double, not Range
+ Accept Integer for FC_SIZE
+ Don't set FC_SIZE for bitmap fonts
+ Fix compiler warnings
+ Simplify FcRange
+ Reduce number of places that cache version is specified to 1
+ Bump cache version number to 6, because of recent FcRange changes
+
+Руслан Ижбулатов (1):
+ W32: Support cache paths relative to the root directory
+
2.11.93 (2.12 RC3)
Akira TAGOH (18):
diff --git a/fontconfig/configure.ac b/fontconfig/configure.ac
index bb9880487..e888f2c9e 100644
--- a/fontconfig/configure.ac
+++ b/fontconfig/configure.ac
@@ -33,7 +33,7 @@ dnl This is the package version number, not the shared library
dnl version. This same version number must appear in fontconfig/fontconfig.h
dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's
dnl not possible to extract the version number here from fontconfig.h
-AC_INIT([fontconfig], [2.11.93], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig])
+AC_INIT([fontconfig], [2.11.94], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig])
AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
diff --git a/fontconfig/doc/fontconfig-devel.sgml b/fontconfig/doc/fontconfig-devel.sgml
index 17402c7bc..d0ec8a579 100644
--- a/fontconfig/doc/fontconfig-devel.sgml
+++ b/fontconfig/doc/fontconfig-devel.sgml
@@ -177,6 +177,7 @@ convenience for the application's rendering mechanism.
scalable FC_SCALABLE Bool Whether glyphs can be scaled
scale FC_SCALE Double Scale factor for point->pixel
conversions (deprecated)
+ symbol FC_SYMBOL Bool Whether font uses MS symbol-font encoding
color FC_COLOR Bool Whether any glyphs have color
dpi FC_DPI Double Target dots per inch
rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
diff --git a/fontconfig/doc/fontconfig-user.sgml b/fontconfig/doc/fontconfig-user.sgml
index e7cdb2e77..8f49f78ed 100644
--- a/fontconfig/doc/fontconfig-user.sgml
+++ b/fontconfig/doc/fontconfig-user.sgml
@@ -258,7 +258,7 @@ debugging messages.
MEMORY 512 Monitor fontconfig memory usage
CONFIG 1024 Monitor which config files are loaded
LANGSET 2048 Dump char sets used to construct lang values
- OBJTYPES 4096 Display message when value typechecks fail
+ MATCH2 4096 Display font-matching transformation in patterns
</programlisting>
<para>
Add the value of the desired debug levels together and assign that (in
@@ -787,6 +787,10 @@ is used to override the default configuration directory.
is used to output the detailed debugging messages. see <link linkend="debug">Debugging Applications</link> section for more details.
</para>
<para>
+<emphasis>FC_DBG_MATCH_FILTER</emphasis>
+is used to filter out the patterns. this takes a comma-separated list of object names and effects only when FC_DEBUG has MATCH2. see <link linkend="debug">Debugging Applications</link> section for more details.
+ </para>
+ <para>
<emphasis>FONTCONFIG_USE_MMAP</emphasis>
is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway.
</para>
diff --git a/fontconfig/fontconfig/fontconfig.h b/fontconfig/fontconfig/fontconfig.h
index 58b6b5137..a570b2f5c 100644
--- a/fontconfig/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig/fontconfig.h
@@ -52,7 +52,7 @@ typedef int FcBool;
#define FC_MAJOR 2
#define FC_MINOR 11
-#define FC_REVISION 93
+#define FC_REVISION 94
#define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
@@ -66,7 +66,10 @@ typedef int FcBool;
* it means multiple copies of the font information.
*/
-#define FC_CACHE_VERSION "5"
+#define FC_CACHE_VERSION_NUMBER 6
+#define _FC_STRINGIFY_(s) #s
+#define _FC_STRINGIFY(s) _FC_STRINGIFY_(s)
+#define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER)
#define FcTrue 1
#define FcFalse 0
@@ -96,6 +99,7 @@ typedef int FcBool;
#define FC_SCALABLE "scalable" /* Bool */
#define FC_COLOR "color" /* Bool */
#define FC_SCALE "scale" /* double (deprecated) */
+#define FC_SYMBOL "symbol" /* Bool */
#define FC_DPI "dpi" /* double */
#define FC_RGBA "rgba" /* Int */
#define FC_MINSPACE "minspace" /* Bool use minimum line spacing */
@@ -216,7 +220,7 @@ typedef struct _FcMatrix {
typedef struct _FcCharSet FcCharSet;
typedef struct _FcObjectType {
- const char *object;
+ char *object;
FcType type;
} FcObjectType;
diff --git a/fontconfig/src/fccache.c b/fontconfig/src/fccache.c
index 25538bd70..fc3ed410a 100644
--- a/fontconfig/src/fccache.c
+++ b/fontconfig/src/fccache.c
@@ -655,7 +655,7 @@ FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *di
allocated = FcTrue;
}
if (cache->magic != FC_CACHE_MAGIC_MMAP ||
- cache->version < FC_CACHE_CONTENT_VERSION ||
+ cache->version < FC_CACHE_VERSION_NUMBER ||
cache->size != (intptr_t) fd_stat->st_size ||
!FcCacheTimeValid (config, cache, dir_stat) ||
!FcCacheDirsValid (config, cache) ||
@@ -751,7 +751,7 @@ FcDirCacheValidateHelper (FcConfig *config, int fd, struct stat *fd_stat, struct
ret = FcFalse;
else if (c.magic != FC_CACHE_MAGIC_MMAP)
ret = FcFalse;
- else if (c.version < FC_CACHE_CONTENT_VERSION)
+ else if (c.version < FC_CACHE_VERSION_NUMBER)
ret = FcFalse;
else if (fd_stat->st_size != c.size)
ret = FcFalse;
@@ -828,7 +828,7 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcSt
serialize->linear = cache;
cache->magic = FC_CACHE_MAGIC_ALLOC;
- cache->version = FC_CACHE_CONTENT_VERSION;
+ cache->version = FC_CACHE_VERSION_NUMBER;
cache->size = serialize->size;
cache->checksum = (int) dir_stat->st_mtime;
diff --git a/fontconfig/src/fcdbg.c b/fontconfig/src/fcdbg.c
index ef038f017..c2853fff3 100644
--- a/fontconfig/src/fcdbg.c
+++ b/fontconfig/src/fcdbg.c
@@ -29,8 +29,6 @@
static void
_FcValuePrintFile (FILE *f, const FcValue v)
{
- FcRange r;
-
switch (v.type) {
case FcTypeUnknown:
fprintf (f, "<unknown>");
@@ -64,8 +62,7 @@ _FcValuePrintFile (FILE *f, const FcValue v)
fprintf (f, "face");
break;
case FcTypeRange:
- r = FcRangeCanonicalize (v.u.r);
- fprintf (f, "(%g, %g)", r.u.d.begin, r.u.d.end);
+ fprintf (f, "[%g %g)", v.u.r->begin, v.u.r->end);
break;
}
}
@@ -214,6 +211,84 @@ FcPatternPrint (const FcPattern *p)
}
void
+FcPatternPrint2 (FcPattern *pp1,
+ FcPattern *pp2,
+ const FcObjectSet *os)
+{
+ int i, j, k, pos;
+ FcPatternElt *e1, *e2;
+ FcPattern *p1, *p2;
+
+ if (os)
+ {
+ p1 = FcPatternFilter (pp1, os);
+ p2 = FcPatternFilter (pp2, os);
+ }
+ else
+ {
+ p1 = pp1;
+ p2 = pp2;
+ }
+ printf ("Pattern has %d elts (size %d), %d elts (size %d)\n",
+ p1->num, p1->size, p2->num, p2->size);
+ for (i = 0, j = 0; i < p1->num; i++)
+ {
+ e1 = &FcPatternElts(p1)[i];
+ e2 = &FcPatternElts(p2)[j];
+ if (!e2 || e1->object != e2->object)
+ {
+ pos = FcPatternPosition (p2, FcObjectName (e1->object));
+ if (pos >= 0)
+ {
+ for (k = j; k < pos; k++)
+ {
+ e2 = &FcPatternElts(p2)[k];
+ printf ("\t%s: (None) -> ", FcObjectName (e2->object));
+ FcValueListPrint (FcPatternEltValues (e2));
+ printf ("\n");
+ }
+ j = pos;
+ goto cont;
+ }
+ else
+ {
+ printf ("\t%s:", FcObjectName (e1->object));
+ FcValueListPrint (FcPatternEltValues (e1));
+ printf (" -> (None)\n");
+ }
+ }
+ else
+ {
+ cont:
+ printf ("\t%s:", FcObjectName (e1->object));
+ FcValueListPrint (FcPatternEltValues (e1));
+ printf (" -> ");
+ e2 = &FcPatternElts(p2)[j];
+ FcValueListPrint (FcPatternEltValues (e2));
+ printf ("\n");
+ j++;
+ }
+ }
+ if (j < p2->num)
+ {
+ for (k = j; k < p2->num; k++)
+ {
+ e2 = &FcPatternElts(p2)[k];
+ if (FcObjectName (e2->object))
+ {
+ printf ("\t%s: (None) -> ", FcObjectName (e2->object));
+ FcValueListPrint (FcPatternEltValues (e2));
+ printf ("\n");
+ }
+ }
+ }
+ if (p1 != pp1)
+ FcPatternDestroy (p1);
+ if (p2 != pp2)
+ FcPatternDestroy (p2);
+}
+
+void
FcOpPrint (FcOp op_)
{
FcOp op = FC_OP_GET_OP (op_);
@@ -267,8 +342,6 @@ FcOpPrint (FcOp op_)
void
FcExprPrint (const FcExpr *expr)
{
- FcRange r;
-
if (!expr) printf ("none");
else switch (FC_OP_GET_OP (expr->op)) {
case FcOpInteger: printf ("%d", expr->u.ival); break;
@@ -286,8 +359,7 @@ FcExprPrint (const FcExpr *expr)
printf ("]");
break;
case FcOpRange:
- r = FcRangeCanonicalize (expr->u.rval);
- printf ("(%g, %g)", r.u.d.begin, r.u.d.end);
+ printf ("(%g, %g)", expr->u.rval->begin, expr->u.rval->end);
break;
case FcOpBool: printf ("%s", expr->u.bval ? "true" : "false"); break;
case FcOpCharSet: printf ("charset\n"); break;
diff --git a/fontconfig/src/fcdefault.c b/fontconfig/src/fcdefault.c
index 7c16f4841..4643e46dc 100644
--- a/fontconfig/src/fcdefault.c
+++ b/fontconfig/src/fcdefault.c
@@ -38,6 +38,7 @@ static const struct {
{ FC_GLOBAL_ADVANCE_OBJECT, FcTrue }, /* !FC_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH */
{ FC_EMBEDDED_BITMAP_OBJECT, FcTrue }, /* !FC_LOAD_NO_BITMAP */
{ FC_DECORATIVE_OBJECT, FcFalse },
+ { FC_SYMBOL_OBJECT, FcFalse },
};
#define NUM_FC_BOOL_DEFAULTS (int) (sizeof FcBoolDefaults / sizeof FcBoolDefaults[0])
diff --git a/fontconfig/src/fcfreetype.c b/fontconfig/src/fcfreetype.c
index afbd9ac1e..809ff2992 100644
--- a/fontconfig/src/fcfreetype.c
+++ b/fontconfig/src/fcfreetype.c
@@ -1199,7 +1199,8 @@ FcFreeTypeQueryFace (const FT_Face face,
const char *tmp;
FcRange *r = NULL;
- double lower_size = 0.0L, upper_size = DBL_MAX;
+
+ FcBool symbol = FcFalse;
FcInitDebug (); /* We might be called with no initizalization whatsoever. */
@@ -1615,13 +1616,12 @@ FcFreeTypeQueryFace (const FT_Face face,
#if defined (HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE) && defined (HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE)
if (os2 && os2->version >= 0x0005 && os2->version != 0xffff)
{
+ double lower_size, upper_size;
+
/* usLowerPointSize and usUpperPointSize is actually twips */
lower_size = os2->usLowerOpticalPointSize / 20.0L;
upper_size = os2->usUpperOpticalPointSize / 20.0L;
- }
-#endif
- if (os2)
- {
+
r = FcRangeCreateDouble (lower_size, upper_size);
if (!FcPatternAddRange (pat, FC_SIZE, r))
{
@@ -1630,20 +1630,7 @@ FcFreeTypeQueryFace (const FT_Face face,
}
FcRangeDestroy (r);
}
- else
- {
- for (i = 0; i < face->num_fixed_sizes; i++)
- {
- double d = FcGetPixelSize (face, i);
- r = FcRangeCreateDouble (d, d);
- if (!FcPatternAddRange (pat, FC_SIZE, r))
- {
- FcRangeDestroy (r);
- goto bail1;
- }
- FcRangeDestroy (r);
- }
- }
+#endif
/*
* Type 1: Check for FontInfo dictionary information
@@ -1803,6 +1790,11 @@ FcFreeTypeQueryFace (const FT_Face face,
if (!cs)
goto bail1;
+ /* The FcFreeTypeCharSetAndSpacing() chose the encoding; test it for symbol. */
+ symbol = face->charmap && face->charmap->encoding == FT_ENCODING_MS_SYMBOL;
+ if (!FcPatternAddBool (pat, FC_SYMBOL, symbol))
+ goto bail1;
+
#if HAVE_FT_GET_BDF_PROPERTY
/* For PCF fonts, override the computed spacing with the one from
the property */
@@ -1835,9 +1827,18 @@ FcFreeTypeQueryFace (const FT_Face face,
if (!FcPatternAddCharSet (pat, FC_CHARSET, cs))
goto bail2;
- ls = FcFreeTypeLangSet (cs, exclusiveLang);
- if (!ls)
- goto bail2;
+ if (!symbol)
+ {
+ ls = FcFreeTypeLangSet (cs, exclusiveLang);
+ if (!ls)
+ goto bail2;
+ }
+ else
+ {
+ /* Symbol fonts don't cover any language, even though they
+ * claim to support Latin1 range. */
+ ls = FcLangSetCreate ();
+ }
if (!FcPatternAddLangSet (pat, FC_LANG, ls))
{
@@ -2093,6 +2094,22 @@ FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4)
glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4);
if (glyphindex)
return glyphindex;
+ if (ucs4 < 0x100 && face->charmap &&
+ face->charmap->encoding == FT_ENCODING_MS_SYMBOL)
+ {
+ /* For symbol-encoded OpenType fonts, we duplicate the
+ * U+F000..F0FF range at U+0000..U+00FF. That's what
+ * Windows seems to do, and that's hinted about at:
+ * http://www.microsoft.com/typography/otspec/recom.htm
+ * under "Non-Standard (Symbol) Fonts".
+ *
+ * See thread with subject "Webdings and other MS symbol
+ * fonts don't display" on mailing list from May 2015.
+ */
+ glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4 + 0xF000);
+ if (glyphindex)
+ return glyphindex;
+ }
}
#if HAVE_FT_HAS_PS_GLYPH_NAMES
/*
@@ -2253,6 +2270,23 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing
}
ucs4 = FT_Get_Next_Char (face, ucs4, &glyph);
}
+ if (fcFontEncodings[o] == FT_ENCODING_MS_SYMBOL)
+ {
+ /* For symbol-encoded OpenType fonts, we duplicate the
+ * U+F000..F0FF range at U+0000..U+00FF. That's what
+ * Windows seems to do, and that's hinted about at:
+ * http://www.microsoft.com/typography/otspec/recom.htm
+ * under "Non-Standard (Symbol) Fonts".
+ *
+ * See thread with subject "Webdings and other MS symbol
+ * fonts don't display" on mailing list from May 2015.
+ */
+ for (ucs4 = 0xF000; ucs4 < 0xF100; ucs4++)
+ {
+ if (FcCharSetHasChar (fcs, ucs4))
+ FcCharSetAddChar (fcs, ucs4 - 0xF000);
+ }
+ }
#ifdef CHECK
for (ucs4 = 0; ucs4 < 0x10000; ucs4++)
{
@@ -2267,6 +2301,8 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing
}
#endif
}
+
+ break;
}
#if HAVE_FT_HAS_PS_GLYPH_NAMES
/*
diff --git a/fontconfig/src/fcinit.c b/fontconfig/src/fcinit.c
index 6134ed40d..5e7c2f156 100644
--- a/fontconfig/src/fcinit.c
+++ b/fontconfig/src/fcinit.c
@@ -91,12 +91,23 @@ FcInitLoadOwnConfig (FcConfig *config)
{
FcChar8 *prefix, *p;
size_t plen;
+ FcBool have_own = FcFalse;
+ char *env_file, *env_path;
- fprintf (stderr,
- "Fontconfig warning: no <cachedir> elements found. Check configuration.\n");
- fprintf (stderr,
- "Fontconfig warning: adding <cachedir>%s</cachedir>\n",
- FC_CACHEDIR);
+ env_file = getenv ("FONTCONFIG_FILE");
+ env_path = getenv ("FONTCONFIG_PATH");
+ if ((env_file != NULL && env_file[0] != 0) ||
+ (env_path != NULL && env_path[0] != 0))
+ have_own = FcTrue;
+
+ if (!have_own)
+ {
+ fprintf (stderr,
+ "Fontconfig warning: no <cachedir> elements found. Check configuration.\n");
+ fprintf (stderr,
+ "Fontconfig warning: adding <cachedir>%s</cachedir>\n",
+ FC_CACHEDIR);
+ }
prefix = FcConfigXdgCacheHome ();
if (!prefix)
goto bail;
@@ -107,8 +118,9 @@ FcInitLoadOwnConfig (FcConfig *config)
prefix = p;
memcpy (&prefix[plen], FC_DIR_SEPARATOR_S "fontconfig", 11);
prefix[plen + 11] = 0;
- fprintf (stderr,
- "Fontconfig warning: adding <cachedir prefix=\"xdg\">fontconfig</cachedir>\n");
+ if (!have_own)
+ fprintf (stderr,
+ "Fontconfig warning: adding <cachedir prefix=\"xdg\">fontconfig</cachedir>\n");
if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR) ||
!FcConfigAddCacheDir (config, (FcChar8 *) prefix))
@@ -180,6 +192,8 @@ FcFini (void)
FcConfigFini ();
FcCacheFini ();
FcDefaultFini ();
+ FcObjectFini ();
+ FcConfigPathFini ();
}
/*
diff --git a/fontconfig/src/fcint.h b/fontconfig/src/fcint.h
index 80205c950..15e22fdbc 100644
--- a/fontconfig/src/fcint.h
+++ b/fontconfig/src/fcint.h
@@ -87,6 +87,7 @@ extern pfnSHGetFolderPathA pSHGetFolderPathA;
#define FC_DBG_SCANV 256
#define FC_DBG_CONFIG 1024
#define FC_DBG_LANGSET 2048
+#define FC_DBG_MATCH2 4096
#define _FC_ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1] FC_UNUSED
#define _FC_ASSERT_STATIC0(_line, _cond) _FC_ASSERT_STATIC1 (_line, (_cond))
@@ -96,11 +97,6 @@ extern pfnSHGetFolderPathA pSHGetFolderPathA;
#define FC_MAX(a,b) ((a) > (b) ? (a) : (b))
#define FC_ABS(a) ((a) < 0 ? -(a) : (a))
-#define FcDoubleIsZero(a) (fabs ((a)) <= DBL_EPSILON)
-#define FcDoubleCmpEQ(a,b) (fabs ((a) - (b)) <= DBL_EPSILON)
-#define FcDoubleCmpGE(a,b) (FcDoubleCmpEQ (a, b) || (a) > (b))
-#define FcDoubleCmpLE(a,b) (FcDoubleCmpEQ (a, b) || (a) < (b))
-
/* slim_internal.h */
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun)
#define FcPrivate __attribute__((__visibility__("hidden")))
@@ -252,21 +248,9 @@ typedef struct _FcExprName {
FcMatchKind kind;
} FcExprName;
-typedef struct _FcRangeInt {
- FcChar32 begin;
- FcChar32 end;
-} FcRangeInt;
-typedef struct _FcRangeDouble {
+struct _FcRange {
double begin;
double end;
-} FcRangeDouble;
-struct _FcRange {
- FcBool is_double;
- FcBool is_inclusive;
- union {
- FcRangeInt i;
- FcRangeDouble d;
- } u;
};
@@ -378,7 +362,7 @@ typedef struct _FcStrBuf {
struct _FcCache {
unsigned int magic; /* FC_CACHE_MAGIC_MMAP or FC_CACHE_ALLOC */
- int version; /* FC_CACHE_CONTENT_VERSION */
+ int version; /* FC_CACHE_VERSION_NUMBER */
intptr_t size; /* size of file */
intptr_t dir; /* offset to dir name */
intptr_t dirs; /* offset to subdirs */
@@ -470,7 +454,6 @@ typedef struct _FcCaseFold {
#define FC_CACHE_MAGIC_MMAP 0xFC02FC04
#define FC_CACHE_MAGIC_ALLOC 0xFC02FC05
-#define FC_CACHE_CONTENT_VERSION 5
struct _FcAtomic {
FcChar8 *file; /* original file name */
@@ -811,6 +794,9 @@ FcSubstPrint (const FcSubst *subst);
FcPrivate void
FcCharSetPrint (const FcCharSet *c);
+FcPrivate void
+FcPatternPrint2 (FcPattern *p1, FcPattern *p2, const FcObjectSet *os);
+
extern FcPrivate int FcDebugVal;
#define FcDebug() (FcDebugVal)
@@ -881,6 +867,9 @@ FcInitLoadOwnConfigAndFonts (FcConfig *config);
/* fcxml.c */
FcPrivate void
+FcConfigPathFini (void);
+
+FcPrivate void
FcTestDestroy (FcTest *test);
FcPrivate void
@@ -1054,6 +1043,9 @@ FcPatternObjectGetRange (const FcPattern *p, FcObject object, int id, FcRange **
FcPrivate FcBool
FcPatternAppend (FcPattern *p, FcPattern *s);
+FcPrivate int
+FcPatternPosition (const FcPattern *p, const char *object);
+
FcPrivate FcChar32
FcStringHash (const FcChar8 *s);
@@ -1080,16 +1072,10 @@ FcMatrixFree (FcMatrix *mat);
/* fcrange.c */
-FcPrivate FcRange
-FcRangeCanonicalize (const FcRange *range);
-
FcPrivate FcRange *
FcRangePromote (double v, FcValuePromotionBuffer *vbuf);
FcPrivate FcBool
-FcRangeIsZero (const FcRange *r);
-
-FcPrivate FcBool
FcRangeIsInRange (const FcRange *a, const FcRange *b);
FcPrivate FcBool
@@ -1192,6 +1178,9 @@ FcStrSerialize (FcSerialize *serialize, const FcChar8 *str);
/* fcobjs.c */
+FcPrivate void
+FcObjectFini (void);
+
FcPrivate FcObject
FcObjectLookupIdByName (const char *str);
diff --git a/fontconfig/src/fcmatch.c b/fontconfig/src/fcmatch.c
index 46d08bcc7..40efbd3f6 100644
--- a/fontconfig/src/fcmatch.c
+++ b/fontconfig/src/fcmatch.c
@@ -220,7 +220,7 @@ FcCompareSizeRange (FcValue *v1, FcValue *v2)
if (FcRangeIsInRange (r1, r2))
ret = 0.0;
else
- ret = FC_MIN (fabs (r1->u.d.end - r2->u.d.begin), fabs (r1->u.d.begin - r2->u.d.end));
+ ret = FC_MIN (fabs (r1->end - r2->begin), fabs (r1->begin - r2->end));
bail:
if (r1)
@@ -292,6 +292,7 @@ typedef enum _FcMatcherPriority {
PRI1(LANG),
PRI_FAMILY_WEAK,
PRI_POSTSCRIPT_NAME_WEAK,
+ PRI1(SYMBOL),
PRI1(SPACING),
PRI1(SIZE),
PRI1(PIXEL_SIZE),
@@ -688,6 +689,47 @@ FcFontSetMatchInternal (FcFontSet **sets,
printf ("\n");
FcPatternPrint (best);
}
+ if (FcDebug () & FC_DBG_MATCH2)
+ {
+ char *env = getenv ("FC_DBG_MATCH_FILTER");
+ FcObjectSet *os = NULL;
+
+ if (env)
+ {
+ char *ss, *s;
+ char *p;
+ FcBool f = FcTrue;
+
+ ss = s = strdup (env);
+ os = FcObjectSetCreate ();
+ while (f)
+ {
+ size_t len;
+ char *x;
+
+ if (!(p = strchr (s, ',')))
+ {
+ f = FcFalse;
+ len = strlen (s) + 1;
+ }
+ else
+ {
+ len = (p - s) + 1;
+ }
+ x = malloc (sizeof (char) * len);
+ strncpy (x, s, len - 1);
+ x[len - 1] = 0;
+ if (FcObjectFromName (x) > 0)
+ FcObjectSetAdd (os, x);
+ s = p + 1;
+ free (x);
+ }
+ free (ss);
+ }
+ FcPatternPrint2 (p, best, os);
+ if (os)
+ FcObjectSetDestroy (os);
+ }
/* assuming that 'result' is initialized with FcResultNoMatch
* outside this function */
if (best)
diff --git a/fontconfig/src/fcname.c b/fontconfig/src/fcname.c
index 1d8fe757c..8be36c70c 100644
--- a/fontconfig/src/fcname.c
+++ b/fontconfig/src/fcname.c
@@ -88,7 +88,9 @@ FcObjectValidType (FcObject object, FcType type)
return FcTrue;
break;
case FcTypeRange:
- if (type == FcTypeRange || type == FcTypeDouble)
+ if (type == FcTypeRange ||
+ type == FcTypeDouble ||
+ type == FcTypeInteger)
return FcTrue;
break;
default:
@@ -316,7 +318,7 @@ FcNameConvert (FcType type, FcChar8 *string)
v.type = FcTypeVoid;
break;
case FcTypeRange:
- if (sscanf ((char *) string, "(%lg %lg)", &b, &e) != 2)
+ if (sscanf ((char *) string, "[%lg %lg)", &b, &e) != 2)
{
v.u.d = strtod ((char *) string, &p);
if (p != NULL && p[0] != 0)
@@ -498,7 +500,6 @@ FcNameUnparseValue (FcStrBuf *buf,
{
FcChar8 temp[1024];
FcValue v = FcValueCanonicalize(v0);
- FcRange r;
switch (v.type) {
case FcTypeUnknown:
@@ -525,17 +526,8 @@ FcNameUnparseValue (FcStrBuf *buf,
case FcTypeFTFace:
return FcTrue;
case FcTypeRange:
- r = FcRangeCanonicalize (v.u.r);
- if (!FcDoubleIsZero (r.u.d.begin) || !FcDoubleIsZero (r.u.d.end))
- {
- if (FcDoubleCmpEQ (r.u.d.begin, r.u.d.end))
- sprintf ((char *) temp, "%g", r.u.d.begin);
- else
- sprintf ((char *) temp, "(%g %g)", r.u.d.begin, r.u.d.end);
- return FcNameUnparseString (buf, temp, 0);
- }
- else
- return FcTrue;
+ sprintf ((char *) temp, "[%g %g)", v.u.r->begin, v.u.r->end);
+ return FcNameUnparseString (buf, temp, 0);
}
return FcFalse;
}
diff --git a/fontconfig/src/fcobjs.c b/fontconfig/src/fcobjs.c
index bad9824d4..16ff31c47 100644
--- a/fontconfig/src/fcobjs.c
+++ b/fontconfig/src/fcobjs.c
@@ -44,6 +44,28 @@ struct FcObjectOtherTypeInfo {
FcObject id;
} *other_types;
+void
+FcObjectFini (void)
+{
+ struct FcObjectOtherTypeInfo *ots, *ot;
+
+retry:
+ ots = fc_atomic_ptr_get (&other_types);
+ if (!ots)
+ return;
+ if (!fc_atomic_ptr_cmpexch (&other_types, ots, NULL))
+ goto retry;
+
+ while (ots)
+ {
+ ot = ots->next;
+ if (ots->object.object)
+ free (ots->object.object);
+ free (ots);
+ ots = ot;
+ }
+}
+
static FcObjectType *
_FcObjectLookupOtherTypeByName (const char *str, FcObject *id)
{
@@ -62,12 +84,19 @@ retry:
if (!ot)
return NULL;
- ot->object.object = (const char *) FcStrdup (str);
+ ot->object.object = (char *) FcStrdup (str);
ot->object.type = FcTypeUnknown;
ot->id = fc_atomic_int_add (next_id, +1);
+ if (ot->id < (FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX))
+ {
+ fprintf (stderr, "Fontconfig error: No object ID to assign\n");
+ abort ();
+ }
ot->next = ots;
if (!fc_atomic_ptr_cmpexch (&other_types, ots, ot)) {
+ if (ot->object.object)
+ free (ot->object.object);
free (ot);
goto retry;
}
diff --git a/fontconfig/src/fcobjs.h b/fontconfig/src/fcobjs.h
index 573fa610d..1fc4f656b 100644
--- a/fontconfig/src/fcobjs.h
+++ b/fontconfig/src/fcobjs.h
@@ -69,4 +69,5 @@ FC_OBJECT (PRGNAME, FcTypeString, NULL)
FC_OBJECT (HASH, FcTypeString, NULL) /* deprecated */
FC_OBJECT (POSTSCRIPT_NAME, FcTypeString, FcComparePostScript)
FC_OBJECT (COLOR, FcTypeBool, FcCompareBool)
+FC_OBJECT (SYMBOL, FcTypeBool, FcCompareBool)
/* ^-------------- Add new objects here. */
diff --git a/fontconfig/src/fcpat.c b/fontconfig/src/fcpat.c
index 7e7d54a4e..3ef1ed212 100644
--- a/fontconfig/src/fcpat.c
+++ b/fontconfig/src/fcpat.c
@@ -425,6 +425,12 @@ FcPatternObjectPosition (const FcPattern *p, FcObject object)
return -(mid + 1);
}
+int
+FcPatternPosition (const FcPattern *p, const char *object)
+{
+ return FcPatternObjectPosition (p, FcObjectFromName (object));
+}
+
FcPatternElt *
FcPatternObjectFindElt (const FcPattern *p, FcObject object)
{
diff --git a/fontconfig/src/fcrange.c b/fontconfig/src/fcrange.c
index 9b1b67b82..f70226c55 100644
--- a/fontconfig/src/fcrange.c
+++ b/fontconfig/src/fcrange.c
@@ -32,10 +32,8 @@ FcRangeCreateDouble (double begin, double end)
if (ret)
{
- ret->is_double = FcTrue;
- ret->is_inclusive = FcDoubleCmpEQ (begin, end);
- ret->u.d.begin = begin;
- ret->u.d.end = end;
+ ret->begin = begin;
+ ret->end = end;
}
return ret;
@@ -48,10 +46,8 @@ FcRangeCreateInteger (FcChar32 begin, FcChar32 end)
if (ret)
{
- ret->is_double = FcFalse;
- ret->is_inclusive = (begin == end);
- ret->u.i.begin = begin;
- ret->u.i.end = end;
+ ret->begin = begin;
+ ret->end = end;
}
return ret;
@@ -66,14 +62,7 @@ FcRangeDestroy (FcRange *range)
FcRange *
FcRangeCopy (const FcRange *range)
{
- FcRange *ret;
-
- if (range->is_double)
- ret = FcRangeCreateDouble (range->u.d.begin, range->u.d.end);
- else
- ret = FcRangeCreateInteger (range->u.i.begin, range->u.i.end);
-
- return ret;
+ return FcRangeCreateDouble (range->begin, range->end);
}
FcBool
@@ -81,41 +70,14 @@ FcRangeGetDouble(const FcRange *range, double *begin, double *end)
{
if (!range)
return FcFalse;
- if (range->is_double)
- {
- if (begin)
- *begin = range->u.d.begin;
- if (end)
- *end = range->u.d.end;
- }
- else
- {
- if (begin)
- *begin = (double)range->u.i.begin;
- if (end)
- *end = (double)range->u.i.end;
- }
+ if (begin)
+ *begin = range->begin;
+ if (end)
+ *end = range->end;
return FcTrue;
}
-FcRange
-FcRangeCanonicalize (const FcRange *range)
-{
- FcRange new;
-
- if (range->is_double)
- new = *range;
- else
- {
- new.is_double = FcTrue;
- new.is_inclusive = range->is_inclusive;
- new.u.d.begin = (double)range->u.i.begin;
- new.u.d.end = (double)range->u.i.end;
- }
- return new;
-}
-
FcRange *
FcRangePromote (double v, FcValuePromotionBuffer *vbuf)
{
@@ -125,50 +87,24 @@ FcRangePromote (double v, FcValuePromotionBuffer *vbuf)
FcRangePromotionBuffer *buf = (FcRangePromotionBuffer *) vbuf;
FC_ASSERT_STATIC (sizeof (FcRangePromotionBuffer) <= sizeof (FcValuePromotionBuffer));
- buf->r.is_double = FcTrue;
- buf->r.is_inclusive = FcTrue;
- buf->r.u.d.begin = v;
- buf->r.u.d.end = v;
+ buf->r.begin = v;
+ buf->r.end = v;
return &buf->r;
}
FcBool
-FcRangeIsZero (const FcRange *r)
-{
- FcRange c;
-
- if (!r)
- return FcFalse;
- c = FcRangeCanonicalize (r);
-
- return FcDoubleIsZero (c.u.d.begin) && FcDoubleIsZero (c.u.d.end);
-}
-
-FcBool
FcRangeIsInRange (const FcRange *a, const FcRange *b)
{
- FcRange ca, cb;
- FcBool f;
-
if (!a || !b)
return FcFalse;
- ca = FcRangeCanonicalize (a);
- cb = FcRangeCanonicalize (b);
- if (ca.is_inclusive & cb.is_inclusive)
- f = ca.u.d.end <= cb.u.d.end;
- else
- f = ca.u.d.end < cb.u.d.end;
-
- return FcDoubleCmpGE (ca.u.d.begin, cb.u.d.begin) && f;
+ return a->begin >= b->begin && a->end <= b->end;
}
FcBool
FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b)
{
- FcRange ca, cb;
-
switch ((int) op) {
case FcOpEqual:
case FcOpContains:
@@ -178,21 +114,13 @@ FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b)
case FcOpNotContains:
return !FcRangeIsInRange (a, b);
case FcOpLess:
- ca = FcRangeCanonicalize (a);
- cb = FcRangeCanonicalize (b);
- return ca.u.d.begin < cb.u.d.begin;
+ return a->begin < b->begin;
case FcOpLessEqual:
- ca = FcRangeCanonicalize (a);
- cb = FcRangeCanonicalize (b);
- return FcDoubleCmpLE (ca.u.d.begin, cb.u.d.begin);
+ return a->begin <= b->begin;
case FcOpMore:
- ca = FcRangeCanonicalize (a);
- cb = FcRangeCanonicalize (b);
- return ca.u.d.end > cb.u.d.end;
+ return a->end > b->end;
case FcOpMoreEqual:
- ca = FcRangeCanonicalize (a);
- cb = FcRangeCanonicalize (b);
- return FcDoubleCmpGE (ca.u.d.end, cb.u.d.end);
+ return a->end >= b->end;
default:
break;
}
@@ -202,9 +130,8 @@ FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b)
FcChar32
FcRangeHash (const FcRange *r)
{
- FcRange c = FcRangeCanonicalize (r);
- int b = (int) (c.u.d.begin * 100);
- int e = FcDoubleCmpEQ (c.u.d.end, DBL_MAX) ? INT_MAX : (int) (c.u.d.end * 100);
+ int b = (int) (r->begin * 100);
+ int e = (int) (r->end * 100);
return b ^ (b << 1) ^ (e << 9);
}
diff --git a/fontconfig/src/fcxml.c b/fontconfig/src/fcxml.c
index 9a6f08d27..bad6b8193 100644
--- a/fontconfig/src/fcxml.c
+++ b/fontconfig/src/fcxml.c
@@ -57,6 +57,9 @@
extern FcChar8 fontconfig_instprefix[];
#endif
+static FcChar8 *__fc_userdir = NULL;
+static FcChar8 *__fc_userconf = NULL;
+
static void
FcExprDestroy (FcExpr *e);
@@ -79,6 +82,7 @@ FcRuleDestroy (FcRule *rule)
case FcRuleEdit:
FcEditDestroy (rule->u.edit);
break;
+ case FcRuleUnknown:
default:
break;
}
@@ -609,6 +613,7 @@ FcTypeName (FcType type)
return "langset";
case FcTypeRange:
return "range";
+ case FcTypeUnknown:
default:
return "unknown";
}
@@ -806,6 +811,7 @@ FcRuleCreate (FcRuleType type,
case FcRuleEdit:
r->u.edit = (FcEdit *) p;
break;
+ case FcRuleUnknown:
default:
free (r);
r = NULL;
@@ -1255,7 +1261,6 @@ FcParseBlank (FcConfigParse *parse)
{
int n = FcVStackElements (parse);
FcChar32 i, begin, end;
- FcRange r;
while (n-- > 0)
{
@@ -1272,9 +1277,8 @@ FcParseBlank (FcConfigParse *parse)
goto bail;
break;
case FcVStackRange:
- r = FcRangeCanonicalize (v->u.range);
- begin = (FcChar32)r.u.d.begin;
- end = (FcChar32)r.u.d.end;
+ begin = (FcChar32) v->u.range->begin;
+ end = (FcChar32) v->u.range->end;
if (begin <= end)
{
for (i = begin; i <= end; i++)
@@ -1587,7 +1591,6 @@ FcParseCharSet (FcConfigParse *parse)
FcVStack *vstack;
FcCharSet *charset = FcCharSetCreate ();
FcChar32 i, begin, end;
- FcRange r;
int n = 0;
while ((vstack = FcVStackPeek (parse)))
@@ -1602,9 +1605,8 @@ FcParseCharSet (FcConfigParse *parse)
n++;
break;
case FcVStackRange:
- r = FcRangeCanonicalize (vstack->u.range);
- begin = (FcChar32)r.u.d.begin;
- end = (FcChar32)r.u.d.end;
+ begin = (FcChar32) vstack->u.range->begin;
+ end = (FcChar32) vstack->u.range->end;
if (begin <= end)
{
@@ -2262,6 +2264,24 @@ FcParseCacheDir (FcConfigParse *parse)
FcStrFree (data);
}
+void
+FcConfigPathFini (void)
+{
+ FcChar8 *s;
+
+retry_dir:
+ s = fc_atomic_ptr_get (&__fc_userdir);
+ if (!fc_atomic_ptr_cmpexch (&__fc_userdir, s, NULL))
+ goto retry_dir;
+ free (s);
+
+retry_conf:
+ s = fc_atomic_ptr_get (&__fc_userconf);
+ if (!fc_atomic_ptr_cmpexch (&__fc_userconf, s, NULL))
+ goto retry_conf;
+ free (s);
+}
+
static void
FcParseInclude (FcConfigParse *parse)
{
@@ -2272,8 +2292,7 @@ FcParseInclude (FcConfigParse *parse)
FcBool deprecated = FcFalse;
#endif
FcChar8 *prefix = NULL, *p;
- static FcChar8 *userdir = NULL;
- static FcChar8 *userconf = NULL;
+ FcChar8 *userdir = NULL, *userconf = NULL;
s = FcStrBufDoneStatic (&parse->pstack->str);
if (!s)
@@ -2303,6 +2322,7 @@ FcParseInclude (FcConfigParse *parse)
{
size_t plen = strlen ((const char *)prefix);
size_t dlen = strlen ((const char *)s);
+ FcChar8 *u;
p = realloc (prefix, plen + 1 + dlen + 1);
if (!p)
@@ -2318,14 +2338,32 @@ FcParseInclude (FcConfigParse *parse)
if (FcFileIsDir (s))
{
userdir:
+ userdir = fc_atomic_ptr_get (&__fc_userdir);
if (!userdir)
- userdir = FcStrdup (s);
+ {
+ u = FcStrdup (s);
+ if (!fc_atomic_ptr_cmpexch (&__fc_userdir, userdir, u))
+ {
+ free (u);
+ goto userdir;
+ }
+ userdir = u;
+ }
}
else if (FcFileIsFile (s))
{
userconf:
+ userconf = fc_atomic_ptr_get (&__fc_userconf);
if (!userconf)
- userconf = FcStrdup (s);
+ {
+ u = FcStrdup (s);
+ if (!fc_atomic_ptr_cmpexch (&__fc_userconf, userconf, u))
+ {
+ free (u);
+ goto userconf;
+ }
+ userconf = u;
+ }
}
else
{
@@ -2349,6 +2387,7 @@ FcParseInclude (FcConfigParse *parse)
filename = FcConfigFilename(s);
if (deprecated == FcTrue &&
filename != NULL &&
+ userdir != NULL &&
!FcFileIsLink (filename))
{
if (FcFileIsDir (filename))
diff --git a/libX11/modules/im/ximcp/imLcPrs.c b/libX11/modules/im/ximcp/imLcPrs.c
index 9bb45ff31..60215c706 100644
--- a/libX11/modules/im/ximcp/imLcPrs.c
+++ b/libX11/modules/im/ximcp/imLcPrs.c
@@ -496,12 +496,12 @@ parseline(
token = nexttoken(fp, tokenbuf, &lastch);
if (token != KEY && token != STRING)
goto error;
- if ((filename = TransFileName(im, tokenbuf)) == NULL)
- goto error;
if (++depth > 100)
goto error;
+ if ((filename = TransFileName(im, tokenbuf)) == NULL)
+ goto error;
infp = _XFopenFile(filename, "r");
- Xfree(filename);
+ Xfree(filename);
if (infp == NULL)
goto error;
parsestringfile(infp, im, depth);
diff --git a/libX11/modules/om/generic/omGeneric.c b/libX11/modules/om/generic/omGeneric.c
index a835f00d7..53ca75c04 100644
--- a/libX11/modules/om/generic/omGeneric.c
+++ b/libX11/modules/om/generic/omGeneric.c
@@ -105,7 +105,7 @@ init_fontdata(
if(fd == (FontData) NULL)
return False;
- memset(fd, 0x00, sizeof(FontData) * font_data_count);
+ memset(fd, 0x00, sizeof(FontDataRec) * font_data_count);
for(i = 0 ; i < font_data_count ; i++)
fd[i] = font_data[i];
diff --git a/libX11/src/FontNames.c b/libX11/src/FontNames.c
index 6fc6b1272..21dcafea1 100644
--- a/libX11/src/FontNames.c
+++ b/libX11/src/FontNames.c
@@ -47,7 +47,7 @@ int *actualCount) /* RETURN */
int count = 0;
xListFontsReply rep;
register xListFontsReq *req;
- unsigned long rlen;
+ unsigned long rlen = 0;
LockDisplay(dpy);
GetReq(ListFonts, req);
diff --git a/libX11/src/GetFPath.c b/libX11/src/GetFPath.c
index 62ba01436..8c3f49c95 100644
--- a/libX11/src/GetFPath.c
+++ b/libX11/src/GetFPath.c
@@ -35,7 +35,7 @@ char **XGetFontPath(
int *npaths) /* RETURN */
{
xGetFontPathReply rep;
- unsigned long nbytes;
+ unsigned long nbytes = 0;
char **flist = NULL;
char *ch = NULL;
char *chend;
diff --git a/libX11/src/ListExt.c b/libX11/src/ListExt.c
index 431ae6784..be6b989a3 100644
--- a/libX11/src/ListExt.c
+++ b/libX11/src/ListExt.c
@@ -42,7 +42,7 @@ char **XListExtensions(
register unsigned i;
register int length;
register xReq *req;
- unsigned long rlen;
+ unsigned long rlen = 0;
LockDisplay(dpy);
GetEmptyReq (ListExtensions, req);
diff --git a/libxcb/src/c_client.py b/libxcb/src/c_client.py
index e55fc3c6b..70f842933 100644
--- a/libxcb/src/c_client.py
+++ b/libxcb/src/c_client.py
@@ -629,8 +629,7 @@ def _c_helper_resolve_field_names (prefix):
all_fields = {}
tmp_prefix = []
# look for fields in the remaining containers
- for idx, p in enumerate(prefix):
- name, sep, obj = p
+ for idx, (name, sep, obj) in enumerate(prefix):
if ''==sep:
# sep can be preset in prefix, if not, make a sensible guess
sep = '.' if (obj.is_switch or obj.is_case_or_bitcase) else '->'
@@ -1033,7 +1032,7 @@ def _c_serialize_helper_fields_fixed_size(context, self, field,
if not self.is_case_or_bitcase:
code_lines.append('%s /* %s.%s */' % (space, self.c_type, field.c_field_name))
else:
- scoped_name = [p[2].c_type if idx==0 else p[0] for idx, p in enumerate(prefix)]
+ scoped_name = [obj.c_type if idx==0 else name for idx, (name, _, obj) in enumerate(prefix)]
typename = ".".join(scoped_name)
code_lines.append('%s /* %s.%s */' % (space, typename, field.c_field_name))
@@ -1327,7 +1326,7 @@ def _c_serialize(context, self):
for p in params:
typespec, pointerspec, field_name = p
spacing = ' '*(maxtypelen-len(typespec)-len(pointerspec))
- param_str.append("%s%s%s %s%s /**< */" % (indent, typespec, spacing, pointerspec, field_name))
+ param_str.append("%s%s%s %s%s" % (indent, typespec, spacing, pointerspec, field_name))
# insert function name
param_str[0] = "%s (%s" % (func_name, param_str[0].strip())
param_str = ["%s," % x for x in param_str]
@@ -1520,9 +1519,9 @@ def _c_iterator(self, name):
_h(' * @brief %s', self.c_iterator_type)
_h(' **/')
_h('typedef struct %s {', self.c_iterator_type)
- _h(' %s *data; /**< */', self.c_type)
- _h(' int%s rem; /**< */', ' ' * (len(self.c_type) - 2))
- _h(' int%s index; /**< */', ' ' * (len(self.c_type) - 2))
+ _h(' %s *data;', self.c_type)
+ _h(' int%s rem;', ' ' * (len(self.c_type) - 2))
+ _h(' int%s index;', ' ' * (len(self.c_type) - 2))
# add additional params of the type "self" as fields to the iterator struct
# so that they can be passed to the sizeof-function by the iterator's next-function
params = _c_get_additional_type_params(self)
@@ -1546,8 +1545,8 @@ def _c_iterator(self, name):
_h(' */')
_c('')
_hc('void')
- _h('%s (%s *i /**< */);', self.c_next_name, self.c_iterator_type)
- _c('%s (%s *i /**< */)', self.c_next_name, self.c_iterator_type)
+ _h('%s (%s *i);', self.c_next_name, self.c_iterator_type)
+ _c('%s (%s *i)', self.c_next_name, self.c_iterator_type)
_c('{')
if not self.fixed_size():
@@ -1592,8 +1591,8 @@ def _c_iterator(self, name):
_h(' */')
_c('')
_hc('xcb_generic_iterator_t')
- _h('%s (%s i /**< */);', self.c_end_name, self.c_iterator_type)
- _c('%s (%s i /**< */)', self.c_end_name, self.c_iterator_type)
+ _h('%s (%s i);', self.c_end_name, self.c_iterator_type)
+ _c('%s (%s i)', self.c_end_name, self.c_iterator_type)
_c('{')
_c(' xcb_generic_iterator_t ret;')
@@ -1749,8 +1748,8 @@ def _c_accessors_field(self, field):
if field.type.is_simple:
_hc('')
_hc('%s', field.c_field_type)
- _h('%s (const %s *R /**< */);', field.c_accessor_name, c_type)
- _c('%s (const %s *R /**< */)', field.c_accessor_name, c_type)
+ _h('%s (const %s *R);', field.c_accessor_name, c_type)
+ _c('%s (const %s *R)', field.c_accessor_name, c_type)
_c('{')
if field.prev_varsized_field is None:
_c(' return (%s *) (R + 1);', field.c_field_type)
@@ -1767,8 +1766,8 @@ def _c_accessors_field(self, field):
return_type = '%s *' % field.c_field_type
_hc(return_type)
- _h('%s (const %s *R /**< */);', field.c_accessor_name, c_type)
- _c('%s (const %s *R /**< */)', field.c_accessor_name, c_type)
+ _h('%s (const %s *R);', field.c_accessor_name, c_type)
+ _c('%s (const %s *R)', field.c_accessor_name, c_type)
_c('{')
if field.prev_varsized_field is None:
_c(' return (%s) (R + 1);', return_type)
@@ -1867,7 +1866,7 @@ def _c_accessors_list(self, field):
if len(additional_params) == 0:
return ''
else:
- return (',\n' + indent).join([''] + ['%s %s /**< */' % p for p in additional_params])
+ return (',\n' + indent).join([''] + ['%s %s' % p for p in additional_params])
_h_setlevel(1)
_c_setlevel(1)
@@ -1876,8 +1875,8 @@ def _c_accessors_list(self, field):
_hc('')
_hc('%s *', field.c_field_type)
- _h('%s (%s /**< */);', field.c_accessor_name, params[idx][0])
- _c('%s (%s /**< */)', field.c_accessor_name, params[idx][0])
+ _h('%s (%s);', field.c_accessor_name, params[idx][0])
+ _c('%s (%s)', field.c_accessor_name, params[idx][0])
_c('{')
if switch_obj is not None:
@@ -1902,12 +1901,12 @@ def _c_accessors_list(self, field):
spacing = ' '*(len(field.c_length_name)+2)
add_param_str = additional_params_to_str(spacing)
if switch_obj is not None:
- _hc('%s (const %s *R /**< */,', field.c_length_name, R_obj.c_type)
- _h('%sconst %s *S /**< */%s);', spacing, S_obj.c_type, add_param_str)
- _c('%sconst %s *S /**< */%s)', spacing, S_obj.c_type, add_param_str)
+ _hc('%s (const %s *R,', field.c_length_name, R_obj.c_type)
+ _h('%sconst %s *S%s);', spacing, S_obj.c_type, add_param_str)
+ _c('%sconst %s *S%s)', spacing, S_obj.c_type, add_param_str)
else:
- _h('%s (const %s *R /**< */%s);', field.c_length_name, c_type, add_param_str)
- _c('%s (const %s *R /**< */%s)', field.c_length_name, c_type, add_param_str)
+ _h('%s (const %s *R%s);', field.c_length_name, c_type, add_param_str)
+ _c('%s (const %s *R%s)', field.c_length_name, c_type, add_param_str)
_c('{')
length = _c_accessor_get_expr(field.type.expr, fields)
_c(' return %s;', length)
@@ -1919,12 +1918,12 @@ def _c_accessors_list(self, field):
spacing = ' '*(len(field.c_end_name)+2)
add_param_str = additional_params_to_str(spacing)
if switch_obj is not None:
- _hc('%s (const %s *R /**< */,', field.c_end_name, R_obj.c_type)
- _h('%sconst %s *S /**< */%s);', spacing, S_obj.c_type, add_param_str)
- _c('%sconst %s *S /**< */%s)', spacing, S_obj.c_type, add_param_str)
+ _hc('%s (const %s *R,', field.c_end_name, R_obj.c_type)
+ _h('%sconst %s *S%s);', spacing, S_obj.c_type, add_param_str)
+ _c('%sconst %s *S%s)', spacing, S_obj.c_type, add_param_str)
else:
- _h('%s (const %s *R /**< */%s);', field.c_end_name, c_type, add_param_str)
- _c('%s (const %s *R /**< */%s)', field.c_end_name, c_type, add_param_str)
+ _h('%s (const %s *R%s);', field.c_end_name, c_type, add_param_str)
+ _c('%s (const %s *R%s)', field.c_end_name, c_type, add_param_str)
_c('{')
_c(' xcb_generic_iterator_t i;')
@@ -1952,12 +1951,12 @@ def _c_accessors_list(self, field):
spacing = ' '*(len(field.c_iterator_name)+2)
add_param_str = additional_params_to_str(spacing)
if switch_obj is not None:
- _hc('%s (const %s *R /**< */,', field.c_iterator_name, R_obj.c_type)
- _h('%sconst %s *S /**< */%s);', spacing, S_obj.c_type, add_param_str)
- _c('%sconst %s *S /**< */%s)', spacing, S_obj.c_type, add_param_str)
+ _hc('%s (const %s *R,', field.c_iterator_name, R_obj.c_type)
+ _h('%sconst %s *S%s);', spacing, S_obj.c_type, add_param_str)
+ _c('%sconst %s *S%s)', spacing, S_obj.c_type, add_param_str)
else:
- _h('%s (const %s *R /**< */%s);', field.c_iterator_name, c_type, add_param_str)
- _c('%s (const %s *R /**< */%s)', field.c_iterator_name, c_type, add_param_str)
+ _h('%s (const %s *R%s);', field.c_iterator_name, c_type, add_param_str)
+ _c('%s (const %s *R%s)', field.c_iterator_name, c_type, add_param_str)
_c('{')
_c(' %s i;', field.c_iterator_type)
@@ -2063,10 +2062,10 @@ def _c_complex(self, force_packed = False):
# necessary for unserialize to work
(self.is_switch and field.type.is_switch)):
spacing = ' ' * (maxtypelen - len(field.c_field_type))
- _h('%s %s%s %s%s; /**< */', space, field.c_field_type, spacing, field.c_field_name, field.c_subscript)
+ _h('%s %s%s %s%s;', space, field.c_field_type, spacing, field.c_field_name, field.c_subscript)
else:
spacing = ' ' * (maxtypelen - (len(field.c_field_type) + 1))
- _h('%s %s%s *%s%s; /**< */', space, field.c_field_type, spacing, field.c_field_name, field.c_subscript)
+ _h('%s %s%s *%s%s;', space, field.c_field_type, spacing, field.c_field_name, field.c_subscript)
if not self.is_switch:
for field in struct_fields:
@@ -2243,9 +2242,9 @@ def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False):
spacing = ' ' * (maxtypelen - len('xcb_connection_t'))
comma = ',' if len(param_fields) else ');'
- _h('%s (xcb_connection_t%s *c /**< */%s', func_name, spacing, comma)
+ _h('%s (xcb_connection_t%s *c%s', func_name, spacing, comma)
comma = ',' if len(param_fields) else ')'
- _c('%s (xcb_connection_t%s *c /**< */%s', func_name, spacing, comma)
+ _c('%s (xcb_connection_t%s *c%s', func_name, spacing, comma)
func_spacing = ' ' * (len(func_name) + 2)
count = len(param_fields)
@@ -2258,10 +2257,10 @@ def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False):
c_pointer = '*'
spacing = ' ' * (maxtypelen - len(c_field_const_type))
comma = ',' if count else ');'
- _h('%s%s%s %s%s /**< */%s', func_spacing, c_field_const_type,
+ _h('%s%s%s %s%s%s', func_spacing, c_field_const_type,
spacing, c_pointer, field.c_field_name, comma)
comma = ',' if count else ')'
- _c('%s%s%s %s%s /**< */%s', func_spacing, c_field_const_type,
+ _c('%s%s%s %s%s%s', func_spacing, c_field_const_type,
spacing, c_pointer, field.c_field_name, comma)
count = 2
@@ -2291,13 +2290,16 @@ def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False):
_c(' void *xcb_aux = 0;')
- for idx, f in enumerate(serial_fields):
+ for idx, _ in enumerate(serial_fields):
if aux:
_c(' void *xcb_aux%d = 0;' % (idx))
if list_with_var_size_elems:
_c(' unsigned int i;')
_c(' unsigned int xcb_tmp_len;')
_c(' char *xcb_tmp;')
+ num_fds = len([field for field in param_fields if field.isfd])
+ if num_fds > 0:
+ _c(' int fds[%d];' % (num_fds))
_c('')
# fixed size fields
@@ -2398,11 +2400,16 @@ def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False):
# no padding necessary - _serialize() keeps track of padding automatically
_c('')
+ fd_index = 0
for field in param_fields:
if field.isfd:
- _c(' xcb_send_fd(c, %s);', field.c_field_name)
+ _c(' fds[%d] = %s;', fd_index, field.c_field_name)
+ fd_index = fd_index + 1
- _c(' xcb_ret.sequence = xcb_send_request(c, %s, xcb_parts + 2, &xcb_req);', func_flags)
+ if num_fds == 0:
+ _c(' xcb_ret.sequence = xcb_send_request(c, %s, xcb_parts + 2, &xcb_req);', func_flags)
+ else:
+ _c(' xcb_ret.sequence = xcb_send_request_with_fds(c, %s, xcb_parts + 2, &xcb_req, %d, fds);', func_flags, num_fds)
# free dyn. all. data, if any
for f in free_calls:
@@ -2457,10 +2464,10 @@ def _c_reply(self, name):
_h(' */')
_c('')
_hc('%s *', self.c_reply_type)
- _hc('%s (xcb_connection_t%s *c /**< */,', self.c_reply_name, spacing1)
+ _hc('%s (xcb_connection_t%s *c,', self.c_reply_name, spacing1)
_hc('%s%s cookie /**< */,', spacing3, self.c_cookie_type)
- _h('%sxcb_generic_error_t%s **e /**< */);', spacing3, spacing2)
- _c('%sxcb_generic_error_t%s **e /**< */)', spacing3, spacing2)
+ _h('%sxcb_generic_error_t%s **e);', spacing3, spacing2)
+ _c('%sxcb_generic_error_t%s **e)', spacing3, spacing2)
_c('{')
if len(unserialize_fields)>0:
@@ -2515,8 +2522,8 @@ def _c_reply_fds(self, name):
_c('')
_hc('int *')
_hc('%s (xcb_connection_t%s *c /**< */,', self.c_reply_fds_name, spacing1)
- _h('%s%s *reply /**< */);', spacing3, self.c_reply_type)
- _c('%s%s *reply /**< */)', spacing3, self.c_reply_type)
+ _h('%s%s *reply);', spacing3, self.c_reply_type)
+ _c('%s%s *reply)', spacing3, self.c_reply_type)
_c('{')
_c(' return xcb_get_reply_fds(c, reply, sizeof(%s) + 4 * reply->length);', self.c_reply_type)
@@ -2543,7 +2550,7 @@ def _c_cookie(self, name):
_h(' * @brief %s', self.c_cookie_type)
_h(' **/')
_h('typedef struct %s {', self.c_cookie_type)
- _h(' unsigned int sequence; /**< */')
+ _h(' unsigned int sequence;')
_h('} %s;', self.c_cookie_type)
def _man_request(self, name, void, aux):
diff --git a/libxcb/src/xcb_in.c b/libxcb/src/xcb_in.c
index 623a0a803..322bed816 100644
--- a/libxcb/src/xcb_in.c
+++ b/libxcb/src/xcb_in.c
@@ -761,6 +761,7 @@ xcb_generic_event_t *xcb_wait_for_special_event(xcb_connection_t *c,
if(!_xcb_conn_wait(c, &se->special_event_cond, 0, 0))
break;
+ _xcb_in_wake_up_next_reader(c);
pthread_mutex_unlock(&c->iolock);
return event;
}
diff --git a/libxcb/src/xcb_out.c b/libxcb/src/xcb_out.c
index 8cc5be868..3601a5fa4 100644
--- a/libxcb/src/xcb_out.c
+++ b/libxcb/src/xcb_out.c
@@ -177,15 +177,59 @@ uint32_t xcb_get_maximum_request_length(xcb_connection_t *c)
return c->out.maximum_request_length.value;
}
-uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *req)
+static void close_fds(int *fds, unsigned int num_fds)
+{
+ for (unsigned int index = 0; index < num_fds; index++)
+ close(fds[index]);
+}
+
+static void send_fds(xcb_connection_t *c, int *fds, unsigned int num_fds)
+{
+#if HAVE_SENDMSG
+ /* Calling _xcb_out_flush_to() can drop the iolock and wait on a condition
+ * variable if another thread is currently writing (c->out.writing > 0).
+ * This call waits for writers to be done and thus _xcb_out_flush_to() will
+ * do the work itself (in which case we are a writer and
+ * prepare_socket_request() will wait for us to be done if another threads
+ * tries to send fds, too). Thanks to this, we can atomically write out FDs.
+ */
+ prepare_socket_request(c);
+
+ while (num_fds > 0) {
+ while (c->out.out_fd.nfd == XCB_MAX_PASS_FD && !c->has_error) {
+ /* XXX: if c->out.writing > 0, this releases the iolock and
+ * potentially allows other threads to interfere with their own fds.
+ */
+ _xcb_out_flush_to(c, c->out.request);
+
+ if (c->out.out_fd.nfd == XCB_MAX_PASS_FD) {
+ /* We need some request to send FDs with */
+ _xcb_out_send_sync(c);
+ }
+ }
+ if (c->has_error)
+ break;
+
+ c->out.out_fd.fd[c->out.out_fd.nfd++] = fds[0];
+ fds++;
+ num_fds--;
+ }
+#endif
+ close_fds(fds, num_fds);
+}
+
+uint64_t xcb_send_request_with_fds64(xcb_connection_t *c, int flags, struct iovec *vector,
+ const xcb_protocol_request_t *req, unsigned int num_fds, int *fds)
{
uint64_t request;
uint32_t prefix[2];
int veclen = req->count;
enum workarounds workaround = WORKAROUND_NONE;
- if(c->has_error)
+ if(c->has_error) {
+ close_fds(fds, num_fds);
return 0;
+ }
assert(c != 0);
assert(vector != 0);
@@ -204,6 +248,7 @@ uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector
const xcb_query_extension_reply_t *extension = xcb_get_extension_data(c, req->ext);
if(!(extension && extension->present))
{
+ close_fds(fds, num_fds);
_xcb_conn_shutdown(c, XCB_CONN_CLOSED_EXT_NOTSUPPORTED);
return 0;
}
@@ -234,6 +279,7 @@ uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector
}
else if(longlen > xcb_get_maximum_request_length(c))
{
+ close_fds(fds, num_fds);
_xcb_conn_shutdown(c, XCB_CONN_CLOSED_REQ_LEN_EXCEED);
return 0; /* server can't take this; maybe need BIGREQUESTS? */
}
@@ -264,6 +310,11 @@ uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector
/* get a sequence number and arrange for delivery. */
pthread_mutex_lock(&c->iolock);
+ /* send FDs before establishing a good request number, because this might
+ * call send_sync(), too
+ */
+ send_fds(c, fds, num_fds);
+
prepare_socket_request(c);
/* send GetInputFocus (sync_req) when 64k-2 requests have been sent without
@@ -272,7 +323,7 @@ uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector
* applications see sequence 0 as that is used to indicate
* an error in sending the request
*/
-
+
while ((req->isvoid && c->out.request == c->in.request_expected + (1 << 16) - 2) ||
(unsigned int) (c->out.request + 1) == 0)
{
@@ -287,6 +338,18 @@ uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector
}
/* request number are actually uint64_t internally but keep API compat with unsigned int */
+unsigned int xcb_send_request_with_fds(xcb_connection_t *c, int flags, struct iovec *vector,
+ const xcb_protocol_request_t *req, unsigned int num_fds, int *fds)
+{
+ return xcb_send_request_with_fds64(c, flags, vector, req, num_fds, fds);
+}
+
+uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *req)
+{
+ return xcb_send_request_with_fds64(c, flags, vector, req, 0, NULL);
+}
+
+/* request number are actually uint64_t internally but keep API compat with unsigned int */
unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *req)
{
return xcb_send_request64(c, flags, vector, req);
@@ -295,19 +358,15 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect
void
xcb_send_fd(xcb_connection_t *c, int fd)
{
-#if HAVE_SENDMSG
- if (c->has_error)
+ int fds[1] = { fd };
+
+ if (c->has_error) {
+ close(fd);
return;
- pthread_mutex_lock(&c->iolock);
- while (c->out.out_fd.nfd == XCB_MAX_PASS_FD) {
- _xcb_out_flush_to(c, c->out.request);
- if (c->has_error)
- break;
}
- if (!c->has_error)
- c->out.out_fd.fd[c->out.out_fd.nfd++] = fd;
+ pthread_mutex_lock(&c->iolock);
+ send_fds(c, &fds[0], 1);
pthread_mutex_unlock(&c->iolock);
-#endif
}
int xcb_take_socket(xcb_connection_t *c, void (*return_socket)(void *closure), void *closure, int flags, uint64_t *sent)
diff --git a/libxcb/src/xcbext.h b/libxcb/src/xcbext.h
index b2575f7e3..44d789eee 100644
--- a/libxcb/src/xcbext.h
+++ b/libxcb/src/xcbext.h
@@ -68,13 +68,13 @@ enum xcb_send_request_flags_t {
*
* This function sends a new request to the X server. The data of the request is
* given as an array of @c iovecs in the @p vector argument. The length of that
- * array and the neccessary management information are given in the @p request
+ * array and the necessary management information are given in the @p request
* argument.
*
* When this function returns, the request might or might not be sent already.
* Use xcb_flush() to make sure that it really was sent.
*
- * Please note that this function is not the prefered way for sending requests.
+ * Please note that this function is not the preferred way for sending requests.
* It's better to use the generated wrapper functions.
*
* Please note that xcb might use index -1 and -2 of the @p vector array internally,
@@ -83,6 +83,37 @@ enum xcb_send_request_flags_t {
unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
/**
+ * @brief Send a request to the server.
+ * @param c: The connection to the X server.
+ * @param flags: A combination of flags from the xcb_send_request_flags_t enumeration.
+ * @param vector: Data to send; must have two iovecs before start for internal use.
+ * @param request: Information about the request to be sent.
+ * @param num_fds: Number of additional file descriptors to send to the server
+ * @param fds: Additional file descriptors that should be send to the server.
+ * @return The request's sequence number on success, 0 otherwise.
+ *
+ * This function sends a new request to the X server. The data of the request is
+ * given as an array of @c iovecs in the @p vector argument. The length of that
+ * array and the necessary management information are given in the @p request
+ * argument.
+ *
+ * If @p num_fds is non-zero, @p fds points to an array of file descriptors that
+ * will be sent to the X server along with this request. After this function
+ * returns, all file descriptors sent are owned by xcb and will be closed
+ * eventually.
+ *
+ * When this function returns, the request might or might not be sent already.
+ * Use xcb_flush() to make sure that it really was sent.
+ *
+ * Please note that this function is not the preferred way for sending requests.
+ *
+ * Please note that xcb might use index -1 and -2 of the @p vector array internally,
+ * so they must be valid!
+ */
+unsigned int xcb_send_request_with_fds(xcb_connection_t *c, int flags, struct iovec *vector,
+ const xcb_protocol_request_t *request, unsigned int num_fds, int *fds);
+
+/**
* @brief Send a request to the server, with 64-bit sequence number returned.
* @param c: The connection to the X server.
* @param flags: A combination of flags from the xcb_send_request_flags_t enumeration.
@@ -92,13 +123,13 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect
*
* This function sends a new request to the X server. The data of the request is
* given as an array of @c iovecs in the @p vector argument. The length of that
- * array and the neccessary management information are given in the @p request
+ * array and the necessary management information are given in the @p request
* argument.
*
* When this function returns, the request might or might not be sent already.
* Use xcb_flush() to make sure that it really was sent.
*
- * Please note that this function is not the prefered way for sending requests.
+ * Please note that this function is not the preferred way for sending requests.
* It's better to use the generated wrapper functions.
*
* Please note that xcb might use index -1 and -2 of the @p vector array internally,
@@ -107,6 +138,38 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect
uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
/**
+ * @brief Send a request to the server, with 64-bit sequence number returned.
+ * @param c: The connection to the X server.
+ * @param flags: A combination of flags from the xcb_send_request_flags_t enumeration.
+ * @param vector: Data to send; must have two iovecs before start for internal use.
+ * @param request: Information about the request to be sent.
+ * @param num_fds: Number of additional file descriptors to send to the server
+ * @param fds: Additional file descriptors that should be send to the server.
+ * @return The request's sequence number on success, 0 otherwise.
+ *
+ * This function sends a new request to the X server. The data of the request is
+ * given as an array of @c iovecs in the @p vector argument. The length of that
+ * array and the necessary management information are given in the @p request
+ * argument.
+ *
+ * If @p num_fds is non-zero, @p fds points to an array of file descriptors that
+ * will be sent to the X server along with this request. After this function
+ * returns, all file descriptors sent are owned by xcb and will be closed
+ * eventually.
+ *
+ * When this function returns, the request might or might not be sent already.
+ * Use xcb_flush() to make sure that it really was sent.
+ *
+ * Please note that this function is not the preferred way for sending requests.
+ * It's better to use the generated wrapper functions.
+ *
+ * Please note that xcb might use index -1 and -2 of the @p vector array internally,
+ * so they must be valid!
+ */
+uint64_t xcb_send_request_with_fds64(xcb_connection_t *c, int flags, struct iovec *vector,
+ const xcb_protocol_request_t *request, unsigned int num_fds, int *fds);
+
+/**
* @brief Send a file descriptor to the server in the next call to xcb_send_request.
* @param c: The connection to the X server.
* @param fd: The file descriptor to send.
@@ -114,9 +177,9 @@ uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector
* After this function returns, the file descriptor given is owned by xcb and
* will be closed eventually.
*
- * FIXME: How the heck is this supposed to work in a thread-safe way? There is a
- * race between two threads doing xcb_send_fd(); xcb_send_request(); at the same
- * time.
+ * @deprecated This function cannot be used in a thread-safe way. Two threads
+ * that run xcb_send_fd(); xcb_send_request(); could mix up their file
+ * descriptors. Instead, xcb_send_request_with_fds() should be used.
*/
void xcb_send_fd(xcb_connection_t *c, int fd);
diff --git a/libxcb/xcb-proto/doc/xml-xcb.txt b/libxcb/xcb-proto/doc/xml-xcb.txt
index f8129ea9c..12c0881a9 100644
--- a/libxcb/xcb-proto/doc/xml-xcb.txt
+++ b/libxcb/xcb-proto/doc/xml-xcb.txt
@@ -218,13 +218,6 @@ enum; the value is restricted to one of the constants named in the enum.
of the list in terms of other fields in the structure. See the section
"Expressions" for details on the expression representation.
-<localfield type="identifier" name="identifier" />
-
- This element represents a parameter in a request that is not sent over the
- wire. The field can be referenced in the length expressions of lists or in
- an exprfield. The type attribute declares the data type of the field, and
- the name attribute gives the name of the field.
-
<exprfield type="identifier" name="identifier">expression</exprfield>
This element represents a field in a request that is calculated rather than
@@ -244,8 +237,8 @@ enum; the value is restricted to one of the constants named in the enum.
<switch> instead for new protocol definitions.
<switch name="identifier"> switch expression
- <bitcase> bitcase expression(s), fields </bitcase>
- <case> case expression(s), fields </case>
+ <bitcase [name="identifier"]> bitcase expression(s), fields </bitcase>
+ <case [name="identifier"]> case expression(s), fields </case>
</switch>
This element represents conditional inclusion of fields. It can be viewed
diff --git a/libxcb/xcb-proto/src/present.xml b/libxcb/xcb-proto/src/present.xml
index 95fee0181..513388c1c 100644
--- a/libxcb/xcb-proto/src/present.xml
+++ b/libxcb/xcb-proto/src/present.xml
@@ -199,15 +199,7 @@ OF THIS SOFTWARE.
<field type="CARD64" name="target_msc" />
<field type="CARD64" name="divisor" />
<field type="CARD64" name="remainder" />
- <list type="Notify" name="notifies">
- <op op="/">
- <op op="-">
- <fieldref>length</fieldref>
- <value>18</value>
- </op>
- <value>2</value>
- </op>
- </list>
+ <list type="Notify" name="notifies" />
</event>
</xcb>
diff --git a/libxcb/xcb-proto/src/xprint.xml b/libxcb/xcb-proto/src/xprint.xml
index dc23dd0da..4da49b0a9 100644
--- a/libxcb/xcb-proto/src/xprint.xml
+++ b/libxcb/xcb-proto/src/xprint.xml
@@ -178,9 +178,13 @@ authorization from the authors.
<fieldref>len_data</fieldref>
</list>
<!-- padding -->
- <list type="STRING8" name="doc_format" />
+ <list type="STRING8" name="doc_format">
+ <fieldref>len_fmt</fieldref>
+ </list>
<!-- padding -->
- <list type="STRING8" name="options" />
+ <list type="STRING8" name="options">
+ <fieldref>len_options</fieldref>
+ </list>
</request>
<request name="PrintGetDocumentData" opcode="12">
diff --git a/mesalib/Android.common.mk b/mesalib/Android.common.mk
index edf52d6fa..d662d6018 100644
--- a/mesalib/Android.common.mk
+++ b/mesalib/Android.common.mk
@@ -68,7 +68,16 @@ LOCAL_CFLAGS += \
endif
endif
+ifeq ($(MESA_ENABLE_LLVM),true)
+LOCAL_CFLAGS += \
+ -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=2 \
+ -D__STDC_CONSTANT_MACROS \
+ -D__STDC_FORMAT_MACROS \
+ -D__STDC_LIMIT_MACROS
+endif
+
LOCAL_CPPFLAGS += \
+ $(if $(filter true,$(MESA_LOLLIPOP_BUILD)),-D_USING_LIBCXX) \
-Wno-error=non-virtual-dtor \
-Wno-non-virtual-dtor
diff --git a/mesalib/Android.mk b/mesalib/Android.mk
index b19419ba7..69e0d33f1 100644
--- a/mesalib/Android.mk
+++ b/mesalib/Android.mk
@@ -24,7 +24,7 @@
# BOARD_GPU_DRIVERS should be defined. The valid values are
#
# classic drivers: i915 i965
-# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
+# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vc4 vmwgfx
#
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
# module will also be built. DRI modules will be loaded by libGLES_mesa.
@@ -48,7 +48,7 @@ MESA_PYTHON2 := python
DRM_GRALLOC_TOP := hardware/drm_gralloc
classic_drivers := i915 i965
-gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
+gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx vc4
MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
@@ -80,6 +80,8 @@ else
MESA_BUILD_GALLIUM := false
endif
+MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)),true,false)
+
# add subdirectories
ifneq ($(strip $(MESA_GPU_DRIVERS)),)
@@ -89,13 +91,9 @@ SUBDIRS := \
src/glsl \
src/mesa \
src/util \
- src/egl/main
-
-ifeq ($(strip $(MESA_BUILD_CLASSIC)),true)
-SUBDIRS += \
+ src/egl/main \
src/egl/drivers/dri2 \
src/mesa/drivers/dri
-endif
ifeq ($(strip $(MESA_BUILD_GALLIUM)),true)
SUBDIRS += src/gallium
diff --git a/mesalib/CleanSpec.mk b/mesalib/CleanSpec.mk
index 20681638e..d08b0def7 100644
--- a/mesalib/CleanSpec.mk
+++ b/mesalib/CleanSpec.mk
@@ -13,3 +13,4 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_int
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/mesa_*_intermediates)
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/glsl_compiler_intermediates)
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
diff --git a/mesalib/VERSION b/mesalib/VERSION
index 8d3030650..1edd8fc00 100644
--- a/mesalib/VERSION
+++ b/mesalib/VERSION
@@ -1 +1 @@
-10.6.0-devel
+10.7.0-devel
diff --git a/mesalib/configure.ac b/mesalib/configure.ac
index 095e23e69..34d1ac988 100644
--- a/mesalib/configure.ac
+++ b/mesalib/configure.ac
@@ -649,6 +649,7 @@ if test "x$enable_asm" = xyes; then
fi
AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
+AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
dnl Check to see if dlopen is in default libraries (like Solaris, which
@@ -713,15 +714,15 @@ AC_ARG_ENABLE([opengl],
[enable_opengl="$enableval"],
[enable_opengl=yes])
AC_ARG_ENABLE([gles1],
- [AS_HELP_STRING([--enable-gles1],
- [enable support for OpenGL ES 1.x API @<:@default=disabled@:>@])],
+ [AS_HELP_STRING([--disable-gles1],
+ [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
[enable_gles1="$enableval"],
- [enable_gles1=no])
+ [enable_gles1=yes])
AC_ARG_ENABLE([gles2],
- [AS_HELP_STRING([--enable-gles2],
- [enable support for OpenGL ES 2.x API @<:@default=disabled@:>@])],
+ [AS_HELP_STRING([--disable-gles2],
+ [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])],
[enable_gles2="$enableval"],
- [enable_gles2=no])
+ [enable_gles2=yes])
AC_ARG_ENABLE([dri],
[AS_HELP_STRING([--enable-dri],
@@ -1920,10 +1921,7 @@ if test "x$enable_gallium_llvm" = xyes; then
AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
fi
- LLVM_COMPONENTS="engine bitwriter"
- if $LLVM_CONFIG --components | grep -qw 'mcjit'; then
- LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
- fi
+ LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler"
if test "x$enable_opencl" = xyes; then
llvm_check_version_for "3" "5" "0" "opencl"
@@ -2050,16 +2048,19 @@ require_egl_drm() {
}
radeon_llvm_check() {
+ if test ${LLVM_VERSION_INT} -lt 307; then
+ amdgpu_llvm_target_name='r600'
+ else
+ amdgpu_llvm_target_name='amdgpu'
+ fi
if test "x$enable_gallium_llvm" != "xyes"; then
AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
fi
llvm_check_version_for "3" "4" "2" $1
- if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then
- AC_MSG_ERROR([LLVM R600 Target not enabled. You can enable it when building the LLVM
- sources with the --enable-experimental-targets=R600
- configure flag])
+ if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then
+ AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.])
fi
- LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo"
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo"
NEED_RADEON_LLVM=yes
if test "x$have_libelf" != xyes; then
AC_MSG_ERROR([$1 requires libelf when using llvm])
@@ -2352,7 +2353,6 @@ AC_CONFIG_FILES([Makefile
src/gallium/drivers/svga/Makefile
src/gallium/drivers/trace/Makefile
src/gallium/drivers/vc4/Makefile
- src/gallium/drivers/vc4/kernel/Makefile
src/gallium/state_trackers/clover/Makefile
src/gallium/state_trackers/dri/Makefile
src/gallium/state_trackers/glx/xlib/Makefile
diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt
index c7009308a..f2d06f173 100644
--- a/mesalib/docs/GL3.txt
+++ b/mesalib/docs/GL3.txt
@@ -102,8 +102,8 @@ GL 4.0, GLSL 4.00:
- Dynamically uniform UBO array indices DONE (r600)
- Implicit signed -> unsigned conversions DONE
- Fused multiply-add DONE ()
- - Packing/bitfield/conversion functions DONE (r600, radeonsi)
- - Enhanced textureGather DONE (r600, radeonsi)
+ - Packing/bitfield/conversion functions DONE (r600, radeonsi, softpipe)
+ - Enhanced textureGather DONE (r600, radeonsi, softpipe)
- Geometry shader instancing DONE (r600)
- Geometry shader multiple streams DONE ()
- Enhanced per-sample shading DONE (r600, radeonsi)
@@ -115,7 +115,7 @@ GL 4.0, GLSL 4.00:
GL_ARB_tessellation_shader started (Chris, Ilia)
GL_ARB_texture_buffer_object_rgb32 DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
- GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe)
+ GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_texture_query_lod DONE (i965, nv50, nvc0, r600, radeonsi)
GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
@@ -153,7 +153,7 @@ GL 4.3, GLSL 4.30:
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
GL_ARB_clear_buffer_object DONE (all drivers)
GL_ARB_compute_shader in progress (jljusten)
- GL_ARB_copy_image DONE (i965)
+ GL_ARB_copy_image DONE (i965) (gallium - in progress, VMware)
GL_KHR_debug DONE (all drivers)
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
GL_ARB_fragment_layer_viewport DONE (nv50, nvc0, r600, llvmpipe)
@@ -164,7 +164,7 @@ GL 4.3, GLSL 4.30:
GL_ARB_program_interface_query DONE (all drivers)
GL_ARB_robust_buffer_access_behavior not started
GL_ARB_shader_image_size in progress (Martin Peres)
- GL_ARB_shader_storage_buffer_object not started
+ GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias)
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi, llvmpipe)
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
@@ -177,7 +177,7 @@ GL 4.4, GLSL 4.40:
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
GL_ARB_buffer_storage DONE (i965, nv50, nvc0, r600, radeonsi)
- GL_ARB_clear_texture DONE (i965)
+ GL_ARB_clear_texture DONE (i965) (gallium - in progress, VMware)
GL_ARB_enhanced_layouts not started
GL_ARB_multi_bind DONE (all drivers)
GL_ARB_query_buffer_object not started
@@ -190,7 +190,7 @@ GL 4.5, GLSL 4.50:
GL_ARB_ES3_1_compatibility not started
GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, llvmpipe, softpipe)
- GL_ARB_cull_distance not started
+ GL_ARB_cull_distance in progress (Tobias)
GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600)
GL_ARB_direct_state_access DONE (all drivers)
- Transform Feedback object DONE
@@ -221,7 +221,7 @@ GLES3.1, GLSL ES 3.1
GL_ARB_shader_atomic_counters DONE (i965)
GL_ARB_shader_image_load_store in progress (curro)
GL_ARB_shader_image_size in progress (Martin Peres)
- GL_ARB_shader_storage_buffer_object not started
+ GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias)
GL_ARB_shading_language_packing DONE (all drivers)
GL_ARB_separate_shader_objects DONE (all drivers)
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
diff --git a/mesalib/docs/devinfo.html b/mesalib/docs/devinfo.html
index 8d20eea3c..0da18b9b7 100644
--- a/mesalib/docs/devinfo.html
+++ b/mesalib/docs/devinfo.html
@@ -17,159 +17,241 @@
<h1>Development Notes</h1>
-<h2>Adding Extensions</h2>
-
-<p>
-To add a new GL extension to Mesa you have to do at least the following.
-
<ul>
-<li>
- If glext.h doesn't define the extension, edit include/GL/gl.h and add
- code like this:
- <pre>
- #ifndef GL_EXT_the_extension_name
- #define GL_EXT_the_extension_name 1
- /* declare the new enum tokens */
- /* prototype the new functions */
- /* TYPEDEFS for the new functions */
- #endif
- </pre>
-</li>
-<li>
- In the src/mapi/glapi/gen/ directory, add the new extension functions and
- enums to the gl_API.xml file.
- Then, a bunch of source files must be regenerated by executing the
- corresponding Python scripts.
-</li>
-<li>
- Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
-</li>
-<li>
- Update the <code>extensions.c</code> file.
-</li>
-<li>
- From this point, the best way to proceed is to find another extension,
- similar to the new one, that's already implemented in Mesa and use it
- as an example.
-</li>
-<li>
- If the new extension adds new GL state, the functions in get.c, enable.c
- and attrib.c will most likely require new code.
-</li>
-<li>
- The dispatch tests check_table.cpp and dispatch_sanity.cpp
- should be updated with details about the new extensions functions. These
- tests are run using 'make check'
-</li>
+<li><a href="#style">Coding Style</a>
+<li><a href="#submitting">Submitting Patches</a>
+<li><a href="#release">Making a New Mesa Release</a>
+<li><a href="#extensions">Adding Extensions</a>
</ul>
-
-<h2>Coding Style</h2>
+<h2 id="style">Coding Style</h2>
<p>
-Mesa's code style has changed over the years. Here's the latest.
+Mesa is over 20 years old and the coding style has evolved over time.
+Some old parts use a style that's a bit out of date.
+If the guidelines below don't cover something, try following the format of
+existing, neighboring code.
</p>
<p>
-Comment your code! It's extremely important that open-source code be
-well documented. Also, strive to write clean, easily understandable code.
+Basic formatting guidelines
</p>
-<p>
-3-space indentation
-</p>
+<ul>
+<li>3-space indentation, no tabs.
+<li>Limit lines to 78 or fewer characters. The idea is to prevent line
+wrapping in 80-column editors and terminals. There are exceptions, such
+as if you're defining a large, static table of information.
+<li>Opening braces go on the same line as the if/for/while statement.
+For example:
+<pre>
+ if (condition) {
+ foo;
+ } else {
+ bar;
+ }
+</pre>
-<p>
-If you use tabs, set them to 8 columns
-</p>
+<li>Put a space before/after operators. For example, <tt>a = b + c;</tt>
+and not <tt>a=b+c;</tt>
-<p>
-Line width: the preferred width to fill comments and code in Mesa is 78
-columns. Exceptions are sometimes made for clarity (e.g. tabular data is
-sometimes filled to a much larger width so that extraneous carriage returns
-don't obscure the table).
-</p>
+<li>This GNU indent command generally does the right thing for formatting:
+<pre>
+ indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
+</pre>
-<p>
-Brace example:
-</p>
+<li>Use comments wherever you think it would be helpful for other developers.
+Several specific cases and style examples follow. Note that we roughly
+follow <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
+<br>
+<br>
+Single-line comments:
+<pre>
+ /* null-out pointer to prevent dangling reference below */
+ bufferObj = NULL;
+</pre>
+Or,
+<pre>
+ bufferObj = NULL; /* prevent dangling reference below */
+</pre>
+Multi-line comment:
<pre>
- if (condition) {
- foo;
- }
- else {
- bar;
- }
-
- switch (condition) {
- case 0:
- foo();
- break;
-
- case 1: {
- ...
- break;
- }
-
- default:
- ...
- break;
- }
+ /* If this is a new buffer object id, or one which was generated but
+ * never used before, allocate a buffer object now.
+ */
+</pre>
+We try to quote the OpenGL specification where prudent:
+<pre>
+ /* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
+ *
+ * "An INVALID_OPERATION error is generated for any of the following
+ * conditions:
+ *
+ * * <length> is zero."
+ *
+ * Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
+ * (30.10.2014) also says this, so it's no longer allowed for desktop GL,
+ * either.
+ */
+</pre>
+Function comment example:
+<pre>
+ /**
+ * Create and initialize a new buffer object. Called via the
+ * ctx->Driver.CreateObject() driver callback function.
+ * \param name integer name of the object
+ * \param type one of GL_FOO, GL_BAR, etc.
+ * \return pointer to new object or NULL if error
+ */
+ struct gl_object *
+ _mesa_create_object(GLuint name, GLenum type)
+ {
+ /* function body */
+ }
</pre>
-<p>
-Here's the GNU indent command which will best approximate my preferred style:
-(Note that it won't format switch statements in the preferred way)
-</p>
+<li>Put the function return type and qualifiers on one line and the function
+name and parameters on the next, as seen above. This makes it easy to use
+<code>grep ^function_name dir/*</code> to find function definitions. Also,
+the opening brace goes on the next line by itself (see above.)
+
+<li>Function names follow various conventions depending on the type of function:
<pre>
- indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
+ glFooBar() - a public GL entry point (in glapi_dispatch.c)
+ _mesa_FooBar() - the internal immediate mode function
+ save_FooBar() - retained mode (display list) function in dlist.c
+ foo_bar() - a static (private) function
+ _mesa_foo_bar() - an internal non-static Mesa function
</pre>
+<li>Constants, macros and enumerant names are ALL_UPPERCASE, with _ between
+words.
+<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
+while gallium typically uses underscores (Ex: "local_var_name").
+<li>Global variables are almost never used because Mesa should be thread-safe.
-<p>
-Local variable name example: localVarName (no underscores)
-</p>
+<li>Booleans. Places that are not directly visible to the GL API
+should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
+<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
+<tt>GL_FALSE</tt>. In C code, this may mean that
+<tt>#include &lt;stdbool.h&gt;</tt> needs to be added. The
+<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
+src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
-<p>
-Constants and macros are ALL_UPPERCASE, with _ between words
-</p>
+</ul>
+
+
+<h2 id="submitting">Submitting patches</h2>
<p>
-Global variables are not allowed.
+The basic guidelines for submitting patches are:
</p>
+<ul>
+<li>Patches should be sufficiently tested before submitting.
+<li>Code patches should follow Mesa coding conventions.
+<li>Whenever possible, patches should only effect individual Mesa/Gallium
+components.
+<li>Patches should never introduce build breaks and should be bisectable (see
+<code>git bisect</code>.)
+<li>Patches should be properly formatted (see below).
+<li>Patches should be submitted to mesa-dev for review using
+<code>git send-email</code>.
+<li>Patches should not mix code changes with code formatting changes (except,
+perhaps, in very trivial cases.)
+</ul>
+
+<h3>Patch formatting</h3>
+
<p>
-Function name examples:
+The basic rules for patch formatting are:
</p>
+
+<ul>
+<li>Lines should be limited to 75 characters or less so that git logs
+displayed in 80-column terminals avoid line wrapping. Note that git
+log uses 4 spaces of indentation (4 + 75 &lt; 80).
+<li>The first line should be a short, concise summary of the change prefixed
+with a module name. Examples:
+<pre>
+ mesa: Add support for querying GL_VERTEX_ATTRIB_ARRAY_LONG
+
+ gallium: add PIPE_CAP_DEVICE_RESET_STATUS_QUERY
+
+ i965: Fix missing type in local variable declaration.
+</pre>
+<li>Subsequent patch comments should describe the change in more detail,
+if needed. For example:
+<pre>
+ i965: Remove end-of-thread SEND alignment code.
+
+ This was present in Eric's initial implementation of the compaction code
+ for Sandybridge (commit 077d01b6). There is no documentation saying this
+ is necessary, and removing it causes no regressions in piglit on any
+ platform.
+</pre>
+<li>A "Signed-off-by:" line is not required, but not discouraged either.
+<li>If a patch address a bugzilla issue, that should be noted in the
+patch comment. For example:
+<pre>
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89689
+</pre>
+<li>If there have been several revisions to a patch during the review
+process, they should be noted such as in this example:
<pre>
- glFooBar() - a public GL entry point (in glapi_dispatch.c)
- _mesa_FooBar() - the internal immediate mode function
- save_FooBar() - retained mode (display list) function in dlist.c
- foo_bar() - a static (private) function
- _mesa_foo_bar() - an internal non-static Mesa function
+ st/mesa: add ARB_texture_stencil8 support (v4)
+
+ if we support stencil texturing, enable texture_stencil8
+ there is no requirement to support native S8 for this,
+ the texture can be converted to x24s8 fine.
+
+ v2: fold fixes from Marek in:
+ a) put S8 last in the list
+ b) fix renderable to always test for d/s renderable
+ fixup the texture case to use a stencil only format
+ for picking the format for the texture view.
+ v3: hit fallback for getteximage
+ v4: put s8 back in front, it shouldn't get picked now (Ilia)
</pre>
+<li>If someone tested your patch, document it with a line like this:
+<pre>
+ Tested-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+<li>If the patch was reviewed (usually the case) or acked by someone,
+that should be documented with:
+<pre>
+ Reviewed-by: Joe Hacker &lt;jhacker@foo.com&gt;
+ Acked-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+</ul>
+
+
+
+<h3>Testing Patches</h3>
<p>
-Places that are not directly visible to the GL API should prefer the use
-of <tt>bool</tt>, <tt>true</tt>, and
-<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
-<tt>GL_FALSE</tt>. In C code, this may mean that
-<tt>#include &lt;stdbool.h&gt;</tt> needs to be added. The
-<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
-src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
+It should go without saying that patches must be tested. In general,
+do whatever testing is prudent.
</p>
-<h2>Submitting patches</h2>
-
<p>
-You should always run the Mesa Testsuite before submitting patches.
-The Testsuite can be run using the 'make check' command. All tests
+You should always run the Mesa test suite before submitting patches.
+The test suite can be run using the 'make check' command. All tests
must pass before patches will be accepted, this may mean you have
to update the tests themselves.
</p>
<p>
+Whenever possible and applicable, test the patch with
+<a href="http://people.freedesktop.org/~nh/piglit/">Piglit</a> to
+check for regressions.
+</p>
+
+
+<h3>Mailing Patches</h3>
+
+<p>
Patches should be sent to the Mesa mailing list for review.
When submitting a patch make sure to use git send-email rather than attaching
patches to emails. Sending patches as attachments prevents people from being
@@ -184,7 +266,32 @@ re-sending the whole series). Using --in-reply-to makes
it harder for reviewers to accidentally review old patches.
</p>
-<h2>Marking a commit as a candidate for a stable branch</h2>
+<h3>Reviewing Patches</h3>
+
+<p>
+When you've reviewed a patch on the mailing list, please be unambiguous
+about your review. That is, state either
+<pre>
+ Reviewed-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+or
+<pre>
+ Acked-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+Rather than saying just "LGTM" or "Seems OK".
+</p>
+
+<p>
+If small changes are suggested, it's OK to say something like:
+<pre>
+ With the above fixes, Reviewed-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+which tells the patch author that the patch can be committed, as long
+as the issues are resolved first.
+</p>
+
+
+<h3>Marking a commit as a candidate for a stable branch</h3>
<p>
If you want a commit to be applied to a stable branch,
@@ -221,7 +328,7 @@ the upcoming stable release can always be seen on the
<a href="http://cworth.org/~cworth/mesa-stable-queue/">Mesa Stable Queue</a>
page.
-<h2>Criteria for accepting patches to the stable branch</h2>
+<h3>Criteria for accepting patches to the stable branch</h3>
Mesa has a designated release manager for each stable branch, and the release
manager is the only developer that should be pushing changes to these
@@ -306,7 +413,8 @@ be rejected:
regression that is unaacceptable for the stable branch.</li>
</ul>
-<h2>Making a New Mesa Release</h2>
+
+<h2 id="release">Making a New Mesa Release</h2>
<p>
These are the instructions for making a new Mesa release.
@@ -456,7 +564,7 @@ Edit docs/relnotes/X.Y.Z.html to add the sha256sums printed as part of "make
tarballs" in the previous step. Commit this change.
</p>
-<h3>Push all commits and the tag creates above</h3>
+<h3>Push all commits and the tag created above</h3>
<p>
This is the first step that cannot easily be undone. The release is going
@@ -483,7 +591,7 @@ signatures to the freedesktop.org server:
mv ~/MesaLib-X.Y.Z* .
</pre>
-<h3>Back on mesa master, andd the new release notes into the tree</h3>
+<h3>Back on mesa master, add the new release notes into the tree</h3>
<p>
Something like the following steps will do the trick:
@@ -543,6 +651,56 @@ release announcement:
</pre>
</p>
+
+<h2 id="extensions">Adding Extensions</h2>
+
+<p>
+To add a new GL extension to Mesa you have to do at least the following.
+
+<ul>
+<li>
+ If glext.h doesn't define the extension, edit include/GL/gl.h and add
+ code like this:
+ <pre>
+ #ifndef GL_EXT_the_extension_name
+ #define GL_EXT_the_extension_name 1
+ /* declare the new enum tokens */
+ /* prototype the new functions */
+ /* TYPEDEFS for the new functions */
+ #endif
+ </pre>
+</li>
+<li>
+ In the src/mapi/glapi/gen/ directory, add the new extension functions and
+ enums to the gl_API.xml file.
+ Then, a bunch of source files must be regenerated by executing the
+ corresponding Python scripts.
+</li>
+<li>
+ Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
+</li>
+<li>
+ Update the <code>extensions.c</code> file.
+</li>
+<li>
+ From this point, the best way to proceed is to find another extension,
+ similar to the new one, that's already implemented in Mesa and use it
+ as an example.
+</li>
+<li>
+ If the new extension adds new GL state, the functions in get.c, enable.c
+ and attrib.c will most likely require new code.
+</li>
+<li>
+ The dispatch tests check_table.cpp and dispatch_sanity.cpp
+ should be updated with details about the new extensions functions. These
+ tests are run using 'make check'
+</li>
+</ul>
+
+
+
+
</div>
</body>
</html>
diff --git a/mesalib/docs/index.html b/mesalib/docs/index.html
index 325e554df..252242495 100644
--- a/mesalib/docs/index.html
+++ b/mesalib/docs/index.html
@@ -16,6 +16,25 @@
<h1>News</h1>
+<h2>June 14, 2015</h2>
+<p>
+<a href="relnotes/10.6.0.html">Mesa 10.6.0</a> is released. This is a new
+development release. See the release notes for more information about
+the release.
+</p>
+
+<h2>June 07, 2015</h2>
+<p>
+<a href="relnotes/10.5.7.html">Mesa 10.5.7</a> is released.
+This is a bug-fix release.
+</p>
+
+<h2>May 23, 2015</h2>
+<p>
+<a href="relnotes/10.5.6.html">Mesa 10.5.6</a> is released.
+This is a bug-fix release.
+</p>
+
<h2>May 11, 2015</h2>
<p>
<a href="relnotes/10.5.5.html">Mesa 10.5.5</a> is released.
diff --git a/mesalib/docs/relnotes.html b/mesalib/docs/relnotes.html
index 6ba9e5904..a037b9684 100644
--- a/mesalib/docs/relnotes.html
+++ b/mesalib/docs/relnotes.html
@@ -21,6 +21,9 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<ul>
+<li><a href="relnotes/10.6.0.html">10.6.0 release notes</a>
+<li><a href="relnotes/10.5.7.html">10.5.7 release notes</a>
+<li><a href="relnotes/10.5.6.html">10.5.6 release notes</a>
<li><a href="relnotes/10.5.5.html">10.5.5 release notes</a>
<li><a href="relnotes/10.5.4.html">10.5.4 release notes</a>
<li><a href="relnotes/10.5.3.html">10.5.3 release notes</a>
diff --git a/mesalib/docs/relnotes/10.5.6.html b/mesalib/docs/relnotes/10.5.6.html
new file mode 100644
index 000000000..0046b8ff9
--- /dev/null
+++ b/mesalib/docs/relnotes/10.5.6.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.5.6 Release Notes / May 23, 2015</h1>
+
+<p>
+Mesa 10.5.6 is a bug fix release which fixes bugs found since the 10.5.5 release.
+</p>
+<p>
+Mesa 10.5.6 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3. OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+89ff9cb08d0f6e3f34154864c3071253057cd21020759457c8ae27e0f70985d3 mesa-10.5.6.tar.gz
+66017853bde5f7a6647db3eede30512a091a3491daa1708e0ad8027c328ba595 mesa-10.5.6.tar.xz
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86792">Bug 86792</a> - [NVC0] Portal 2 Crashes in Wine</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90147">Bug 90147</a> - swrast: build error undeclared _SC_PHYS_PAGES on osx</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90350">Bug 90350</a> - [G96] Portal's portal are incorrectly rendered</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90363">Bug 90363</a> - [nv50] HW state is not reset correctly when using a new GL context</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Alex Deucher (1):</p>
+<ul>
+ <li>radeonsi: add new bonaire pci id</li>
+</ul>
+
+<p>Axel Davy (2):</p>
+<ul>
+ <li>egl/wayland: properly destroy wayland objects</li>
+ <li>glx/dri3: Add additional check for gpu offloading case</li>
+</ul>
+
+<p>Emil Velikov (4):</p>
+<ul>
+ <li>docs: Add sha256 sums for the 10.5.5 release</li>
+ <li>egl/main: fix EGL_KHR_get_all_proc_addresses</li>
+ <li>targets/osmesa: drop the -module tag from LDFLAGS</li>
+ <li>Update version to 10.5.6</li>
+</ul>
+
+<p>Francisco Jerez (4):</p>
+<ul>
+ <li>clover: Refactor event::trigger and ::abort to prevent deadlock and reentrancy issues.</li>
+ <li>clover: Wrap event::_status in a method to prevent unlocked access.</li>
+ <li>clover: Implement locking of the wait_count, _chain and _status members of event.</li>
+ <li>i965: Fix PBO cache coherency issue after _mesa_meta_pbo_GetTexSubImage().</li>
+</ul>
+
+<p>Fredrik Höglund (2):</p>
+<ul>
+ <li>main: Require that the texture exists in framebuffer_texture</li>
+ <li>mesa: Generate GL_INVALID_VALUE in framebuffer_texture when layer &lt; 0</li>
+</ul>
+
+<p>Ilia Mirkin (7):</p>
+<ul>
+ <li>nv50/ir: only propagate saturate up if some actual folding took place</li>
+ <li>nv50: keep track of PGRAPH state in nv50_screen</li>
+ <li>nvc0: keep track of PGRAPH state in nvc0_screen</li>
+ <li>nvc0: reset the instanced elements state when doing blit using 3d engine</li>
+ <li>nv50/ir: only enable mul saturate on G200+</li>
+ <li>st/mesa: make sure to create a "clean" bool when doing i2b</li>
+ <li>nvc0: switch mechanism for shader eviction to be a while loop</li>
+</ul>
+
+<p>Jeremy Huddleston Sequoia (2):</p>
+<ul>
+ <li>swrast: Build fix for darwin</li>
+ <li>darwin: Fix install name of libOSMesa</li>
+</ul>
+
+<p>Laura Ekstrand (2):</p>
+<ul>
+ <li>main: Fix an error generated by FramebufferTexture</li>
+ <li>main: Complete error conditions for glInvalidate*Framebuffer.</li>
+</ul>
+
+<p>Marta Lofstedt (1):</p>
+<ul>
+ <li>main: glGetIntegeri_v fails for GL_VERTEX_BINDING_STRIDE</li>
+</ul>
+
+<p>Rob Clark (2):</p>
+<ul>
+ <li>freedreno: enable a306</li>
+ <li>freedreno: fix bug in tile/slot calculation</li>
+</ul>
+
+<p>Roland Scheidegger (1):</p>
+<ul>
+ <li>draw: (trivial) fix out-of-bounds vector initialization</li>
+</ul>
+
+<p>Tim Rowley (1):</p>
+<ul>
+ <li>mesa: fix shininess check for ffvertex_prog v2</li>
+</ul>
+
+<p>Tom Stellard (2):</p>
+<ul>
+ <li>clover: Add a mutex to guard queue::queued_events</li>
+ <li>clover: Fix a bug with multi-threaded events v2</li>
+</ul>
+
+
+</div>
+</body>
+</html>
diff --git a/mesalib/docs/relnotes/10.5.7.html b/mesalib/docs/relnotes/10.5.7.html
new file mode 100644
index 000000000..68c838549
--- /dev/null
+++ b/mesalib/docs/relnotes/10.5.7.html
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.5.7 Release Notes / June 07, 2015</h1>
+
+<p>
+Mesa 10.5.7 is a bug fix release which fixes bugs found since the 10.5.6 release.
+</p>
+<p>
+Mesa 10.5.7 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3. OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+8f865ce497435fdf25d4e35f3b5551b2bcd5f9bc6570561183be82af20d18b82 mesa-10.5.7.tar.gz
+04d06890cd69af8089d6ca76f40e46dcf9cacfe4a9788b32be620574d4638818 mesa-10.5.7.tar.xz
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89131">Bug 89131</a> - [Bisected] Graphical corruption in Weston, shows old framebuffer pieces</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Ben Widawsky (1):</p>
+<ul>
+ <li>i965: Emit 3DSTATE_MULTISAMPLE before WM_HZ_OP (gen8+)</li>
+</ul>
+
+<p>Emil Velikov (4):</p>
+<ul>
+ <li>docs: Add sha256sums for the 10.5.6 release</li>
+ <li>get-pick-list.sh: Require explicit "10.5" for nominating stable patches</li>
+ <li>cherry-ignore: add clover build fix not applicable for 10.5</li>
+ <li>Update version to 10.5.7</li>
+</ul>
+
+<p>Ilia Mirkin (18):</p>
+<ul>
+ <li>nvc0/ir: set ftz when sources are floats, not just destinations</li>
+ <li>nv50/ir: guess that the constant offset is the starting slot of array</li>
+ <li>nvc0/ir: LOAD's can't be used for shader inputs</li>
+ <li>nvc0: a geometry shader can have up to 1024 vertices output</li>
+ <li>nv50/ir: avoid messing up arg1 of PFETCH</li>
+ <li>nv30: don't leak fragprog consts</li>
+ <li>nv30: avoid leaking render state and draw shaders</li>
+ <li>nv30: fix clip plane uploads and enable changes</li>
+ <li>nv30/draw: avoid leaving stale pointers in draw state</li>
+ <li>nv30/draw: draw expects constbuf size in bytes, not vec4 units</li>
+ <li>st/mesa: don't leak glsl_to_tgsi object on link failure</li>
+ <li>glsl: avoid leaking linked gl_shader when there's a late linker error</li>
+ <li>nv30/draw: fix indexed draws with swtnl path and a resource index buffer</li>
+ <li>nv30/draw: only use the DMA1 object (GART) if the bo is not in VRAM</li>
+ <li>nv30/draw: allocate vertex buffers in gart</li>
+ <li>nv30/draw: switch varying hookup logic to know about texcoords</li>
+ <li>nv30: falling back to draw path for edgeflag does no good</li>
+ <li>nv30: avoid doing extra work on clear and hitting unexpected states</li>
+</ul>
+
+<p>Jason Ekstrand (1):</p>
+<ul>
+ <li>i965/fs: Fix implied_mrf_writes for scratch writes</li>
+</ul>
+
+<p>Marek Olšák (1):</p>
+<ul>
+ <li>st/dri: fix postprocessing crash when there's no depth buffer</li>
+</ul>
+
+
+</div>
+</body>
+</html>
diff --git a/mesalib/docs/relnotes/10.6.0.html b/mesalib/docs/relnotes/10.6.0.html
index 474a2c71f..ebd1f104d 100644
--- a/mesalib/docs/relnotes/10.6.0.html
+++ b/mesalib/docs/relnotes/10.6.0.html
@@ -14,7 +14,7 @@
<iframe src="../contents.html"></iframe>
<div class="content">
-<h1>Mesa 10.6.0 Release Notes / TBD</h1>
+<h1>Mesa 10.6.0 Release Notes / June 14, 2015</h1>
<p>
Mesa 10.6.0 is a new development release.
@@ -31,9 +31,10 @@ because compatibility contexts are not supported.
</p>
-<h2>MD5 checksums</h2>
+<h2>SHA256 checksums</h2>
<pre>
-TBD.
+9bc659abdba26202509304f259723aaa4343dba6aac4bd87d5baea11d23c8c63 mesa-10.6.0.tar.gz
+f37e2633978deed02ff0522abc36c709586e2b555fd439a82ab71dce2c866c76 mesa-10.6.0.tar.xz
</pre>
@@ -71,7 +72,246 @@ Note: some of the new features are only available with certain drivers.
<h2>Bug fixes</h2>
-TBD.
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=15006">Bug 15006</a> - translate &amp; rotate the line cause Aliasing</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=27007">Bug 27007</a> - Lines disappear with GL_LINE_SMOOTH</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=28832">Bug 28832</a> - piglit/general/line-aa-width fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45348">Bug 45348</a> - [swrast] piglit fbo-drawbuffers-arbfp regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60797">Bug 60797</a> - 1px lines in octave plot aliased to 0</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=67564">Bug 67564</a> - HiZ buffers are much larger than necessary</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69226">Bug 69226</a> - Cannot enable basic shaders with Second Life aborts attempt</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71591">Bug 71591</a> - Second Life shaders fail to compile (extension declared in middle of shader)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79202">Bug 79202</a> - valgrind errors in glsl-fs-uniform-array-loop-unroll.shader_test; random code generation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81025">Bug 81025</a> - [IVB/BYT Bisected]Piglit spec_ARB_draw_indirect_arb_draw_indirect-draw-elements-prim-restart-ugly fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82477">Bug 82477</a> - [softpipe] piglit fp-long-alu regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82668">Bug 82668</a> - Can't set int attributes to certain values on 32-bit</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82831">Bug 82831</a> - i965: Support GL_ARB_blend_func_extended in SIMD16</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83962">Bug 83962</a> - [HSW/BYT]Piglit spec_ARB_gpu_shader5_arb_gpu_shader5-emitstreamvertex_nodraw fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84613">Bug 84613</a> - [G965, bisected] piglit regressions : glslparsertest.glsl2</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86747">Bug 86747</a> - Noise in Football Manager 2014 textures</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86792">Bug 86792</a> - [NVC0] Portal 2 Crashes in Wine</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86811">Bug 86811</a> - [BDW/BSW Bisected]Piglit spec_arb_shading_language_packing_execution_built-in-functions_vs-unpackSnorm4x8 fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86837">Bug 86837</a> - kodi segfault since auxiliary/vl: rework the build of the VL code</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86944">Bug 86944</a> - glsl_parser_extras.cpp&quot;, line 1455: Error: Badly formed expression. (Oracle Studio)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86974">Bug 86974</a> - INTEL_DEBUG=shader_time always asserts in fs_generator::generate_code() when Mesa is built with --enable-debug (= with asserts)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86980">Bug 86980</a> - [swrast] piglit fp-rfl regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87258">Bug 87258</a> - [BDW/BSW Bisected]Piglit spec_ARB_shader_atomic_counters_array-indexing fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88246">Bug 88246</a> - Commit 2881b12 causes 43 DrawElements test regressions</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88248">Bug 88248</a> - Calling glClear while there is an occlusion query in progress messes up the results</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88521">Bug 88521</a> - GLBenchmark 2.7 TRex renders with artifacts on Gen8 with !UXA</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88534">Bug 88534</a> - include/c11/threads_posix.h PTHREAD_MUTEX_RECURSIVE_NP not defined</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88561">Bug 88561</a> - [radeonsi][regression,bisected] Depth test/buffer issues in Portal</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88793">Bug 88793</a> - [BDW/BSW Bisected]Piglit/shaders_glsl-max-varyings fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88815">Bug 88815</a> - Incorrect handling of GLSL #line directive</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88883">Bug 88883</a> - ir-a2xx.c: variable changed in assert statement</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88885">Bug 88885</a> - Transform feedback uses incorrect interleaving if a previous draw did not write gl_Position</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88905">Bug 88905</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88999">Bug 88999</a> - [SKL] Compiz crashes after opening unity dash</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89014">Bug 89014</a> - PIPE_QUERY_GPU_FINISHED is not acting as expected on SI</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89026">Bug 89026</a> - Renderbuffer layered state used for framebuffer completeness test</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89032">Bug 89032</a> - [BDW/BSW/SKL Bisected]Piglit spec_OpenGL_1.1_infinite-spot-light fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89037">Bug 89037</a> - [SKL]Piglit spec_EXT_texture_array_copyteximage_1D_ARRAY_samples=2 sporadically causes GPU hang</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89039">Bug 89039</a> - [SKL]etqw system hang</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89058">Bug 89058</a> - [SKL]Render error in some games (etqw-demo, nexuiz, portal)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89068">Bug 89068</a> - glTexImage2D regression by texstore_rgba switch to _mesa_format_convert</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89069">Bug 89069</a> - Lack of grass in The Talos Principle on radeonsi (native\wine\nine)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89094">Bug 89094</a> - [SNB/IVB/HSW/BYT Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.shadow.shadow_execution_vert fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89095">Bug 89095</a> - [SNB/IVB/BYT Bisected]Webglc conformance/glsl/functions/glsl-function-mix-float.html fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89112">Bug 89112</a> - u_atomic_test: u_atomic_test.c:124: test_atomic_8bits_bool: Assertion `r == 65 &amp;&amp; &quot;p_atomic_add&quot;' failed.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89118">Bug 89118</a> - [SKL Bisected]many Ogles3conform cases core dumped</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89131">Bug 89131</a> - [Bisected] Graphical corruption in Weston, shows old framebuffer pieces</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89156">Bug 89156</a> - r300g: GL_COMPRESSED_RED_RGTC1 / ATI1N support broken</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89180">Bug 89180</a> - [IVB regression] Rendering issues in Mass Effect through VMware Workstation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89210">Bug 89210</a> - GS statistics fail on SNB</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89218">Bug 89218</a> - lower_instructions.cpp:648:48: error: invalid suffix 'd' on floating constant</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89224">Bug 89224</a> - Incorrect rendering of Unigine Valley running in VM on VMware Workstation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89260">Bug 89260</a> - macros.h:34:25: fatal error: util/u_math.h: No such file or directory</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89292">Bug 89292</a> - [regression,bisected] incomplete screenshots in some cases</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89311">Bug 89311</a> - [regression, bisected] dEQP: Added entry points for glCompressedTextureSubImage*D.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89312">Bug 89312</a> - [regression, bisected] main: Added entry points for CopyTextureSubImage*D. (d6b7c40cecfe01)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89315">Bug 89315</a> - [HSW, regression, bisected] i965/fs: Emit MAD instructions when possible.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89317">Bug 89317</a> - [HSW, regression, bisected] i965: Add LINTERP/CINTERP to can_do_cmod() (d91390634)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89328">Bug 89328</a> - python required to build Mesa release tarballs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89342">Bug 89342</a> - main/light.c:159:62: error: 'M_PI' undeclared (first use in this function)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89343">Bug 89343</a> - compiler/tests/radeon_compiler_optimize_tests.c:43:3: error: implicit declaration of function ‘fprintf’ [-Werror=implicit-function-declaration]</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89345">Bug 89345</a> - imports.h:452:58: error: expected declaration specifiers or '...' before 'va_list'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89364">Bug 89364</a> - c99_alloca.h:40:22: fatal error: alloca.h: No such file or directory</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89372">Bug 89372</a> - [softpipe] piglit glsl-1.50 generate-zero-primitives regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89387">Bug 89387</a> - Double delete in lp_bld_misc.cpp</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89416">Bug 89416</a> - UE4Editor crash after load project</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89430">Bug 89430</a> - [g965][bisected] arb_copy_image-targets gl_texture* tests fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89433">Bug 89433</a> - GCC 4.2 does not support -Wvla</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89455">Bug 89455</a> - [NVC0/Gallium] Unigine Heaven black and white boxes</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89457">Bug 89457</a> - [BSW Bisected]ogles3conform ES3-CTS.gtf.GL3Tests.shadow.shadow_execution_vert fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89477">Bug 89477</a> - include/no_extern_c.h:47:1: error: template with C linkage</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89508">Bug 89508</a> - Bad int(floatBitsToInt(vec4))</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89530">Bug 89530</a> - FTBFS in loader: missing fstat</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89569">Bug 89569</a> - Papo &amp; Yo crash on startup [HSW]</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89590">Bug 89590</a> - Crash in glLinkProgram with shaders with multiple constant arrays</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89662">Bug 89662</a> - context.c:943: undefined reference to `_glapi_new_nop_table'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89670">Bug 89670</a> - cmod_propagation_test.andnz_one regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89679">Bug 89679</a> - [NV50] Portal/Half-Life 2 will not start (native Steam)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89689">Bug 89689</a> - [Regression] Weston on DRM backend won't start with new version of mesa</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89722">Bug 89722</a> - [ILK Bisected]Ogles2conform/ES2-CTS.gtf.GL.equal.equal_vec2_frag fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89726">Bug 89726</a> - [Bisected] dEQP-GLES3: uniform linking logic in the presence of structs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89746">Bug 89746</a> - Mesa and LLVM 3.6+ break opengl for genymotion</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89754">Bug 89754</a> - vertexAttrib fails WebGL Conformance test with mesa drivers</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89758">Bug 89758</a> - pow WebGL Conformance test with mesa drivers</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89759">Bug 89759</a> - WebGL OGL ES GLSL conformance test with mesa drivers fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89831">Bug 89831</a> - [r600] r600_asm.c:310:assign_alu_units: Assertion `0' failed.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89899">Bug 89899</a> - nir/nir_lower_tex_projector.c:112: error: unknown field ‘ssa’ specified in initializer</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89957">Bug 89957</a> - vm protection faults in piglit lest: texsubimage cube_map_array pbo</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89960">Bug 89960</a> - [softpipe] piglit copy-pixels regreession</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89961">Bug 89961</a> - [BDW/BSW Bisected]Synmark2_v6 OglDrvRes/OglDrvShComp/OglDrvState/OglPSPom Image Validation fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89963">Bug 89963</a> - lp_bld_debug.cpp:100:31: error: no matching function for call to ‘llvm::raw_ostream::raw_ostream()’</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90000">Bug 90000</a> - [i965 Bisected NIR] Piglit/gglean_fragprog1-z-write_test fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90109">Bug 90109</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.uniform_block.random.basic_arrays.3 fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90114">Bug 90114</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.struct.uniform.sampler_array_fragment fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90130">Bug 90130</a> - gl_PrimitiveId seems to reset at 340</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90147">Bug 90147</a> - swrast: build error undeclared _SC_PHYS_PAGES on osx</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90149">Bug 90149</a> - [SNB+ Bisected]ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90153">Bug 90153</a> - [SKL Bisected]ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_all_valid_basic_types fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90167">Bug 90167</a> - [softpipe] piglit depthstencil-default_fb-drawpixels-32f_24_8_rev regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90207">Bug 90207</a> - [r600g, bisected] regression: NI/Turks crash on WebGL Water (most WebGL stuff)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90213">Bug 90213</a> - glDrawPixels with GL_COLOR_INDEX never returns.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90243">Bug 90243</a> - [bisected] regression: spec.!opengl 3_2.get-active-attrib-returns-all-inputs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90258">Bug 90258</a> - [IVB] spec.glsl-1_10.execution.fs-dfdy-accuracy fails intermittently</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90310">Bug 90310</a> - Fails to build gallium_dri.so at linking stage with clang because of multiple redefinitions</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90350">Bug 90350</a> - [G96] Portal's portal are incorrectly rendered</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90363">Bug 90363</a> - [nv50] HW state is not reset correctly when using a new GL context</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90397">Bug 90397</a> - ARB_program_interface_query: glGetProgramResourceiv() returns wrong value for GL_REFERENCED_BY_*_SHADER prop for GL_UNIFORM for members of an interface block with an instance name</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90466">Bug 90466</a> - arm: linker error ndefined reference to `nir_metadata_preserve'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90520">Bug 90520</a> - Register spilling clobbers registers used elsewhere in the shader</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90547">Bug 90547</a> - [BDW/BSW/SKL Bisected]Piglit/glean&#64;vertprog1-rsq_test_2_(reciprocal_square_root_of_negative_value) fais</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90580">Bug 90580</a> - [HSW bisected] integer multiplication bug</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90629">Bug 90629</a> - [i965] SIMD16 dual_source_blend assertion `src[i].file != GRF || src[i].width == dst.width' failed</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90749">Bug 90749</a> - [BDW Bisected]dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90830">Bug 90830</a> - [bsw bisected regression] GPU hang for spec.arb_gpu_shader5.execution.sampler_array_indexing.vs-nonzero-base</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90839">Bug 90839</a> - [10.5.5/10.6 regression, bisected] PBO glDrawPixels no longer using blit fastpath</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90905">Bug 90905</a> - mesa: Finish subdir-objects transition</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=9951">Bug 9951</a> - GL_LINE_SMOOTH and GL_POLYGON_SMOOTH with i965 driver</li>
+
+</ul>
+
<h2>Changes</h2>
diff --git a/mesalib/docs/relnotes/10.7.0.html b/mesalib/docs/relnotes/10.7.0.html
new file mode 100644
index 000000000..7518389ba
--- /dev/null
+++ b/mesalib/docs/relnotes/10.7.0.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.7.0 Release Notes / TBD</h1>
+
+<p>
+Mesa 10.7.0 is a new development release.
+People who are concerned with stability and reliability should stick
+with a previous release or wait for Mesa 10.7.1.
+</p>
+<p>
+Mesa 10.7.0 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3. OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+TBD.
+</pre>
+
+
+<h2>New features</h2>
+
+<p>
+Note: some of the new features are only available with certain drivers.
+</p>
+
+<ul>
+<li>GL_ARB_shader_stencil_export on llvmpipe</li>
+</ul>
+
+<h2>Bug fixes</h2>
+
+TBD.
+
+<h2>Changes</h2>
+
+TBD.
+
+</div>
+</body>
+</html>
diff --git a/mesalib/include/EGL/egl.h b/mesalib/include/EGL/egl.h
index 99ea342a4..0d514e4de 100644
--- a/mesalib/include/EGL/egl.h
+++ b/mesalib/include/EGL/egl.h
@@ -1,11 +1,12 @@
-/* -*- mode: c; tab-width: 8; -*- */
-/* vi: set sw=4 ts=8: */
-/* Reference version of egl.h for EGL 1.4.
- * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
- */
+#ifndef __egl_h_
+#define __egl_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
+** Copyright (c) 2013-2014 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -26,304 +27,277 @@
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
*/
+/*
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.opengl.org/registry/
+**
+** Khronos $Revision: 31039 $ on $Date: 2015-05-04 17:01:57 -0700 (Mon, 04 May 2015) $
+*/
-#ifndef __egl_h_
-#define __egl_h_
-
-/* All platform-dependent types and macro boilerplate (such as EGLAPI
- * and EGLAPIENTRY) should go in eglplatform.h.
- */
#include <EGL/eglplatform.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+/* Generated on date 20150504 */
+
+/* Generated C header for:
+ * API: egl
+ * Versions considered: .*
+ * Versions emitted: .*
+ * Default extensions included: None
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
-/* EGL Types */
-/* EGLint is defined in eglplatform.h */
+#ifndef EGL_VERSION_1_0
+#define EGL_VERSION_1_0 1
typedef unsigned int EGLBoolean;
-typedef unsigned int EGLenum;
-typedef void *EGLConfig;
-typedef void *EGLContext;
typedef void *EGLDisplay;
+#include <KHR/khrplatform.h>
+#include <EGL/eglplatform.h>
+typedef void *EGLConfig;
typedef void *EGLSurface;
-typedef void *EGLClientBuffer;
-
-/* EGL Versioning */
-#define EGL_VERSION_1_0 1
-#define EGL_VERSION_1_1 1
-#define EGL_VERSION_1_2 1
-#define EGL_VERSION_1_3 1
-#define EGL_VERSION_1_4 1
-
-/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
- * enums are assigned unique values starting at 0x3000.
- */
-
-/* EGL aliases */
-#define EGL_FALSE 0
-#define EGL_TRUE 1
-
-/* Out-of-band handle values */
-#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
-#define EGL_NO_CONTEXT ((EGLContext)0)
-#define EGL_NO_DISPLAY ((EGLDisplay)0)
-#define EGL_NO_SURFACE ((EGLSurface)0)
-
-/* Out-of-band attribute value */
-#define EGL_DONT_CARE ((EGLint)-1)
-
-/* Errors / GetError return values */
-#define EGL_SUCCESS 0x3000
-#define EGL_NOT_INITIALIZED 0x3001
-#define EGL_BAD_ACCESS 0x3002
-#define EGL_BAD_ALLOC 0x3003
-#define EGL_BAD_ATTRIBUTE 0x3004
-#define EGL_BAD_CONFIG 0x3005
-#define EGL_BAD_CONTEXT 0x3006
-#define EGL_BAD_CURRENT_SURFACE 0x3007
-#define EGL_BAD_DISPLAY 0x3008
-#define EGL_BAD_MATCH 0x3009
-#define EGL_BAD_NATIVE_PIXMAP 0x300A
-#define EGL_BAD_NATIVE_WINDOW 0x300B
-#define EGL_BAD_PARAMETER 0x300C
-#define EGL_BAD_SURFACE 0x300D
-#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
-
-/* Reserved 0x300F-0x301F for additional errors */
-
-/* Config attributes */
-#define EGL_BUFFER_SIZE 0x3020
-#define EGL_ALPHA_SIZE 0x3021
-#define EGL_BLUE_SIZE 0x3022
-#define EGL_GREEN_SIZE 0x3023
-#define EGL_RED_SIZE 0x3024
-#define EGL_DEPTH_SIZE 0x3025
-#define EGL_STENCIL_SIZE 0x3026
-#define EGL_CONFIG_CAVEAT 0x3027
-#define EGL_CONFIG_ID 0x3028
-#define EGL_LEVEL 0x3029
-#define EGL_MAX_PBUFFER_HEIGHT 0x302A
-#define EGL_MAX_PBUFFER_PIXELS 0x302B
-#define EGL_MAX_PBUFFER_WIDTH 0x302C
-#define EGL_NATIVE_RENDERABLE 0x302D
-#define EGL_NATIVE_VISUAL_ID 0x302E
-#define EGL_NATIVE_VISUAL_TYPE 0x302F
-#define EGL_SAMPLES 0x3031
-#define EGL_SAMPLE_BUFFERS 0x3032
-#define EGL_SURFACE_TYPE 0x3033
-#define EGL_TRANSPARENT_TYPE 0x3034
-#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
-#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
-#define EGL_TRANSPARENT_RED_VALUE 0x3037
-#define EGL_NONE 0x3038 /* Attrib list terminator */
-#define EGL_BIND_TO_TEXTURE_RGB 0x3039
-#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
-#define EGL_MIN_SWAP_INTERVAL 0x303B
-#define EGL_MAX_SWAP_INTERVAL 0x303C
-#define EGL_LUMINANCE_SIZE 0x303D
-#define EGL_ALPHA_MASK_SIZE 0x303E
-#define EGL_COLOR_BUFFER_TYPE 0x303F
-#define EGL_RENDERABLE_TYPE 0x3040
-#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */
-#define EGL_CONFORMANT 0x3042
-
-/* Reserved 0x3041-0x304F for additional config attributes */
-
-/* Config attribute values */
-#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
-#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
-#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
-#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
-#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
-
-/* More config attribute values, for EGL_TEXTURE_FORMAT */
-#define EGL_NO_TEXTURE 0x305C
-#define EGL_TEXTURE_RGB 0x305D
-#define EGL_TEXTURE_RGBA 0x305E
-#define EGL_TEXTURE_2D 0x305F
-
-/* Config attribute mask bits */
-#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */
-
-#define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */
-
-/* QueryString targets */
-#define EGL_VENDOR 0x3053
-#define EGL_VERSION 0x3054
-#define EGL_EXTENSIONS 0x3055
-#define EGL_CLIENT_APIS 0x308D
-
-/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
-#define EGL_HEIGHT 0x3056
-#define EGL_WIDTH 0x3057
-#define EGL_LARGEST_PBUFFER 0x3058
-#define EGL_TEXTURE_FORMAT 0x3080
-#define EGL_TEXTURE_TARGET 0x3081
-#define EGL_MIPMAP_TEXTURE 0x3082
-#define EGL_MIPMAP_LEVEL 0x3083
-#define EGL_RENDER_BUFFER 0x3086
-#define EGL_VG_COLORSPACE 0x3087
-#define EGL_VG_ALPHA_FORMAT 0x3088
-#define EGL_HORIZONTAL_RESOLUTION 0x3090
-#define EGL_VERTICAL_RESOLUTION 0x3091
-#define EGL_PIXEL_ASPECT_RATIO 0x3092
-#define EGL_SWAP_BEHAVIOR 0x3093
-#define EGL_MULTISAMPLE_RESOLVE 0x3099
-
-/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
-#define EGL_BACK_BUFFER 0x3084
-#define EGL_SINGLE_BUFFER 0x3085
-
-/* OpenVG color spaces */
-#define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */
-#define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */
-
-/* OpenVG alpha formats */
-#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
-#define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
-
-/* Constant scale factor by which fractional display resolutions &
- * aspect ratio are scaled when queried as integer values.
- */
-#define EGL_DISPLAY_SCALING 10000
-
-/* Unknown display resolution/aspect ratio */
-#define EGL_UNKNOWN ((EGLint)-1)
-
-/* Back buffer swap behaviors */
-#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
-#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
-
-/* CreatePbufferFromClientBuffer buffer types */
-#define EGL_OPENVG_IMAGE 0x3096
-
-/* QueryContext targets */
-#define EGL_CONTEXT_CLIENT_TYPE 0x3097
-
-/* CreateContext attributes */
-#define EGL_CONTEXT_CLIENT_VERSION 0x3098
-
-/* Multisample resolution behaviors */
-#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */
-#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */
-
-/* BindAPI/QueryAPI targets */
-#define EGL_OPENGL_ES_API 0x30A0
-#define EGL_OPENVG_API 0x30A1
-#define EGL_OPENGL_API 0x30A2
-
-/* GetCurrentSurface targets */
-#define EGL_DRAW 0x3059
-#define EGL_READ 0x305A
-
-/* WaitNative engines */
-#define EGL_CORE_NATIVE_ENGINE 0x305B
-
-/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
-#define EGL_COLORSPACE EGL_VG_COLORSPACE
-#define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT
-#define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB
-#define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR
-#define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE
-#define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE
-
-/* EGL extensions must request enum blocks from the Khronos
- * API Registrar, who maintains the enumerant registry. Submit
- * a bug in Khronos Bugzilla against task "Registry".
- */
-
-
-
-/* EGL Functions */
-
-EGLAPI EGLint EGLAPIENTRY eglGetError(void);
-
-EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
-EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
-EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
-
-EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
- EGLint config_size, EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
- EGLConfig *configs, EGLint config_size,
- EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
- EGLint attribute, EGLint *value);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
- EGLNativeWindowType win,
- const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
- const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
- EGLNativePixmapType pixmap,
- const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
- EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
-EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
- EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
- EGLConfig config, const EGLint *attrib_list);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
- EGLint attribute, EGLint value);
-EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
-
-
-EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
- EGLContext share_context,
- const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
-EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
- EGLSurface read, EGLContext ctx);
-
-EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
-EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
-EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
- EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
- EGLNativePixmapType target);
-
-/* This is a generic function pointer type, whose name indicates it must
- * be cast to the proper type *and calling convention* before use.
- */
+typedef void *EGLContext;
typedef void (*__eglMustCastToProperFunctionPointerType)(void);
-
-/* Now, define eglGetProcAddress using the generic function ptr. type */
-EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
- eglGetProcAddress(const char *procname);
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_DONT_CARE ((EGLint)-1)
+#define EGL_DRAW 0x3059
+#define EGL_EXTENSIONS 0x3055
+#define EGL_FALSE 0
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_HEIGHT 0x3056
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_NONE 0x3038
+#define EGL_NON_CONFORMANT_CONFIG 0x3051
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+#define EGL_PBUFFER_BIT 0x0001
+#define EGL_PIXMAP_BIT 0x0002
+#define EGL_READ 0x305A
+#define EGL_RED_SIZE 0x3024
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SLOW_CONFIG 0x3050
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_SUCCESS 0x3000
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_TRANSPARENT_RGB 0x3052
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRUE 1
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_WIDTH 0x3057
+#define EGL_WINDOW_BIT 0x0004
+EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
+EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void);
+EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id);
+EGLAPI EGLint EGLAPIENTRY eglGetError (void);
+EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
+EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
+EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
+EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine);
+#endif /* EGL_VERSION_1_0 */
+
+#ifndef EGL_VERSION_1_1
+#define EGL_VERSION_1_1 1
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_CONTEXT_LOST 0x300E
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_TEXTURE_2D 0x305F
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_TARGET 0x3081
+EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval);
+#endif /* EGL_VERSION_1_1 */
+
+#ifndef EGL_VERSION_1_2
+#define EGL_VERSION_1_2 1
+typedef unsigned int EGLenum;
+typedef void *EGLClientBuffer;
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_ALPHA_FORMAT_PRE 0x308C
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_BUFFER_PRESERVED 0x3094
+#define EGL_BUFFER_DESTROYED 0x3095
+#define EGL_CLIENT_APIS 0x308D
+#define EGL_COLORSPACE 0x3087
+#define EGL_COLORSPACE_sRGB 0x3089
+#define EGL_COLORSPACE_LINEAR 0x308A
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+#define EGL_DISPLAY_SCALING 10000
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_LUMINANCE_BUFFER 0x308F
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_OPENGL_ES_BIT 0x0001
+#define EGL_OPENVG_BIT 0x0002
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENVG_API 0x30A1
+#define EGL_OPENVG_IMAGE 0x3096
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_RENDERABLE_TYPE 0x3040
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_RGB_BUFFER 0x308E
+#define EGL_SINGLE_BUFFER 0x3085
+#define EGL_SWAP_BEHAVIOR 0x3093
+#define EGL_UNKNOWN ((EGLint)-1)
+#define EGL_VERTICAL_RESOLUTION 0x3091
+EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api);
+EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void);
+#endif /* EGL_VERSION_1_2 */
+
+#ifndef EGL_VERSION_1_3
+#define EGL_VERSION_1_3 1
+#define EGL_CONFORMANT 0x3042
+#define EGL_CONTEXT_CLIENT_VERSION 0x3098
+#define EGL_MATCH_NATIVE_PIXMAP 0x3041
+#define EGL_OPENGL_ES2_BIT 0x0004
+#define EGL_VG_ALPHA_FORMAT 0x3088
+#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_VG_ALPHA_FORMAT_PRE 0x308C
+#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
+#define EGL_VG_COLORSPACE 0x3087
+#define EGL_VG_COLORSPACE_sRGB 0x3089
+#define EGL_VG_COLORSPACE_LINEAR 0x308A
+#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
+#endif /* EGL_VERSION_1_3 */
+
+#ifndef EGL_VERSION_1_4
+#define EGL_VERSION_1_4 1
+#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
+#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
+#define EGL_MULTISAMPLE_RESOLVE 0x3099
+#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
+#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
+#define EGL_OPENGL_API 0x30A2
+#define EGL_OPENGL_BIT 0x0008
+#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
+EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void);
+#endif /* EGL_VERSION_1_4 */
+
+#ifndef EGL_VERSION_1_5
+#define EGL_VERSION_1_5 1
+typedef void *EGLSync;
+typedef intptr_t EGLAttrib;
+typedef khronos_utime_nanoseconds_t EGLTime;
+typedef void *EGLImage;
+#define EGL_CONTEXT_MAJOR_VERSION 0x3098
+#define EGL_CONTEXT_MINOR_VERSION 0x30FB
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
+#define EGL_NO_RESET_NOTIFICATION 0x31BE
+#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
+#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
+#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
+#define EGL_OPENGL_ES3_BIT 0x00000040
+#define EGL_CL_EVENT_HANDLE 0x309C
+#define EGL_SYNC_CL_EVENT 0x30FE
+#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
+#define EGL_SYNC_TYPE 0x30F7
+#define EGL_SYNC_STATUS 0x30F1
+#define EGL_SYNC_CONDITION 0x30F8
+#define EGL_SIGNALED 0x30F2
+#define EGL_UNSIGNALED 0x30F3
+#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
+#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull
+#define EGL_TIMEOUT_EXPIRED 0x30F5
+#define EGL_CONDITION_SATISFIED 0x30F6
+#define EGL_NO_SYNC ((EGLSync)0)
+#define EGL_SYNC_FENCE 0x30F9
+#define EGL_GL_COLORSPACE 0x309D
+#define EGL_GL_COLORSPACE_SRGB 0x3089
+#define EGL_GL_COLORSPACE_LINEAR 0x308A
+#define EGL_GL_RENDERBUFFER 0x30B9
+#define EGL_GL_TEXTURE_2D 0x30B1
+#define EGL_GL_TEXTURE_LEVEL 0x30BC
+#define EGL_GL_TEXTURE_3D 0x30B2
+#define EGL_GL_TEXTURE_ZOFFSET 0x30BD
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
+#define EGL_IMAGE_PRESERVED 0x30D2
+#define EGL_NO_IMAGE ((EGLImage)0)
+EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync);
+EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
+EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags);
+#endif /* EGL_VERSION_1_5 */
#ifdef __cplusplus
}
#endif
-#endif /* __egl_h_ */
+#endif
diff --git a/mesalib/include/EGL/eglext.h b/mesalib/include/EGL/eglext.h
index 88b39dbc4..6043b374f 100644
--- a/mesalib/include/EGL/eglext.h
+++ b/mesalib/include/EGL/eglext.h
@@ -6,7 +6,7 @@ extern "C" {
#endif
/*
-** Copyright (c) 2013 The Khronos Group Inc.
+** Copyright (c) 2013-2014 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -33,12 +33,12 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
-** Khronos $Revision: 24567 $ on $Date: 2013-12-18 09:50:17 -0800 (Wed, 18 Dec 2013) $
+** Khronos $Revision$ on $Date$
*/
#include <EGL/eglplatform.h>
-#define EGL_EGLEXT_VERSION 20131218
+#define EGL_EGLEXT_VERSION 20150508
/* Generated C header for:
* API: egl
@@ -94,12 +94,28 @@ EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type,
#define EGL_OPENGL_ES3_BIT_KHR 0x00000040
#endif /* EGL_KHR_create_context */
+#ifndef EGL_KHR_create_context_no_error
+#define EGL_KHR_create_context_no_error 1
+#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
+#endif /* EGL_KHR_create_context_no_error */
+
#ifndef EGL_KHR_fence_sync
#define EGL_KHR_fence_sync 1
+typedef khronos_utime_nanoseconds_t EGLTimeKHR;
#ifdef KHRONOS_SUPPORT_INT64
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
#define EGL_SYNC_CONDITION_KHR 0x30F8
#define EGL_SYNC_FENCE_KHR 0x30F9
+typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
+EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
+#endif
#endif /* KHRONOS_SUPPORT_INT64 */
#endif /* EGL_KHR_fence_sync */
@@ -207,9 +223,38 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface s
#endif
#endif /* EGL_KHR_lock_surface3 */
+#ifndef EGL_KHR_partial_update
+#define EGL_KHR_partial_update 1
+#define EGL_BUFFER_AGE_KHR 0x313D
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#endif
+#endif /* EGL_KHR_partial_update */
+
+#ifndef EGL_KHR_platform_android
+#define EGL_KHR_platform_android 1
+#define EGL_PLATFORM_ANDROID_KHR 0x3141
+#endif /* EGL_KHR_platform_android */
+
+#ifndef EGL_KHR_platform_gbm
+#define EGL_KHR_platform_gbm 1
+#define EGL_PLATFORM_GBM_KHR 0x31D7
+#endif /* EGL_KHR_platform_gbm */
+
+#ifndef EGL_KHR_platform_wayland
+#define EGL_KHR_platform_wayland 1
+#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
+#endif /* EGL_KHR_platform_wayland */
+
+#ifndef EGL_KHR_platform_x11
+#define EGL_KHR_platform_x11 1
+#define EGL_PLATFORM_X11_KHR 0x31D5
+#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
+#endif /* EGL_KHR_platform_x11 */
+
#ifndef EGL_KHR_reusable_sync
#define EGL_KHR_reusable_sync 1
-typedef khronos_utime_nanoseconds_t EGLTimeKHR;
#ifdef KHRONOS_SUPPORT_INT64
#define EGL_SYNC_STATUS_KHR 0x30F1
#define EGL_SIGNALED_KHR 0x30F2
@@ -221,17 +266,9 @@ typedef khronos_utime_nanoseconds_t EGLTimeKHR;
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0)
-typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
-EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
#endif
#endif /* KHRONOS_SUPPORT_INT64 */
#endif /* EGL_KHR_reusable_sync */
@@ -333,6 +370,14 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy,
#define EGL_KHR_surfaceless_context 1
#endif /* EGL_KHR_surfaceless_context */
+#ifndef EGL_KHR_swap_buffers_with_damage
+#define EGL_KHR_swap_buffers_with_damage 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#endif
+#endif /* EGL_KHR_swap_buffers_with_damage */
+
#ifndef EGL_KHR_vg_parent_image
#define EGL_KHR_vg_parent_image 1
#define EGL_VG_PARENT_IMAGE_KHR 0x30BA
@@ -389,6 +434,12 @@ EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR
#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
+#ifndef EGL_ANGLE_device_d3d
+#define EGL_ANGLE_device_d3d 1
+#define EGL_D3D9_DEVICE_ANGLE 0x33A0
+#define EGL_D3D11_DEVICE_ANGLE 0x33A1
+#endif /* EGL_ANGLE_device_d3d */
+
#ifndef EGL_ANGLE_query_surface_pointer
#define EGL_ANGLE_query_surface_pointer 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
@@ -401,6 +452,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
+#ifndef EGL_ANGLE_window_fixed_size
+#define EGL_ANGLE_window_fixed_size 1
+#define EGL_FIXED_SIZE_ANGLE 0x3201
+#endif /* EGL_ANGLE_window_fixed_size */
+
#ifndef EGL_ARM_pixmap_multisample_discard
#define EGL_ARM_pixmap_multisample_discard 1
#define EGL_DISCARD_SAMPLES_ARM 0x3286
@@ -423,6 +479,42 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
#endif /* EGL_EXT_create_context_robustness */
+#ifndef EGL_EXT_device_base
+#define EGL_EXT_device_base 1
+typedef void *EGLDeviceEXT;
+#define EGL_NO_DEVICE_EXT ((EGLDeviceEXT)(0))
+#define EGL_BAD_DEVICE_EXT 0x322B
+#define EGL_DEVICE_EXT 0x322C
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+#endif
+#endif /* EGL_EXT_device_base */
+
+#ifndef EGL_EXT_device_drm
+#define EGL_EXT_device_drm 1
+#define EGL_DRM_DEVICE_FILE_EXT 0x3233
+#endif /* EGL_EXT_device_drm */
+
+#ifndef EGL_EXT_device_enumeration
+#define EGL_EXT_device_enumeration 1
+#endif /* EGL_EXT_device_enumeration */
+
+#ifndef EGL_EXT_device_openwf
+#define EGL_EXT_device_openwf 1
+#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
+#endif /* EGL_EXT_device_openwf */
+
+#ifndef EGL_EXT_device_query
+#define EGL_EXT_device_query 1
+#endif /* EGL_EXT_device_query */
+
#ifndef EGL_EXT_image_dma_buf_import
#define EGL_EXT_image_dma_buf_import 1
#define EGL_LINUX_DMA_BUF_EXT 0x3270
@@ -454,6 +546,48 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
#endif /* EGL_EXT_multiview_window */
+#ifndef EGL_EXT_output_base
+#define EGL_EXT_output_base 1
+typedef void *EGLOutputLayerEXT;
+typedef void *EGLOutputPortEXT;
+#define EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0)
+#define EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0)
+#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D
+#define EGL_BAD_OUTPUT_PORT_EXT 0x322E
+#define EGL_SWAP_INTERVAL_EXT 0x322F
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
+EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+#endif
+#endif /* EGL_EXT_output_base */
+
+#ifndef EGL_EXT_output_drm
+#define EGL_EXT_output_drm 1
+#define EGL_DRM_CRTC_EXT 0x3234
+#define EGL_DRM_PLANE_EXT 0x3235
+#define EGL_DRM_CONNECTOR_EXT 0x3236
+#endif /* EGL_EXT_output_drm */
+
+#ifndef EGL_EXT_output_openwf
+#define EGL_EXT_output_openwf 1
+#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
+#define EGL_OPENWF_PORT_ID_EXT 0x3239
+#endif /* EGL_EXT_output_openwf */
+
#ifndef EGL_EXT_platform_base
#define EGL_EXT_platform_base 1
typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
@@ -466,6 +600,11 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
#endif
#endif /* EGL_EXT_platform_base */
+#ifndef EGL_EXT_platform_device
+#define EGL_EXT_platform_device 1
+#define EGL_PLATFORM_DEVICE_EXT 0x313F
+#endif /* EGL_EXT_platform_device */
+
#ifndef EGL_EXT_platform_wayland
#define EGL_EXT_platform_wayland 1
#define EGL_PLATFORM_WAYLAND_EXT 0x31D8
@@ -477,6 +616,19 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
#endif /* EGL_EXT_platform_x11 */
+#ifndef EGL_EXT_protected_surface
+#define EGL_EXT_protected_surface 1
+#define EGL_PROTECTED_CONTENT_EXT 0x32C0
+#endif /* EGL_EXT_protected_surface */
+
+#ifndef EGL_EXT_stream_consumer_egloutput
+#define EGL_EXT_stream_consumer_egloutput 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+#endif
+#endif /* EGL_EXT_stream_consumer_egloutput */
+
#ifndef EGL_EXT_swap_buffers_with_damage
#define EGL_EXT_swap_buffers_with_damage 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
@@ -485,6 +637,35 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSu
#endif
#endif /* EGL_EXT_swap_buffers_with_damage */
+#ifndef EGL_EXT_yuv_surface
+#define EGL_EXT_yuv_surface 1
+#define EGL_YUV_ORDER_EXT 0x3301
+#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
+#define EGL_YUV_SUBSAMPLE_EXT 0x3312
+#define EGL_YUV_DEPTH_RANGE_EXT 0x3317
+#define EGL_YUV_CSC_STANDARD_EXT 0x330A
+#define EGL_YUV_PLANE_BPP_EXT 0x331A
+#define EGL_YUV_BUFFER_EXT 0x3300
+#define EGL_YUV_ORDER_YUV_EXT 0x3302
+#define EGL_YUV_ORDER_YVU_EXT 0x3303
+#define EGL_YUV_ORDER_YUYV_EXT 0x3304
+#define EGL_YUV_ORDER_UYVY_EXT 0x3305
+#define EGL_YUV_ORDER_YVYU_EXT 0x3306
+#define EGL_YUV_ORDER_VYUY_EXT 0x3307
+#define EGL_YUV_ORDER_AYUV_EXT 0x3308
+#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
+#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
+#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
+#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
+#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
+#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
+#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
+#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
+#define EGL_YUV_PLANE_BPP_0_EXT 0x331B
+#define EGL_YUV_PLANE_BPP_8_EXT 0x331C
+#define EGL_YUV_PLANE_BPP_10_EXT 0x331D
+#endif /* EGL_EXT_yuv_surface */
+
#ifndef EGL_HI_clientpixmap
#define EGL_HI_clientpixmap 1
struct EGLClientPixmapHI {
@@ -533,11 +714,42 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR
#endif
#endif /* EGL_MESA_drm_image */
+#ifndef EGL_MESA_image_dma_buf_export
+#define EGL_MESA_image_dma_buf_export 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
+#endif
+#endif /* EGL_MESA_image_dma_buf_export */
+
#ifndef EGL_MESA_platform_gbm
#define EGL_MESA_platform_gbm 1
#define EGL_PLATFORM_GBM_MESA 0x31D7
#endif /* EGL_MESA_platform_gbm */
+#ifndef EGL_NOK_swap_region
+#define EGL_NOK_swap_region 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#endif
+#endif /* EGL_NOK_swap_region */
+
+#ifndef EGL_NOK_swap_region2
+#define EGL_NOK_swap_region2 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#endif
+#endif /* EGL_NOK_swap_region2 */
+
+#ifndef EGL_NOK_texture_from_pixmap
+#define EGL_NOK_texture_from_pixmap 1
+#define EGL_Y_INVERTED_NOK 0x307F
+#endif /* EGL_NOK_texture_from_pixmap */
+
#ifndef EGL_NV_3dvision_surface
#define EGL_NV_3dvision_surface 1
#define EGL_AUTO_STEREO_NV 0x3136
@@ -556,6 +768,13 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR
#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
#endif /* EGL_NV_coverage_sample_resolve */
+#ifndef EGL_NV_cuda_event
+#define EGL_NV_cuda_event 1
+#define EGL_CUDA_EVENT_HANDLE_NV 0x323B
+#define EGL_SYNC_CUDA_EVENT_NV 0x323C
+#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
+#endif /* EGL_NV_cuda_event */
+
#ifndef EGL_NV_depth_nonlinear
#define EGL_NV_depth_nonlinear 1
#define EGL_DEPTH_ENCODING_NV 0x30E2
@@ -563,6 +782,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR
#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
#endif /* EGL_NV_depth_nonlinear */
+#ifndef EGL_NV_device_cuda
+#define EGL_NV_device_cuda 1
+#define EGL_CUDA_DEVICE_NV 0x323A
+#endif /* EGL_NV_device_cuda */
+
#ifndef EGL_NV_native_query
#define EGL_NV_native_query 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id);
@@ -645,6 +869,16 @@ EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
#endif /* KHRONOS_SUPPORT_INT64 */
#endif /* EGL_NV_system_time */
+#ifndef EGL_TIZEN_image_native_buffer
+#define EGL_TIZEN_image_native_buffer 1
+#define EGL_NATIVE_BUFFER_TIZEN 0x32A0
+#endif /* EGL_TIZEN_image_native_buffer */
+
+#ifndef EGL_TIZEN_image_native_surface
+#define EGL_TIZEN_image_native_surface 1
+#define EGL_NATIVE_SURFACE_TIZEN 0x32A1
+#endif /* EGL_TIZEN_image_native_surface */
+
#include <EGL/eglmesaext.h>
#include <EGL/eglextchromium.h>
diff --git a/mesalib/include/EGL/eglmesaext.h b/mesalib/include/EGL/eglmesaext.h
index 87748cadb..917a2043c 100644
--- a/mesalib/include/EGL/eglmesaext.h
+++ b/mesalib/include/EGL/eglmesaext.h
@@ -87,45 +87,14 @@ typedef struct wl_buffer * (EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL) (
#endif
-#ifndef EGL_NOK_swap_region
-#define EGL_NOK_swap_region 1
-
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
-#endif
-
+/* remnant of EGL_NOK_swap_region kept for compatibility because of a non-standard type name */
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
-#endif
-
-#ifndef EGL_NOK_texture_from_pixmap
-#define EGL_NOK_texture_from_pixmap 1
-
-#define EGL_Y_INVERTED_NOK 0x307F
-#endif /* EGL_NOK_texture_from_pixmap */
-
-#ifndef EGL_ANDROID_image_native_buffer
-#define EGL_ANDROID_image_native_buffer 1
-#define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */
-#endif
#ifndef EGL_MESA_configless_context
#define EGL_MESA_configless_context 1
#define EGL_NO_CONFIG_MESA ((EGLConfig)0)
#endif
-#if KHRONOS_SUPPORT_INT64
-#ifndef EGL_MESA_image_dma_buf_export
-#define EGL_MESA_image_dma_buf_export 1
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *fourcc, EGLint *nplanes, EGLuint64KHR *modifiers);
-EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
-#endif
-#endif
-
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESA) (EGLDisplay dpy, EGLImageKHR image, EGLint *fourcc, EGLint *nplanes, EGLuint64KHR *modifiers);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESA) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
-
-#endif
#ifdef __cplusplus
}
#endif
diff --git a/mesalib/include/EGL/eglplatform.h b/mesalib/include/EGL/eglplatform.h
index 2eb686590..7802542ad 100644
--- a/mesalib/include/EGL/eglplatform.h
+++ b/mesalib/include/EGL/eglplatform.h
@@ -2,7 +2,7 @@
#define __eglplatform_h_
/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
+** Copyright (c) 2007-2013 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -25,7 +25,7 @@
*/
/* Platform-specific types and definitions for egl.h
- * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
+ * $Revision: 30994 $ on $Date: 2015-04-30 13:36:48 -0700 (Thu, 30 Apr 2015) $
*
* Adopters may modify khrplatform.h and this file to suit their platform.
* You are encouraged to submit all modifications to the Khronos group so that
@@ -77,7 +77,7 @@ typedef HDC EGLNativeDisplayType;
typedef HBITMAP EGLNativePixmapType;
typedef HWND EGLNativeWindowType;
-#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
+#elif defined(__APPLE__) || defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
typedef int EGLNativeDisplayType;
typedef void *EGLNativeWindowType;
@@ -95,14 +95,15 @@ typedef struct gbm_device *EGLNativeDisplayType;
typedef struct gbm_bo *EGLNativePixmapType;
typedef void *EGLNativeWindowType;
-#elif defined(ANDROID) /* Android */
+#elif defined(__ANDROID__) || defined(ANDROID)
+
+#include <android/native_window.h>
-struct ANativeWindow;
struct egl_native_pixmap_t;
-typedef struct ANativeWindow *EGLNativeWindowType;
-typedef struct egl_native_pixmap_t *EGLNativePixmapType;
-typedef void *EGLNativeDisplayType;
+typedef struct ANativeWindow* EGLNativeWindowType;
+typedef struct egl_native_pixmap_t* EGLNativePixmapType;
+typedef void* EGLNativeDisplayType;
#elif defined(__unix__)
@@ -131,9 +132,7 @@ typedef khronos_uintptr_t EGLNativePixmapType;
typedef khronos_uintptr_t EGLNativeWindowType;
#else
-
#error "Platform not recognized"
-
#endif
/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
diff --git a/mesalib/include/KHR/khrplatform.h b/mesalib/include/KHR/khrplatform.h
index 447953940..790de44b8 100644
--- a/mesalib/include/KHR/khrplatform.h
+++ b/mesalib/include/KHR/khrplatform.h
@@ -26,7 +26,7 @@
/* Khronos platform-specific types and definitions.
*
- * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
+ * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
*
* Adopters may modify this file to suit their platform. Adopters are
* encouraged to submit platform specific modifications to the Khronos
@@ -106,9 +106,9 @@
#elif defined (__SYMBIAN32__)
# define KHRONOS_APICALL IMPORT_C
#elif (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303) \
- || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+ || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
/* KHRONOS_APIATTRIBUTES is not used by the client API headers yet */
-# define KHRONOS_APICALL __attribute__((visibility("default")))
+# define KHRONOS_APICALL __attribute__((visibility("default")))
#else
# define KHRONOS_APICALL
#endif
@@ -229,10 +229,23 @@ typedef signed char khronos_int8_t;
typedef unsigned char khronos_uint8_t;
typedef signed short int khronos_int16_t;
typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef _WIN64
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_t;
typedef signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t;
+#endif
#if KHRONOS_SUPPORT_FLOAT
/*
diff --git a/mesalib/scons/llvm.py b/mesalib/scons/llvm.py
index 17278df88..c59b8cb93 100644
--- a/mesalib/scons/llvm.py
+++ b/mesalib/scons/llvm.py
@@ -120,6 +120,7 @@ def generate(env):
])
elif llvm_version >= distutils.version.LooseVersion('3.5'):
env.Prepend(LIBS = [
+ 'LLVMMCDisassembler',
'LLVMBitWriter', 'LLVMMCJIT', 'LLVMRuntimeDyld',
'LLVMX86Disassembler', 'LLVMX86AsmParser', 'LLVMX86CodeGen',
'LLVMSelectionDAG', 'LLVMAsmPrinter', 'LLVMX86Desc',
@@ -132,6 +133,7 @@ def generate(env):
])
else:
env.Prepend(LIBS = [
+ 'LLVMMCDisassembler',
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
'LLVMX86CodeGen', 'LLVMX86Desc', 'LLVMSelectionDAG',
'LLVMAsmPrinter', 'LLVMMCParser', 'LLVMX86AsmPrinter',
@@ -189,7 +191,7 @@ def generate(env):
if '-fno-rtti' in cxxflags:
env.Append(CXXFLAGS = ['-fno-rtti'])
- components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter']
+ components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter', 'mcdisassembler']
env.ParseConfig('llvm-config --libs ' + ' '.join(components))
env.ParseConfig('llvm-config --ldflags')
diff --git a/mesalib/src/Makefile.am b/mesalib/src/Makefile.am
index 18cb4ce76..5d69abd99 100644
--- a/mesalib/src/Makefile.am
+++ b/mesalib/src/Makefile.am
@@ -72,4 +72,5 @@ noinst_LTLIBRARIES = libglsl_util.la
libglsl_util_la_SOURCES = \
mesa/main/imports.c \
mesa/program/prog_hash_table.c \
- mesa/program/symbol_table.c
+ mesa/program/symbol_table.c \
+ mesa/program/dummy_errors.c
diff --git a/mesalib/src/gallium/Android.common.mk b/mesalib/src/gallium/Android.common.mk
index 782510ff0..7c6c7ac68 100644
--- a/mesalib/src/gallium/Android.common.mk
+++ b/mesalib/src/gallium/Android.common.mk
@@ -29,4 +29,12 @@ LOCAL_C_INCLUDES += \
$(GALLIUM_TOP)/winsys \
$(GALLIUM_TOP)/drivers
+ifeq ($(MESA_ENABLE_LLVM),true)
+LOCAL_C_INCLUDES += \
+ external/llvm/include \
+ external/llvm/device/include \
+ external/libcxx/include \
+ external/elfutils/$(if $(filter true,$(MESA_LOLLIPOP_BUILD)),0.153/)libelf
+endif
+
include $(MESA_COMMON_MK)
diff --git a/mesalib/src/gallium/Android.mk b/mesalib/src/gallium/Android.mk
index b2662ffca..b94668184 100644
--- a/mesalib/src/gallium/Android.mk
+++ b/mesalib/src/gallium/Android.mk
@@ -33,7 +33,9 @@ SUBDIRS := auxiliary
#
# swrast
-SUBDIRS += winsys/sw/android drivers/softpipe
+ifneq ($(filter swrast,$(MESA_GPU_DRIVERS)),)
+SUBDIRS += winsys/sw/dri winsys/sw/kms-dri drivers/softpipe
+endif
# freedreno
ifneq ($(filter freedreno, $(MESA_GPU_DRIVERS)),)
@@ -74,10 +76,17 @@ endif
endif
endif
+# vc4
+ifneq ($(filter vc4, $(MESA_GPU_DRIVERS)),)
+SUBDIRS += winsys/vc4/drm drivers/vc4
+endif
+
# vmwgfx
ifneq ($(filter vmwgfx, $(MESA_GPU_DRIVERS)),)
SUBDIRS += winsys/svga/drm drivers/svga
endif
-mkfiles := $(patsubst %,$(GALLIUM_TOP)/%/Android.mk,$(SUBDIRS))
-include $(mkfiles)
+# Gallium state trackers and target for dri
+SUBDIRS += state_trackers/dri targets/dri
+
+include $(call all-named-subdir-makefiles,$(SUBDIRS))
diff --git a/mesalib/src/gallium/auxiliary/Android.mk b/mesalib/src/gallium/auxiliary/Android.mk
index 96a2125de..86430eb6a 100644
--- a/mesalib/src/gallium/auxiliary/Android.mk
+++ b/mesalib/src/gallium/auxiliary/Android.mk
@@ -30,12 +30,23 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
$(C_SOURCES) \
+ $(NIR_SOURCES) \
$(VL_STUB_SOURCES)
LOCAL_C_INCLUDES := \
$(GALLIUM_TOP)/auxiliary/util
+ifeq ($(MESA_ENABLE_LLVM),true)
+LOCAL_SRC_FILES += \
+ $(GALLIVM_SOURCES) \
+ $(GALLIVM_CPP_SOURCES)
+
+LOCAL_CPPFLAGS := -std=c++11
+endif
+
+# We need libmesa_glsl to get NIR's generated include directories.
LOCAL_MODULE := libmesa_gallium
+LOCAL_STATIC_LIBRARIES += libmesa_glsl
# generate sources
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
diff --git a/mesalib/src/gallium/auxiliary/hud/hud_context.c b/mesalib/src/gallium/auxiliary/hud/hud_context.c
index 00ec20589..6a124f7d7 100644
--- a/mesalib/src/gallium/auxiliary/hud/hud_context.c
+++ b/mesalib/src/gallium/auxiliary/hud/hud_context.c
@@ -423,6 +423,8 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex)
cso_save_viewport(cso);
cso_save_stream_outputs(cso);
cso_save_geometry_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_vertex_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -456,6 +458,8 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex)
cso_set_rasterizer(cso, &hud->rasterizer);
cso_set_viewport(cso, &viewport);
cso_set_stream_outputs(cso, 0, NULL, NULL);
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
cso_set_vertex_shader_handle(cso, hud->vs);
cso_set_vertex_elements(cso, 2, hud->velems);
@@ -548,6 +552,8 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex)
cso_restore_rasterizer(cso);
cso_restore_viewport(cso);
cso_restore_stream_outputs(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_shader(cso);
cso_restore_vertex_elements(cso);
diff --git a/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c b/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c
index 59aaf6778..1702b4139 100644
--- a/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c
+++ b/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c
@@ -401,7 +401,6 @@ ttn_src_for_file_and_index(struct ttn_compile *c, unsigned file, unsigned index,
load->num_components = 4;
load->const_index[0] = index;
- load->const_index[1] = 1;
if (dim) {
if (dimind) {
load->src[srcn] =
@@ -1625,7 +1624,6 @@ ttn_emit_instruction(struct ttn_compile *c)
}
if (tgsi_inst->Instruction.Saturate) {
- assert(tgsi_inst->Instruction.Saturate == TGSI_SAT_ZERO_ONE);
assert(!dest.dest.is_ssa);
ttn_move_dest(b, dest, nir_fsat(b, ttn_src_for_dest(b, &dest)));
}
@@ -1672,7 +1670,6 @@ ttn_add_output_stores(struct ttn_compile *c)
nir_intrinsic_instr_create(b->shader, nir_intrinsic_store_output);
store->num_components = 4;
store->const_index[0] = var->data.driver_location + i;
- store->const_index[1] = 1;
store->src[0].reg.reg = c->output_regs[var->data.driver_location].reg;
nir_instr_insert_after_cf_list(b->cf_node_list, &store->instr);
}
diff --git a/mesalib/src/gallium/auxiliary/util/u_blit.c b/mesalib/src/gallium/auxiliary/util/u_blit.c
index 90408ffdc..3f3b5fe63 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blit.c
+++ b/mesalib/src/gallium/auxiliary/util/u_blit.c
@@ -535,6 +535,8 @@ util_blit_pixels_tex(struct blit_state *ctx,
cso_save_framebuffer(ctx->cso);
cso_save_fragment_shader(ctx->cso);
cso_save_vertex_shader(ctx->cso);
+ cso_save_tessctrl_shader(ctx->cso);
+ cso_save_tesseval_shader(ctx->cso);
cso_save_geometry_shader(ctx->cso);
cso_save_vertex_elements(ctx->cso);
cso_save_aux_vertex_buffer_slot(ctx->cso);
@@ -571,6 +573,8 @@ util_blit_pixels_tex(struct blit_state *ctx,
set_fragment_shader(ctx, TGSI_WRITEMASK_XYZW,
src_sampler_view->texture->target);
set_vertex_shader(ctx);
+ cso_set_tessctrl_shader_handle(ctx->cso, NULL);
+ cso_set_tesseval_shader_handle(ctx->cso, NULL);
cso_set_geometry_shader_handle(ctx->cso, NULL);
/* drawing dest */
@@ -611,6 +615,8 @@ util_blit_pixels_tex(struct blit_state *ctx,
cso_restore_framebuffer(ctx->cso);
cso_restore_fragment_shader(ctx->cso);
cso_restore_vertex_shader(ctx->cso);
+ cso_restore_tessctrl_shader(ctx->cso);
+ cso_restore_tesseval_shader(ctx->cso);
cso_restore_geometry_shader(ctx->cso);
cso_restore_vertex_elements(ctx->cso);
cso_restore_aux_vertex_buffer_slot(ctx->cso);
diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.c b/mesalib/src/gallium/auxiliary/util/u_blitter.c
index 24a5b93e1..16bf90fc9 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blitter.c
+++ b/mesalib/src/gallium/auxiliary/util/u_blitter.c
@@ -130,6 +130,7 @@ struct blitter_context_priv
unsigned dst_height;
boolean has_geometry_shader;
+ boolean has_tessellation;
boolean has_layered;
boolean has_stream_out;
boolean has_stencil_export;
@@ -183,6 +184,11 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe)
ctx->has_geometry_shader =
pipe->screen->get_shader_param(pipe->screen, PIPE_SHADER_GEOMETRY,
PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0;
+
+ ctx->has_tessellation =
+ pipe->screen->get_shader_param(pipe->screen, PIPE_SHADER_TESS_CTRL,
+ PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0;
+
ctx->has_stream_out =
pipe->screen->get_param(pipe->screen,
PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS) != 0;
@@ -510,6 +516,8 @@ static void blitter_check_saved_vertex_states(struct blitter_context_priv *ctx)
assert(ctx->base.saved_velem_state != INVALID_PTR);
assert(ctx->base.saved_vs != INVALID_PTR);
assert(!ctx->has_geometry_shader || ctx->base.saved_gs != INVALID_PTR);
+ assert(!ctx->has_tessellation || ctx->base.saved_tcs != INVALID_PTR);
+ assert(!ctx->has_tessellation || ctx->base.saved_tes != INVALID_PTR);
assert(!ctx->has_stream_out || ctx->base.saved_num_so_targets != ~0);
assert(ctx->base.saved_rs_state != INVALID_PTR);
}
@@ -538,6 +546,13 @@ static void blitter_restore_vertex_states(struct blitter_context_priv *ctx)
ctx->base.saved_gs = INVALID_PTR;
}
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, ctx->base.saved_tcs);
+ pipe->bind_tes_state(pipe, ctx->base.saved_tes);
+ ctx->base.saved_tcs = INVALID_PTR;
+ ctx->base.saved_tes = INVALID_PTR;
+ }
+
/* Stream outputs. */
if (ctx->has_stream_out) {
unsigned offsets[PIPE_MAX_SO_BUFFERS];
@@ -1108,6 +1123,10 @@ static void blitter_set_common_draw_rect_state(struct blitter_context_priv *ctx,
if (ctx->has_geometry_shader)
pipe->bind_gs_state(pipe, NULL);
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, NULL);
+ pipe->bind_tes_state(pipe, NULL);
+ }
if (ctx->has_stream_out)
pipe->set_stream_output_targets(pipe, 0, NULL, NULL);
}
@@ -1967,6 +1986,10 @@ void util_blitter_copy_buffer(struct blitter_context *blitter,
bind_vs_pos_only(ctx);
if (ctx->has_geometry_shader)
pipe->bind_gs_state(pipe, NULL);
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, NULL);
+ pipe->bind_tes_state(pipe, NULL);
+ }
pipe->bind_rasterizer_state(pipe, ctx->rs_discard_state);
so_target = pipe->create_stream_output_target(pipe, dst, dstx, size);
@@ -2027,6 +2050,10 @@ void util_blitter_clear_buffer(struct blitter_context *blitter,
bind_vs_pos_only(ctx);
if (ctx->has_geometry_shader)
pipe->bind_gs_state(pipe, NULL);
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, NULL);
+ pipe->bind_tes_state(pipe, NULL);
+ }
pipe->bind_rasterizer_state(pipe, ctx->rs_discard_state);
so_target = pipe->create_stream_output_target(pipe, dst, offset, size);
diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.h b/mesalib/src/gallium/auxiliary/util/u_blitter.h
index 1568030ac..93b0e513b 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blitter.h
+++ b/mesalib/src/gallium/auxiliary/util/u_blitter.h
@@ -102,7 +102,7 @@ struct blitter_context
void *saved_dsa_state; /**< depth stencil alpha state */
void *saved_velem_state; /**< vertex elements state */
void *saved_rs_state; /**< rasterizer state */
- void *saved_fs, *saved_vs, *saved_gs; /**< shaders */
+ void *saved_fs, *saved_vs, *saved_gs, *saved_tcs, *saved_tes; /**< shaders */
struct pipe_framebuffer_state saved_fb_state; /**< framebuffer state */
struct pipe_stencil_ref saved_stencil_ref; /**< stencil ref */
@@ -427,6 +427,20 @@ void util_blitter_save_geometry_shader(struct blitter_context *blitter,
blitter->saved_gs = gs;
}
+static INLINE void
+util_blitter_save_tessctrl_shader(struct blitter_context *blitter,
+ void *sh)
+{
+ blitter->saved_tcs = sh;
+}
+
+static INLINE void
+util_blitter_save_tesseval_shader(struct blitter_context *blitter,
+ void *sh)
+{
+ blitter->saved_tes = sh;
+}
+
static INLINE
void util_blitter_save_framebuffer(struct blitter_context *blitter,
const struct pipe_framebuffer_state *state)
diff --git a/mesalib/src/gallium/auxiliary/util/u_dump_state.c b/mesalib/src/gallium/auxiliary/util/u_dump_state.c
index e6614d5d2..7f620b50c 100644
--- a/mesalib/src/gallium/auxiliary/util/u_dump_state.c
+++ b/mesalib/src/gallium/auxiliary/util/u_dump_state.c
@@ -750,6 +750,8 @@ util_dump_draw_info(FILE *stream, const struct pipe_draw_info *state)
util_dump_member(stream, uint, state, start_instance);
util_dump_member(stream, uint, state, instance_count);
+ util_dump_member(stream, uint, state, vertices_per_patch);
+
util_dump_member(stream, int, state, index_bias);
util_dump_member(stream, uint, state, min_index);
util_dump_member(stream, uint, state, max_index);
diff --git a/mesalib/src/gallium/auxiliary/util/u_format_etc.c b/mesalib/src/gallium/auxiliary/util/u_format_etc.c
index f909b1608..63e03ff5c 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format_etc.c
+++ b/mesalib/src/gallium/auxiliary/util/u_format_etc.c
@@ -65,11 +65,10 @@ util_format_etc1_rgb8_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, con
void
util_format_etc1_rgb8_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
{
- const unsigned bw = 4, bh = 4;
struct etc1_block block;
uint8_t tmp[3];
- assert(i < bw && j < bh);
+ assert(i < 4 && j < 4); /* check i, j against 4x4 block size */
etc1_parse_block(&block, src);
etc1_fetch_texel(&block, i, j, tmp);
diff --git a/mesalib/src/gallium/auxiliary/util/u_math.h b/mesalib/src/gallium/auxiliary/util/u_math.h
index 3d27a59e8..3b4040f0e 100644
--- a/mesalib/src/gallium/auxiliary/util/u_math.h
+++ b/mesalib/src/gallium/auxiliary/util/u_math.h
@@ -42,6 +42,7 @@
#include "pipe/p_compiler.h"
#include "c99_math.h"
+#include <assert.h>
#include <float.h>
#include <stdarg.h>
@@ -424,6 +425,25 @@ util_last_bit(unsigned u)
}
/**
+ * Find last bit set in a word. The least significant bit is 1.
+ * Return 0 if no bits are set.
+ */
+static INLINE unsigned
+util_last_bit64(uint64_t u)
+{
+#if defined(HAVE___BUILTIN_CLZLL)
+ return u == 0 ? 0 : 64 - __builtin_clzll(u);
+#else
+ unsigned r = 0;
+ while (u) {
+ r++;
+ u >>= 1;
+ }
+ return r;
+#endif
+}
+
+/**
* Find last bit in a word that does not match the sign bit. The least
* significant bit is 1.
* Return 0 if no bits are set.
diff --git a/mesalib/src/gallium/auxiliary/util/u_tests.h b/mesalib/src/gallium/auxiliary/util/u_tests.h
index 49ae54f87..106b0a0a9 100644
--- a/mesalib/src/gallium/auxiliary/util/u_tests.h
+++ b/mesalib/src/gallium/auxiliary/util/u_tests.h
@@ -30,8 +30,16 @@
#include "pipe/p_compiler.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct pipe_screen;
void util_run_tests(struct pipe_screen *screen);
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/mesalib/src/glsl/Android.mk b/mesalib/src/glsl/Android.mk
index f20741e0d..f63b7daf2 100644
--- a/mesalib/src/glsl/Android.mk
+++ b/mesalib/src/glsl/Android.mk
@@ -46,7 +46,6 @@ LOCAL_C_INCLUDES := \
LOCAL_MODULE := libmesa_glsl
-include external/stlport/libstlport.mk
include $(LOCAL_PATH)/Android.gen.mk
include $(MESA_COMMON_MK)
include $(BUILD_STATIC_LIBRARY)
diff --git a/mesalib/src/glsl/Makefile.am b/mesalib/src/glsl/Makefile.am
index 23c6fe8bb..fa8c9f5d3 100644
--- a/mesalib/src/glsl/Makefile.am
+++ b/mesalib/src/glsl/Makefile.am
@@ -89,8 +89,7 @@ tests_general_ir_test_SOURCES = \
tests/builtin_variable_test.cpp \
tests/invalidate_locations_test.cpp \
tests/general_ir_test.cpp \
- tests/varyings_test.cpp \
- tests/common.c
+ tests/varyings_test.cpp
tests_general_ir_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_general_ir_test_LDADD = \
@@ -103,8 +102,7 @@ tests_uniform_initializer_test_SOURCES = \
tests/copy_constant_to_storage_tests.cpp \
tests/set_uniform_initializer_tests.cpp \
tests/uniform_initializer_utils.cpp \
- tests/uniform_initializer_utils.h \
- tests/common.c
+ tests/uniform_initializer_utils.h
tests_uniform_initializer_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_uniform_initializer_test_LDADD = \
@@ -114,8 +112,7 @@ tests_uniform_initializer_test_LDADD = \
$(PTHREAD_LIBS)
tests_sampler_types_test_SOURCES = \
- tests/sampler_types_test.cpp \
- tests/common.c
+ tests/sampler_types_test.cpp
tests_sampler_types_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_sampler_types_test_LDADD = \
@@ -133,8 +130,7 @@ libglcpp_la_SOURCES = \
$(LIBGLCPP_FILES)
glcpp_glcpp_SOURCES = \
- glcpp/glcpp.c \
- tests/common.c
+ glcpp/glcpp.c
glcpp_glcpp_LDADD = \
libglcpp.la \
$(top_builddir)/src/libglsl_util.la \
@@ -164,7 +160,6 @@ glsl_compiler_LDADD = \
glsl_test_SOURCES = \
standalone_scaffolding.cpp \
- tests/common.c \
test.cpp \
test_optpass.cpp \
test_optpass.h
@@ -247,21 +242,21 @@ dist-hook:
$(RM) glcpp/tests/subtest*/*.out
nir/nir_builder_opcodes.h: nir/nir_opcodes.py nir/nir_builder_opcodes_h.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_builder_opcodes_h.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_builder_opcodes_h.py > $@
nir/nir_constant_expressions.c: nir/nir_opcodes.py nir/nir_constant_expressions.py nir/nir_constant_expressions.h
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_constant_expressions.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_constant_expressions.py > $@
nir/nir_opcodes.h: nir/nir_opcodes.py nir/nir_opcodes_h.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_h.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_h.py > $@
nir/nir_opcodes.c: nir/nir_opcodes.py nir/nir_opcodes_c.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_c.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_c.py > $@
nir/nir_opt_algebraic.c: nir/nir_opt_algebraic.py nir/nir_algebraic.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opt_algebraic.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opt_algebraic.py > $@
diff --git a/mesalib/src/glsl/SConscript b/mesalib/src/glsl/SConscript
index 284b37584..89c603580 100644
--- a/mesalib/src/glsl/SConscript
+++ b/mesalib/src/glsl/SConscript
@@ -71,6 +71,7 @@ env.Command('imports.c', '#src/mesa/main/imports.c', Copy('$TARGET', '$SOURCE'))
env.Prepend(CPPPATH = ['#src/mesa/program'])
env.Command('prog_hash_table.c', '#src/mesa/program/prog_hash_table.c', Copy('$TARGET', '$SOURCE'))
env.Command('symbol_table.c', '#src/mesa/program/symbol_table.c', Copy('$TARGET', '$SOURCE'))
+env.Command('dummy_errors.c', '#src/mesa/program/dummy_errors.c', Copy('$TARGET', '$SOURCE'))
compiler_objs = env.StaticObject(source_lists['GLSL_COMPILER_CXX_FILES'])
@@ -78,6 +79,7 @@ mesa_objs = env.StaticObject([
'imports.c',
'prog_hash_table.c',
'symbol_table.c',
+ 'dummy_errors.c',
])
compiler_objs += mesa_objs
@@ -115,6 +117,6 @@ env.Alias('glsl_compiler', glsl_compiler)
glcpp = env.Program(
target = 'glcpp/glcpp',
- source = ['glcpp/glcpp.c', 'tests/common.c'] + mesa_objs,
+ source = ['glcpp/glcpp.c'] + mesa_objs,
)
env.Alias('glcpp', glcpp)
diff --git a/mesalib/src/glsl/ast_array_index.cpp b/mesalib/src/glsl/ast_array_index.cpp
index ecef651f7..752d86f72 100644
--- a/mesalib/src/glsl/ast_array_index.cpp
+++ b/mesalib/src/glsl/ast_array_index.cpp
@@ -225,7 +225,7 @@ _mesa_ast_array_index_to_hir(void *mem_ctx,
* values *do* diverge, then the behavior of the operation requiring a
* dynamically uniform expression is undefined.
*/
- if (array->type->element_type()->is_sampler()) {
+ if (array->type->without_array()->is_sampler()) {
if (!state->is_version(130, 100)) {
if (state->es_shader) {
_mesa_glsl_warning(&loc, state,
diff --git a/mesalib/src/glsl/ast_function.cpp b/mesalib/src/glsl/ast_function.cpp
index 758361324..92e26bf24 100644
--- a/mesalib/src/glsl/ast_function.cpp
+++ b/mesalib/src/glsl/ast_function.cpp
@@ -863,7 +863,7 @@ process_array_constructor(exec_list *instructions,
if (is_unsized_array) {
constructor_type =
- glsl_type::get_array_instance(constructor_type->element_type(),
+ glsl_type::get_array_instance(constructor_type->fields.array,
parameter_count);
assert(constructor_type != NULL);
assert(constructor_type->length == parameter_count);
@@ -876,7 +876,7 @@ process_array_constructor(exec_list *instructions,
ir_rvalue *result = ir;
const glsl_base_type element_base_type =
- constructor_type->element_type()->base_type;
+ constructor_type->fields.array->base_type;
/* Apply implicit conversions (not the scalar constructor rules!). See
* the spec quote above. */
@@ -896,10 +896,10 @@ process_array_constructor(exec_list *instructions,
}
}
- if (result->type != constructor_type->element_type()) {
+ if (result->type != constructor_type->fields.array) {
_mesa_glsl_error(loc, state, "type error in array constructor: "
"expected: %s, found %s",
- constructor_type->element_type()->name,
+ constructor_type->fields.array->name,
result->type->name);
return ir_rvalue::error_value(ctx);
}
@@ -993,11 +993,15 @@ emit_inline_vector_constructor(const glsl_type *type,
ir_variable *var = new(ctx) ir_variable(type, "vec_ctor", ir_var_temporary);
instructions->push_tail(var);
- /* There are two kinds of vector constructors.
+ /* There are three kinds of vector constructors.
*
* - Construct a vector from a single scalar by replicating that scalar to
* all components of the vector.
*
+ * - Construct a vector from at least a matrix. This case should already
+ * have been taken care of in ast_function_expression::hir by breaking
+ * down the matrix into a series of column vectors.
+ *
* - Construct a vector from an arbirary combination of vectors and
* scalars. The components of the constructor parameters are assigned
* to the vector in order until the vector is full.
@@ -1091,6 +1095,14 @@ emit_inline_vector_constructor(const glsl_type *type,
rhs_components = lhs_components - base_component;
}
+ /* If we do not have any components left to copy, break out of the
+ * loop. This can happen when initializing a vec4 with a mat3 as the
+ * mat3 would have been broken into a series of column vectors.
+ */
+ if (rhs_components == 0) {
+ break;
+ }
+
const ir_constant *const c = param->as_constant();
if (c == NULL) {
/* Mask of fields to be written in the assignment.
@@ -1681,11 +1693,11 @@ ast_function_expression::hir(exec_list *instructions,
return ir_rvalue::error_value(ctx);
}
- /* Later, we cast each parameter to the same base type as the
- * constructor. Since there are no non-floating point matrices, we
- * need to break them up into a series of column vectors.
+ /* Matrices can never be consumed as is by any constructor but matrix
+ * constructors. If the constructor type is not matrix, always break the
+ * matrix up into a series of column vectors.
*/
- if (constructor_type->base_type != GLSL_TYPE_FLOAT) {
+ if (!constructor_type->is_matrix()) {
foreach_in_list_safe(ir_rvalue, matrix, &actual_parameters) {
if (!matrix->type->is_matrix())
continue;
diff --git a/mesalib/src/glsl/ast_to_hir.cpp b/mesalib/src/glsl/ast_to_hir.cpp
index 14e630905..fc24305b2 100644
--- a/mesalib/src/glsl/ast_to_hir.cpp
+++ b/mesalib/src/glsl/ast_to_hir.cpp
@@ -678,7 +678,7 @@ validate_assignment(struct _mesa_glsl_parse_state *state,
* is handled by ir_dereference::is_lvalue.
*/
if (lhs_type->is_unsized_array() && rhs->type->is_array()
- && (lhs_type->element_type() == rhs->type->element_type())) {
+ && (lhs_type->fields.array == rhs->type->fields.array)) {
if (is_initializer) {
return rhs;
} else {
@@ -820,7 +820,7 @@ do_assignment(exec_list *instructions, struct _mesa_glsl_parse_state *state,
var->data.max_array_access);
}
- var->type = glsl_type::get_array_instance(lhs->type->element_type(),
+ var->type = glsl_type::get_array_instance(lhs->type->fields.array,
rhs->type->array_size());
d->type = var->type;
}
@@ -2330,8 +2330,7 @@ apply_image_qualifier_to_variable(const struct ast_type_qualifier *qual,
struct _mesa_glsl_parse_state *state,
YYLTYPE *loc)
{
- const glsl_type *base_type =
- (var->type->is_array() ? var->type->element_type() : var->type);
+ const glsl_type *base_type = var->type->without_array();
if (base_type->is_image()) {
if (var->data.mode != ir_var_uniform &&
@@ -2730,7 +2729,7 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
* GL_ARB_conservative_depth
* GL_ARB_gpu_shader5
* GL_ARB_separate_shader_objects
- * GL_ARB_tesselation_shader
+ * GL_ARB_tessellation_shader
* GL_ARB_transform_feedback3
* GL_ARB_uniform_buffer_object
*
@@ -2855,7 +2854,7 @@ get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
* type and specify a size."
*/
if (earlier->type->is_unsized_array() && var->type->is_array()
- && (var->type->element_type() == earlier->type->element_type())) {
+ && (var->type->fields.array == earlier->type->fields.array)) {
/* FINISHME: This doesn't match the qualifiers on the two
* FINISHME: declarations. It's not 100% clear whether this is
* FINISHME: required or not.
@@ -3608,6 +3607,51 @@ ast_declarator_list::hir(exec_list *instructions,
}
handle_geometry_shader_input_decl(state, loc, var);
+ } else if (state->stage == MESA_SHADER_FRAGMENT) {
+ /* From section 4.3.4 (Input Variables) of the GLSL ES 3.10 spec:
+ *
+ * It is a compile-time error to declare a fragment shader
+ * input with, or that contains, any of the following types:
+ *
+ * * A boolean type
+ * * An opaque type
+ * * An array of arrays
+ * * An array of structures
+ * * A structure containing an array
+ * * A structure containing a structure
+ */
+ if (state->es_shader) {
+ const glsl_type *check_type = var->type->without_array();
+ if (check_type->is_boolean() ||
+ check_type->contains_opaque()) {
+ _mesa_glsl_error(&loc, state,
+ "fragment shader input cannot have type %s",
+ check_type->name);
+ }
+ if (var->type->is_array() &&
+ var->type->fields.array->is_array()) {
+ _mesa_glsl_error(&loc, state,
+ "%s shader output "
+ "cannot have an array of arrays",
+ _mesa_shader_stage_to_string(state->stage));
+ }
+ if (var->type->is_array() &&
+ var->type->fields.array->is_record()) {
+ _mesa_glsl_error(&loc, state,
+ "fragment shader input "
+ "cannot have an array of structs");
+ }
+ if (var->type->is_record()) {
+ for (unsigned i = 0; i < var->type->length; i++) {
+ if (var->type->fields.structure[i].type->is_array() ||
+ var->type->fields.structure[i].type->is_record())
+ _mesa_glsl_error(&loc, state,
+ "fragement shader input cannot have "
+ "a struct that contains an "
+ "array or struct");
+ }
+ }
+ }
}
} else if (var->data.mode == ir_var_shader_out) {
const glsl_type *check_type = var->type->without_array();
@@ -3642,7 +3686,7 @@ ast_declarator_list::hir(exec_list *instructions,
if (check_type->is_record() || check_type->is_matrix())
_mesa_glsl_error(&loc, state,
"fragment shader output "
- "cannot have struct or array type");
+ "cannot have struct or matrix type");
switch (check_type->base_type) {
case GLSL_TYPE_UINT:
case GLSL_TYPE_INT:
@@ -3654,6 +3698,55 @@ ast_declarator_list::hir(exec_list *instructions,
"type %s", check_type->name);
}
}
+
+ /* From section 4.3.6 (Output Variables) of the GLSL ES 3.10 spec:
+ *
+ * It is a compile-time error to declare a vertex shader output
+ * with, or that contains, any of the following types:
+ *
+ * * A boolean type
+ * * An opaque type
+ * * An array of arrays
+ * * An array of structures
+ * * A structure containing an array
+ * * A structure containing a structure
+ *
+ * It is a compile-time error to declare a fragment shader output
+ * with, or that contains, any of the following types:
+ *
+ * * A boolean type
+ * * An opaque type
+ * * A matrix
+ * * A structure
+ * * An array of array
+ */
+ if (state->es_shader) {
+ if (var->type->is_array() &&
+ var->type->fields.array->is_array()) {
+ _mesa_glsl_error(&loc, state,
+ "%s shader output "
+ "cannot have an array of arrays",
+ _mesa_shader_stage_to_string(state->stage));
+ }
+ if (state->stage == MESA_SHADER_VERTEX) {
+ if (var->type->is_array() &&
+ var->type->fields.array->is_record()) {
+ _mesa_glsl_error(&loc, state,
+ "vertex shader output "
+ "cannot have an array of structs");
+ }
+ if (var->type->is_record()) {
+ for (unsigned i = 0; i < var->type->length; i++) {
+ if (var->type->fields.structure[i].type->is_array() ||
+ var->type->fields.structure[i].type->is_record())
+ _mesa_glsl_error(&loc, state,
+ "vertex shader output cannot have a "
+ "struct that contains an "
+ "array or struct");
+ }
+ }
+ }
+ }
}
/* Integer fragment inputs must be qualified with 'flat'. In GLSL ES,
@@ -3850,7 +3943,15 @@ ast_declarator_list::hir(exec_list *instructions,
decl->identifier);
}
- if (state->es_shader) {
+ /* GLSL ES 3.10 removes the restriction on unsized arrays.
+ *
+ * Section 4.1.9 (Arrays) of the GLSL ES 3.10 spec says:
+ *
+ * "Variables of the same type can be aggregated into arrays by
+ * declaring a name followed by brackets ([ ]) enclosing an
+ * optional size."
+ */
+ if (state->es_shader && state->language_version < 310) {
const glsl_type *const t = (earlier == NULL)
? var->type : earlier->type;
@@ -5746,6 +5847,17 @@ ast_interface_block::hir(exec_list *instructions,
const glsl_type *block_array_type =
process_array_type(&loc, block_type, this->array_specifier, state);
+ /* From section 4.3.9 (Interface Blocks) of the GLSL ES 3.10 spec:
+ *
+ * * Arrays of arrays of blocks are not allowed
+ */
+ if (state->es_shader && block_array_type->is_array() &&
+ block_array_type->fields.array->is_array()) {
+ _mesa_glsl_error(&loc, state,
+ "arrays of arrays interface blocks are "
+ "not allowed");
+ }
+
var = new(state) ir_variable(block_array_type,
this->instance_name,
var_mode);
diff --git a/mesalib/src/glsl/builtin_functions.cpp b/mesalib/src/glsl/builtin_functions.cpp
index 97055d85d..efab29919 100644
--- a/mesalib/src/glsl/builtin_functions.cpp
+++ b/mesalib/src/glsl/builtin_functions.cpp
@@ -410,6 +410,13 @@ fp64(const _mesa_glsl_parse_state *state)
return state->has_double();
}
+static bool
+barrier_supported(const _mesa_glsl_parse_state *state)
+{
+ return state->stage == MESA_SHADER_COMPUTE;
+ /* TODO: || stage->state == MESA_SHADER_TESS_CTRL; */
+}
+
/** @} */
/******************************************************************************/
@@ -654,6 +661,7 @@ private:
const glsl_type *stream_type);
ir_function_signature *_EndStreamPrimitive(builtin_available_predicate avail,
const glsl_type *stream_type);
+ B0(barrier)
B2(textureQueryLod);
B1(textureQueryLevels);
@@ -1933,6 +1941,7 @@ builtin_builder::create_builtins()
_EndStreamPrimitive(gs_streams, glsl_type::uint_type),
_EndStreamPrimitive(gs_streams, glsl_type::int_type),
NULL);
+ add_function("barrier", _barrier(), NULL);
add_function("textureQueryLOD",
_textureQueryLod(glsl_type::sampler1D_type, glsl_type::float_type),
@@ -4296,6 +4305,15 @@ builtin_builder::_EndStreamPrimitive(builtin_available_predicate avail,
}
ir_function_signature *
+builtin_builder::_barrier()
+{
+ MAKE_SIG(glsl_type::void_type, barrier_supported, 0);
+
+ body.emit(new(mem_ctx) ir_barrier());
+ return sig;
+}
+
+ir_function_signature *
builtin_builder::_textureQueryLod(const glsl_type *sampler_type,
const glsl_type *coord_type)
{
diff --git a/mesalib/src/glsl/glsl_parser_extras.cpp b/mesalib/src/glsl/glsl_parser_extras.cpp
index be6713c46..046d5d7b5 100644
--- a/mesalib/src/glsl/glsl_parser_extras.cpp
+++ b/mesalib/src/glsl/glsl_parser_extras.cpp
@@ -778,7 +778,7 @@ _mesa_ast_set_aggregate_type(const glsl_type *type,
/* If the aggregate is an array, recursively set its elements' types. */
if (type->is_array()) {
- /* Each array element has the type type->element_type().
+ /* Each array element has the type type->fields.array.
*
* E.g., if <type> if struct S[2] we want to set each element's type to
* struct S.
@@ -790,7 +790,7 @@ _mesa_ast_set_aggregate_type(const glsl_type *type,
link);
if (expr->oper == ast_aggregate)
- _mesa_ast_set_aggregate_type(type->element_type(), expr);
+ _mesa_ast_set_aggregate_type(type->fields.array, expr);
}
/* If the aggregate is a struct, recursively set its fields' types. */
diff --git a/mesalib/src/glsl/glsl_types.cpp b/mesalib/src/glsl/glsl_types.cpp
index 9c9b7efcb..f675e90cb 100644
--- a/mesalib/src/glsl/glsl_types.cpp
+++ b/mesalib/src/glsl/glsl_types.cpp
@@ -217,7 +217,7 @@ glsl_type::contains_opaque() const {
case GLSL_TYPE_ATOMIC_UINT:
return true;
case GLSL_TYPE_ARRAY:
- return element_type()->contains_opaque();
+ return fields.array->contains_opaque();
case GLSL_TYPE_STRUCT:
for (unsigned int i = 0; i < length; i++) {
if (fields.structure[i].type->contains_opaque())
diff --git a/mesalib/src/glsl/glsl_types.h b/mesalib/src/glsl/glsl_types.h
index 5645dcd50..f54a9393e 100644
--- a/mesalib/src/glsl/glsl_types.h
+++ b/mesalib/src/glsl/glsl_types.h
@@ -228,18 +228,6 @@ struct glsl_type {
const glsl_type *get_scalar_type() const;
/**
- * Query the type of elements in an array
- *
- * \return
- * Pointer to the type of elements in the array for array types, or \c NULL
- * for non-array types.
- */
- const glsl_type *element_type() const
- {
- return is_array() ? fields.array : NULL;
- }
-
- /**
* Get the instance of a built-in scalar, vector, or matrix type
*/
static const glsl_type *get_instance(unsigned base_type, unsigned rows,
@@ -556,7 +544,7 @@ struct glsl_type {
if (base_type == GLSL_TYPE_ATOMIC_UINT)
return ATOMIC_COUNTER_SIZE;
else if (is_array())
- return length * element_type()->atomic_size();
+ return length * fields.array->atomic_size();
else
return 0;
}
diff --git a/mesalib/src/glsl/ir.cpp b/mesalib/src/glsl/ir.cpp
index 9e3238552..dbd064fee 100644
--- a/mesalib/src/glsl/ir.cpp
+++ b/mesalib/src/glsl/ir.cpp
@@ -912,7 +912,7 @@ ir_constant::zero(void *mem_ctx, const glsl_type *type)
c->array_elements = ralloc_array(c, ir_constant *, type->length);
for (unsigned i = 0; i < type->length; i++)
- c->array_elements[i] = ir_constant::zero(c, type->element_type());
+ c->array_elements[i] = ir_constant::zero(c, type->fields.array);
}
if (type->is_record()) {
@@ -1341,7 +1341,7 @@ ir_dereference_array::set_array(ir_rvalue *value)
const glsl_type *const vt = this->array->type;
if (vt->is_array()) {
- type = vt->element_type();
+ type = vt->fields.array;
} else if (vt->is_matrix()) {
type = vt->column_type();
} else if (vt->is_vector()) {
diff --git a/mesalib/src/glsl/ir.h b/mesalib/src/glsl/ir.h
index fab1cd2d2..f90455535 100644
--- a/mesalib/src/glsl/ir.h
+++ b/mesalib/src/glsl/ir.h
@@ -78,6 +78,7 @@ enum ir_node_type {
ir_type_discard,
ir_type_emit_vertex,
ir_type_end_primitive,
+ ir_type_barrier,
ir_type_max, /**< maximum ir_type enum number, for validation */
ir_type_unset = ir_type_max
};
@@ -2396,6 +2397,29 @@ public:
ir_rvalue *stream;
};
+/**
+ * IR instruction for tessellation control and compute shader barrier.
+ */
+class ir_barrier : public ir_instruction {
+public:
+ ir_barrier()
+ : ir_instruction(ir_type_barrier)
+ {
+ }
+
+ virtual void accept(ir_visitor *v)
+ {
+ v->visit(this);
+ }
+
+ virtual ir_barrier *clone(void *mem_ctx, struct hash_table *) const
+ {
+ return new(mem_ctx) ir_barrier();
+ }
+
+ virtual ir_visitor_status accept(ir_hierarchical_visitor *);
+};
+
/*@}*/
/**
diff --git a/mesalib/src/glsl/ir_hierarchical_visitor.cpp b/mesalib/src/glsl/ir_hierarchical_visitor.cpp
index adb629414..1d23a7766 100644
--- a/mesalib/src/glsl/ir_hierarchical_visitor.cpp
+++ b/mesalib/src/glsl/ir_hierarchical_visitor.cpp
@@ -80,6 +80,15 @@ ir_hierarchical_visitor::visit(ir_dereference_variable *ir)
}
ir_visitor_status
+ir_hierarchical_visitor::visit(ir_barrier *ir)
+{
+ if (this->callback_enter != NULL)
+ this->callback_enter(ir, this->data_enter);
+
+ return visit_continue;
+}
+
+ir_visitor_status
ir_hierarchical_visitor::visit_enter(ir_loop *ir)
{
if (this->callback_enter != NULL)
diff --git a/mesalib/src/glsl/ir_hierarchical_visitor.h b/mesalib/src/glsl/ir_hierarchical_visitor.h
index faa52fd79..28517b6e4 100644
--- a/mesalib/src/glsl/ir_hierarchical_visitor.h
+++ b/mesalib/src/glsl/ir_hierarchical_visitor.h
@@ -59,7 +59,7 @@ enum ir_visitor_status {
* in the composite's \c accept method. The \c accept method for a leaf-node
* class will simply call the \c visit method, as usual, and pass its return
* value on. The \c accept method for internal-node classes will call the \c
- * visit_enter method, call the \c accpet method of each child node, and,
+ * visit_enter method, call the \c accept method of each child node, and,
* finally, call the \c visit_leave method. If any of these return a value
* other that \c visit_continue, the correct action must be taken.
*
@@ -87,6 +87,7 @@ public:
virtual ir_visitor_status visit(class ir_variable *);
virtual ir_visitor_status visit(class ir_constant *);
virtual ir_visitor_status visit(class ir_loop_jump *);
+ virtual ir_visitor_status visit(class ir_barrier *);
/**
* ir_dereference_variable isn't technically a leaf, but it is treated as a
diff --git a/mesalib/src/glsl/ir_hv_accept.cpp b/mesalib/src/glsl/ir_hv_accept.cpp
index be5b3eaa0..d3662cf50 100644
--- a/mesalib/src/glsl/ir_hv_accept.cpp
+++ b/mesalib/src/glsl/ir_hv_accept.cpp
@@ -429,3 +429,9 @@ ir_end_primitive::accept(ir_hierarchical_visitor *v)
return (s == visit_stop) ? s : v->visit_leave(this);
}
+
+ir_visitor_status
+ir_barrier::accept(ir_hierarchical_visitor *v)
+{
+ return v->visit(this);
+}
diff --git a/mesalib/src/glsl/ir_print_visitor.cpp b/mesalib/src/glsl/ir_print_visitor.cpp
index 01f52e85f..f5de6ac06 100644
--- a/mesalib/src/glsl/ir_print_visitor.cpp
+++ b/mesalib/src/glsl/ir_print_visitor.cpp
@@ -573,5 +573,10 @@ ir_print_visitor::visit(ir_end_primitive *ir)
fprintf(f, "(end-primitive ");
ir->stream->accept(this);
fprintf(f, ")\n");
+}
+void
+ir_print_visitor::visit(ir_barrier *ir)
+{
+ fprintf(f, "(barrier)\n");
}
diff --git a/mesalib/src/glsl/ir_print_visitor.h b/mesalib/src/glsl/ir_print_visitor.h
index 98f041d1a..965e63ade 100644
--- a/mesalib/src/glsl/ir_print_visitor.h
+++ b/mesalib/src/glsl/ir_print_visitor.h
@@ -71,6 +71,7 @@ public:
virtual void visit(ir_loop_jump *);
virtual void visit(ir_emit_vertex *);
virtual void visit(ir_end_primitive *);
+ virtual void visit(ir_barrier *);
/*@}*/
private:
diff --git a/mesalib/src/glsl/ir_uniform.h b/mesalib/src/glsl/ir_uniform.h
index 21b5d05c1..e1b801477 100644
--- a/mesalib/src/glsl/ir_uniform.h
+++ b/mesalib/src/glsl/ir_uniform.h
@@ -181,6 +181,11 @@ struct gl_uniform_storage {
* via the API.
*/
bool hidden;
+
+ /**
+ * This is a built-in uniform that should not be modified through any gl API.
+ */
+ bool builtin;
};
#ifdef __cplusplus
diff --git a/mesalib/src/glsl/ir_visitor.h b/mesalib/src/glsl/ir_visitor.h
index 40f96ffbc..7c38481cd 100644
--- a/mesalib/src/glsl/ir_visitor.h
+++ b/mesalib/src/glsl/ir_visitor.h
@@ -65,6 +65,7 @@ public:
virtual void visit(class ir_loop_jump *) = 0;
virtual void visit(class ir_emit_vertex *) = 0;
virtual void visit(class ir_end_primitive *) = 0;
+ virtual void visit(class ir_barrier *) = 0;
/*@}*/
};
@@ -85,6 +86,7 @@ public:
virtual void visit(class ir_call *) {}
virtual void visit(class ir_emit_vertex *) {}
virtual void visit(class ir_end_primitive *) {}
+ virtual void visit(class ir_barrier *) {}
};
#endif /* __cplusplus */
diff --git a/mesalib/src/glsl/link_atomics.cpp b/mesalib/src/glsl/link_atomics.cpp
index 603873a5d..100d03c4e 100644
--- a/mesalib/src/glsl/link_atomics.cpp
+++ b/mesalib/src/glsl/link_atomics.cpp
@@ -207,7 +207,7 @@ link_assign_atomic_counter_resources(struct gl_context *ctx,
storage->atomic_buffer_index = i;
storage->offset = var->data.atomic.offset;
storage->array_stride = (var->type->is_array() ?
- var->type->element_type()->atomic_size() : 0);
+ var->type->without_array()->atomic_size() : 0);
}
/* Assign stage-specific fields. */
diff --git a/mesalib/src/glsl/link_uniform_initializers.cpp b/mesalib/src/glsl/link_uniform_initializers.cpp
index 69073841e..204acfa22 100644
--- a/mesalib/src/glsl/link_uniform_initializers.cpp
+++ b/mesalib/src/glsl/link_uniform_initializers.cpp
@@ -103,7 +103,7 @@ void
set_sampler_binding(gl_shader_program *prog, const char *name, int binding)
{
struct gl_uniform_storage *const storage =
- get_storage(prog->UniformStorage, prog->NumUserUniformStorage, name);
+ get_storage(prog->UniformStorage, prog->NumUniformStorage, name);
if (storage == NULL) {
assert(storage != NULL);
@@ -193,7 +193,7 @@ set_uniform_initializer(void *mem_ctx, gl_shader_program *prog,
struct gl_uniform_storage *const storage =
get_storage(prog->UniformStorage,
- prog->NumUserUniformStorage,
+ prog->NumUniformStorage,
name);
if (storage == NULL) {
assert(storage != NULL);
diff --git a/mesalib/src/glsl/link_uniforms.cpp b/mesalib/src/glsl/link_uniforms.cpp
index 2c928e144..11ae06f9b 100644
--- a/mesalib/src/glsl/link_uniforms.cpp
+++ b/mesalib/src/glsl/link_uniforms.cpp
@@ -589,12 +589,13 @@ private:
handle_samplers(base_type, &this->uniforms[id]);
handle_images(base_type, &this->uniforms[id]);
- /* If there is already storage associated with this uniform, it means
- * that it was set while processing an earlier shader stage. For
- * example, we may be processing the uniform in the fragment shader, but
- * the uniform was already processed in the vertex shader.
+ /* If there is already storage associated with this uniform or if the
+ * uniform is set as builtin, it means that it was set while processing
+ * an earlier shader stage. For example, we may be processing the
+ * uniform in the fragment shader, but the uniform was already processed
+ * in the vertex shader.
*/
- if (this->uniforms[id].storage != NULL) {
+ if (this->uniforms[id].storage != NULL || this->uniforms[id].builtin) {
return;
}
@@ -619,10 +620,15 @@ private:
this->uniforms[id].initialized = 0;
this->uniforms[id].num_driver_storage = 0;
this->uniforms[id].driver_storage = NULL;
- this->uniforms[id].storage = this->values;
this->uniforms[id].atomic_buffer_index = -1;
this->uniforms[id].hidden =
current_var->data.how_declared == ir_var_hidden;
+ this->uniforms[id].builtin = is_gl_identifier(name);
+
+ /* Do not assign storage if the uniform is builtin */
+ if (!this->uniforms[id].builtin)
+ this->uniforms[id].storage = this->values;
+
if (this->ubo_block_index != -1) {
this->uniforms[id].block_index = this->ubo_block_index;
@@ -894,7 +900,7 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
{
ralloc_free(prog->UniformStorage);
prog->UniformStorage = NULL;
- prog->NumUserUniformStorage = 0;
+ prog->NumUniformStorage = 0;
if (prog->UniformHash != NULL) {
prog->UniformHash->clear();
@@ -940,14 +946,6 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
if ((var == NULL) || (var->data.mode != ir_var_uniform))
continue;
- /* FINISHME: Update code to process built-in uniforms!
- */
- if (is_gl_identifier(var->name)) {
- uniform_size.num_shader_uniform_components +=
- var->type->component_slots();
- continue;
- }
-
uniform_size.process(var);
}
@@ -962,16 +960,16 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
}
- const unsigned num_user_uniforms = uniform_size.num_active_uniforms;
+ const unsigned num_uniforms = uniform_size.num_active_uniforms;
const unsigned num_data_slots = uniform_size.num_values;
/* On the outside chance that there were no uniforms, bail out.
*/
- if (num_user_uniforms == 0)
+ if (num_uniforms == 0)
return;
struct gl_uniform_storage *uniforms =
- rzalloc_array(prog, struct gl_uniform_storage, num_user_uniforms);
+ rzalloc_array(prog, struct gl_uniform_storage, num_uniforms);
union gl_constant_value *data =
rzalloc_array(uniforms, union gl_constant_value, num_data_slots);
#ifndef NDEBUG
@@ -992,11 +990,6 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
if ((var == NULL) || (var->data.mode != ir_var_uniform))
continue;
- /* FINISHME: Update code to process built-in uniforms!
- */
- if (is_gl_identifier(var->name))
- continue;
-
parcel.set_and_process(prog, var);
}
@@ -1009,10 +1002,10 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
const unsigned hidden_uniforms =
- move_hidden_uniforms_to_end(prog, uniforms, num_user_uniforms);
+ move_hidden_uniforms_to_end(prog, uniforms, num_uniforms);
/* Reserve all the explicit locations of the active uniforms. */
- for (unsigned i = 0; i < num_user_uniforms; i++) {
+ for (unsigned i = 0; i < num_uniforms; i++) {
if (uniforms[i].remap_location != UNMAPPED_UNIFORM_LOC) {
/* How many new entries for this uniform? */
const unsigned entries = MAX2(1, uniforms[i].array_elements);
@@ -1028,7 +1021,11 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
/* Reserve locations for rest of the uniforms. */
- for (unsigned i = 0; i < num_user_uniforms; i++) {
+ for (unsigned i = 0; i < num_uniforms; i++) {
+
+ /* Built-in uniforms should not get any location. */
+ if (uniforms[i].builtin)
+ continue;
/* Explicit ones have been set already. */
if (uniforms[i].remap_location != UNMAPPED_UNIFORM_LOC)
@@ -1055,14 +1052,14 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
#ifndef NDEBUG
- for (unsigned i = 0; i < num_user_uniforms; i++) {
- assert(uniforms[i].storage != NULL);
+ for (unsigned i = 0; i < num_uniforms; i++) {
+ assert(uniforms[i].storage != NULL || uniforms[i].builtin);
}
assert(parcel.values == data_end);
#endif
- prog->NumUserUniformStorage = num_user_uniforms;
+ prog->NumUniformStorage = num_uniforms;
prog->NumHiddenUniforms = hidden_uniforms;
prog->UniformStorage = uniforms;
diff --git a/mesalib/src/glsl/link_varyings.cpp b/mesalib/src/glsl/link_varyings.cpp
index 605748a9c..7b2d4bd23 100644
--- a/mesalib/src/glsl/link_varyings.cpp
+++ b/mesalib/src/glsl/link_varyings.cpp
@@ -56,7 +56,7 @@ cross_validate_types_and_qualifiers(struct gl_shader_program *prog,
const glsl_type *type_to_match = input->type;
if (consumer_stage == MESA_SHADER_GEOMETRY) {
assert(type_to_match->is_array()); /* Enforced by ast_to_hir */
- type_to_match = type_to_match->element_type();
+ type_to_match = type_to_match->fields.array;
}
if (type_to_match != output->type) {
/* There is a bit of a special case for gl_TexCoord. This
diff --git a/mesalib/src/glsl/linker.cpp b/mesalib/src/glsl/linker.cpp
index ea73c6f9d..99783800b 100644
--- a/mesalib/src/glsl/linker.cpp
+++ b/mesalib/src/glsl/linker.cpp
@@ -224,7 +224,7 @@ public:
return visit_continue;
}
- var->type = glsl_type::get_array_instance(var->type->element_type(),
+ var->type = glsl_type::get_array_instance(var->type->fields.array,
this->num_vertices);
var->data.max_array_access = this->num_vertices - 1;
@@ -245,7 +245,7 @@ public:
{
const glsl_type *const vt = ir->array->type;
if (vt->is_array())
- ir->type = vt->element_type();
+ ir->type = vt->fields.array;
return visit_continue;
}
};
@@ -1400,8 +1400,8 @@ link_fs_input_layout_qualifiers(struct gl_shader_program *prog,
"layout qualifiers for gl_FragCoord\n");
}
- /* Update the linked shader state.  Note that uses_gl_fragcoord should
- * accumulate the results.  The other values should replace.  If there
+ /* Update the linked shader state. Note that uses_gl_fragcoord should
+ * accumulate the results. The other values should replace. If there
* are multiple redeclarations, all the fields except uses_gl_fragcoord
* are already known to be the same.
*/
@@ -2693,13 +2693,23 @@ build_program_resource_list(struct gl_context *ctx,
}
/* Add uniforms from uniform storage. */
- for (unsigned i = 0; i < shProg->NumUserUniformStorage; i++) {
+ for (unsigned i = 0; i < shProg->NumUniformStorage; i++) {
/* Do not add uniforms internally used by Mesa. */
if (shProg->UniformStorage[i].hidden)
continue;
uint8_t stageref =
build_stageref(shProg, shProg->UniformStorage[i].name);
+
+ /* Add stagereferences for uniforms in a uniform block. */
+ int block_index = shProg->UniformStorage[i].block_index;
+ if (block_index != -1) {
+ for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) {
+ if (shProg->UniformBlockStageIndex[j][block_index] != -1)
+ stageref |= (1 << j);
+ }
+ }
+
if (!add_program_resource(shProg, GL_UNIFORM,
&shProg->UniformStorage[i], stageref))
return;
@@ -2819,8 +2829,11 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
link_intrastage_shaders(mem_ctx, ctx, prog, shader_list[stage],
num_shaders[stage]);
- if (!prog->LinkStatus)
+ if (!prog->LinkStatus) {
+ if (sh)
+ ctx->Driver.DeleteShader(ctx, sh);
goto done;
+ }
switch (stage) {
case MESA_SHADER_VERTEX:
@@ -2833,8 +2846,11 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
validate_fragment_shader_executable(prog, sh);
break;
}
- if (!prog->LinkStatus)
+ if (!prog->LinkStatus) {
+ if (sh)
+ ctx->Driver.DeleteShader(ctx, sh);
goto done;
+ }
_mesa_reference_shader(ctx, &prog->_LinkedShaders[stage], sh);
}
diff --git a/mesalib/src/glsl/lower_clip_distance.cpp b/mesalib/src/glsl/lower_clip_distance.cpp
index 2d6138d5a..01f028b1f 100644
--- a/mesalib/src/glsl/lower_clip_distance.cpp
+++ b/mesalib/src/glsl/lower_clip_distance.cpp
@@ -114,7 +114,7 @@ lower_clip_distance_visitor::visit(ir_variable *ir)
return visit_continue;
assert (ir->type->is_array());
- if (!ir->type->element_type()->is_array()) {
+ if (!ir->type->fields.array->is_array()) {
/* 1D gl_ClipDistance (used for vertex and geometry output, and fragment
* input).
*/
@@ -123,7 +123,7 @@ lower_clip_distance_visitor::visit(ir_variable *ir)
this->progress = true;
this->old_clip_distance_1d_var = ir;
- assert (ir->type->element_type() == glsl_type::float_type);
+ assert (ir->type->fields.array == glsl_type::float_type);
unsigned new_size = (ir->type->array_size() + 3) / 4;
/* Clone the old var so that we inherit all of its properties */
@@ -148,8 +148,8 @@ lower_clip_distance_visitor::visit(ir_variable *ir)
this->progress = true;
this->old_clip_distance_2d_var = ir;
- assert (ir->type->element_type()->element_type() == glsl_type::float_type);
- unsigned new_size = (ir->type->element_type()->array_size() + 3) / 4;
+ assert (ir->type->fields.array->fields.array == glsl_type::float_type);
+ unsigned new_size = (ir->type->fields.array->array_size() + 3) / 4;
/* Clone the old var so that we inherit all of its properties */
this->new_clip_distance_2d_var = ir->clone(ralloc_parent(ir), NULL);
diff --git a/mesalib/src/glsl/main.cpp b/mesalib/src/glsl/main.cpp
index ccac83996..23412980d 100644
--- a/mesalib/src/glsl/main.cpp
+++ b/mesalib/src/glsl/main.cpp
@@ -41,12 +41,6 @@
static int glsl_version = 330;
-extern "C" void
-_mesa_error_no_memory(const char *caller)
-{
- fprintf(stderr, "Mesa error: out of memory in %s", caller);
-}
-
static void
initialize_context(struct gl_context *ctx, gl_api api)
{
@@ -282,7 +276,7 @@ usage_fail(const char *name)
"usage: %s [options] <file.vert | file.geom | file.frag>\n"
"\n"
"Possible options are:\n";
- printf(header, name, name);
+ printf(header, name);
for (const struct option *o = compiler_opts; o->name != 0; ++o) {
printf(" --%s\n", o->name);
}
diff --git a/mesalib/src/glsl/nir/glsl_to_nir.cpp b/mesalib/src/glsl/nir/glsl_to_nir.cpp
index af758ceb0..95531bbcd 100644
--- a/mesalib/src/glsl/nir/glsl_to_nir.cpp
+++ b/mesalib/src/glsl/nir/glsl_to_nir.cpp
@@ -65,6 +65,7 @@ public:
virtual void visit(ir_dereference_variable *);
virtual void visit(ir_dereference_record *);
virtual void visit(ir_dereference_array *);
+ virtual void visit(ir_barrier *);
void create_function(ir_function *ir);
@@ -930,13 +931,9 @@ nir_visitor::evaluate_rvalue(ir_rvalue* ir)
}
nir_dest *dest = get_instr_dest(this->result);
-
assert(dest->is_ssa);
- nir_src src = NIR_SRC_INIT;
- src.is_ssa = true;
- src.ssa = &dest->ssa;
- return src;
+ return nir_src_for_ssa(&dest->ssa);
}
nir_alu_instr *
@@ -1893,3 +1890,11 @@ nir_visitor::visit(ir_dereference_array *ir)
ralloc_steal(this->deref_tail, deref);
this->deref_tail = &deref->deref;
}
+
+void
+nir_visitor::visit(ir_barrier *ir)
+{
+ nir_intrinsic_instr *instr =
+ nir_intrinsic_instr_create(this->shader, nir_intrinsic_barrier);
+ nir_instr_insert_after_cf_list(this->cf_node_list, &instr->instr);
+}
diff --git a/mesalib/src/glsl/nir/nir_intrinsics.h b/mesalib/src/glsl/nir/nir_intrinsics.h
index 10192c531..bc6e6b8f4 100644
--- a/mesalib/src/glsl/nir/nir_intrinsics.h
+++ b/mesalib/src/glsl/nir/nir_intrinsics.h
@@ -67,6 +67,7 @@ INTRINSIC(interp_var_at_offset, 1, ARR(2), true, 0, 1, 0,
*/
#define BARRIER(name) INTRINSIC(name, 0, ARR(), false, 0, 0, 0, 0)
+BARRIER(barrier)
BARRIER(discard)
/*
@@ -138,12 +139,11 @@ SYSTEM_VALUE(sample_mask_in, 1)
SYSTEM_VALUE(invocation_id, 1)
/*
- * The first index is the address to load from, and the second index is the
- * number of array elements to load. Indirect loads have an additional
- * register input, which is added to the constant address to compute the
- * final address to load from. For UBO's (and SSBO's), the first source is
- * the (possibly constant) UBO buffer index and the indirect (if it exists)
- * is the second source.
+ * The first and only index is the base address to load from. Indirect
+ * loads have an additional register input, which is added to the constant
+ * address to compute the final address to load from. For UBO's (and
+ * SSBO's), the first source is the (possibly constant) UBO buffer index
+ * and the indirect (if it exists) is the second source.
*
* For vector backends, the address is in terms of one vec4, and so each array
* element is +4 scalar components from the previous array element. For scalar
@@ -152,9 +152,9 @@ SYSTEM_VALUE(invocation_id, 1)
*/
#define LOAD(name, extra_srcs, flags) \
- INTRINSIC(load_##name, extra_srcs, ARR(1), true, 0, 0, 2, flags) \
+ INTRINSIC(load_##name, extra_srcs, ARR(1), true, 0, 0, 1, flags) \
INTRINSIC(load_##name##_indirect, extra_srcs + 1, ARR(1, 1), \
- true, 0, 0, 2, flags)
+ true, 0, 0, 1, flags)
LOAD(uniform, 0, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
LOAD(ubo, 1, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
@@ -172,7 +172,7 @@ LOAD(input, 0, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
INTRINSIC(store_##name##_indirect, 2, ARR(0, 1), false, 0, 0, \
num_indices, flags) \
-STORE(output, 2, 0)
-/* STORE(ssbo, 3, 0) */
+STORE(output, 1, 0)
+/* STORE(ssbo, 2, 0) */
LAST_INTRINSIC(store_output_indirect)
diff --git a/mesalib/src/glsl/nir/nir_lower_atomics.c b/mesalib/src/glsl/nir/nir_lower_atomics.c
index f6f89020f..0457de60d 100644
--- a/mesalib/src/glsl/nir/nir_lower_atomics.c
+++ b/mesalib/src/glsl/nir/nir_lower_atomics.c
@@ -109,7 +109,7 @@ lower_instr(nir_intrinsic_instr *instr, nir_function_impl *impl)
}
new_instr->src[0].is_ssa = true;
- new_instr->src[0].ssa = offset_def;;
+ new_instr->src[0].ssa = offset_def;
if (instr->dest.is_ssa) {
nir_ssa_dest_init(&new_instr->instr, &new_instr->dest,
diff --git a/mesalib/src/glsl/nir/nir_lower_io.c b/mesalib/src/glsl/nir/nir_lower_io.c
index 03eed04e1..6761d5bad 100644
--- a/mesalib/src/glsl/nir/nir_lower_io.c
+++ b/mesalib/src/glsl/nir/nir_lower_io.c
@@ -288,7 +288,6 @@ nir_lower_io_block(nir_block *block, void *void_state)
offset += intrin->variables[0]->var->data.driver_location;
load->const_index[0] = offset;
- load->const_index[1] = 1;
if (has_indirect)
load->src[0] = indirect;
@@ -331,7 +330,6 @@ nir_lower_io_block(nir_block *block, void *void_state)
offset += intrin->variables[0]->var->data.driver_location;
store->const_index[0] = offset;
- store->const_index[1] = 1;
nir_src_copy(&store->src[0], &intrin->src[0], state->mem_ctx);
diff --git a/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c b/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c
index 4bdb80072..a57d25397 100644
--- a/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c
+++ b/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c
@@ -153,6 +153,11 @@ should_lower_phi(nir_phi_instr *phi, struct lower_phis_to_scalar_state *state)
break;
}
+ /* The hash table entry for 'phi' may have changed while recursing the
+ * dependence graph, so we need to reset it */
+ entry = _mesa_hash_table_search(state->phi_table, phi);
+ assert(entry);
+
entry->data = (void *)(intptr_t)scalarizable;
return scalarizable;
diff --git a/mesalib/src/glsl/nir/nir_opt_algebraic.py b/mesalib/src/glsl/nir/nir_opt_algebraic.py
index fa039222f..eace791f5 100644
--- a/mesalib/src/glsl/nir/nir_opt_algebraic.py
+++ b/mesalib/src/glsl/nir/nir_opt_algebraic.py
@@ -156,6 +156,8 @@ optimizations = [
(('fpow', a, 2.0), ('fmul', a, a)),
(('fpow', a, 4.0), ('fmul', ('fmul', a, a), ('fmul', a, a))),
(('fpow', 2.0, a), ('fexp2', a)),
+ (('fpow', ('fpow', a, 2.2), 0.454545), a),
+ (('fpow', ('fabs', ('fpow', a, 2.2)), 0.454545), ('fabs', a)),
(('fsqrt', ('fexp2', a)), ('fexp2', ('fmul', 0.5, a))),
(('frcp', ('fexp2', a)), ('fexp2', ('fneg', a))),
(('frsq', ('fexp2', a)), ('fexp2', ('fmul', -0.5, a))),
diff --git a/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c b/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c
index b430eac8e..798506b75 100644
--- a/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c
+++ b/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c
@@ -73,7 +73,8 @@ are_all_uses_fadd(nir_ssa_def *def)
}
static nir_alu_instr *
-get_mul_for_src(nir_alu_src *src, uint8_t swizzle[4], bool *negate, bool *abs)
+get_mul_for_src(nir_alu_src *src, int num_components,
+ uint8_t swizzle[4], bool *negate, bool *abs)
{
assert(src->src.is_ssa && !src->abs && !src->negate);
@@ -85,16 +86,16 @@ get_mul_for_src(nir_alu_src *src, uint8_t swizzle[4], bool *negate, bool *abs)
switch (alu->op) {
case nir_op_imov:
case nir_op_fmov:
- alu = get_mul_for_src(&alu->src[0], swizzle, negate, abs);
+ alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
break;
case nir_op_fneg:
- alu = get_mul_for_src(&alu->src[0], swizzle, negate, abs);
+ alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
*negate = !*negate;
break;
case nir_op_fabs:
- alu = get_mul_for_src(&alu->src[0], swizzle, negate, abs);
+ alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
*negate = false;
*abs = true;
break;
@@ -115,12 +116,8 @@ get_mul_for_src(nir_alu_src *src, uint8_t swizzle[4], bool *negate, bool *abs)
if (!alu)
return NULL;
- for (unsigned i = 0; i < 4; i++) {
- if (!(alu->dest.write_mask & (1 << i)))
- break;
-
+ for (unsigned i = 0; i < num_components; i++)
swizzle[i] = swizzle[src->swizzle[i]];
- }
return alu;
}
@@ -160,7 +157,9 @@ nir_opt_peephole_ffma_block(nir_block *block, void *void_state)
negate = false;
abs = false;
- mul = get_mul_for_src(&add->src[add_mul_src], swizzle, &negate, &abs);
+ mul = get_mul_for_src(&add->src[add_mul_src],
+ add->dest.dest.ssa.num_components,
+ swizzle, &negate, &abs);
if (mul != NULL)
break;
diff --git a/mesalib/src/glsl/standalone_scaffolding.cpp b/mesalib/src/glsl/standalone_scaffolding.cpp
index a109c4e92..00db61e40 100644
--- a/mesalib/src/glsl/standalone_scaffolding.cpp
+++ b/mesalib/src/glsl/standalone_scaffolding.cpp
@@ -89,7 +89,7 @@ _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
{
unsigned i;
- shProg->NumUserUniformStorage = 0;
+ shProg->NumUniformStorage = 0;
shProg->UniformStorage = NULL;
shProg->NumUniformRemapTable = 0;
shProg->UniformRemapTable = NULL;
diff --git a/mesalib/src/loader/Android.mk b/mesalib/src/loader/Android.mk
index 8e215de3c..92d9fd20d 100644
--- a/mesalib/src/loader/Android.mk
+++ b/mesalib/src/loader/Android.mk
@@ -40,6 +40,8 @@ else
LOCAL_SHARED_LIBRARIES := libdrm
endif
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
+
LOCAL_MODULE := libmesa_loader
include $(MESA_COMMON_MK)
diff --git a/mesalib/src/loader/Makefile.am b/mesalib/src/loader/Makefile.am
index 36ddba82b..aef1bd61b 100644
--- a/mesalib/src/loader/Makefile.am
+++ b/mesalib/src/loader/Makefile.am
@@ -41,15 +41,11 @@ libloader_la_CPPFLAGS += \
-I$(top_builddir)/src/mesa/drivers/dri/common/ \
-I$(top_srcdir)/src/mesa/ \
-I$(top_srcdir)/src/mapi/ \
- -DUSE_DRICONF \
- $(EXPAT_CFLAGS)
+ -DUSE_DRICONF
-libloader_la_SOURCES += \
- $(top_srcdir)/src/mesa/drivers/dri/common/xmlconfig.c
+ libloader_la_LIBADD += \
+ $(top_builddir)/src/mesa/drivers/dri/common/libxmlconfig.la
-libloader_la_LIBADD += \
- -lm \
- $(EXPAT_LIBS)
endif
if !HAVE_LIBDRM
diff --git a/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml b/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
index b96b263db..41b520838 100644
--- a/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
+++ b/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
@@ -5,13 +5,13 @@
<category name="GL_AMD_performance_monitor" number="360">
- <function name="GetPerfMonitorGroupsAMD" offset="assign">
+ <function name="GetPerfMonitorGroupsAMD">
<param name="numGroups" type="GLint *"/>
<param name="groupsSize" type="GLsizei"/>
<param name="groups" type="GLuint *"/>
</function>
- <function name="GetPerfMonitorCountersAMD" offset="assign">
+ <function name="GetPerfMonitorCountersAMD">
<param name="group" type="GLuint"/>
<param name="numCounters" type="GLint *"/>
<param name="maxActiveCounters" type="GLint *"/>
@@ -19,14 +19,14 @@
<param name="counters" type="GLuint *"/>
</function>
- <function name="GetPerfMonitorGroupStringAMD" offset="assign">
+ <function name="GetPerfMonitorGroupStringAMD">
<param name="group" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
<param name="groupString" type="GLchar *"/>
</function>
- <function name="GetPerfMonitorCounterStringAMD" offset="assign">
+ <function name="GetPerfMonitorCounterStringAMD">
<param name="group" type="GLuint"/>
<param name="counter" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -34,24 +34,24 @@
<param name="counterString" type="GLchar *"/>
</function>
- <function name="GetPerfMonitorCounterInfoAMD" offset="assign">
+ <function name="GetPerfMonitorCounterInfoAMD">
<param name="group" type="GLuint"/>
<param name="counter" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="data" type="GLvoid *"/>
</function>
- <function name="GenPerfMonitorsAMD" offset="assign">
+ <function name="GenPerfMonitorsAMD">
<param name="n" type="GLsizei"/>
<param name="monitors" type="GLuint *"/>
</function>
- <function name="DeletePerfMonitorsAMD" offset="assign">
+ <function name="DeletePerfMonitorsAMD">
<param name="n" type="GLsizei"/>
<param name="monitors" type="GLuint *"/>
</function>
- <function name="SelectPerfMonitorCountersAMD" offset="assign">
+ <function name="SelectPerfMonitorCountersAMD">
<param name="monitor" type="GLuint"/>
<param name="enable" type="GLboolean"/>
<param name="group" type="GLuint"/>
@@ -59,15 +59,15 @@
<param name="counterList" type="GLuint *"/>
</function>
- <function name="BeginPerfMonitorAMD" offset="assign">
+ <function name="BeginPerfMonitorAMD">
<param name="monitor" type="GLuint"/>
</function>
- <function name="EndPerfMonitorAMD" offset="assign">
+ <function name="EndPerfMonitorAMD">
<param name="monitor" type="GLuint"/>
</function>
- <function name="GetPerfMonitorCounterDataAMD" offset="assign">
+ <function name="GetPerfMonitorCounterDataAMD">
<param name="monitor" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="dataSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml b/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml
index 62fa64ad2..829fc2631 100644
--- a/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml
+++ b/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml
@@ -13,21 +13,21 @@
<enum name="BUFFER_OBJECT_APPLE" value="0x85B3"/>
- <function name="ObjectPurgeableAPPLE" offset="assign">
+ <function name="ObjectPurgeableAPPLE">
<param name="objectType" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="option" type="GLenum"/>
<return type="GLenum"/>
</function>
- <function name="ObjectUnpurgeableAPPLE" offset="assign">
+ <function name="ObjectUnpurgeableAPPLE">
<param name="objectType" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="option" type="GLenum"/>
<return type="GLenum"/>
</function>
- <function name="GetObjectParameterivAPPLE" offset="assign">
+ <function name="GetObjectParameterivAPPLE">
<param name="objectType" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="pname" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml b/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
index 5eb53b14e..7312f9b35 100644
--- a/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
+++ b/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
@@ -5,23 +5,21 @@
<category name="GL_APPLE_vertex_array_object" number="273">
<enum name="VERTEX_ARRAY_BINDING_APPLE" value="0x85B5"/>
- <function name="BindVertexArrayAPPLE" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="BindVertexArrayAPPLE" deprecated="3.1">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArraysAPPLE" static_dispatch="false" alias="DeleteVertexArrays">
+ <function name="DeleteVertexArraysAPPLE" alias="DeleteVertexArrays">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *"/>
</function>
- <function name="GenVertexArraysAPPLE" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="GenVertexArraysAPPLE" deprecated="3.1">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *" count="n" output="true"/>
</function>
- <function name="IsVertexArrayAPPLE" static_dispatch="false" alias="IsVertexArray">
+ <function name="IsVertexArrayAPPLE" alias="IsVertexArray">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml b/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml
index d15736612..c96e71c44 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml
@@ -18,17 +18,17 @@
<enum name="MAX_VARYING_VECTORS" value="0x8DFC"/>
<enum name="MAX_FRAGMENT_UNIFORM_VECTORS" value="0x8DFD"/>
- <function name="GetShaderPrecisionFormat" offset="assign" es2="2.0">
+ <function name="GetShaderPrecisionFormat" es2="2.0">
<param name="shadertype" type="GLenum"/>
<param name="precisiontype" type="GLenum"/>
<param name="range" type="GLint *"/>
<param name="precision" type="GLint *"/>
</function>
- <function name="ReleaseShaderCompiler" offset="assign" es2="2.0">
+ <function name="ReleaseShaderCompiler" es2="2.0">
</function>
- <function name="ShaderBinary" offset="assign" es2="2.0">
+ <function name="ShaderBinary" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="shaders" type="const GLuint *"/>
<param name="binaryformat" type="GLenum"/>
@@ -45,11 +45,11 @@
<enum name="IMPLEMENTATION_COLOR_READ_FORMAT" value="0x8B9B"/>
<!-- from GL_OES_single_precision -->
- <function name="ClearDepthf" offset="assign" es1="1.0" es2="2.0">
+ <function name="ClearDepthf" es1="1.0" es2="2.0">
<param name="depth" type="GLclampf"/>
</function>
- <function name="DepthRangef" offset="assign" es1="1.0" es2="2.0">
+ <function name="DepthRangef" es1="1.0" es2="2.0">
<param name="zNear" type="GLclampf"/>
<param name="zFar" type="GLclampf"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml b/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml
index 1478e3970..56de639e9 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml
@@ -8,8 +8,7 @@
<category name="GL_ARB_base_instance" number="107">
- <function name="DrawArraysInstancedBaseInstance" offset="assign"
- exec="dynamic">
+ <function name="DrawArraysInstancedBaseInstance" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
@@ -17,8 +16,7 @@
<param name="baseinstance" type="GLuint"/>
</function>
- <function name="DrawElementsInstancedBaseInstance" offset="assign"
- exec="dynamic">
+ <function name="DrawElementsInstancedBaseInstance" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
@@ -27,8 +25,7 @@
<param name="baseinstance" type="GLuint"/>
</function>
- <function name="DrawElementsInstancedBaseVertexBaseInstance" offset="assign"
- exec="dynamic">
+ <function name="DrawElementsInstancedBaseVertexBaseInstance" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml b/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml
index 32adcde77..406140f7d 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml
@@ -8,14 +8,14 @@
<category name="GL_ARB_blend_func_extended" number="78">
- <function name="BindFragDataLocationIndexed" offset="assign">
+ <function name="BindFragDataLocationIndexed">
<param name="program" type="GLuint"/>
<param name="colorNumber" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="name" type="const GLchar *"/>
</function>
- <function name="GetFragDataIndex" offset="assign">
+ <function name="GetFragDataIndex">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml b/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml
index cb97a0185..2284eacd6 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml
@@ -8,7 +8,7 @@
<category name="GL_ARB_clear_buffer_object" number="121">
- <function name ="ClearBufferData" offset="assign">
+ <function name ="ClearBufferData">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="format" type="GLenum"/>
@@ -16,7 +16,7 @@
<param name="data" type="const GLvoid *"/>
</function>
- <function name ="ClearBufferSubData" offset="assign">
+ <function name ="ClearBufferSubData">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="offset" type="GLintptr"/>
@@ -26,7 +26,7 @@
<param name="data" type="const GLvoid *"/>
</function>
-<!-- <function name="ClearNamedBufferDataEXT" offset="assign">
+<!-- <function name="ClearNamedBufferDataEXT">
<param name="buffer" type="GLuint"/>
<param name="internalformat" type="GLenum"/>
<param name="format" type="GLenum"/>
@@ -35,7 +35,7 @@
</function>
- <function name="ClearNamedBufferSubDataEXT" offset="assign">
+ <function name="ClearNamedBufferSubDataEXT">
<param name="buffer" type="GLuint"/>
<param name="internalformat" type="GLenum"/>
<param name="offset" type="GLintptr"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml b/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml
index bd9116f8b..1ff981ea8 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml
@@ -7,7 +7,7 @@
<enum name="CLEAR_TEXTURE" value="0x9365"/>
- <function name ="ClearTexImage" offset="assign">
+ <function name ="ClearTexImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
<param name="format" type="GLenum"/>
@@ -15,7 +15,7 @@
<param name="data" type="const GLvoid *"/>
</function>
- <function name ="ClearTexSubImage" offset="assign">
+ <function name ="ClearTexSubImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml b/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml
index ab1a3883e..ecce133bb 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml
@@ -14,7 +14,7 @@
<enum name="CLIP_ORIGIN" value = "0x935C"/>
<enum name="CLIP_DEPTH_MODE" value = "0x935D"/>
- <function name="ClipControl" offset="assign">
+ <function name="ClipControl">
<param name="origin" type="GLenum"/>
<param name="depth" type="GLenum"/>
<!-- <glx rop="1340"/> -->
diff --git a/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml b/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml
index 1db373e99..c2ec842ef 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml
@@ -26,13 +26,13 @@
<enum name="DISPATCH_INDIRECT_BUFFER_BINDING" value="0x90EF"/>
<enum name="COMPUTE_SHADER_BIT" value="0x00000020"/>
- <function name="DispatchCompute" offset="assign">
+ <function name="DispatchCompute" es2="3.1">
<param name="num_groups_x" type="GLuint"/>
<param name="num_groups_y" type="GLuint"/>
<param name="num_groups_z" type="GLuint"/>
</function>
- <function name="DispatchComputeIndirect" offset="assign">
+ <function name="DispatchComputeIndirect" es2="3.1">
<param name="indirect" type="GLintptr"/>
</function>
</category>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml b/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml
index 6982ed1d2..d1c6f1fec 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml
@@ -11,7 +11,7 @@
<enum name="COPY_READ_BUFFER" value="0x8F36"/>
<enum name="COPY_WRITE_BUFFER" value="0x8F37"/>
- <function name="CopyBufferSubData" offset="assign" es2="3.0">
+ <function name="CopyBufferSubData" es2="3.0">
<param name="readTarget" type="GLenum"/>
<param name="writeTarget" type="GLenum"/>
<param name="readOffset" type="GLintptr"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml b/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml
index 2fbd84557..af672cd38 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml
@@ -5,7 +5,7 @@
<category name="GL_ARB_copy_image" number="123">
- <function name="CopyImageSubData" offset="assign">
+ <function name="CopyImageSubData">
<param name="srcName" type="GLuint"/>
<param name="srcTarget" type="GLenum"/>
<param name="srcLevel" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml b/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml
index bb9baf5a3..4c8f73ede 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml
@@ -9,18 +9,18 @@
<!-- Transform Feedback object functions -->
- <function name="CreateTransformFeedbacks" offset="assign">
+ <function name="CreateTransformFeedbacks">
<param name="n" type="GLsizei" />
<param name="ids" type="GLuint *" />
</function>
- <function name="TransformFeedbackBufferBase" offset="assign">
+ <function name="TransformFeedbackBufferBase">
<param name="xfb" type="GLuint" />
<param name="index" type="GLuint" />
<param name="buffer" type="GLuint" />
</function>
- <function name="TransformFeedbackBufferRange" offset="assign">
+ <function name="TransformFeedbackBufferRange">
<param name="xfb" type="GLuint" />
<param name="index" type="GLuint" />
<param name="buffer" type="GLuint" />
@@ -28,20 +28,20 @@
<param name="size" type="GLsizeiptr" />
</function>
- <function name="GetTransformFeedbackiv" offset="assign">
+ <function name="GetTransformFeedbackiv">
<param name="xfb" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint *" />
</function>
- <function name="GetTransformFeedbacki_v" offset="assign">
+ <function name="GetTransformFeedbacki_v">
<param name="xfb" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="index" type="GLuint" />
<param name="param" type="GLint *" />
</function>
- <function name="GetTransformFeedbacki64_v" offset="assign">
+ <function name="GetTransformFeedbacki64_v">
<param name="xfb" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="index" type="GLuint" />
@@ -50,33 +50,33 @@
<!-- Buffer object functions -->
- <function name="CreateBuffers" offset="assign">
+ <function name="CreateBuffers">
<param name="n" type="GLsizei" />
<param name="buffers" type="GLuint *" />
</function>
- <function name="NamedBufferStorage" offset="assign">
+ <function name="NamedBufferStorage">
<param name="buffer" type="GLuint" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
<param name="flags" type="GLbitfield" />
</function>
- <function name="NamedBufferData" offset="assign">
+ <function name="NamedBufferData">
<param name="buffer" type="GLuint" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
<param name="usage" type="GLenum" />
</function>
- <function name="NamedBufferSubData" offset="assign">
+ <function name="NamedBufferSubData">
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
</function>
- <function name="CopyNamedBufferSubData" offset="assign">
+ <function name="CopyNamedBufferSubData">
<param name="readBuffer" type="GLuint" />
<param name="writeBuffer" type="GLuint" />
<param name="readOffset" type="GLintptr" />
@@ -84,7 +84,7 @@
<param name="size" type="GLsizeiptr" />
</function>
- <function name="ClearNamedBufferData" offset="assign">
+ <function name="ClearNamedBufferData">
<param name="buffer" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="format" type="GLenum" />
@@ -92,7 +92,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="ClearNamedBufferSubData" offset="assign">
+ <function name="ClearNamedBufferSubData">
<param name="buffer" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="offset" type="GLintptr" />
@@ -102,13 +102,13 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="MapNamedBuffer" offset="assign">
+ <function name="MapNamedBuffer">
<return type="GLvoid *" />
<param name="buffer" type="GLuint" />
<param name="access" type="GLenum" />
</function>
- <function name="MapNamedBufferRange" offset="assign">
+ <function name="MapNamedBufferRange">
<return type="GLvoid *" />
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
@@ -116,36 +116,36 @@
<param name="access" type="GLbitfield" />
</function>
- <function name="UnmapNamedBuffer" offset="assign">
+ <function name="UnmapNamedBuffer">
<return type="GLboolean" />
<param name="buffer" type="GLuint" />
</function>
- <function name="FlushMappedNamedBufferRange" offset="assign">
+ <function name="FlushMappedNamedBufferRange">
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
<param name="length" type="GLsizeiptr" />
</function>
- <function name="GetNamedBufferParameteriv" offset="assign">
+ <function name="GetNamedBufferParameteriv">
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="GetNamedBufferParameteri64v" offset="assign">
+ <function name="GetNamedBufferParameteri64v">
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint64 *" />
</function>
- <function name="GetNamedBufferPointerv" offset="assign">
+ <function name="GetNamedBufferPointerv">
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLvoid **" />
</function>
- <function name="GetNamedBufferSubData" offset="assign">
+ <function name="GetNamedBufferSubData">
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
<param name="size" type="GLsizeiptr" />
@@ -283,19 +283,19 @@
<!-- Renderbuffer object functions -->
- <function name="CreateRenderbuffers" offset="assign">
+ <function name="CreateRenderbuffers">
<param name="n" type="GLsizei" />
<param name="renderbuffers" type="GLuint *" />
</function>
- <function name="NamedRenderbufferStorage" offset="assign">
+ <function name="NamedRenderbufferStorage">
<param name="renderbuffer" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="width" type="GLsizei" />
<param name="height" type="GLsizei" />
</function>
- <function name="NamedRenderbufferStorageMultisample" offset="assign">
+ <function name="NamedRenderbufferStorageMultisample">
<param name="renderbuffer" type="GLuint" />
<param name="samples" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -303,7 +303,7 @@
<param name="height" type="GLsizei" />
</function>
- <function name="GetNamedRenderbufferParameteriv" offset="assign">
+ <function name="GetNamedRenderbufferParameteriv">
<param name="renderbuffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
@@ -311,19 +311,19 @@
<!-- Texture object functions -->
- <function name="CreateTextures" offset="assign">
+ <function name="CreateTextures">
<param name="target" type="GLenum" />
<param name="n" type="GLsizei" />
<param name="textures" type="GLuint *" />
</function>
- <function name="TextureBuffer" offset="assign">
+ <function name="TextureBuffer">
<param name="texture" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="buffer" type="GLuint" />
</function>
- <function name="TextureBufferRange" offset="assign">
+ <function name="TextureBufferRange">
<param name="texture" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="buffer" type="GLuint" />
@@ -331,14 +331,14 @@
<param name="size" type="GLsizeiptr" />
</function>
- <function name="TextureStorage1D" offset="assign">
+ <function name="TextureStorage1D">
<param name="texture" type="GLuint" />
<param name="levels" type="GLsizei" />
<param name="internalformat" type="GLenum" />
<param name="width" type="GLsizei" />
</function>
- <function name="TextureStorage2D" offset="assign">
+ <function name="TextureStorage2D">
<param name="texture" type="GLuint" />
<param name="levels" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -346,7 +346,7 @@
<param name="height" type="GLsizei" />
</function>
- <function name="TextureStorage3D" offset="assign">
+ <function name="TextureStorage3D">
<param name="texture" type="GLuint" />
<param name="levels" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -355,7 +355,7 @@
<param name="depth" type="GLsizei" />
</function>
- <function name="TextureStorage2DMultisample" offset="assign">
+ <function name="TextureStorage2DMultisample">
<param name="texture" type="GLuint" />
<param name="samples" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -364,7 +364,7 @@
<param name="fixedsamplelocations" type="GLboolean" />
</function>
- <function name="TextureStorage3DMultisample" offset="assign">
+ <function name="TextureStorage3DMultisample">
<param name="texture" type="GLuint" />
<param name="samples" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -374,7 +374,7 @@
<param name="fixedsamplelocations" type="GLboolean" />
</function>
- <function name="TextureSubImage1D" offset="assign">
+ <function name="TextureSubImage1D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -384,7 +384,7 @@
<param name="pixels" type="const GLvoid *" />
</function>
- <function name="TextureSubImage2D" offset="assign">
+ <function name="TextureSubImage2D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -396,7 +396,7 @@
<param name="pixels" type="const GLvoid *" />
</function>
- <function name="TextureSubImage3D" offset="assign">
+ <function name="TextureSubImage3D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -410,7 +410,7 @@
<param name="pixels" type="const GLvoid *" />
</function>
- <function name="CompressedTextureSubImage1D" offset="assign">
+ <function name="CompressedTextureSubImage1D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -420,7 +420,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="CompressedTextureSubImage2D" offset="assign">
+ <function name="CompressedTextureSubImage2D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -432,7 +432,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="CompressedTextureSubImage3D" offset="assign">
+ <function name="CompressedTextureSubImage3D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -446,7 +446,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="CopyTextureSubImage1D" offset="assign">
+ <function name="CopyTextureSubImage1D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -455,7 +455,7 @@
<param name="width" type="GLsizei" />
</function>
- <function name="CopyTextureSubImage2D" offset="assign">
+ <function name="CopyTextureSubImage2D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -466,7 +466,7 @@
<param name="height" type="GLsizei" />
</function>
- <function name="CopyTextureSubImage3D" offset="assign">
+ <function name="CopyTextureSubImage3D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -478,52 +478,52 @@
<param name="height" type="GLsizei" />
</function>
- <function name="TextureParameterf" offset="assign">
+ <function name="TextureParameterf">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLfloat" />
</function>
- <function name="TextureParameterfv" offset="assign">
+ <function name="TextureParameterfv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="const GLfloat *" />
</function>
- <function name="TextureParameteri" offset="assign">
+ <function name="TextureParameteri">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint" />
</function>
- <function name="TextureParameterIiv" offset="assign">
+ <function name="TextureParameterIiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="const GLint *" />
</function>
- <function name="TextureParameterIuiv" offset="assign">
+ <function name="TextureParameterIuiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="const GLuint *" />
</function>
- <function name="TextureParameteriv" offset="assign">
+ <function name="TextureParameteriv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="const GLint *" />
</function>
- <function name="GenerateTextureMipmap" offset="assign">
+ <function name="GenerateTextureMipmap">
<param name="texture" type="GLuint" />
</function>
- <function name="BindTextureUnit" offset="assign">
+ <function name="BindTextureUnit">
<param name="unit" type="GLuint" />
<param name="texture" type="GLuint" />
</function>
- <function name="GetTextureImage" offset="assign">
+ <function name="GetTextureImage">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="format" type="GLenum" />
@@ -532,46 +532,46 @@
<param name="pixels" type="GLvoid *" />
</function>
- <function name="GetCompressedTextureImage" offset="assign">
+ <function name="GetCompressedTextureImage">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="bufSize" type="GLsizei" />
<param name="pixels" type="GLvoid *" />
</function>
- <function name="GetTextureLevelParameterfv" offset="assign">
+ <function name="GetTextureLevelParameterfv">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLfloat *" />
</function>
- <function name="GetTextureLevelParameteriv" offset="assign">
+ <function name="GetTextureLevelParameteriv">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="GetTextureParameterfv" offset="assign">
+ <function name="GetTextureParameterfv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLfloat *" />
</function>
- <function name="GetTextureParameterIiv" offset="assign">
+ <function name="GetTextureParameterIiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="GetTextureParameterIuiv" offset="assign">
+ <function name="GetTextureParameterIuiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLuint *" />
</function>
- <function name="GetTextureParameteriv" offset="assign">
+ <function name="GetTextureParameteriv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
@@ -579,27 +579,27 @@
<!-- Vertex Array object functions -->
- <function name="CreateVertexArrays" offset="assign">
+ <function name="CreateVertexArrays">
<param name="n" type="GLsizei" />
<param name="arrays" type="GLuint *" />
</function>
- <function name="DisableVertexArrayAttrib" offset="assign">
+ <function name="DisableVertexArrayAttrib">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
</function>
- <function name="EnableVertexArrayAttrib" offset="assign">
+ <function name="EnableVertexArrayAttrib">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
</function>
- <function name="VertexArrayElementBuffer" offset="assign">
+ <function name="VertexArrayElementBuffer">
<param name="vaobj" type="GLuint" />
<param name="buffer" type="GLuint" />
</function>
- <function name="VertexArrayVertexBuffer" offset="assign">
+ <function name="VertexArrayVertexBuffer">
<param name="vaobj" type="GLuint" />
<param name="bindingindex" type="GLuint" />
<param name="buffer" type="GLuint" />
@@ -607,7 +607,7 @@
<param name="stride" type="GLsizei" />
</function>
- <function name="VertexArrayVertexBuffers" offset="assign">
+ <function name="VertexArrayVertexBuffers">
<param name="vaobj" type="GLuint" />
<param name="first" type="GLuint" />
<param name="count" type="GLsizei" />
@@ -616,7 +616,7 @@
<param name="strides" type="const GLsizei *" />
</function>
- <function name="VertexArrayAttribFormat" offset="assign">
+ <function name="VertexArrayAttribFormat">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="size" type="GLint" />
@@ -625,7 +625,7 @@
<param name="relativeoffset" type="GLuint" />
</function>
- <function name="VertexArrayAttribIFormat" offset="assign">
+ <function name="VertexArrayAttribIFormat">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="size" type="GLint" />
@@ -633,7 +633,7 @@
<param name="relativeoffset" type="GLuint" />
</function>
- <function name="VertexArrayAttribLFormat" offset="assign">
+ <function name="VertexArrayAttribLFormat">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="size" type="GLint" />
@@ -641,32 +641,32 @@
<param name="relativeoffset" type="GLuint" />
</function>
- <function name="VertexArrayAttribBinding" offset="assign">
+ <function name="VertexArrayAttribBinding">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="bindingindex" type="GLuint" />
</function>
- <function name="VertexArrayBindingDivisor" offset="assign">
+ <function name="VertexArrayBindingDivisor">
<param name="vaobj" type="GLuint" />
<param name="bindingindex" type="GLuint" />
<param name="divisor" type="GLuint" />
</function>
- <function name="GetVertexArrayiv" offset="assign">
+ <function name="GetVertexArrayiv">
<param name="vaobj" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint *" />
</function>
- <function name="GetVertexArrayIndexediv" offset="assign">
+ <function name="GetVertexArrayIndexediv">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint *" />
</function>
- <function name="GetVertexArrayIndexed64iv" offset="assign">
+ <function name="GetVertexArrayIndexed64iv">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
<param name="pname" type="GLenum" />
@@ -675,48 +675,48 @@
<!-- Sampler object functions -->
- <function name="CreateSamplers" offset="assign">
+ <function name="CreateSamplers">
<param name="n" type="GLsizei" />
<param name="samplers" type="GLuint *" />
</function>
<!-- Program Pipeline object functions -->
- <function name="CreateProgramPipelines" offset="assign">
+ <function name="CreateProgramPipelines">
<param name="n" type="GLsizei" />
<param name="pipelines" type="GLuint *" />
</function>
<!-- Query object functions -->
- <function name="CreateQueries" offset="assign">
+ <function name="CreateQueries">
<param name="target" type="GLenum" />
<param name="n" type="GLsizei" />
<param name="ids" type="GLuint *" />
</function>
- <function name="GetQueryBufferObjectiv" offset="assign">
+ <function name="GetQueryBufferObjectiv">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="offset" type="GLintptr" />
</function>
- <function name="GetQueryBufferObjectuiv" offset="assign">
+ <function name="GetQueryBufferObjectuiv">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="offset" type="GLintptr" />
</function>
- <function name="GetQueryBufferObjecti64v" offset="assign">
+ <function name="GetQueryBufferObjecti64v">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="offset" type="GLintptr" />
</function>
- <function name="GetQueryBufferObjectui64v" offset="assign">
+ <function name="GetQueryBufferObjectui64v">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml
index 0b6947cc5..8c33fbf89 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml
@@ -8,24 +8,24 @@
<category name="GL_ARB_draw_buffers_blend" number="69">
- <function name="BlendEquationiARB" offset="assign">
+ <function name="BlendEquationiARB">
<param name="buf" type="GLuint"/>
<param name="mode" type="GLenum"/>
</function>
- <function name="BlendEquationSeparateiARB" offset="assign">
+ <function name="BlendEquationSeparateiARB">
<param name="buf" type="GLuint"/>
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
- <function name="BlendFunciARB" offset="assign">
+ <function name="BlendFunciARB">
<param name="buf" type="GLuint"/>
<param name="src" type="GLenum"/>
<param name="dst" type="GLenum"/>
</function>
- <function name="BlendFuncSeparateiARB" offset="assign">
+ <function name="BlendFuncSeparateiARB">
<param name="buf" type="GLuint"/>
<param name="srcRGB" type="GLenum"/>
<param name="dstRGB" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml
index 986654848..120bda13d 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml
@@ -8,7 +8,7 @@
<category name="GL_ARB_draw_elements_base_vertex" number="62">
- <function name="DrawElementsBaseVertex" offset="assign" exec="dynamic">
+ <function name="DrawElementsBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
@@ -16,8 +16,7 @@
<param name="basevertex" type="GLint"/>
</function>
- <function name="DrawRangeElementsBaseVertex" offset="assign"
- exec="dynamic">
+ <function name="DrawRangeElementsBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="start" type="GLuint"/>
<param name="end" type="GLuint"/>
@@ -27,8 +26,7 @@
<param name="basevertex" type="GLint"/>
</function>
- <function name="MultiDrawElementsBaseVertex" offset="assign"
- exec="dynamic">
+ <function name="MultiDrawElementsBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="const GLsizei *"/>
<param name="type" type="GLenum"/>
@@ -37,8 +35,7 @@
<param name="basevertex" type="const GLint *"/>
</function>
- <function name="DrawElementsInstancedBaseVertex" offset="assign"
- exec="dynamic">
+ <function name="DrawElementsInstancedBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml
index 7de03cd35..3b29d6b86 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml
@@ -8,12 +8,12 @@
<enum name="DRAW_INDIRECT_BUFFER" value="0x8F3F"/>
<enum name="DRAW_INDIRECT_BUFFER_BINDING" value="0x8F43"/>
- <function name="DrawArraysIndirect" offset="assign" exec="dynamic">
+ <function name="DrawArraysIndirect" exec="dynamic" es2="3.1">
<param name="mode" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
</function>
- <function name="DrawElementsIndirect" offset="assign" exec="dynamic">
+ <function name="DrawElementsIndirect" exec="dynamic" es2="3.1">
<param name="mode" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
@@ -24,14 +24,14 @@
<category name="GL_ARB_multi_draw_indirect" number="133">
- <function name="MultiDrawArraysIndirect" offset="assign" exec="dynamic">
+ <function name="MultiDrawArraysIndirect" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
<param name="primcount" type="GLsizei"/>
<param name="stride" type="GLsizei"/>
</function>
- <function name="MultiDrawElementsIndirect" offset="assign" exec="dynamic">
+ <function name="MultiDrawElementsIndirect" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml
index 7ee7629c7..b1c822144 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml
@@ -8,14 +8,14 @@
<category name="GL_ARB_draw_instanced" number="44">
- <function name="DrawArraysInstancedARB" offset="assign" exec="dynamic">
+ <function name="DrawArraysInstancedARB" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="primcount" type="GLsizei"/>
</function>
- <function name="DrawElementsInstancedARB" offset="assign" exec="dynamic">
+ <function name="DrawElementsInstancedARB" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml b/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml
index 999a8ef13..1573e7e96 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml
@@ -140,33 +140,31 @@
- <function name="IsRenderbuffer" es2="2.0" offset="assign">
+ <function name="IsRenderbuffer" es2="2.0">
<param name="renderbuffer" type="GLuint"/>
<return type="GLboolean"/>
<glx vendorpriv="1422"/>
</function>
- <function name="BindRenderbuffer" es2="2.0" offset="assign">
+ <function name="BindRenderbuffer" es2="2.0">
<param name="target" type="GLenum"/>
<param name="renderbuffer" type="GLuint"/>
<glx rop="235"/>
</function>
- <function name="DeleteRenderbuffers"
- es2="2.0" offset="assign">
+ <function name="DeleteRenderbuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="const GLuint *" count="n"/>
<glx rop="4317"/>
</function>
- <function name="GenRenderbuffers" es2="2.0" offset="assign">
+ <function name="GenRenderbuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="GLuint *" count="n" output="true"/>
<glx vendorpriv="1423" always_array="true"/>
</function>
- <function name="RenderbufferStorage"
- es2="2.0" offset="assign">
+ <function name="RenderbufferStorage" es2="2.0">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -174,7 +172,7 @@
<glx rop="4318"/>
</function>
- <function name="RenderbufferStorageMultisample" offset="assign" es2="3.0">
+ <function name="RenderbufferStorageMultisample" es2="3.0">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -183,46 +181,44 @@
<glx rop="4331"/>
</function>
- <function name="GetRenderbufferParameteriv" es2="2.0" offset="assign">
+ <function name="GetRenderbufferParameteriv" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
<glx vendorpriv="1424"/>
</function>
- <function name="IsFramebuffer" es2="2.0" offset="assign">
+ <function name="IsFramebuffer" es2="2.0">
<param name="framebuffer" type="GLuint"/>
<return type="GLboolean"/>
<glx vendorpriv="1425"/>
</function>
- <function name="BindFramebuffer" es2="2.0" offset="assign">
+ <function name="BindFramebuffer" es2="2.0">
<param name="target" type="GLenum"/>
<param name="framebuffer" type="GLuint"/>
<glx rop="236"/>
</function>
- <function name="DeleteFramebuffers"
- es2="2.0" offset="assign">
+ <function name="DeleteFramebuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="const GLuint *" count="n"/>
<glx rop="4320"/>
</function>
- <function name="GenFramebuffers" es2="2.0" offset="assign">
+ <function name="GenFramebuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="GLuint *" count="n" output="true"/>
<glx vendorpriv="1426" always_array="true"/>
</function>
- <function name="CheckFramebufferStatus"
- es2="2.0" offset="assign">
+ <function name="CheckFramebufferStatus" es2="2.0">
<param name="target" type="GLenum"/>
<return type="GLenum"/>
<glx vendorpriv="1427"/>
</function>
- <function name="FramebufferTexture1D" offset="assign">
+ <function name="FramebufferTexture1D">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -231,8 +227,7 @@
<glx rop="4321"/>
</function>
- <function name="FramebufferTexture2D"
- es2="2.0" offset="assign">
+ <function name="FramebufferTexture2D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -241,7 +236,7 @@
<glx rop="4322"/>
</function>
- <function name="FramebufferTexture3D" offset="assign">
+ <function name="FramebufferTexture3D">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -251,7 +246,7 @@
<glx rop="4323"/>
</function>
- <function name="FramebufferTextureLayer" es2="3.0" offset="assign">
+ <function name="FramebufferTextureLayer" es2="3.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="texture" type="GLuint"/>
@@ -260,8 +255,7 @@
<glx rop="237"/>
</function>
- <function name="FramebufferRenderbuffer"
- es2="2.0" offset="assign">
+ <function name="FramebufferRenderbuffer" es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="renderbuffertarget" type="GLenum"/>
@@ -269,7 +263,7 @@
<glx rop="4324"/>
</function>
- <function name="GetFramebufferAttachmentParameteriv" es2="2.0" offset="assign">
+ <function name="GetFramebufferAttachmentParameteriv" es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="pname" type="GLenum"/>
@@ -277,7 +271,7 @@
<glx vendorpriv="1428"/>
</function>
- <function name="BlitFramebuffer" es2="3.0" offset="assign">
+ <function name="BlitFramebuffer" es2="3.0">
<param name="srcX0" type="GLint"/>
<param name="srcY0" type="GLint"/>
<param name="srcX1" type="GLint"/>
@@ -291,7 +285,7 @@
<glx rop="4330"/>
</function>
- <function name="GenerateMipmap" es2="2.0" offset="assign">
+ <function name="GenerateMipmap" es2="2.0">
<param name="target" type="GLenum"/>
<glx rop="4325"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml b/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml
index e62047c9b..280e7a075 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml
@@ -45,7 +45,7 @@
<param name="level" type="GLint"/>
<param name="layer" type="GLint"/>
</function>
- <function name="FramebufferTextureFaceARB" exec="skip" offset="assign">
+ <function name="FramebufferTextureFaceARB" exec="skip">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="texture" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml b/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml
index e84d0678e..25e0a37c8 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml
@@ -11,7 +11,7 @@
<enum name="NUM_PROGRAM_BINARY_FORMATS" value="0x87FE"/>
<enum name="PROGRAM_BINARY_FORMATS" value="0x87FF"/>
- <function name="GetProgramBinary" offset="assign" es2="3.0">
+ <function name="GetProgramBinary" es2="3.0">
<param name="program" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -19,14 +19,14 @@
<param name="binary" type="GLvoid *"/>
</function>
- <function name="ProgramBinary" offset="assign" es2="3.0">
+ <function name="ProgramBinary" es2="3.0">
<param name="program" type="GLuint"/>
<param name="binaryFormat" type="GLenum"/>
<param name="binary" type="const GLvoid *"/>
<param name="length" type="GLsizei"/>
</function>
- <function name="ProgramParameteri" offset="assign" es2="3.0">
+ <function name="ProgramParameteri" es2="3.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="value" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml b/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml
index 4f860ef8c..fd1ad117e 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml
@@ -5,25 +5,25 @@
<category name="GL_ARB_gpu_shader_fp64" number="89">
- <function name="Uniform1d" offset="assign">
+ <function name="Uniform1d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="Uniform2d" offset="assign">
+ <function name="Uniform2d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="Uniform3d" offset="assign">
+ <function name="Uniform3d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="Uniform4d" offset="assign">
+ <function name="Uniform4d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
@@ -31,94 +31,94 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="Uniform1dv" offset="assign">
+ <function name="Uniform1dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="Uniform2dv" offset="assign">
+ <function name="Uniform2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="Uniform3dv" offset="assign">
+ <function name="Uniform3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="Uniform4dv" offset="assign">
+ <function name="Uniform4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix2dv" offset="assign">
+ <function name="UniformMatrix2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix3dv" offset="assign">
+ <function name="UniformMatrix3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix4dv" offset="assign">
+ <function name="UniformMatrix4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix2x3dv" offset="assign">
+ <function name="UniformMatrix2x3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix2x4dv" offset="assign">
+ <function name="UniformMatrix2x4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix3x2dv" offset="assign">
+ <function name="UniformMatrix3x2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix3x4dv" offset="assign">
+ <function name="UniformMatrix3x4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix4x2dv" offset="assign">
+ <function name="UniformMatrix4x2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix4x3dv" offset="assign">
+ <function name="UniformMatrix4x3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="GetUniformdv" offset="assign">
+ <function name="GetUniformdv">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLdouble *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml b/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
index 70a2a3109..16d14b1b7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
@@ -8,8 +8,7 @@
<enum name="NUM_SAMPLE_COUNTS" value="0x9380"/>
- <function name="GetInternalformativ" offset="assign" static_dispatch="false"
- es2="3.0">
+ <function name="GetInternalformativ" es2="3.0">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="pname" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml b/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml
index 31b515cdb..052816ad7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml
@@ -3,7 +3,7 @@
<OpenGLAPI>
<category name="GL_ARB_invalidate_subdata" number="666">
- <function name="InvalidateTexSubImage" offset="assign">
+ <function name="InvalidateTexSubImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -14,22 +14,22 @@
<param name="depth" type="GLsizei"/>
</function>
- <function name="InvalidateTexImage" offset="assign">
+ <function name="InvalidateTexImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
</function>
- <function name="InvalidateBufferSubData" offset="assign">
+ <function name="InvalidateBufferSubData">
<param name="buffer" type="GLuint"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
</function>
- <function name="InvalidateBufferData" offset="assign">
+ <function name="InvalidateBufferData">
<param name="buffer" type="GLuint"/>
</function>
- <function name="InvalidateSubFramebuffer" offset="assign" es2="3.0">
+ <function name="InvalidateSubFramebuffer" es2="3.0">
<param name="target" type="GLenum"/>
<param name="numAttachments" type="GLsizei" counter="true"/>
<param name="attachments" type="const GLenum *" count="numAttachments"/>
@@ -39,7 +39,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="InvalidateFramebuffer" offset="assign" es2="3.0">
+ <function name="InvalidateFramebuffer" es2="3.0">
<param name="target" type="GLenum"/>
<param name="numAttachments" type="GLsizei" counter="true"/>
<param name="attachments" type="const GLenum *" count="numAttachments"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml b/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml
index d87450446..cf7b21148 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml
@@ -15,7 +15,7 @@
<enum name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010"/>
<enum name="MAP_UNSYNCHRONIZED_BIT" value="0x0020"/>
- <function name="MapBufferRange" offset="assign" es2="3.0">
+ <function name="MapBufferRange" es2="3.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
@@ -23,7 +23,7 @@
<return type="GLvoid *"/>
</function>
- <function name="FlushMappedBufferRange" offset="assign" es2="3.0">
+ <function name="FlushMappedBufferRange" es2="3.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml b/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml
index 4f2f2a259..f42eaa28e 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml
@@ -7,14 +7,14 @@
<category name="GL_ARB_multi_bind" number="147">
- <function name="BindBuffersBase" offset="assign">
+ <function name="BindBuffersBase">
<param name="target" type="GLenum"/>
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="buffers" type="const GLuint *"/>
</function>
- <function name="BindBuffersRange" offset="assign">
+ <function name="BindBuffersRange">
<param name="target" type="GLenum"/>
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
@@ -23,25 +23,25 @@
<param name="sizes" type="const GLsizeiptr *"/>
</function>
- <function name="BindTextures" offset="assign">
+ <function name="BindTextures">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="textures" type="const GLuint *"/>
</function>
- <function name="BindSamplers" offset="assign">
+ <function name="BindSamplers">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="samplers" type="const GLuint *"/>
</function>
- <function name="BindImageTextures" offset="assign">
+ <function name="BindImageTextures">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="textures" type="const GLuint *"/>
</function>
- <function name="BindVertexBuffers" offset="assign">
+ <function name="BindVertexBuffers">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="buffers" type="const GLuint *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml b/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml
index 59eb59c64..c3162f5ed 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml
@@ -56,21 +56,21 @@
<enum name="NUM_COMPATIBLE_SUBROUTINES" value="0x8E4A"/>
<enum name="COMPATIBLE_SUBROUTINES" value="0x8E4B"/>
- <function name="GetProgramInterfaceiv" offset="assign">
+ <function name="GetProgramInterfaceiv" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="GetProgramResourceIndex" offset="assign">
+ <function name="GetProgramResourceIndex" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="name" type="const GLchar *"/>
<return type="GLuint"/>
</function>
- <function name="GetProgramResourceName" offset="assign">
+ <function name="GetProgramResourceName" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -79,7 +79,7 @@
<param name="name" type="GLchar *" output="true"/>
</function>
- <function name="GetProgramResourceiv" offset="assign">
+ <function name="GetProgramResourceiv" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -90,14 +90,14 @@
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="GetProgramResourceLocation" offset="assign">
+ <function name="GetProgramResourceLocation" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
</function>
- <function name="GetProgramResourceLocationIndex" offset="assign">
+ <function name="GetProgramResourceLocationIndex">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="name" type="const GLchar *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_robustness.xml b/mesalib/src/mapi/glapi/gen/ARB_robustness.xml
index 65843149c..9b2f2f0a7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_robustness.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_robustness.xml
@@ -20,26 +20,26 @@
<enum name="CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB" value="0x00000004"/>
- <function name="GetGraphicsResetStatusARB" offset="assign">
+ <function name="GetGraphicsResetStatusARB">
<return type="GLenum"/>
</function>
<!-- OpenGL 1.0 sized buffer queries -->
- <function name="GetnMapdvARB" offset="assign" deprecated="3.1">
+ <function name="GetnMapdvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="v" type="GLdouble *" output="true"/>
</function>
- <function name="GetnMapfvARB" offset="assign" deprecated="3.1">
+ <function name="GetnMapfvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="v" type="GLfloat *" output="true"/>
</function>
- <function name="GetnMapivARB" offset="assign" deprecated="3.1">
+ <function name="GetnMapivARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
@@ -48,19 +48,19 @@
- <function name="GetnPixelMapfvARB" offset="assign" deprecated="3.1">
+ <function name="GetnPixelMapfvARB" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="values" type="GLfloat *" output="true"/>
</function>
- <function name="GetnPixelMapuivARB" offset="assign" deprecated="3.1">
+ <function name="GetnPixelMapuivARB" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="values" type="GLuint *" output="true"/>
</function>
- <function name="GetnPixelMapusvARB" offset="assign" deprecated="3.1">
+ <function name="GetnPixelMapusvARB" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="values" type="GLushort *" output="true"/>
@@ -68,12 +68,12 @@
- <function name="GetnPolygonStippleARB" offset="assign">
+ <function name="GetnPolygonStippleARB">
<param name="bufSize" type="GLsizei"/>
<param name="pattern" type="GLubyte *" output="true"/>
</function>
- <function name="GetnTexImageARB" offset="assign">
+ <function name="GetnTexImageARB">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="format" type="GLenum"/>
@@ -82,7 +82,7 @@
<param name="img" type="GLvoid *" output="true"/>
</function>
- <function name="ReadnPixelsARB" offset="assign">
+ <function name="ReadnPixelsARB">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -95,7 +95,7 @@
<!-- ARB_imaging sized buffer queries -->
- <function name="GetnColorTableARB" offset="assign" deprecated="3.1">
+ <function name="GetnColorTableARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -103,7 +103,7 @@
<param name="table" type="GLvoid *" output="true"/>
</function>
- <function name="GetnConvolutionFilterARB" offset="assign" deprecated="3.1">
+ <function name="GetnConvolutionFilterARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -111,7 +111,7 @@
<param name="image" type="GLvoid *" output="true"/>
</function>
- <function name="GetnSeparableFilterARB" offset="assign" deprecated="3.1">
+ <function name="GetnSeparableFilterARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -122,7 +122,7 @@
<param name="span" type="GLvoid *" output="true"/>
</function>
- <function name="GetnHistogramARB" offset="assign" deprecated="3.1">
+ <function name="GetnHistogramARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -131,7 +131,7 @@
<param name="values" type="GLvoid *" output="true"/>
</function>
- <function name="GetnMinmaxARB" offset="assign" deprecated="3.1">
+ <function name="GetnMinmaxARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -142,7 +142,7 @@
<!-- OpenGL 1.3 sized buffer queries -->
- <function name="GetnCompressedTexImageARB" offset="assign">
+ <function name="GetnCompressedTexImageARB">
<param name="target" type="GLenum"/>
<param name="lod" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
@@ -151,28 +151,28 @@
<!-- OpenGL 2.0 sized buffer queries -->
- <function name="GetnUniformfvARB" offset="assign">
+ <function name="GetnUniformfvARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
<param name="params" type="GLfloat *" output="true"/>
</function>
- <function name="GetnUniformivARB" offset="assign">
+ <function name="GetnUniformivARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="GetnUniformuivARB" offset="assign">
+ <function name="GetnUniformuivARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
<param name="params" type="GLuint *" output="true"/>
</function>
- <function name="GetnUniformdvARB" offset="assign">
+ <function name="GetnUniformdvARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml b/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml
index 9173dee5c..bc69e97bd 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml
@@ -7,81 +7,81 @@
<category name="GL_ARB_sampler_objects" number="81">
- <function name="GenSamplers" offset="assign" es2="3.0">
+ <function name="GenSamplers" es2="3.0">
<param name="count" type="GLsizei"/>
<param name="samplers" type="GLuint *"/>
</function>
- <function name="DeleteSamplers" offset="assign" es2="3.0">
+ <function name="DeleteSamplers" es2="3.0">
<param name="count" type="GLsizei"/>
<param name="samplers" type="const GLuint *"/>
</function>
- <function name="IsSampler" offset="assign" es2="3.0">
+ <function name="IsSampler" es2="3.0">
<param name="sampler" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="BindSampler" offset="assign" es2="3.0">
+ <function name="BindSampler" es2="3.0">
<param name="unit" type="GLuint"/>
<param name="sampler" type="GLuint"/>
</function>
- <function name="SamplerParameteri" offset="assign" es2="3.0">
+ <function name="SamplerParameteri" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="SamplerParameterf" offset="assign" es2="3.0">
+ <function name="SamplerParameterf" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
</function>
- <function name="SamplerParameteriv" offset="assign" es2="3.0">
+ <function name="SamplerParameteriv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="SamplerParameterfv" offset="assign" es2="3.0">
+ <function name="SamplerParameterfv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="SamplerParameterIiv" offset="assign">
+ <function name="SamplerParameterIiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="SamplerParameterIuiv" offset="assign">
+ <function name="SamplerParameterIuiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLuint *"/>
</function>
- <function name="GetSamplerParameteriv" offset="assign" es2="3.0">
+ <function name="GetSamplerParameteriv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetSamplerParameterfv" offset="assign" es2="3.0">
+ <function name="GetSamplerParameterfv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *"/>
</function>
- <function name="GetSamplerParameterIiv" offset="assign">
+ <function name="GetSamplerParameterIiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetSamplerParameterIuiv" offset="assign">
+ <function name="GetSamplerParameterIuiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml b/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml
index 96ae2b9cb..c9f481d8b 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml
@@ -15,69 +15,69 @@
<enum name="ALL_SHADER_BITS" value="0xFFFFFFFF"/>
<enum name="PROGRAM_SEPARABLE" value="0x8258"/>
- <function name="UseProgramStages" offset="assign" static_dispatch="false">
+ <function name="UseProgramStages" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="stages" type="GLbitfield" />
<param name="program" type="GLuint" />
</function>
- <function name="ActiveShaderProgram" offset="assign" static_dispatch="false">
+ <function name="ActiveShaderProgram" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="program" type="GLuint" />
</function>
- <function name="CreateShaderProgramv" offset="assign" static_dispatch="false">
+ <function name="CreateShaderProgramv" es2="3.1">
<param name="type" type="GLenum" />
<param name="count" type="GLsizei" />
<param name="strings" type="const GLchar * const *" />
<return type="GLuint"/>
</function>
- <function name="BindProgramPipeline" offset="assign" static_dispatch="false">
+ <function name="BindProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
</function>
- <function name="DeleteProgramPipelines" offset="assign" static_dispatch="false">
+ <function name="DeleteProgramPipelines" es2="3.1">
<param name="n" type="GLsizei" />
<param name="pipelines" type="const GLuint *" />
</function>
- <function name="GenProgramPipelines" offset="assign" static_dispatch="false">
+ <function name="GenProgramPipelines" es2="3.1">
<param name="n" type="GLsizei" />
<param name="pipelines" type="GLuint *" />
</function>
- <function name="IsProgramPipeline" offset="assign" static_dispatch="false">
+ <function name="IsProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
<return type="GLboolean"/>
</function>
<!-- Function already included on ARB_get_program_binary.xml. Keep a commented
version here for completeness -->
<!--
- <function name="ProgramParameteri" offset="assign" es2="3.0" static_dispatch="false">
+ <function name="ProgramParameteri" es2="3.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="value" type="GLint"/>
</function>
-->
- <function name="GetProgramPipelineiv" offset="assign" static_dispatch="false">
+ <function name="GetProgramPipelineiv" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="ProgramUniform1i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
</function>
- <function name="ProgramUniform2i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
<param name="y" type="GLint" />
</function>
- <function name="ProgramUniform3i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
<param name="y" type="GLint" />
<param name="z" type="GLint" />
</function>
- <function name="ProgramUniform4i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
@@ -85,25 +85,25 @@
<param name="z" type="GLint" />
<param name="w" type="GLint" />
</function>
- <function name="ProgramUniform1ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
</function>
- <function name="ProgramUniform2ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
<param name="y" type="GLuint" />
</function>
- <function name="ProgramUniform3ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
<param name="y" type="GLuint" />
<param name="z" type="GLuint" />
</function>
- <function name="ProgramUniform4ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
@@ -111,25 +111,25 @@
<param name="z" type="GLuint" />
<param name="w" type="GLuint" />
</function>
- <function name="ProgramUniform1f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
</function>
- <function name="ProgramUniform2f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
<param name="y" type="GLfloat" />
</function>
- <function name="ProgramUniform3f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
<param name="y" type="GLfloat" />
<param name="z" type="GLfloat" />
</function>
- <function name="ProgramUniform4f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
@@ -137,170 +137,170 @@
<param name="z" type="GLfloat" />
<param name="w" type="GLfloat" />
</function>
- <function name="ProgramUniform1iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform2iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform3iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform4iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform1uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform2uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform3uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform4uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform1fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniform2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniform3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniform4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix2x3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix3x2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix2x4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix4x2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix3x4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix4x3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ValidateProgramPipeline" offset="assign" static_dispatch="false">
+ <function name="ValidateProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
</function>
- <function name="GetProgramPipelineInfoLog" offset="assign" static_dispatch="false">
+ <function name="GetProgramPipelineInfoLog" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="bufSize" type="GLsizei" />
<param name="length" type="GLsizei *" />
<param name="infoLog" type="GLchar *" />
</function>
- <function name="ProgramUniform1d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
</function>
- <function name="ProgramUniform2d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
<param name="y" type="GLdouble" />
</function>
- <function name="ProgramUniform3d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
<param name="y" type="GLdouble" />
<param name="z" type="GLdouble" />
</function>
- <function name="ProgramUniform4d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
@@ -308,88 +308,88 @@
<param name="z" type="GLdouble" />
<param name="w" type="GLdouble" />
</function>
- <function name="ProgramUniformMatrix2x3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix3x2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix2x4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix4x2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix3x4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix4x3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform1dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml b/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml
index f3b74e9c2..0b0b60fa7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml
@@ -35,7 +35,7 @@
<enum name="UNSIGNED_INT_ATOMIC_COUNTER" value="0x92DB"/>
<enum name="MAX_ATOMIC_COUNTER_BUFFER_BINDINGS" value="0x92DC"/>
-<function name="GetActiveAtomicCounterBufferiv" offset="assign">
+<function name="GetActiveAtomicCounterBufferiv">
<param name="program" type="GLuint" />
<param name="bufferIndex" type="GLuint" />
<param name="pname" type="GLenum" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml b/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml
index 7ccfca41d..178e930f1 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml
@@ -70,7 +70,7 @@
<enum name="MAX_FRAGMENT_IMAGE_UNIFORMS" value="0x90CE"/>
<enum name="MAX_COMBINED_IMAGE_UNIFORMS" value="0x90CF"/>
-<function name="BindImageTexture" offset="assign">
+<function name="BindImageTexture" es2="3.1">
<param name="unit" type="GLuint"/>
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
@@ -80,7 +80,7 @@
<param name="format" type="GLenum"/>
</function>
-<function name="MemoryBarrier" offset="assign">
+<function name="MemoryBarrier" es2="3.1">
<param name="barriers" type="GLbitfield"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_sync.xml b/mesalib/src/mapi/glapi/gen/ARB_sync.xml
index 58f1639c4..d8a1c34e0 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_sync.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_sync.xml
@@ -39,40 +39,40 @@
-->
- <function name="FenceSync" offset="assign" es2="3.0">
+ <function name="FenceSync" es2="3.0">
<param name="condition" type="GLenum"/>
<param name="flags" type="GLbitfield"/>
<return type="GLsync"/>
</function>
- <function name="IsSync" offset="assign" es2="3.0">
+ <function name="IsSync" es2="3.0">
<param name="sync" type="GLsync"/>
<return type="GLboolean"/>
</function>
- <function name="DeleteSync" offset="assign" es2="3.0">
+ <function name="DeleteSync" es2="3.0">
<param name="sync" type="GLsync"/>
</function>
- <function name="ClientWaitSync" offset="assign" es2="3.0">
+ <function name="ClientWaitSync" es2="3.0">
<param name="sync" type="GLsync"/>
<param name="flags" type="GLbitfield"/>
<param name="timeout" type="GLuint64"/>
<return type="GLenum"/>
</function>
- <function name="WaitSync" offset="assign" es2="3.0">
+ <function name="WaitSync" es2="3.0">
<param name="sync" type="GLsync"/>
<param name="flags" type="GLbitfield"/>
<param name="timeout" type="GLuint64"/>
</function>
- <function name="GetInteger64v" offset="assign" es2="3.0">
+ <function name="GetInteger64v" es2="3.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64 *" output="true" variable_param="pname"/>
</function>
- <function name="GetSynciv" offset="assign" es2="3.0">
+ <function name="GetSynciv" es2="3.0">
<param name="sync" type="GLsync"/>
<param name="pname" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml
index 2176c08ef..36bcc4932 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml
@@ -9,7 +9,7 @@
<enum name="TEXTURE_BUFFER_SIZE" value="0x919E"/>
<enum name="TEXTURE_BUFFER_OFFSET_ALIGNMENT" value="0x919F"/>
- <function name="TexBufferRange" offset="assign">
+ <function name="TexBufferRange">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="buffer" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml
index 1f65a8bcf..595e1c7ea 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml
@@ -34,7 +34,7 @@
<enum name="INT_SAMPLER_2D_MULTISAMPLE_ARRAY" value="0x910C"/>
<enum name="UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY" value="0x910D"/>
- <function name="TexImage2DMultisample" offset="assign">
+ <function name="TexImage2DMultisample">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -43,7 +43,7 @@
<param name="fixedsamplelocations" type="GLboolean"/>
</function>
- <function name="TexImage3DMultisample" offset="assign">
+ <function name="TexImage3DMultisample">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -53,13 +53,13 @@
<param name="fixedsamplelocations" type="GLboolean"/>
</function>
- <function name="GetMultisamplefv" offset="assign">
+ <function name="GetMultisamplefv" es2="3.1">
<param name="pname" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="val" type="GLfloat *"/>
</function>
- <function name="SampleMaski" offset="assign">
+ <function name="SampleMaski" es2="3.1">
<param name="index" type="GLuint"/>
<param name="mask" type="GLbitfield"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml
index 1d63e7ce3..7df394241 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml
@@ -10,14 +10,14 @@
<enum name="TEXTURE_IMMUTABLE_FORMAT" value="0x912F"/>
- <function name="TexStorage1D" offset="assign">
+ <function name="TexStorage1D">
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
<param name="internalFormat" type="GLenum"/>
<param name="width" type="GLsizei"/>
</function>
- <function name="TexStorage2D" offset="assign" es2="3.0">
+ <function name="TexStorage2D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
<param name="internalFormat" type="GLenum"/>
@@ -25,7 +25,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="TexStorage3D" offset="assign" es2="3.0">
+ <function name="TexStorage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
<param name="internalFormat" type="GLenum"/>
@@ -34,7 +34,7 @@
<param name="depth" type="GLsizei"/>
</function>
- <function name="TextureStorage1DEXT" offset="assign">
+ <function name="TextureStorage1DEXT">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
@@ -42,7 +42,7 @@
<param name="width" type="GLsizei"/>
</function>
- <function name="TextureStorage2DEXT" offset="assign">
+ <function name="TextureStorage2DEXT">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
@@ -51,7 +51,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="TextureStorage3DEXT" offset="assign">
+ <function name="TextureStorage3DEXT">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml
index 0f9d323d4..6ed8f1a01 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml
@@ -7,7 +7,7 @@
<category name="GL_ARB_texture_storage_multisample" number="141">
- <function name="TexStorage2DMultisample" offset="assign">
+ <function name="TexStorage2DMultisample" es2="3.1">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -16,7 +16,7 @@
<param name="fixedsamplelocations" type="GLboolean"/>
</function>
- <function name="TexStorage3DMultisample" offset="assign">
+ <function name="TexStorage3DMultisample">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml
index 3e6b8c904..4215fc5bd 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml
@@ -7,7 +7,7 @@
<category name="GL_ARB_texture_view" number="124">
- <function name="TextureView" offset="assign">
+ <function name="TextureView">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="origtexture" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml b/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml
index 11aacb033..cf86bbb2f 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml
@@ -39,14 +39,14 @@
<enum name="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" value="0x8A46" />
<enum name="INVALID_INDEX" value="0xFFFFFFFF" />
-<function name="GetUniformIndices" offset="assign" es2="3.0">
+<function name="GetUniformIndices" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformCount" type="GLsizei" />
<param name="uniformNames" type="const GLchar * const *" />
<param name="uniformIndices" type="GLuint *" />
</function>
-<function name="GetActiveUniformsiv" offset="assign" es2="3.0">
+<function name="GetActiveUniformsiv" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformCount" type="GLsizei" />
<param name="uniformIndices" type="const GLuint *" />
@@ -54,7 +54,7 @@
<param name="params" type="GLint *" />
</function>
-<function name="GetActiveUniformName" offset="assign">
+<function name="GetActiveUniformName">
<param name="program" type="GLuint" />
<param name="uniformIndex" type="GLuint" />
<param name="bufSize" type="GLsizei" />
@@ -62,20 +62,20 @@
<param name="uniformName" type="GLchar *" />
</function>
-<function name="GetUniformBlockIndex" offset="assign" es2="3.0">
+<function name="GetUniformBlockIndex" es2="3.0">
<return type="GLuint"/>
<param name="program" type="GLuint" />
<param name="uniformBlockName" type="const GLchar *" />
</function>
-<function name="GetActiveUniformBlockiv" offset="assign" es2="3.0">
+<function name="GetActiveUniformBlockiv" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformBlockIndex" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
-<function name="GetActiveUniformBlockName" offset="assign" es2="3.0">
+<function name="GetActiveUniformBlockName" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformBlockIndex" type="GLuint" />
<param name="bufSize" type="GLsizei" />
@@ -86,7 +86,7 @@
<!-- Duplicated with GL3x.xml: BindBufferRange, BindBufferBase,
GetIntegeri_v -->
-<function name="UniformBlockBinding" offset="assign" es2="3.0">
+<function name="UniformBlockBinding" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformBlockIndex" type="GLuint" />
<param name="uniformBlockBinding" type="GLuint" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml
index f2277d2bc..4a392dbb4 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml
@@ -10,21 +10,21 @@
<enum name="VERTEX_ARRAY_BINDING" value="0x85B5"/>
- <function name="BindVertexArray" offset="assign" es2="3.0">
+ <function name="BindVertexArray" es2="3.0">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArrays" es2="3.0" offset="assign">
+ <function name="DeleteVertexArrays" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *" count="n"/>
</function>
- <function name="GenVertexArrays" offset="assign" es2="3.0">
+ <function name="GenVertexArrays" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *"/>
</function>
- <function name="IsVertexArray" es2="3.0" offset="assign">
+ <function name="IsVertexArray" es2="3.0">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml
index fc49f84b5..211642fc3 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml
@@ -5,25 +5,25 @@
<category name="GL_ARB_vertex_attrib_64bit" number="99">
- <function name="VertexAttribL1d" offset="assign">
+ <function name="VertexAttribL1d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="VertexAttribL2d" offset="assign">
+ <function name="VertexAttribL2d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="VertexAttribL3d" offset="assign">
+ <function name="VertexAttribL3d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="VertexAttribL4d" offset="assign">
+ <function name="VertexAttribL4d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
@@ -31,27 +31,27 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="VertexAttribL1dv" offset="assign">
+ <function name="VertexAttribL1dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribL2dv" offset="assign">
+ <function name="VertexAttribL2dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribL3dv" offset="assign">
+ <function name="VertexAttribL3dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribL4dv" offset="assign">
+ <function name="VertexAttribL4dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribLPointer" offset="assign">
+ <function name="VertexAttribLPointer">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -59,7 +59,7 @@
<param name="pointer" type="const GLvoid *"/>
</function>
- <function name="GetVertexAttribLdv" offset="assign">
+ <function name="GetVertexAttribLdv">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml
index 7e6268877..ba9ca57bb 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml
@@ -7,14 +7,14 @@
<category name="GL_ARB_vertex_attrib_binding" number="125">
- <function name="BindVertexBuffer" offset="assign">
+ <function name="BindVertexBuffer" es2="3.1">
<param name="bindingindex" type="GLuint"/>
<param name="buffer" type="GLuint"/>
<param name="offset" type="GLintptr"/>
<param name="stride" type="GLsizei"/>
</function>
- <function name="VertexAttribFormat" offset="assign">
+ <function name="VertexAttribFormat" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -22,26 +22,26 @@
<param name="relativeoffset" type="GLuint"/>
</function>
- <function name="VertexAttribIFormat" offset="assign">
+ <function name="VertexAttribIFormat" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="relativeoffset" type="GLuint"/>
</function>
- <function name="VertexAttribLFormat" offset="assign">
+ <function name="VertexAttribLFormat">
<param name="attribindex" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="relativeoffset" type="GLuint"/>
</function>
- <function name="VertexAttribBinding" offset="assign">
+ <function name="VertexAttribBinding" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="bindingindex" type="GLuint"/>
</function>
- <function name="VertexBindingDivisor" offset="assign">
+ <function name="VertexBindingDivisor" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="divisor" type="GLuint"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml
index 6c6090c1c..92ec6e167 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml
@@ -7,244 +7,214 @@
<enum name="INT_2_10_10_10_REV" value = "0x8D9F"/>
- <function name="VertexP2ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP2ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP4ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexP2uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP2uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP4uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="TexCoordP1ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP1ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP2ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP2ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP4ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP1uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP1uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="TexCoordP2uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP2uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="TexCoordP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="TexCoordP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP4uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP1ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP1ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP2ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP2ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP3ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP4ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP1uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP1uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP2uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP2uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP3uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP4uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="NormalP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="NormalP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="NormalP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="NormalP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="ColorP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="GLuint"/>
</function>
- <function name="ColorP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP4ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="GLuint"/>
</function>
- <function name="ColorP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="const GLuint *"/>
</function>
- <function name="ColorP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP4uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="const GLuint *"/>
</function>
- <function name="SecondaryColorP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="SecondaryColorP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="GLuint"/>
</function>
- <function name="SecondaryColorP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="SecondaryColorP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="const GLuint *"/>
</function>
- <function name="VertexAttribP1ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP1ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP2ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP2ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP3ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP3ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP4ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP4ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP1uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP1uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexAttribP2uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP2uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexAttribP3uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP3uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexAttribP4uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP4uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml b/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml
index e1c6c2d81..b20cf612c 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml
@@ -21,54 +21,54 @@
<enum name="PROVOKING_VERTEX" value="0x8E4F"/>
<enum name="UNDEFINED_VERTEX" value="0x8260"/>
- <function name="ViewportArrayv" offset="assign">
+ <function name="ViewportArrayv">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="ViewportIndexedf" offset="assign">
+ <function name="ViewportIndexedf">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="w" type="GLfloat"/>
<param name="h" type="GLfloat"/>
</function>
- <function name="ViewportIndexedfv" offset="assign">
+ <function name="ViewportIndexedfv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="ScissorArrayv" offset="assign">
+ <function name="ScissorArrayv">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="v" type="const int *"/>
</function>
- <function name="ScissorIndexed" offset="assign">
+ <function name="ScissorIndexed">
<param name="index" type="GLuint"/>
<param name="left" type="GLint"/>
<param name="bottom" type="GLint"/>
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
</function>
- <function name="ScissorIndexedv" offset="assign">
+ <function name="ScissorIndexedv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
- <function name="DepthRangeArrayv" offset="assign">
+ <function name="DepthRangeArrayv">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="v" type="const GLclampd *"/>
</function>
- <function name="DepthRangeIndexed" offset="assign">
+ <function name="DepthRangeIndexed">
<param name="index" type="GLuint"/>
<param name="n" type="GLclampd"/>
<param name="f" type="GLclampd"/>
</function>
- <function name="GetFloati_v" offset="assign">
+ <function name="GetFloati_v">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLfloat *"/>
</function>
- <function name="GetDoublei_v" offset="assign">
+ <function name="GetDoublei_v">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLdouble *"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml b/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml
index 2cf75bc67..9ae029152 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml
@@ -78,7 +78,7 @@
<return type="GLboolean"/>
</function>
- <function name="BindRenderbufferEXT" offset="assign" deprecated="3.1">
+ <function name="BindRenderbufferEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="renderbuffer" type="GLuint"/>
<glx rop="4316"/>
@@ -112,7 +112,7 @@
<return type="GLboolean"/>
</function>
- <function name="BindFramebufferEXT" offset="assign" deprecated="3.1">
+ <function name="BindFramebufferEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="framebuffer" type="GLuint"/>
<glx rop="4319"/>
@@ -186,7 +186,7 @@
<enum name="READ_FRAMEBUFFER_BINDING_EXT" count="1" value="0x8CAA">
<size name="Get" mode="get"/>
</enum>
- <function name="BlitFramebufferEXT" static_dispatch="false" alias="BlitFramebuffer">
+ <function name="BlitFramebufferEXT" alias="BlitFramebuffer">
<param name="srcX0" type="GLint"/>
<param name="srcY0" type="GLint"/>
<param name="srcX1" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml b/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml
index d204c3fc7..b1f7eae26 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml
@@ -44,25 +44,25 @@
</enum>
- <function name="VertexAttribI1iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI1iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
</function>
- <function name="VertexAttribI2iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="VertexAttribI3iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="VertexAttribI4iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
@@ -70,25 +70,25 @@
<param name="w" type="GLint"/>
</function>
- <function name="VertexAttribI1uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI1uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
</function>
- <function name="VertexAttribI2uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
</function>
- <function name="VertexAttribI3uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
<param name="z" type="GLuint"/>
</function>
- <function name="VertexAttribI4uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
@@ -101,17 +101,17 @@
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI2ivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2ivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI3ivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3ivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI4ivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4ivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
@@ -121,17 +121,17 @@
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI2uivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2uivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI3uivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3uivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI4uivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4uivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml b/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml
index eb872098d..3d1ae771e 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml
@@ -26,7 +26,7 @@
<enum name="PROVOKING_VERTEX" value="0x8E4F"/>
<enum name="QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION" value="0x8E4C"/>
- <function name="ProvokingVertex" offset="assign">
+ <function name="ProvokingVertex">
<param name="mode" type="GLenum"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml b/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml
index c6163a193..1fa699fbc 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml
@@ -8,16 +8,16 @@
<!-- Alias of CURRENT_PROGRAM -->
<!-- <enum name="ACTIVE_PROGRAM_EXT" value="0x8B8D"/> -->
- <function name="UseShaderProgramEXT" deprecated="3.1" offset="assign" exec="skip">
+ <function name="UseShaderProgramEXT" deprecated="3.1" exec="skip">
<param name="type" type="GLenum"/>
<param name="program" type="GLuint"/>
</function>
- <function name="ActiveProgramEXT" deprecated="3.1" offset="assign" exec="skip">
+ <function name="ActiveProgramEXT" deprecated="3.1" exec="skip">
<param name="program" type="GLuint"/>
</function>
- <function name="CreateShaderProgramEXT" deprecated="3.1" offset="assign" exec="skip">
+ <function name="CreateShaderProgramEXT" deprecated="3.1" exec="skip">
<param name="type" type="GLenum"/>
<param name="string" type="const GLchar *"/>
<return type="GLuint"/>
@@ -31,65 +31,65 @@
<enum name="ALL_SHADER_BITS_EXT" value="0xFFFFFFFF"/>
<enum name="PROGRAM_SEPARABLE_EXT" value="0x8258"/>
- <function name="UseProgramStagesEXT" alias="UseProgramStages" static_dispatch="false" es2="2.0">
+ <function name="UseProgramStagesEXT" alias="UseProgramStages" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="stages" type="GLbitfield"/>
<param name="program" type="GLuint"/>
</function>
- <function name="ActiveShaderProgramEXT" alias="ActiveShaderProgram" static_dispatch="false" es2="2.0">
+ <function name="ActiveShaderProgramEXT" alias="ActiveShaderProgram" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="program" type="GLuint"/>
</function>
- <function name="CreateShaderProgramvEXT" alias="CreateShaderProgramv" static_dispatch="false" es2="2.0">
+ <function name="CreateShaderProgramvEXT" alias="CreateShaderProgramv" es2="2.0">
<param name="type" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="strings" type="const GLchar * const *"/>
<return type="GLuint"/>
</function>
- <function name="BindProgramPipelineEXT" alias="BindProgramPipeline" static_dispatch="false" es2="2.0">
+ <function name="BindProgramPipelineEXT" alias="BindProgramPipeline" es2="2.0">
<param name="pipeline" type="GLuint"/>
</function>
- <function name="DeleteProgramPipelinesEXT" alias="DeleteProgramPipelines" static_dispatch="false" es2="2.0">
+ <function name="DeleteProgramPipelinesEXT" alias="DeleteProgramPipelines" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="pipelines" type="const GLuint *"/>
</function>
- <function name="GenProgramPipelinesEXT" alias="GenProgramPipelines" static_dispatch="false" es2="2.0">
+ <function name="GenProgramPipelinesEXT" alias="GenProgramPipelines" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="pipelines" type="GLuint *"/>
</function>
- <function name="IsProgramPipelineEXT" alias="IsProgramPipeline" static_dispatch="false" es2="2.0">
+ <function name="IsProgramPipelineEXT" alias="IsProgramPipeline" es2="2.0">
<param name="pipeline" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="ProgramParameteriEXT" alias="ProgramParameteri" static_dispatch="false" es2="2.0">
+ <function name="ProgramParameteriEXT" alias="ProgramParameteri" es2="2.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="value" type="GLint"/>
</function>
- <function name="GetProgramPipelineivEXT" alias="GetProgramPipelineiv" static_dispatch="false" es2="2.0">
+ <function name="GetProgramPipelineivEXT" alias="GetProgramPipelineiv" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="ProgramUniform1iEXT" alias="ProgramUniform1i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1iEXT" alias="ProgramUniform1i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
</function>
- <function name="ProgramUniform2iEXT" alias="ProgramUniform2i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2iEXT" alias="ProgramUniform2i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="ProgramUniform3iEXT" alias="ProgramUniform3i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3iEXT" alias="ProgramUniform3i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="ProgramUniform4iEXT" alias="ProgramUniform4i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4iEXT" alias="ProgramUniform4i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
@@ -97,25 +97,25 @@
<param name="z" type="GLint"/>
<param name="w" type="GLint"/>
</function>
- <function name="ProgramUniform1uiEXT" alias="ProgramUniform1ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform1uiEXT" alias="ProgramUniform1ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
</function>
- <function name="ProgramUniform2uiEXT" alias="ProgramUniform2ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform2uiEXT" alias="ProgramUniform2ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
</function>
- <function name="ProgramUniform3uiEXT" alias="ProgramUniform3ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform3uiEXT" alias="ProgramUniform3ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
<param name="z" type="GLuint"/>
</function>
- <function name="ProgramUniform4uiEXT" alias="ProgramUniform4ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform4uiEXT" alias="ProgramUniform4ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
@@ -123,25 +123,25 @@
<param name="z" type="GLuint"/>
<param name="w" type="GLuint"/>
</function>
- <function name="ProgramUniform1fEXT" alias="ProgramUniform1f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1fEXT" alias="ProgramUniform1f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
</function>
- <function name="ProgramUniform2fEXT" alias="ProgramUniform2f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2fEXT" alias="ProgramUniform2f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="ProgramUniform3fEXT" alias="ProgramUniform3f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3fEXT" alias="ProgramUniform3f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="ProgramUniform4fEXT" alias="ProgramUniform4f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4fEXT" alias="ProgramUniform4f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
@@ -149,145 +149,145 @@
<param name="z" type="GLfloat"/>
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramUniform1ivEXT" alias="ProgramUniform1iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1ivEXT" alias="ProgramUniform1iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform2ivEXT" alias="ProgramUniform2iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2ivEXT" alias="ProgramUniform2iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform3ivEXT" alias="ProgramUniform3iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3ivEXT" alias="ProgramUniform3iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform4ivEXT" alias="ProgramUniform4iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4ivEXT" alias="ProgramUniform4iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform1uivEXT" alias="ProgramUniform1uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform1uivEXT" alias="ProgramUniform1uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform2uivEXT" alias="ProgramUniform2uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform2uivEXT" alias="ProgramUniform2uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform3uivEXT" alias="ProgramUniform3uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform3uivEXT" alias="ProgramUniform3uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform4uivEXT" alias="ProgramUniform4uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform4uivEXT" alias="ProgramUniform4uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform1fvEXT" alias="ProgramUniform1fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1fvEXT" alias="ProgramUniform1fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniform2fvEXT" alias="ProgramUniform2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2fvEXT" alias="ProgramUniform2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniform3fvEXT" alias="ProgramUniform3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3fvEXT" alias="ProgramUniform3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniform4fvEXT" alias="ProgramUniform4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4fvEXT" alias="ProgramUniform4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix2fvEXT" alias="ProgramUniformMatrix2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix2fvEXT" alias="ProgramUniformMatrix2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix3fvEXT" alias="ProgramUniformMatrix3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix3fvEXT" alias="ProgramUniformMatrix3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix4fvEXT" alias="ProgramUniformMatrix4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix4fvEXT" alias="ProgramUniformMatrix4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix2x3fvEXT" alias="ProgramUniformMatrix2x3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix2x3fvEXT" alias="ProgramUniformMatrix2x3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix3x2fvEXT" alias="ProgramUniformMatrix3x2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix3x2fvEXT" alias="ProgramUniformMatrix3x2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix2x4fvEXT" alias="ProgramUniformMatrix2x4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix2x4fvEXT" alias="ProgramUniformMatrix2x4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix4x2fvEXT" alias="ProgramUniformMatrix4x2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix4x2fvEXT" alias="ProgramUniformMatrix4x2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix3x4fvEXT" alias="ProgramUniformMatrix3x4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix3x4fvEXT" alias="ProgramUniformMatrix3x4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix4x3fvEXT" alias="ProgramUniformMatrix4x3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix4x3fvEXT" alias="ProgramUniformMatrix4x3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ValidateProgramPipelineEXT" alias="ValidateProgramPipeline" static_dispatch="false" es2="2.0">
+ <function name="ValidateProgramPipelineEXT" alias="ValidateProgramPipeline" es2="2.0">
<param name="pipeline" type="GLuint"/>
</function>
- <function name="GetProgramPipelineInfoLogEXT" alias="GetProgramPipelineInfoLog" static_dispatch="false" es2="2.0">
+ <function name="GetProgramPipelineInfoLogEXT" alias="GetProgramPipelineInfoLog" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml b/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml
index aca21f4b1..5f9ea2963 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml
@@ -55,14 +55,14 @@
<enum name="LUMINANCE_INTEGER_EXT" value="0x8D9C"/>
<enum name="LUMINANCE_ALPHA_INTEGER_EXT" value="0x8D9D"/>
- <function name="ClearColorIiEXT" offset="assign">
+ <function name="ClearColorIiEXT">
<param name="r" type="GLint"/>
<param name="g" type="GLint"/>
<param name="b" type="GLint"/>
<param name="a" type="GLint"/>
</function>
- <function name="ClearColorIuiEXT" offset="assign">
+ <function name="ClearColorIuiEXT">
<param name="r" type="GLuint"/>
<param name="g" type="GLuint"/>
<param name="b" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml b/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml
index 65259fc1f..2aa26ad72 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml
@@ -32,7 +32,7 @@
<param name="size" type="GLsizeiptr"/>
</function>
- <function name="BindBufferOffsetEXT" offset="assign">
+ <function name="BindBufferOffsetEXT">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="buffer" type="GLuint"/>
@@ -82,33 +82,33 @@
<enum name="TRANSFORM_FEEDBACK_BUFFER_ACTIVE" value="0x8E24"/>
<enum name="TRANSFORM_FEEDBACK_BINDING" value="0x8E25"/>
- <function name="BindTransformFeedback" offset="assign" es2="3.0">
+ <function name="BindTransformFeedback" es2="3.0">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
</function>
- <function name="DeleteTransformFeedbacks" offset="assign" es2="3.0">
+ <function name="DeleteTransformFeedbacks" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="ids" type="const GLuint *"/>
</function>
- <function name="GenTransformFeedbacks" offset="assign" es2="3.0">
+ <function name="GenTransformFeedbacks" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="ids" type="GLuint *"/>
</function>
- <function name="IsTransformFeedback" offset="assign" es2="3.0">
+ <function name="IsTransformFeedback" es2="3.0">
<param name="id" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="PauseTransformFeedback" offset="assign" es2="3.0">
+ <function name="PauseTransformFeedback" es2="3.0">
</function>
- <function name="ResumeTransformFeedback" offset="assign" es2="3.0">
+ <function name="ResumeTransformFeedback" es2="3.0">
</function>
- <function name="DrawTransformFeedback" offset="assign" exec="dynamic">
+ <function name="DrawTransformFeedback" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/GL3x.xml b/mesalib/src/mapi/glapi/gen/GL3x.xml
index 5078f7b6d..7919d6577 100644
--- a/mesalib/src/mapi/glapi/gen/GL3x.xml
+++ b/mesalib/src/mapi/glapi/gen/GL3x.xml
@@ -119,38 +119,38 @@
<!-- These functions are unique to GL3 -->
- <function name="ClearBufferiv" offset="assign" es2="3.0">
+ <function name="ClearBufferiv" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ClearBufferuiv" offset="assign" es2="3.0">
+ <function name="ClearBufferuiv" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ClearBufferfv" offset="assign" es2="3.0">
+ <function name="ClearBufferfv" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ClearBufferfi" offset="assign" es2="3.0">
+ <function name="ClearBufferfi" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="depth" type="GLfloat"/>
<param name="stencil" type="GLint"/>
</function>
- <function name="GetStringi" offset="assign" es2="3.0">
+ <function name="GetStringi" es2="3.0">
<param name="name" type="GLenum"/>
<param name="index" type="GLuint"/>
<return type="const GLubyte *"/>
</function>
- <function name="ClampColor" offset="assign">
+ <function name="ClampColor">
<param name="target" type="GLenum"/>
<param name="clamp" type="GLenum"/>
<glx rop="234"/>
@@ -158,7 +158,7 @@
<!-- These functions alias ones form GL_ARB_draw_buffers2 -->
- <function name="ColorMaski" offset="assign">
+ <function name="ColorMaski">
<param name="buf" type="GLuint"/>
<param name="r" type="GLboolean"/>
<param name="g" type="GLboolean"/>
@@ -166,29 +166,29 @@
<param name="a" type="GLboolean"/>
</function>
- <function name="GetBooleani_v" offset="assign">
+ <function name="GetBooleani_v" es2="3.1">
<param name="value" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLboolean *"/>
</function>
- <function name="GetIntegeri_v" es2="3.0" offset="assign">
+ <function name="GetIntegeri_v" es2="3.0">
<param name="value" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLint *"/>
</function>
- <function name="Enablei" offset="assign">
+ <function name="Enablei">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
</function>
- <function name="Disablei" offset="assign">
+ <function name="Disablei">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
</function>
- <function name="IsEnabledi" offset="assign">
+ <function name="IsEnabledi">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<return type="GLboolean"/>
@@ -196,26 +196,26 @@
<!-- These functions alias ones form GL_EXT_transform_feedback -->
- <function name="GetFragDataLocation" es2="3.0" offset="assign">
+ <function name="GetFragDataLocation" es2="3.0">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
</function>
- <function name="BindFragDataLocation" offset="assign">
+ <function name="BindFragDataLocation">
<param name="program" type="GLuint"/>
<param name="colorNumber" type="GLuint"/>
<param name="name" type="const GLchar *"/>
</function>
- <function name="BeginTransformFeedback" es2="3.0" offset="assign">
+ <function name="BeginTransformFeedback" es2="3.0">
<param name="mode" type="GLenum"/>
</function>
- <function name="EndTransformFeedback" es2="3.0" offset="assign">
+ <function name="EndTransformFeedback" es2="3.0">
</function>
- <function name="BindBufferRange" es2="3.0" offset="assign">
+ <function name="BindBufferRange" es2="3.0">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="buffer" type="GLuint"/>
@@ -223,20 +223,20 @@
<param name="size" type="GLsizeiptr"/>
</function>
- <function name="BindBufferBase" es2="3.0" offset="assign">
+ <function name="BindBufferBase" es2="3.0">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="buffer" type="GLuint"/>
</function>
- <function name="TransformFeedbackVaryings" es2="3.0" offset="assign">
+ <function name="TransformFeedbackVaryings" es2="3.0">
<param name="program" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="varyings" type="const GLchar * const *"/>
<param name="bufferMode" type="GLenum"/>
</function>
- <function name="GetTransformFeedbackVarying" es2="3.0" offset="assign">
+ <function name="GetTransformFeedbackVarying" es2="3.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -248,17 +248,17 @@
<!-- These functions alias ones from GL_NV_conditional_render -->
- <function name="BeginConditionalRender" offset="assign">
+ <function name="BeginConditionalRender">
<param name="query" type="GLuint"/>
<param name="mode" type="GLenum"/>
</function>
- <function name="EndConditionalRender" offset="assign">
+ <function name="EndConditionalRender">
</function>
<!-- These functions alias ones from GL_EXT_gpu_shader4 -->
- <function name="VertexAttribIPointer" es2="3.0" offset="assign">
+ <function name="VertexAttribIPointer" es2="3.0">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -266,13 +266,13 @@
<param name="pointer" type="const GLvoid *"/>
</function>
- <function name="GetVertexAttribIiv" es2="3.0" offset="assign">
+ <function name="GetVertexAttribIiv" es2="3.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetVertexAttribIuiv" es2="3.0" offset="assign">
+ <function name="GetVertexAttribIuiv" es2="3.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *"/>
@@ -330,7 +330,7 @@
<param name="w" type="GLuint"/>
</function>
- <function name="VertexAttribI1iv" offset="assign">
+ <function name="VertexAttribI1iv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
@@ -350,7 +350,7 @@
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI1uiv" offset="assign">
+ <function name="VertexAttribI1uiv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
@@ -370,51 +370,51 @@
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI4bv" offset="assign">
+ <function name="VertexAttribI4bv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLbyte *"/>
</function>
- <function name="VertexAttribI4sv" offset="assign">
+ <function name="VertexAttribI4sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *"/>
</function>
- <function name="VertexAttribI4ubv" offset="assign">
+ <function name="VertexAttribI4ubv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *"/>
</function>
- <function name="VertexAttribI4usv" offset="assign">
+ <function name="VertexAttribI4usv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLushort *"/>
</function>
- <function name="GetUniformuiv" es2="3.0" offset="assign">
+ <function name="GetUniformuiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLuint *"/>
</function>
- <function name="Uniform1ui" es2="3.0" offset="assign">
+ <function name="Uniform1ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
</function>
- <function name="Uniform2ui" es2="3.0" offset="assign">
+ <function name="Uniform2ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
</function>
- <function name="Uniform3ui" es2="3.0" offset="assign">
+ <function name="Uniform3ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
<param name="z" type="GLuint"/>
</function>
- <function name="Uniform4ui" es2="3.0" offset="assign">
+ <function name="Uniform4ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
@@ -422,25 +422,25 @@
<param name="w" type="GLuint"/>
</function>
- <function name="Uniform1uiv" es2="3.0" offset="assign">
+ <function name="Uniform1uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count"/>
</function>
- <function name="Uniform2uiv" es2="3.0" offset="assign">
+ <function name="Uniform2uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count" count_scale="2"/>
</function>
- <function name="Uniform3uiv" es2="3.0" offset="assign">
+ <function name="Uniform3uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count" count_scale="3"/>
</function>
- <function name="Uniform4uiv" es2="3.0" offset="assign">
+ <function name="Uniform4uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count" count_scale="4"/>
@@ -448,25 +448,25 @@
<!-- These functions alias ones from GL_EXT_texture_integer -->
- <function name="TexParameterIiv" offset="assign">
+ <function name="TexParameterIiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="TexParameterIuiv" offset="assign">
+ <function name="TexParameterIuiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLuint *"/>
</function>
- <function name="GetTexParameterIiv" offset="assign">
+ <function name="GetTexParameterIiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetTexParameterIuiv" offset="assign">
+ <function name="GetTexParameterIuiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *"/>
@@ -557,13 +557,13 @@
<param name="primcount" type="GLsizei"/>
</function>
- <function name="TexBuffer" offset="assign">
+ <function name="TexBuffer">
<param name="target" type="GLenum"/>
<param name="internalFormat" type="GLenum"/>
<param name="buffer" type="GLuint"/>
</function>
- <function name="PrimitiveRestartIndex" offset="assign">
+ <function name="PrimitiveRestartIndex">
<param name="index" type="GLuint"/>
</function>
@@ -595,19 +595,19 @@
<enum name="MAX_FRAGMENT_INPUT_COMPONENTS" value="0x9125"/>
<enum name="CONTEXT_PROFILE_MASK" value="0x9126"/>
- <function name="GetInteger64i_v" offset="assign" es2="3.0">
+ <function name="GetInteger64i_v" es2="3.0">
<param name="cap" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLint64 *"/>
</function>
- <function name="GetBufferParameteri64v" offset="assign" es2="3.0">
+ <function name="GetBufferParameteri64v" es2="3.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64 *"/>
</function>
- <function name="FramebufferTexture" offset="assign">
+ <function name="FramebufferTexture">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="texture" type="GLuint"/>
@@ -625,7 +625,7 @@
<enum name="TEXTURE_SWIZZLE_A" value="0x8E45"/>
<enum name="TEXTURE_SWIZZLE_RGBA" value="0x8E46"/>
- <function name="VertexAttribDivisor" offset="assign" es2="3.0">
+ <function name="VertexAttribDivisor" es2="3.0">
<param name="index" type="GLuint"/>
<param name="divisor" type="GLuint"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/GL4x.xml b/mesalib/src/mapi/glapi/gen/GL4x.xml
index 848316e9e..94ddfb729 100644
--- a/mesalib/src/mapi/glapi/gen/GL4x.xml
+++ b/mesalib/src/mapi/glapi/gen/GL4x.xml
@@ -9,17 +9,17 @@
<enum name="SAMPLE_SHADING" value="0x8C36"/>
<enum name="MIN_SAMPLE_SHADING_VALUE" value="0x8C37"/>
- <function name="MinSampleShading" offset="assign">
+ <function name="MinSampleShading">
<param name="value" type="GLfloat"/>
</function>
- <function name="BlendFunci" static_dispatch="false" alias="BlendFunciARB">
+ <function name="BlendFunci" alias="BlendFunciARB">
<param name="buf" type="GLuint"/>
<param name="sfactor" type="GLenum"/>
<param name="dfactor" type="GLenum"/>
</function>
- <function name="BlendFuncSeparatei" static_dispatch="false" alias="BlendFuncSeparateiARB">
+ <function name="BlendFuncSeparatei" alias="BlendFuncSeparateiARB">
<param name="buf" type="GLuint"/>
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
@@ -27,12 +27,12 @@
<param name="dfactorAlpha" type="GLenum"/>
</function>
- <function name="BlendEquationi" static_dispatch="false" alias="BlendEquationiARB">
+ <function name="BlendEquationi" alias="BlendEquationiARB">
<param name="buf" type="GLuint"/>
<param name="mode" type="GLenum"/>
</function>
- <function name="BlendEquationSeparatei" static_dispatch="false" alias="BlendEquationSeparateiARB" >
+ <function name="BlendEquationSeparatei" alias="BlendEquationSeparateiARB" >
<param name="buf" type="GLuint"/>
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml b/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml
index 25cd1817f..9573cb1bd 100644
--- a/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml
+++ b/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml
@@ -5,21 +5,21 @@
<category name="GL_INTEL_performance_query" number="443">
- <function name="GetFirstPerfQueryIdINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetFirstPerfQueryIdINTEL" es2="2.0">
<param name="queryId" type="GLuint *"/>
</function>
- <function name="GetNextPerfQueryIdINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetNextPerfQueryIdINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="nextQueryId" type="GLuint *"/>
</function>
- <function name="GetPerfQueryIdByNameINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfQueryIdByNameINTEL" es2="2.0">
<param name="queryName" type="GLchar *"/>
<param name="queryId" type="GLuint *"/>
</function>
- <function name="GetPerfQueryInfoINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfQueryInfoINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="queryNameLength" type="GLuint"/>
<param name="queryName" type="GLchar *"/>
@@ -29,7 +29,7 @@
<param name="capsMask" type="GLuint *"/>
</function>
- <function name="GetPerfCounterInfoINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfCounterInfoINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="counterId" type="GLuint"/>
<param name="counterNameLength" type="GLuint"/>
@@ -43,24 +43,24 @@
<param name="rawCounterMaxValue" type="GLuint64 *"/>
</function>
- <function name="CreatePerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="CreatePerfQueryINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="queryHandle" type="GLuint *"/>
</function>
- <function name="DeletePerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="DeletePerfQueryINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
</function>
- <function name="BeginPerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="BeginPerfQueryINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
</function>
- <function name="EndPerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="EndPerfQueryINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
</function>
- <function name="GetPerfQueryDataINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfQueryDataINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
<param name="flags" type="GLuint"/>
<param name="dataSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/KHR_debug.xml b/mesalib/src/mapi/glapi/gen/KHR_debug.xml
index 48f7fa762..77956d61e 100644
--- a/mesalib/src/mapi/glapi/gen/KHR_debug.xml
+++ b/mesalib/src/mapi/glapi/gen/KHR_debug.xml
@@ -73,7 +73,7 @@
<!-- Compatibility Profile -->
<enum name="DISPLAY_LIST" value="0x82E7"/>
- <function name="DebugMessageControl" offset="assign">
+ <function name="DebugMessageControl">
<param name="source" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="severity" type="GLenum"/>
@@ -82,7 +82,7 @@
<param name="enabled" type="GLboolean"/>
</function>
- <function name="DebugMessageInsert" offset="assign">
+ <function name="DebugMessageInsert">
<param name="source" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="id" type="GLuint"/>
@@ -91,12 +91,12 @@
<param name="buf" type="const GLchar *"/>
</function>
- <function name="DebugMessageCallback" offset="assign">
+ <function name="DebugMessageCallback">
<param name="callback" type="GLDEBUGPROC"/>
<param name="userParam" type="const GLvoid *"/>
</function>
- <function name="GetDebugMessageLog" offset="assign">
+ <function name="GetDebugMessageLog">
<return type="GLuint"/>
<param name="count" type="GLuint"/>
<param name="bufsize" type="GLsizei"/>
@@ -108,23 +108,23 @@
<param name="messageLog" type="GLchar *" output="true"/>
</function>
- <function name="PushDebugGroup" offset="assign">
+ <function name="PushDebugGroup">
<param name="source" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="length" type="GLsizei"/>
<param name="message" type="const GLchar *"/>
</function>
- <function name="PopDebugGroup" offset="assign"/>
+ <function name="PopDebugGroup" />
- <function name="ObjectLabel" offset="assign">
+ <function name="ObjectLabel">
<param name="identifier" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="length" type="GLsizei"/>
<param name="label" type="const GLchar *"/>
</function>
- <function name="GetObjectLabel" offset="assign">
+ <function name="GetObjectLabel">
<param name="identifier" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -132,13 +132,13 @@
<param name="label" type="GLchar *"/>
</function>
- <function name="ObjectPtrLabel" offset="assign">
+ <function name="ObjectPtrLabel">
<param name="ptr" type="const GLvoid *"/>
<param name="length" type="GLsizei"/>
<param name="label" type="const GLchar *"/>
</function>
- <function name="GetObjectPtrLabel" offset="assign">
+ <function name="GetObjectPtrLabel">
<param name="ptr" type="const GLvoid *"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
diff --git a/mesalib/src/mapi/glapi/gen/Makefile.am b/mesalib/src/mapi/glapi/gen/Makefile.am
index c8d417468..34602579c 100644
--- a/mesalib/src/mapi/glapi/gen/Makefile.am
+++ b/mesalib/src/mapi/glapi/gen/Makefile.am
@@ -61,6 +61,7 @@ EXTRA_DIST= \
$(MESA_GLAPI_DIR)/glapi_x86-64.S \
$(MESA_GLAPI_DIR)/glapi_sparc.S \
$(COMMON_GLX) \
+ apiexec.py \
gl_apitemp.py \
gl_enums.py \
gl_genexec.py \
@@ -75,6 +76,7 @@ EXTRA_DIST= \
glX_proto_size.py \
glX_server_table.py \
remap_helper.py \
+ static_data.py \
SConscript \
gl_API.dtd
@@ -140,6 +142,7 @@ API_XML = \
ARB_map_buffer_range.xml \
ARB_multi_bind.xml \
ARB_pipeline_statistics_query.xml \
+ ARB_program_interface_query.xml \
ARB_robustness.xml \
ARB_sample_shading.xml \
ARB_sampler_objects.xml \
@@ -197,6 +200,7 @@ COMMON = $(API_XML) \
gl_XML.py \
glX_XML.py \
license.py \
+ static_data.py \
typeexpr.py
COMMON_GLX = $(COMMON) glX_API.xml glX_XML.py glX_proto_common.py
@@ -264,7 +268,7 @@ $(MESA_GLAPI_DIR)/glapi_sparc.S: gl_SPARC_asm.py $(COMMON)
$(MESA_DIR)/main/enums.c: gl_enums.py $(COMMON)
$(PYTHON_GEN) $< -f $(srcdir)/gl_and_es_API.xml > $@
-$(MESA_DIR)/main/api_exec.c: gl_genexec.py $(COMMON)
+$(MESA_DIR)/main/api_exec.c: gl_genexec.py apiexec.py $(COMMON)
$(PYTHON_GEN) $< -f $(srcdir)/gl_and_es_API.xml > $@
$(MESA_DIR)/main/dispatch.h: gl_table.py $(COMMON)
@@ -287,7 +291,7 @@ $(MESA_GLX_DIR)/indirect_init.c: glX_proto_send.py $(COMMON_GLX)
$(MESA_GLX_DIR)/indirect_size.h $(XORG_GLX_DIR)/indirect_size.h: glX_proto_size.py $(COMMON_GLX)
$(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m size_h --only-set \
- -h _INDIRECT_SIZE_H_ \
+ --header-tag _INDIRECT_SIZE_H_ \
| $(INDENT) $(INDENT_FLAGS) > $@
$(MESA_GLX_DIR)/indirect_size.c: glX_proto_size.py $(COMMON_GLX)
diff --git a/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml b/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml
index 39edafe31..232665236 100644
--- a/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml
+++ b/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml
@@ -11,9 +11,7 @@
<enum name="PRIMITIVE_RESTART_NV" value="0x8558"/>
<enum name="PRIMITIVE_RESTART_INDEX_NV" value="0x8559"/>
- <function name="PrimitiveRestartNV" offset="assign" deprecated="3.1"
- exec="dynamic">
- </function>
+ <function name="PrimitiveRestartNV" deprecated="3.1" exec="dynamic"/>
<function name="PrimitiveRestartIndexNV" alias="PrimitiveRestartIndex">
<param name="index" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml b/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml
index 52b1a3c08..b4c361cc3 100644
--- a/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml
+++ b/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml
@@ -7,7 +7,7 @@
<OpenGLAPI>
<category name="GL_NV_texture_barrier" number="381">
- <function name="TextureBarrierNV" offset="assign" />
+ <function name="TextureBarrierNV"/>
</category>
</OpenGLAPI>
diff --git a/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml b/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml
index 0b19e1a85..ceef7bdc9 100644
--- a/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml
+++ b/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml
@@ -5,14 +5,14 @@
<category name="GL_NV_vdpau_interop" number="396">
- <function name="VDPAUInitNV" offset="assign">
+ <function name="VDPAUInitNV">
<param name="vdpDevice" type="const GLvoid *"/>
<param name="getProcAddress" type="const GLvoid *"/>
</function>
- <function name="VDPAUFiniNV" offset="assign"/>
+ <function name="VDPAUFiniNV"/>
- <function name="VDPAURegisterVideoSurfaceNV" offset="assign">
+ <function name="VDPAURegisterVideoSurfaceNV">
<return type="GLintptr"/>
<param name="vdpSurface" type="const GLvoid *"/>
<param name="target" type="GLenum"/>
@@ -20,7 +20,7 @@
<param name="textureNames" type="const GLuint *"/>
</function>
- <function name="VDPAURegisterOutputSurfaceNV" offset="assign">
+ <function name="VDPAURegisterOutputSurfaceNV">
<return type="GLintptr"/>
<param name="vdpSurface" type="const GLvoid *"/>
<param name="target" type="GLenum"/>
@@ -28,16 +28,16 @@
<param name="textureNames" type="const GLuint *"/>
</function>
- <function name="VDPAUIsSurfaceNV" offset="assign">
+ <function name="VDPAUIsSurfaceNV">
<return type="GLboolean"/>
<param name="surface" type="GLintptr"/>
</function>
- <function name="VDPAUUnregisterSurfaceNV" offset="assign">
+ <function name="VDPAUUnregisterSurfaceNV">
<param name="surface" type="GLintptr"/>
</function>
- <function name="VDPAUGetSurfaceivNV" offset="assign">
+ <function name="VDPAUGetSurfaceivNV">
<param name="surface" type="GLintptr"/>
<param name="pname" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
@@ -45,17 +45,17 @@
<param name="values" type="GLint *"/>
</function>
- <function name="VDPAUSurfaceAccessNV" offset="assign">
+ <function name="VDPAUSurfaceAccessNV">
<param name="surface" type="GLintptr"/>
<param name="access" type="GLenum"/>
</function>
- <function name="VDPAUMapSurfacesNV" offset="assign">
+ <function name="VDPAUMapSurfacesNV">
<param name="numSurfaces" type="GLsizei"/>
<param name="surfaces" type="const GLintptr *"/>
</function>
- <function name="VDPAUUnmapSurfacesNV" offset="assign">
+ <function name="VDPAUUnmapSurfacesNV">
<param name="numSurfaces" type="GLsizei"/>
<param name="surfaces" type="const GLintptr *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml b/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml
index a995cad6c..c483e91f1 100644
--- a/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml
+++ b/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml
@@ -5,14 +5,12 @@
<category name="GL_OES_EGL_image">
- <function name="EGLImageTargetTexture2DOES" offset="assign" es1="1.0"
- es2="2.0">
+ <function name="EGLImageTargetTexture2DOES" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="writeOffset" type="GLvoid *"/>
</function>
- <function name="EGLImageTargetRenderbufferStorageOES" offset="assign"
- es1="1.0" es2="2.0">
+ <function name="EGLImageTargetRenderbufferStorageOES" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="writeOffset" type="GLvoid *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml b/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml
index d62d6e2ec..edd0acdba 100644
--- a/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml
+++ b/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml
@@ -13,52 +13,45 @@
<type name="clampx" size="4" />
<!-- OpenGL ES 1.0 -->
- <function name="AlphaFuncxOES" static_dispatch="false"
- es1="1.0" alias="AlphaFuncx">
+ <function name="AlphaFuncxOES" es1="1.0" alias="AlphaFuncx">
<param name="func" type="GLenum"/>
<param name="ref" type="GLclampx"/>
</function>
- <function name="ClearColorxOES" static_dispatch="false"
- es1="1.0" alias="ClearColorx">
+ <function name="ClearColorxOES" es1="1.0" alias="ClearColorx">
<param name="red" type="GLclampx"/>
<param name="green" type="GLclampx"/>
<param name="blue" type="GLclampx"/>
<param name="alpha" type="GLclampx"/>
</function>
- <function name="ClearDepthxOES" static_dispatch="false"
- es1="1.0" alias="ClearDepthx">
+ <function name="ClearDepthxOES" es1="1.0" alias="ClearDepthx">
<param name="depth" type="GLclampx"/>
</function>
- <function name="Color4xOES" static_dispatch="false"
- es1="1.0" alias="Color4x">
+ <function name="Color4xOES" es1="1.0" alias="Color4x">
<param name="red" type="GLfixed"/>
<param name="green" type="GLfixed"/>
<param name="blue" type="GLfixed"/>
<param name="alpha" type="GLfixed"/>
</function>
- <function name="DepthRangexOES" static_dispatch="false"
- es1="1.0" alias="DepthRangex">
+ <function name="DepthRangexOES" es1="1.0" alias="DepthRangex">
<param name="zNear" type="GLclampx"/>
<param name="zFar" type="GLclampx"/>
</function>
- <function name="FogxOES" static_dispatch="false" es1="1.0" alias="Fogx">
+ <function name="FogxOES" es1="1.0" alias="Fogx">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="FogxvOES" static_dispatch="false"
- es1="1.0" alias="Fogxv">
+ <function name="FogxvOES" es1="1.0" alias="Fogxv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="FrustumxOES" static_dispatch="false"
- es1="1.0" alias="Frustumx">
+ <function name="FrustumxOES" es1="1.0" alias="Frustumx">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -67,63 +60,53 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="LightModelxOES" static_dispatch="false"
- es1="1.0" alias="LightModelx">
+ <function name="LightModelxOES" es1="1.0" alias="LightModelx">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="LightModelxvOES" static_dispatch="false"
- es1="1.0" alias="LightModelxv">
+ <function name="LightModelxvOES" es1="1.0" alias="LightModelxv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="LightxOES" static_dispatch="false"
- es1="1.0" alias="Lightx">
+ <function name="LightxOES" es1="1.0" alias="Lightx">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="LightxvOES" static_dispatch="false"
- es1="1.0" alias="Lightxv">
+ <function name="LightxvOES" es1="1.0" alias="Lightxv">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="LineWidthxOES" static_dispatch="false"
- es1="1.0" alias="LineWidthx">
+ <function name="LineWidthxOES" es1="1.0" alias="LineWidthx">
<param name="width" type="GLfixed"/>
</function>
- <function name="LoadMatrixxOES" static_dispatch="false"
- es1="1.0" alias="LoadMatrixx">
+ <function name="LoadMatrixxOES" es1="1.0" alias="LoadMatrixx">
<param name="m" type="const GLfixed *"/>
</function>
- <function name="MaterialxOES" static_dispatch="false"
- es1="1.0" alias="Materialx">
+ <function name="MaterialxOES" es1="1.0" alias="Materialx">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="MaterialxvOES" static_dispatch="false"
- es1="1.0" alias="Materialxv">
+ <function name="MaterialxvOES" es1="1.0" alias="Materialxv">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="MultMatrixxOES" static_dispatch="false"
- es1="1.0" alias="MultMatrixx">
+ <function name="MultMatrixxOES" es1="1.0" alias="MultMatrixx">
<param name="m" type="const GLfixed *"/>
</function>
- <function name="MultiTexCoord4xOES" static_dispatch="false"
- es1="1.0" alias="MultiTexCoord4x">
+ <function name="MultiTexCoord4xOES" es1="1.0" alias="MultiTexCoord4x">
<param name="target" type="GLenum"/>
<param name="s" type="GLfixed"/>
<param name="t" type="GLfixed"/>
@@ -131,15 +114,13 @@
<param name="q" type="GLfixed"/>
</function>
- <function name="Normal3xOES" static_dispatch="false"
- es1="1.0" alias="Normal3x">
+ <function name="Normal3xOES" es1="1.0" alias="Normal3x">
<param name="nx" type="GLfixed"/>
<param name="ny" type="GLfixed"/>
<param name="nz" type="GLfixed"/>
</function>
- <function name="OrthoxOES" static_dispatch="false"
- es1="1.0" alias="Orthox">
+ <function name="OrthoxOES" es1="1.0" alias="Orthox">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -148,149 +129,129 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="PointSizexOES" static_dispatch="false"
- es1="1.0" alias="PointSizex">
+ <function name="PointSizexOES" es1="1.0" alias="PointSizex">
<param name="size" type="GLfixed"/>
</function>
- <function name="PolygonOffsetxOES" static_dispatch="false"
- es1="1.0" alias="PolygonOffsetx">
+ <function name="PolygonOffsetxOES" es1="1.0" alias="PolygonOffsetx">
<param name="factor" type="GLfixed"/>
<param name="units" type="GLfixed"/>
</function>
- <function name="RotatexOES" static_dispatch="false"
- es1="1.0" alias="Rotatex">
+ <function name="RotatexOES" es1="1.0" alias="Rotatex">
<param name="angle" type="GLfixed"/>
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="SampleCoveragexOES" static_dispatch="false"
- es1="1.0" alias="SampleCoveragex">
+ <function name="SampleCoveragexOES" es1="1.0" alias="SampleCoveragex">
<param name="value" type="GLclampx"/>
<param name="invert" type="GLboolean"/>
</function>
- <function name="ScalexOES" static_dispatch="false"
- es1="1.0" alias="Scalex">
+ <function name="ScalexOES" es1="1.0" alias="Scalex">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="TexEnvxOES" static_dispatch="false"
- es1="1.0" alias="TexEnvx">
+ <function name="TexEnvxOES" es1="1.0" alias="TexEnvx">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="TexEnvxvOES" static_dispatch="false"
- es1="1.0" alias="TexEnvxv">
+ <function name="TexEnvxvOES" es1="1.0" alias="TexEnvxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="TexParameterxOES" static_dispatch="false"
- es1="1.0" alias="TexParameterx">
+ <function name="TexParameterxOES" es1="1.0" alias="TexParameterx">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="TranslatexOES" static_dispatch="false"
- es1="1.0" alias="Translatex">
+ <function name="TranslatexOES" es1="1.0" alias="Translatex">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
<!-- OpenGL ES 1.1 -->
- <function name="ClipPlanexOES" static_dispatch="false"
- es1="1.0" alias="ClipPlanex">
+ <function name="ClipPlanexOES" es1="1.0" alias="ClipPlanex">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfixed *"/>
</function>
- <function name="GetClipPlanexOES" static_dispatch="false"
+ <function name="GetClipPlanexOES"
es1="1.0" desktop="false" alias="GetClipPlanex">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfixed *"/>
</function>
- <function name="GetFixedvOES" static_dispatch="false"
- es1="1.0" alias="GetFixedv">
+ <function name="GetFixedvOES" es1="1.0" alias="GetFixedv">
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetLightxvOES" static_dispatch="false"
- es1="1.0" alias="GetLightxv">
+ <function name="GetLightxvOES" es1="1.0" alias="GetLightxv">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetMaterialxvOES" static_dispatch="false"
- es1="1.0" alias="GetMaterialxv">
+ <function name="GetMaterialxvOES" es1="1.0" alias="GetMaterialxv">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetTexEnvxvOES" static_dispatch="false"
- es1="1.0" alias="GetTexEnvxv">
+ <function name="GetTexEnvxvOES" es1="1.0" alias="GetTexEnvxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetTexParameterxvOES"
- static_dispatch="false" es1="1.0" alias="GetTexParameterxv">
+ <function name="GetTexParameterxvOES" es1="1.0" alias="GetTexParameterxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="PointParameterxOES" static_dispatch="false"
- es1="1.0" alias="PointParameterx">
+ <function name="PointParameterxOES" es1="1.0" alias="PointParameterx">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="PointParameterxvOES"
- static_dispatch="false" es1="1.0" alias="PointParameterxv">
+ <function name="PointParameterxvOES" es1="1.0" alias="PointParameterxv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="TexParameterxvOES" static_dispatch="false"
- es1="1.0" alias="TexParameterxv">
+ <function name="TexParameterxvOES" es1="1.0" alias="TexParameterxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
<!-- texgen -->
- <function name="GetTexGenxvOES" offset="assign" static_dispatch="false"
+ <function name="GetTexGenxvOES"
es1="1.0" desktop="false">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="TexGenxOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="TexGenxOES" es1="1.0" desktop="false">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="TexGenxvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="TexGenxvOES" es1="1.0" desktop="false">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
diff --git a/mesalib/src/mapi/glapi/gen/OES_single_precision.xml b/mesalib/src/mapi/glapi/gen/OES_single_precision.xml
index 8346b64ee..c6795042e 100644
--- a/mesalib/src/mapi/glapi/gen/OES_single_precision.xml
+++ b/mesalib/src/mapi/glapi/gen/OES_single_precision.xml
@@ -6,31 +6,27 @@
<OpenGLAPI>
<category name="GL_OES_single_precision" number="293">
- <function name="ClearDepthfOES" alias="ClearDepthf" static_dispatch="false"
- es1="1.0">
+ <function name="ClearDepthfOES" alias="ClearDepthf" es1="1.0">
<param name="depth" type="GLclampf"/>
</function>
- <function name="ClipPlanefOES" static_dispatch="false"
- es1="1.0" alias="ClipPlanef">
+ <function name="ClipPlanefOES" es1="1.0" alias="ClipPlanef">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfloat *"/>
</function>
- <function name="DepthRangefOES" alias="DepthRangef" static_dispatch="false"
- es1="1.0">
+ <function name="DepthRangefOES" alias="DepthRangef" es1="1.0">
<param name="zNear" type="GLclampf"/>
<param name="zFar" type="GLclampf"/>
</function>
- <function name="GetClipPlanefOES" static_dispatch="false"
+ <function name="GetClipPlanefOES"
es1="1.0" desktop="false" alias="GetClipPlanef">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfloat *"/>
</function>
- <function name="FrustumfOES" static_dispatch="false"
- es1="1.0" alias="Frustumf">
+ <function name="FrustumfOES" es1="1.0" alias="Frustumf">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
@@ -39,8 +35,7 @@
<param name="zFar" type="GLfloat"/>
</function>
- <function name="OrthofOES" static_dispatch="false"
- es1="1.0" alias="Orthof">
+ <function name="OrthofOES" es1="1.0" alias="Orthof">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
diff --git a/mesalib/src/mapi/glapi/gen/apiexec.py b/mesalib/src/mapi/glapi/gen/apiexec.py
new file mode 100644
index 000000000..535de8a43
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/apiexec.py
@@ -0,0 +1,240 @@
+# Copyright (C) 2015 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.
+
+class exec_info():
+ """Information relating GL APIs to a function.
+
+ Each of the four attributes of this class, compatibility, core, es1, and
+ es2, specify the minimum API version where a function can possibly exist
+ in Mesa. The version is specified as an integer of (real GL version *
+ 10). For example, glCreateProgram was added in OpenGL 2.0, so
+ compatibility=20 and core=31.
+
+ If the attribute is None, then it cannot be supported by that
+ API. For example, glNewList was removed from core profiles, so
+ compatibility=10 and core=None.
+
+ Each of the attributes that is not None must have a valid value. The
+ valid ranges are:
+
+ compatiblity: [10, 30]
+ core: [31, )
+ es1: [10, 11]
+ es2: [20, )
+
+ These ranges are enforced by the constructor.
+ """
+ def __init__(self, compatibility=None, core=None, es1=None, es2=None):
+ if compatibility is not None:
+ assert isinstance(compatibility, int)
+ assert compatibility >= 10
+ assert compatibility <= 30
+
+ if core is not None:
+ assert isinstance(core, int)
+ assert core >= 31
+
+ if es1 is not None:
+ assert isinstance(es1, int)
+ assert es1 == 10 or es1 == 11
+
+ if es2 is not None:
+ assert isinstance(es2, int)
+ assert es2 >= 20
+
+ self.compatibility = compatibility
+ self.core = core
+ self.es1 = es1
+ self.es2 = es2
+
+functions = {
+ # OpenGL 3.1 / GL_ARB_texture_buffer_object. Mesa only exposes this
+ # extension with core profile.
+ "TexBuffer": exec_info(core=31),
+
+ # OpenGL 3.2 / GL_ARB_geometry_shader4. Mesa does not support
+ # GL_ARB_geometry_shader4, so OpenGL 3.2 is required.
+ "FramebufferTexture": exec_info(core=32),
+
+ # OpenGL 4.0 / GL_ARB_gpu_shader_fp64. The extension spec says:
+ #
+ # "OpenGL 3.2 and GLSL 1.50 are required."
+ "Uniform1d": exec_info(core=32),
+ "Uniform2d": exec_info(core=32),
+ "Uniform3d": exec_info(core=32),
+ "Uniform4d": exec_info(core=32),
+ "Uniform1dv": exec_info(core=32),
+ "Uniform2dv": exec_info(core=32),
+ "Uniform3dv": exec_info(core=32),
+ "Uniform4dv": exec_info(core=32),
+ "UniformMatrix2dv": exec_info(core=32),
+ "UniformMatrix3dv": exec_info(core=32),
+ "UniformMatrix4dv": exec_info(core=32),
+ "UniformMatrix2x3dv": exec_info(core=32),
+ "UniformMatrix2x4dv": exec_info(core=32),
+ "UniformMatrix3x2dv": exec_info(core=32),
+ "UniformMatrix3x4dv": exec_info(core=32),
+ "UniformMatrix4x2dv": exec_info(core=32),
+ "UniformMatrix4x3dv": exec_info(core=32),
+ "GetUniformdv": exec_info(core=32),
+
+ # OpenGL 4.1 / GL_ARB_vertex_attrib_64bit. The extension spec says:
+ #
+ # "OpenGL 3.0 and GLSL 1.30 are required.
+ #
+ # ARB_gpu_shader_fp64 (or equivalent functionality) is required."
+ #
+ # For Mesa this effectively means OpenGL 3.2 is required. It seems
+ # unlikely that Mesa will ever get support for any of the NV extensions
+ # that add "equivalent functionality."
+ "VertexAttribL1d": exec_info(core=32),
+ "VertexAttribL2d": exec_info(core=32),
+ "VertexAttribL3d": exec_info(core=32),
+ "VertexAttribL4d": exec_info(core=32),
+ "VertexAttribL1dv": exec_info(core=32),
+ "VertexAttribL2dv": exec_info(core=32),
+ "VertexAttribL3dv": exec_info(core=32),
+ "VertexAttribL4dv": exec_info(core=32),
+ "VertexAttribLPointer": exec_info(core=32),
+ "GetVertexAttribLdv": exec_info(core=32),
+
+ # OpenGL 4.1 / GL_ARB_viewport_array. The extension spec says:
+ #
+ # "OpenGL 3.2 or the EXT_geometry_shader4 or ARB_geometry_shader4
+ # extensions are required."
+ #
+ # Mesa does not support either of the geometry shader extensions, so
+ # OpenGL 3.2 is required.
+ "ViewportArrayv": exec_info(core=32),
+ "ViewportIndexedf": exec_info(core=32),
+ "ViewportIndexedfv": exec_info(core=32),
+ "ScissorArrayv": exec_info(core=32),
+ "ScissorIndexed": exec_info(core=32),
+ "ScissorIndexedv": exec_info(core=32),
+ "DepthRangeArrayv": exec_info(core=32),
+ "DepthRangeIndexed": exec_info(core=32),
+ # GetFloati_v also GL_ARB_shader_atomic_counters
+ # GetDoublei_v also GL_ARB_shader_atomic_counters
+
+ # OpenGL 4.3 / GL_ARB_texture_buffer_range. Mesa can expose the extension
+ # with OpenGL 3.1.
+ "TexBufferRange": exec_info(core=31),
+
+ # OpenGL 4.5 / GL_ARB_direct_state_access. Mesa can expose the extension
+ # with core profile.
+ "CreateTransformFeedbacks": exec_info(core=31),
+ "TransformFeedbackBufferBase": exec_info(core=31),
+ "TransformFeedbackBufferRange": exec_info(core=31),
+ "GetTransformFeedbackiv": exec_info(core=31),
+ "GetTransformFeedbacki_v": exec_info(core=31),
+ "GetTransformFeedbacki64_v": exec_info(core=31),
+ "CreateBuffers": exec_info(core=31),
+ "NamedBufferStorage": exec_info(core=31),
+ "NamedBufferData": exec_info(core=31),
+ "NamedBufferSubData": exec_info(core=31),
+ "CopyNamedBufferSubData": exec_info(core=31),
+ "ClearNamedBufferData": exec_info(core=31),
+ "ClearNamedBufferSubData": exec_info(core=31),
+ "MapNamedBuffer": exec_info(core=31),
+ "MapNamedBufferRange": exec_info(core=31),
+ "UnmapNamedBuffer": exec_info(core=31),
+ "FlushMappedNamedBufferRange": exec_info(core=31),
+ "GetNamedBufferParameteriv": exec_info(core=31),
+ "GetNamedBufferParameteri64v": exec_info(core=31),
+ "GetNamedBufferPointerv": exec_info(core=31),
+ "GetNamedBufferSubData": exec_info(core=31),
+ "CreateFramebuffers": exec_info(core=31),
+ "NamedFramebufferRenderbuffer": exec_info(core=31),
+ "NamedFramebufferParameteri": exec_info(core=31),
+ "NamedFramebufferTexture": exec_info(core=31),
+ "NamedFramebufferTextureLayer": exec_info(core=31),
+ "NamedFramebufferDrawBuffer": exec_info(core=31),
+ "NamedFramebufferDrawBuffers": exec_info(core=31),
+ "NamedFramebufferReadBuffer": exec_info(core=31),
+ "InvalidateNamedFramebufferData": exec_info(core=31),
+ "InvalidateNamedFramebufferSubData": exec_info(core=31),
+ "ClearNamedFramebufferiv": exec_info(core=31),
+ "ClearNamedFramebufferuiv": exec_info(core=31),
+ "ClearNamedFramebufferfv": exec_info(core=31),
+ "ClearNamedFramebufferfi": exec_info(core=31),
+ "BlitNamedFramebuffer": exec_info(core=31),
+ "CheckNamedFramebufferStatus": exec_info(core=31),
+ "GetNamedFramebufferParameteriv": exec_info(core=31),
+ "GetNamedFramebufferAttachmentParameteriv": exec_info(core=31),
+ "CreateRenderbuffers": exec_info(core=31),
+ "NamedRenderbufferStorage": exec_info(core=31),
+ "NamedRenderbufferStorageMultisample": exec_info(core=31),
+ "GetNamedRenderbufferParameteriv": exec_info(core=31),
+ "CreateTextures": exec_info(core=31),
+ "TextureBuffer": exec_info(core=31),
+ "TextureBufferRange": exec_info(core=31),
+ "TextureStorage1D": exec_info(core=31),
+ "TextureStorage2D": exec_info(core=31),
+ "TextureStorage3D": exec_info(core=31),
+ "TextureStorage2DMultisample": exec_info(core=31),
+ "TextureStorage3DMultisample": exec_info(core=31),
+ "TextureSubImage1D": exec_info(core=31),
+ "TextureSubImage2D": exec_info(core=31),
+ "TextureSubImage3D": exec_info(core=31),
+ "CompressedTextureSubImage1D": exec_info(core=31),
+ "CompressedTextureSubImage2D": exec_info(core=31),
+ "CompressedTextureSubImage3D": exec_info(core=31),
+ "CopyTextureSubImage1D": exec_info(core=31),
+ "CopyTextureSubImage2D": exec_info(core=31),
+ "CopyTextureSubImage3D": exec_info(core=31),
+ "TextureParameterf": exec_info(core=31),
+ "TextureParameterfv": exec_info(core=31),
+ "TextureParameteri": exec_info(core=31),
+ "TextureParameterIiv": exec_info(core=31),
+ "TextureParameterIuiv": exec_info(core=31),
+ "TextureParameteriv": exec_info(core=31),
+ "GenerateTextureMipmap": exec_info(core=31),
+ "BindTextureUnit": exec_info(core=31),
+ "GetTextureImage": exec_info(core=31),
+ "GetCompressedTextureImage": exec_info(core=31),
+ "GetTextureLevelParameterfv": exec_info(core=31),
+ "GetTextureLevelParameteriv": exec_info(core=31),
+ "GetTextureParameterfv": exec_info(core=31),
+ "GetTextureParameterIiv": exec_info(core=31),
+ "GetTextureParameterIuiv": exec_info(core=31),
+ "GetTextureParameteriv": exec_info(core=31),
+ "CreateVertexArrays": exec_info(core=31),
+ "DisableVertexArrayAttrib": exec_info(core=31),
+ "EnableVertexArrayAttrib": exec_info(core=31),
+ "VertexArrayElementBuffer": exec_info(core=31),
+ "VertexArrayVertexBuffer": exec_info(core=31),
+ "VertexArrayVertexBuffers": exec_info(core=31),
+ "VertexArrayAttribFormat": exec_info(core=31),
+ "VertexArrayAttribIFormat": exec_info(core=31),
+ "VertexArrayAttribLFormat": exec_info(core=31),
+ "VertexArrayAttribBinding": exec_info(core=31),
+ "VertexArrayBindingDivisor": exec_info(core=31),
+ "GetVertexArrayiv": exec_info(core=31),
+ "GetVertexArrayIndexediv": exec_info(core=31),
+ "GetVertexArrayIndexed64iv": exec_info(core=31),
+ "CreateSamplers": exec_info(core=31),
+ "CreateProgramPipelines": exec_info(core=31),
+ "CreateQueries": exec_info(core=31),
+ "GetQueryBufferObjectiv": exec_info(core=31),
+ "GetQueryBufferObjectuiv": exec_info(core=31),
+ "GetQueryBufferObjecti64v": exec_info(core=31),
+ "GetQueryBufferObjectui64v": exec_info(core=31),
+}
diff --git a/mesalib/src/mapi/glapi/gen/es_EXT.xml b/mesalib/src/mapi/glapi/gen/es_EXT.xml
index 3a2adeb04..642e3b319 100644
--- a/mesalib/src/mapi/glapi/gen/es_EXT.xml
+++ b/mesalib/src/mapi/glapi/gen/es_EXT.xml
@@ -11,7 +11,7 @@
<enum name="BLEND_EQUATION_ALPHA_OES" value="0x883D"/>
<function name="BlendEquationSeparateOES" alias="BlendEquationSeparate"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
@@ -24,8 +24,7 @@
<enum name="BLEND_DST_ALPHA_OES" value="0x80CA"/>
<enum name="BLEND_SRC_ALPHA_OES" value="0x80CB"/>
- <function name="BlendFuncSeparateOES" alias="BlendFuncSeparate"
- static_dispatch="false" es1="1.0">
+ <function name="BlendFuncSeparateOES" alias="BlendFuncSeparate" es1="1.0">
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
<param name="sfactorAlpha" type="GLenum"/>
@@ -40,8 +39,7 @@
<enum name="FUNC_SUBTRACT_OES" value="0x800A"/>
<enum name="FUNC_REVERSE_SUBTRACT_OES" value="0x800B"/>
- <function name="BlendEquationOES" alias="BlendEquation"
- static_dispatch="false" es1="1.0">
+ <function name="BlendEquationOES" alias="BlendEquation" es1="1.0">
<param name="mode" type="GLenum"/>
</function>
</category>
@@ -72,8 +70,7 @@
<category name="GL_OES_draw_texture" number="7">
<enum name="TEXTURE_CROP_RECT_OES" value="0x8B9D"/>
- <function name="DrawTexiOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexiOES" es1="1.0" desktop="false">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
@@ -81,13 +78,11 @@
<param name="height" type="GLint"/>
</function>
- <function name="DrawTexivOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexivOES" es1="1.0" desktop="false">
<param name="coords" type="const GLint *" count="5"/>
</function>
- <function name="DrawTexfOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexfOES" es1="1.0" desktop="false">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
@@ -95,13 +90,11 @@
<param name="height" type="GLfloat"/>
</function>
- <function name="DrawTexfvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexfvOES" es1="1.0" desktop="false">
<param name="coords" type="const GLfloat *" count="5"/>
</function>
- <function name="DrawTexsOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexsOES" es1="1.0" desktop="false">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
@@ -109,13 +102,11 @@
<param name="height" type="GLshort"/>
</function>
- <function name="DrawTexsvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexsvOES" es1="1.0" desktop="false">
<param name="coords" type="const GLshort *" count="5"/>
</function>
- <function name="DrawTexxOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexxOES" es1="1.0" desktop="false">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
@@ -123,8 +114,7 @@
<param name="height" type="GLfixed"/>
</function>
- <function name="DrawTexxvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexxvOES" es1="1.0" desktop="false">
<param name="coords" type="const GLfixed *" count="5"/>
</function>
@@ -177,40 +167,35 @@
<enum name="RENDERBUFFER_STENCIL_SIZE_OES" value="0x8D55"/>
<enum name="RGB565_OES" value="0x8D62"/>
- <function name="BindFramebufferOES" alias="BindFramebuffer"
- static_dispatch="false" es1="1.0">
+ <function name="BindFramebufferOES" alias="BindFramebuffer" es1="1.0">
<param name="target" type="GLenum"/>
<param name="framebuffer" type="GLuint"/>
</function>
- <function name="BindRenderbufferOES" alias="BindRenderbuffer"
- static_dispatch="false" es1="1.0">
+ <function name="BindRenderbufferOES" alias="BindRenderbuffer" es1="1.0">
<param name="target" type="GLenum"/>
<param name="renderbuffer" type="GLuint"/>
</function>
<function name="CheckFramebufferStatusOES"
- alias="CheckFramebufferStatus" static_dispatch="false"
- es1="1.0">
+ alias="CheckFramebufferStatus" es1="1.0">
<param name="target" type="GLenum"/>
<return type="GLenum"/>
</function>
- <function name="DeleteFramebuffersOES" alias="DeleteFramebuffers"
- static_dispatch="false" es1="1.0">
+ <function name="DeleteFramebuffersOES" alias="DeleteFramebuffers" es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="const GLuint *" count="n"/>
</function>
<function name="DeleteRenderbuffersOES" alias="DeleteRenderbuffers"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="const GLuint *" count="n"/>
</function>
<function name="FramebufferRenderbufferOES"
- alias="FramebufferRenderbuffer" static_dispatch="false"
- es1="1.0">
+ alias="FramebufferRenderbuffer" es1="1.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="renderbuffertarget" type="GLenum"/>
@@ -218,7 +203,7 @@
</function>
<function name="FramebufferTexture2DOES" alias="FramebufferTexture2D"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -226,26 +211,22 @@
<param name="level" type="GLint"/>
</function>
- <function name="GenerateMipmapOES" alias="GenerateMipmap"
- static_dispatch="false" es1="1.0">
+ <function name="GenerateMipmapOES" alias="GenerateMipmap" es1="1.0">
<param name="target" type="GLenum"/>
</function>
- <function name="GenFramebuffersOES" alias="GenFramebuffers"
- static_dispatch="false" es1="1.0">
+ <function name="GenFramebuffersOES" alias="GenFramebuffers" es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="GLuint *" count="n" output="true"/>
</function>
- <function name="GenRenderbuffersOES" alias="GenRenderbuffers"
- static_dispatch="false" es1="1.0">
+ <function name="GenRenderbuffersOES" alias="GenRenderbuffers" es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="GLuint *" count="n" output="true"/>
</function>
<function name="GetFramebufferAttachmentParameterivOES"
- alias="GetFramebufferAttachmentParameteriv"
- static_dispatch="false" es1="1.0">
+ alias="GetFramebufferAttachmentParameteriv" es1="1.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="pname" type="GLenum"/>
@@ -253,27 +234,24 @@
</function>
<function name="GetRenderbufferParameterivOES"
- alias="GetRenderbufferParameteriv" static_dispatch="false"
- es1="1.0">
+ alias="GetRenderbufferParameteriv" es1="1.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="IsFramebufferOES" alias="IsFramebuffer"
- static_dispatch="false" es1="1.0">
+ <function name="IsFramebufferOES" alias="IsFramebuffer" es1="1.0">
<param name="framebuffer" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="IsRenderbufferOES" alias="IsRenderbuffer"
- static_dispatch="false" es1="1.0">
+ <function name="IsRenderbufferOES" alias="IsRenderbuffer" es1="1.0">
<param name="renderbuffer" type="GLuint"/>
<return type="GLboolean"/>
</function>
<function name="RenderbufferStorageOES" alias="RenderbufferStorage"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -308,25 +286,23 @@
<enum name="MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES" value="0x8B9E"/>
<function name="CurrentPaletteMatrixOES" alias="CurrentPaletteMatrixARB"
- static_dispatch="false" exec="skip">
+ exec="skip">
<param name="matrixpaletteindex" type="GLuint"/>
</function>
<!-- no offset -->
- <function name="LoadPaletteFromModelViewMatrixOES" static_dispatch="false"
- exec="skip">
+ <function name="LoadPaletteFromModelViewMatrixOES" exec="skip">
</function>
<function name="MatrixIndexPointerOES" alias="MatrixIndexPointerARB"
- static_dispatch="false" exec="skip">
+ exec="skip">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
</function>
- <function name="WeightPointerOES" alias="WeightPointerARB"
- static_dispatch="false" exec="skip">
+ <function name="WeightPointerOES" alias="WeightPointerARB" exec="skip">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -342,8 +318,7 @@
<enum name="POINT_SIZE_ARRAY_OES" value="0x8B9C"/>
<enum name="POINT_SIZE_ARRAY_BUFFER_BINDING_OES" value="0x8B9F"/>
- <function name="PointSizePointerOES" offset="assign"
- static_dispatch="true" es1="1.0" desktop="false">
+ <function name="PointSizePointerOES" es1="1.0" desktop="false">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
@@ -358,8 +333,7 @@
<!-- optional for es1.0 -->
<category name="GL_OES_query_matrix" number="16">
- <function name="QueryMatrixxOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="QueryMatrixxOES" es1="1.0" desktop="false">
<param name="mantissa" type="GLfixed *" count="16" />
<param name="exponent" type="GLint *" count="16" />
<return type="GLbitfield"/>
@@ -388,43 +362,37 @@
<enum name="MAX_CUBE_MAP_TEXTURE_SIZE_OES" value="0x851C"/>
<enum name="TEXTURE_GEN_STR_OES" value="0x8D60"/>
- <function name="GetTexGenfvOES" alias="GetTexGenfv" static_dispatch="false"
- es1="1.0">
+ <function name="GetTexGenfvOES" alias="GetTexGenfv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
</function>
- <function name="GetTexGenivOES" alias="GetTexGeniv" static_dispatch="false"
- es1="1.0">
+ <function name="GetTexGenivOES" alias="GetTexGeniv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
</function>
- <function name="TexGenfOES" alias="TexGenf" static_dispatch="false"
- es1="1.0">
+ <function name="TexGenfOES" alias="TexGenf" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
</function>
- <function name="TexGenfvOES" alias="TexGenfv" static_dispatch="false"
- es1="1.0">
+ <function name="TexGenfvOES" alias="TexGenfv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
</function>
- <function name="TexGeniOES" alias="TexGeni" static_dispatch="false"
- es1="1.0">
+ <function name="TexGeniOES" alias="TexGeni" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="TexGenivOES" alias="TexGeniv" static_dispatch="false"
- es1="1.0">
+ <function name="TexGenivOES" alias="TexGeniv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
@@ -460,21 +428,19 @@
<enum name="BUFFER_MAP_POINTER_OES" value="0x88BD"/>
<function name="GetBufferPointervOES" alias="GetBufferPointerv"
- static_dispatch="false" es1="1.0" es2="2.0">
+ es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLvoid **"/>
</function>
- <function name="MapBufferOES" alias="MapBuffer" static_dispatch="false"
- es1="1.0" es2="2.0">
+ <function name="MapBufferOES" alias="MapBuffer" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="access" type="GLenum"/>
<return type="GLvoid *"/>
</function>
- <function name="UnmapBufferOES" alias="UnmapBuffer"
- static_dispatch="false" es1="1.0" es2="2.0">
+ <function name="UnmapBufferOES" alias="UnmapBuffer" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<return type="GLboolean"/>
</function>
@@ -506,7 +472,7 @@
<enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" value="0x8CD4"/>
<function name="CompressedTexImage3DOES" alias="CompressedTexImage3D"
- static_dispatch="false" es2="2.0">
+ es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -519,8 +485,7 @@
</function>
<function name="CompressedTexSubImage3DOES"
- alias="CompressedTexSubImage3D" static_dispatch="false"
- es2="2.0">
+ alias="CompressedTexSubImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -534,8 +499,7 @@
<param name="data" type="const GLvoid *" count="imageSize"/>
</function>
- <function name="CopyTexSubImage3DOES" alias="CopyTexSubImage3D"
- static_dispatch="false" es2="2.0">
+ <function name="CopyTexSubImage3DOES" alias="CopyTexSubImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -548,7 +512,7 @@
</function>
<function name="FramebufferTexture3DOES" alias="FramebufferTexture3D"
- static_dispatch="false" es2="2.0">
+ es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -557,8 +521,7 @@
<param name="zoffset" type="GLint"/>
</function>
- <function name="TexImage3DOES" alias="TexImage3D" static_dispatch="false"
- es2="2.0">
+ <function name="TexImage3DOES" alias="TexImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -571,8 +534,7 @@
<param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
</function>
- <function name="TexSubImage3DOES" alias="TexSubImage3D"
- static_dispatch="false" es2="2.0">
+ <function name="TexSubImage3DOES" alias="TexSubImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -630,8 +592,7 @@
<enum name="NUM_PROGRAM_BINARY_FORMATS_OES" value="0x87FE"/>
<enum name="PROGRAM_BINARY_FORMATS_OES" value="0x87FF"/>
- <function name="GetProgramBinaryOES" alias="GetProgramBinary"
- static_dispatch="false" es2="2.0">
+ <function name="GetProgramBinaryOES" alias="GetProgramBinary" es2="2.0">
<param name="program" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -639,8 +600,7 @@
<param name="binary" type="GLvoid *"/>
</function>
- <function name="ProgramBinaryOES" alias="ProgramBinary"
- static_dispatch="false" es2="2.0">
+ <function name="ProgramBinaryOES" alias="ProgramBinary" es2="2.0">
<param name="program" type="GLuint"/>
<param name="binaryFormat" type="GLenum"/>
<param name="binary" type="const GLvoid *"/>
@@ -666,8 +626,7 @@
<!-- 64. GL_EXT_discard_framebuffer -->
<category name="GL_EXT_discard_framebuffer" number="64">
- <function name="DiscardFramebufferEXT" es1="1.0" es2="2.0"
- offset="assign" static_dispatch="false" desktop="false">
+ <function name="DiscardFramebufferEXT" es1="1.0" es2="2.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="numAttachments" type="GLsizei"/>
<param name="attachments" type="const GLenum *" count="numAttachments"/>
@@ -689,25 +648,21 @@
<!-- 71. GL_OES_vertex_array_object -->
<category name="GL_OES_vertex_array_object" number="71">
- <function name="BindVertexArrayOES" alias="BindVertexArray"
- static_dispatch="false" es2="2.0">
+ <function name="BindVertexArrayOES" alias="BindVertexArray" es2="2.0">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArraysOES" alias="DeleteVertexArrays"
- static_dispatch="false" es2="2.0">
+ <function name="DeleteVertexArraysOES" alias="DeleteVertexArrays" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *" count="n"/>
</function>
- <function name="GenVertexArraysOES" alias="GenVertexArrays"
- static_dispatch="false" es2="2.0">
+ <function name="GenVertexArraysOES" alias="GenVertexArrays" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *" output="true" count="n"/>
</function>
- <function name="IsVertexArrayOES" alias="IsVertexArray"
- static_dispatch="false" es2="2.0">
+ <function name="IsVertexArrayOES" alias="IsVertexArray" es2="2.0">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
@@ -782,8 +737,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="DrawBuffersNV" alias="DrawBuffers"
- static_dispatch="false" es2="2.0">
+ <function name="DrawBuffersNV" alias="DrawBuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="bufs" type="const GLenum *" count="n"/>
</function>
@@ -791,8 +745,7 @@
<!-- 93. GL_NV_read_buffer -->
<category name="GL_NV_read_buffer">
- <function name="ReadBufferNV" alias="ReadBuffer"
- static_dispatch="false" es2="2.0">
+ <function name="ReadBufferNV" alias="ReadBuffer" es2="2.0">
<param name="mode" type="GLenum"/>
</function>
</category>
@@ -821,7 +774,7 @@
<enum name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020"/>
<function name="MapBufferRangeEXT" alias="MapBufferRange"
- static_dispatch="false" es1="1.0" es2="2.0">
+ es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr"/>
@@ -830,7 +783,7 @@
</function>
<function name="FlushMappedBufferRangeEXT" alias="FlushMappedBufferRange"
- static_dispatch="false" es1="1.0" es2="2.0">
+ es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
@@ -839,8 +792,7 @@
<!-- 151. GL_EXT_draw_buffers -->
<category name="GL_EXT_draw_buffers" number="151">
- <function name="DrawBuffersEXT" alias="DrawBuffers"
- static_dispatch="false" es2="2.0">
+ <function name="DrawBuffersEXT" alias="DrawBuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="bufs" type="const GLenum *" count="n"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
index d076409c2..da468dc58 100644
--- a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
@@ -25,8 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+import string
+
import gl_XML, glX_XML, glX_proto_common, license
-import sys, getopt, string
class PrintGlxDispatch_h(gl_XML.gl_print_base):
@@ -524,31 +526,39 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
return
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:s")
- except Exception,e:
- show_usage()
-
- mode = "dispatch_c"
- do_swap = 0
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "-s":
- do_swap = 1
-
- if mode == "dispatch_c":
- printer = PrintGlxDispatchFunctions(do_swap)
- elif mode == "dispatch_h":
+def _parser():
+ """Parse any arguments passed and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='an xml file describing an OpenGL API')
+ parser.add_argument('-m',
+ dest='mode',
+ default='dispatch_c',
+ choices=['dispatch_c', 'dispatch_h'],
+ help='what file to generate')
+ parser.add_argument('-s',
+ dest='swap',
+ action='store_true',
+ help='emit swap in GlXDispatchFunctions')
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ if args._mode == "dispatch_c":
+ printer = PrintGlxDispatchFunctions(args.swap)
+ elif args._mode == "dispatch_h":
printer = PrintGlxDispatch_h()
- else:
- show_usage()
- api = gl_XML.parse_GL_API( file_name, glX_proto_common.glx_proto_item_factory() )
+ api = gl_XML.parse_GL_API(
+ args.filename, glX_proto_common.glx_proto_item_factory())
+
+ printer.Print(api)
- printer.Print( api )
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_send.py b/mesalib/src/mapi/glapi/gen/glX_proto_send.py
index b93989f75..2b3303078 100644
--- a/mesalib/src/mapi/glapi/gen/glX_proto_send.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_send.py
@@ -2,6 +2,7 @@
# (C) Copyright IBM Corporation 2004, 2005
# All Rights Reserved.
+# Copyright (c) 2015 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -26,8 +27,10 @@
# Ian Romanick <idr@us.ibm.com>
# Jeremy Kolb <jkolb@brandeis.edu>
+import argparse
+
import gl_XML, glX_XML, glX_proto_common, license
-import sys, getopt, copy, string
+import copy, string
def convertStringForXCB(str):
tmp = ""
@@ -1085,42 +1088,41 @@ extern _X_HIDDEN NOINLINE FASTCALL GLubyte * __glXSetupVendorRequest(
print '#endif'
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode] [-d]" % sys.argv[0]
- print " -m output_mode Output mode can be one of 'proto', 'init_c' or 'init_h'."
- print " -d Enable extra debug information in the generated code."
- sys.exit(1)
-
-
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:d")
- except Exception,e:
- show_usage()
-
- debug = 0
- mode = "proto"
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "-d":
- debug = 1
-
- if mode == "proto":
+def _parser():
+ """Parse input and returned a parsed namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ default='gl_API.xml',
+ dest='filename',
+ help='An XML file describing an API')
+ parser.add_argument('-m',
+ required=True,
+ dest='mode',
+ choices=frozenset(['proto', 'init_c', 'init_h']),
+ help='which file to generate')
+ parser.add_argument('-d',
+ action='store_true',
+ dest='debug',
+ help='turn debug mode on.')
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ if args.mode == "proto":
printer = PrintGlxProtoStubs()
- elif mode == "init_c":
+ elif args.mode == "init_c":
printer = PrintGlxProtoInit_c()
- elif mode == "init_h":
+ elif args.mode == "init_h":
printer = PrintGlxProtoInit_h()
- else:
- show_usage()
-
- printer.debug = debug
- api = gl_XML.parse_GL_API( file_name, glX_XML.glx_item_factory() )
+ printer.debug = args.debug
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
printer.Print( api )
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_size.py b/mesalib/src/mapi/glapi/gen/glX_proto_size.py
index 4737fbf71..75fc26f5d 100644
--- a/mesalib/src/mapi/glapi/gen/glX_proto_size.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_size.py
@@ -25,9 +25,11 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+import sys, string
+
import gl_XML, glX_XML
import license
-import sys, getopt, copy, string
class glx_enum_function(object):
@@ -650,54 +652,57 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
return alias
-def show_usage():
- print "Usage: %s [-f input_file_name] -m output_mode [--only-get | --only-set] [--get-alias-set]" % sys.argv[0]
- print " -m output_mode Output mode can be one of 'size_c' or 'size_h'."
- print " --only-get Only emit 'get'-type functions."
- print " --only-set Only emit 'set'-type functions."
- print ""
- print "By default, both 'get' and 'set'-type functions are emitted."
- sys.exit(1)
-
-
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:h:", ["only-get", "only-set", "header-tag"])
- except Exception,e:
- show_usage()
-
- mode = None
- header_tag = None
- which_functions = PrintGlxSizeStubs_common.do_get | PrintGlxSizeStubs_common.do_set
-
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "--only-get":
- which_functions = PrintGlxSizeStubs_common.do_get
- elif arg == "--only-set":
- which_functions = PrintGlxSizeStubs_common.do_set
- elif (arg == '-h') or (arg == "--header-tag"):
- header_tag = val
-
- if mode == "size_c":
- printer = PrintGlxSizeStubs_c( which_functions )
- elif mode == "size_h":
- printer = PrintGlxSizeStubs_h( which_functions )
- if header_tag:
- printer.header_tag = header_tag
- elif mode == "reqsize_c":
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.set_defaults(which_functions=(PrintGlxSizeStubs_common.do_get |
+ PrintGlxSizeStubs_common.do_set))
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='an XML file describing an OpenGL API.')
+ parser.add_argument('-m',
+ dest='mode',
+ choices=['size_c', 'size_h', 'reqsize_c', 'reqsize_h'],
+ help='Which file to generate')
+ getset = parser.add_mutually_exclusive_group()
+ getset.add_argument('--only-get',
+ dest='which_functions',
+ action='store_const',
+ const=PrintGlxSizeStubs_common.do_get,
+ help='only emit "get-type" functions')
+ getset.add_argument('--only-set',
+ dest='which_functions',
+ action='store_const',
+ const=PrintGlxSizeStubs_common.do_set,
+ help='only emit "set-type" functions')
+ parser.add_argument('--header-tag',
+ dest='header_tag',
+ action='store',
+ default=None,
+ help='set header tag value')
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ if args.mode == "size_c":
+ printer = PrintGlxSizeStubs_c(args.which_functions)
+ elif args.mode == "size_h":
+ printer = PrintGlxSizeStubs_h(args.which_functions)
+ if args.header_tag is not None:
+ printer.header_tag = args.header_tag
+ elif args.mode == "reqsize_c":
printer = PrintGlxReqSize_c()
- elif mode == "reqsize_h":
+ elif args.mode == "reqsize_h":
printer = PrintGlxReqSize_h()
- else:
- show_usage()
- api = gl_XML.parse_GL_API( file_name, glX_XML.glx_item_factory() )
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
+
+ printer.Print(api)
- printer.Print( api )
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/glX_server_table.py b/mesalib/src/mapi/glapi/gen/glX_server_table.py
index 47aa11116..2d21f4e4e 100644
--- a/mesalib/src/mapi/glapi/gen/glX_server_table.py
+++ b/mesalib/src/mapi/glapi/gen/glX_server_table.py
@@ -25,8 +25,9 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import gl_XML, glX_XML, glX_proto_common, license
-import sys, getopt
def log2(value):
@@ -383,28 +384,19 @@ class PrintGlxDispatchTables(glX_proto_common.glx_print_proto):
return
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m")
- except Exception,e:
- show_usage()
-
- mode = "table_c"
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
+def _parser():
+ """Parse arguments and return namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML file describing an API.')
+ return parser.parse_args()
- if mode == "table_c":
- printer = PrintGlxDispatchTables()
- else:
- show_usage()
-
-
- api = gl_XML.parse_GL_API( file_name, glX_XML.glx_item_factory() )
+if __name__ == '__main__':
+ args = _parser()
+ printer = PrintGlxDispatchTables()
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
- printer.Print( api )
+ printer.Print(api)
diff --git a/mesalib/src/mapi/glapi/gen/gl_API.dtd b/mesalib/src/mapi/glapi/gen/gl_API.dtd
index ab321fad0..bdc62f1c8 100644
--- a/mesalib/src/mapi/glapi/gen/gl_API.dtd
+++ b/mesalib/src/mapi/glapi/gen/gl_API.dtd
@@ -33,8 +33,6 @@
value NMTOKEN #REQUIRED>
<!ATTLIST function name NMTOKEN #REQUIRED
alias NMTOKEN #IMPLIED
- offset CDATA #IMPLIED
- static_dispatch (true | false) "true"
vectorequiv NMTOKEN #IMPLIED
es1 CDATA "none"
es2 CDATA "none"
diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml
index d1565989c..bd8db6203 100644
--- a/mesalib/src/mapi/glapi/gen/gl_API.xml
+++ b/mesalib/src/mapi/glapi/gen/gl_API.xml
@@ -1109,51 +1109,51 @@
<type name="DEBUGPROCARB" size="4" pointer="true"/>
<type name="DEBUGPROC" size="4" pointer="true"/>
- <function name="NewList" offset="0" deprecated="3.1">
+ <function name="NewList" deprecated="3.1">
<param name="list" type="GLuint"/>
<param name="mode" type="GLenum"/>
<glx sop="101"/>
</function>
- <function name="EndList" offset="1" deprecated="3.1">
+ <function name="EndList" deprecated="3.1">
<glx sop="102"/>
</function>
- <function name="CallList" offset="2" deprecated="3.1">
+ <function name="CallList" deprecated="3.1">
<param name="list" type="GLuint"/>
<glx rop="1"/>
</function>
- <function name="CallLists" offset="3" deprecated="3.1">
+ <function name="CallLists" deprecated="3.1">
<param name="n" type="GLsizei" counter="true"/>
<param name="type" type="GLenum"/>
<param name="lists" type="const GLvoid *" variable_param="type" count="n"/>
<glx rop="2" large="true"/>
</function>
- <function name="DeleteLists" offset="4" deprecated="3.1">
+ <function name="DeleteLists" deprecated="3.1">
<param name="list" type="GLuint"/>
<param name="range" type="GLsizei"/>
<glx sop="103"/>
</function>
- <function name="GenLists" offset="5" deprecated="3.1">
+ <function name="GenLists" deprecated="3.1">
<param name="range" type="GLsizei"/>
<return type="GLuint"/>
<glx sop="104"/>
</function>
- <function name="ListBase" offset="6" deprecated="3.1">
+ <function name="ListBase" deprecated="3.1">
<param name="base" type="GLuint"/>
<glx rop="3"/>
</function>
- <function name="Begin" offset="7" deprecated="3.1" exec="dynamic">
+ <function name="Begin" deprecated="3.1" exec="dynamic">
<param name="mode" type="GLenum"/>
<glx rop="4"/>
</function>
- <function name="Bitmap" offset="8" deprecated="3.1">
+ <function name="Bitmap" deprecated="3.1">
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
<param name="xorig" type="GLfloat"/>
@@ -1164,129 +1164,120 @@
<glx rop="5" large="true"/>
</function>
- <function name="Color3b" offset="9" vectorequiv="Color3bv"
- deprecated="3.1">
+ <function name="Color3b" vectorequiv="Color3bv" deprecated="3.1">
<param name="red" type="GLbyte"/>
<param name="green" type="GLbyte"/>
<param name="blue" type="GLbyte"/>
</function>
- <function name="Color3bv" offset="10" deprecated="3.1">
+ <function name="Color3bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="3"/>
<glx rop="6"/>
</function>
- <function name="Color3d" offset="11" vectorequiv="Color3dv"
- deprecated="3.1">
+ <function name="Color3d" vectorequiv="Color3dv" deprecated="3.1">
<param name="red" type="GLdouble"/>
<param name="green" type="GLdouble"/>
<param name="blue" type="GLdouble"/>
</function>
- <function name="Color3dv" offset="12" deprecated="3.1">
+ <function name="Color3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="7"/>
</function>
- <function name="Color3f" offset="13" vectorequiv="Color3fv"
- deprecated="3.1" exec="dynamic">
+ <function name="Color3f" vectorequiv="Color3fv"
+ deprecated="3.1" exec="dynamic">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
<param name="blue" type="GLfloat"/>
</function>
- <function name="Color3fv" offset="14" deprecated="3.1" exec="dynamic">
+ <function name="Color3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="8"/>
</function>
- <function name="Color3i" offset="15" vectorequiv="Color3iv"
- deprecated="3.1">
+ <function name="Color3i" vectorequiv="Color3iv" deprecated="3.1">
<param name="red" type="GLint"/>
<param name="green" type="GLint"/>
<param name="blue" type="GLint"/>
</function>
- <function name="Color3iv" offset="16" deprecated="3.1">
+ <function name="Color3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="9"/>
</function>
- <function name="Color3s" offset="17" vectorequiv="Color3sv"
- deprecated="3.1">
+ <function name="Color3s" vectorequiv="Color3sv" deprecated="3.1">
<param name="red" type="GLshort"/>
<param name="green" type="GLshort"/>
<param name="blue" type="GLshort"/>
</function>
- <function name="Color3sv" offset="18" deprecated="3.1">
+ <function name="Color3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="10"/>
</function>
- <function name="Color3ub" offset="19" vectorequiv="Color3ubv"
- deprecated="3.1">
+ <function name="Color3ub" vectorequiv="Color3ubv" deprecated="3.1">
<param name="red" type="GLubyte"/>
<param name="green" type="GLubyte"/>
<param name="blue" type="GLubyte"/>
</function>
- <function name="Color3ubv" offset="20" deprecated="3.1">
+ <function name="Color3ubv" deprecated="3.1">
<param name="v" type="const GLubyte *" count="3"/>
<glx rop="11"/>
</function>
- <function name="Color3ui" offset="21" vectorequiv="Color3uiv"
- deprecated="3.1">
+ <function name="Color3ui" vectorequiv="Color3uiv" deprecated="3.1">
<param name="red" type="GLuint"/>
<param name="green" type="GLuint"/>
<param name="blue" type="GLuint"/>
</function>
- <function name="Color3uiv" offset="22" deprecated="3.1">
+ <function name="Color3uiv" deprecated="3.1">
<param name="v" type="const GLuint *" count="3"/>
<glx rop="12"/>
</function>
- <function name="Color3us" offset="23" vectorequiv="Color3usv"
- deprecated="3.1">
+ <function name="Color3us" vectorequiv="Color3usv" deprecated="3.1">
<param name="red" type="GLushort"/>
<param name="green" type="GLushort"/>
<param name="blue" type="GLushort"/>
</function>
- <function name="Color3usv" offset="24" deprecated="3.1">
+ <function name="Color3usv" deprecated="3.1">
<param name="v" type="const GLushort *" count="3"/>
<glx rop="13"/>
</function>
- <function name="Color4b" offset="25" vectorequiv="Color4bv"
- deprecated="3.1">
+ <function name="Color4b" vectorequiv="Color4bv" deprecated="3.1">
<param name="red" type="GLbyte"/>
<param name="green" type="GLbyte"/>
<param name="blue" type="GLbyte"/>
<param name="alpha" type="GLbyte"/>
</function>
- <function name="Color4bv" offset="26" deprecated="3.1">
+ <function name="Color4bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="4"/>
<glx rop="14"/>
</function>
- <function name="Color4d" offset="27" vectorequiv="Color4dv"
- deprecated="3.1">
+ <function name="Color4d" vectorequiv="Color4dv" deprecated="3.1">
<param name="red" type="GLdouble"/>
<param name="green" type="GLdouble"/>
<param name="blue" type="GLdouble"/>
<param name="alpha" type="GLdouble"/>
</function>
- <function name="Color4dv" offset="28" deprecated="3.1">
+ <function name="Color4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="15"/>
</function>
- <function name="Color4f" offset="29" vectorequiv="Color4fv" es1="1.0"
+ <function name="Color4f" vectorequiv="Color4fv" es1="1.0"
deprecated="3.1" exec="dynamic">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
@@ -1294,38 +1285,36 @@
<param name="alpha" type="GLfloat"/>
</function>
- <function name="Color4fv" offset="30" deprecated="3.1" exec="dynamic">
+ <function name="Color4fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="16"/>
</function>
- <function name="Color4i" offset="31" vectorequiv="Color4iv"
- deprecated="3.1">
+ <function name="Color4i" vectorequiv="Color4iv" deprecated="3.1">
<param name="red" type="GLint"/>
<param name="green" type="GLint"/>
<param name="blue" type="GLint"/>
<param name="alpha" type="GLint"/>
</function>
- <function name="Color4iv" offset="32" deprecated="3.1">
+ <function name="Color4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="17"/>
</function>
- <function name="Color4s" offset="33" vectorequiv="Color4sv"
- deprecated="3.1">
+ <function name="Color4s" vectorequiv="Color4sv" deprecated="3.1">
<param name="red" type="GLshort"/>
<param name="green" type="GLshort"/>
<param name="blue" type="GLshort"/>
<param name="alpha" type="GLshort"/>
</function>
- <function name="Color4sv" offset="34" deprecated="3.1">
+ <function name="Color4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="18"/>
</function>
- <function name="Color4ub" offset="35" vectorequiv="Color4ubv" es1="1.1"
+ <function name="Color4ub" vectorequiv="Color4ubv" es1="1.1"
deprecated="3.1">
<param name="red" type="GLubyte"/>
<param name="green" type="GLubyte"/>
@@ -1333,494 +1322,462 @@
<param name="alpha" type="GLubyte"/>
</function>
- <function name="Color4ubv" offset="36" deprecated="3.1">
+ <function name="Color4ubv" deprecated="3.1">
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="19"/>
</function>
- <function name="Color4ui" offset="37" vectorequiv="Color4uiv"
- deprecated="3.1">
+ <function name="Color4ui" vectorequiv="Color4uiv" deprecated="3.1">
<param name="red" type="GLuint"/>
<param name="green" type="GLuint"/>
<param name="blue" type="GLuint"/>
<param name="alpha" type="GLuint"/>
</function>
- <function name="Color4uiv" offset="38" deprecated="3.1">
+ <function name="Color4uiv" deprecated="3.1">
<param name="v" type="const GLuint *" count="4"/>
<glx rop="20"/>
</function>
- <function name="Color4us" offset="39" vectorequiv="Color4usv"
- deprecated="3.1">
+ <function name="Color4us" vectorequiv="Color4usv" deprecated="3.1">
<param name="red" type="GLushort"/>
<param name="green" type="GLushort"/>
<param name="blue" type="GLushort"/>
<param name="alpha" type="GLushort"/>
</function>
- <function name="Color4usv" offset="40" deprecated="3.1">
+ <function name="Color4usv" deprecated="3.1">
<param name="v" type="const GLushort *" count="4"/>
<glx rop="21"/>
</function>
- <function name="EdgeFlag" offset="41" vectorequiv="EdgeFlagv"
+ <function name="EdgeFlag" vectorequiv="EdgeFlagv"
deprecated="3.1" exec="dynamic">
<param name="flag" type="GLboolean"/>
</function>
- <function name="EdgeFlagv" offset="42" deprecated="3.1">
+ <function name="EdgeFlagv" deprecated="3.1">
<param name="flag" type="const GLboolean *" count="1"/>
<glx rop="22"/>
</function>
- <function name="End" offset="43" deprecated="3.1" exec="dynamic">
+ <function name="End" deprecated="3.1" exec="dynamic">
<glx rop="23"/>
</function>
- <function name="Indexd" offset="44" vectorequiv="Indexdv" deprecated="3.1">
+ <function name="Indexd" vectorequiv="Indexdv" deprecated="3.1">
<param name="c" type="GLdouble"/>
</function>
- <function name="Indexdv" offset="45" deprecated="3.1">
+ <function name="Indexdv" deprecated="3.1">
<param name="c" type="const GLdouble *" count="1"/>
<glx rop="24"/>
</function>
- <function name="Indexf" offset="46" vectorequiv="Indexfv" deprecated="3.1"
+ <function name="Indexf" vectorequiv="Indexfv" deprecated="3.1"
exec="dynamic">
<param name="c" type="GLfloat"/>
</function>
- <function name="Indexfv" offset="47" deprecated="3.1" exec="dynamic">
+ <function name="Indexfv" deprecated="3.1" exec="dynamic">
<param name="c" type="const GLfloat *" count="1"/>
<glx rop="25"/>
</function>
- <function name="Indexi" offset="48" vectorequiv="Indexiv" deprecated="3.1">
+ <function name="Indexi" vectorequiv="Indexiv" deprecated="3.1">
<param name="c" type="GLint"/>
</function>
- <function name="Indexiv" offset="49" deprecated="3.1">
+ <function name="Indexiv" deprecated="3.1">
<param name="c" type="const GLint *" count="1"/>
<glx rop="26"/>
</function>
- <function name="Indexs" offset="50" vectorequiv="Indexsv" deprecated="3.1">
+ <function name="Indexs" vectorequiv="Indexsv" deprecated="3.1">
<param name="c" type="GLshort"/>
</function>
- <function name="Indexsv" offset="51" deprecated="3.1">
+ <function name="Indexsv" deprecated="3.1">
<param name="c" type="const GLshort *" count="1"/>
<glx rop="27"/>
</function>
- <function name="Normal3b" offset="52" vectorequiv="Normal3bv"
- deprecated="3.1">
+ <function name="Normal3b" vectorequiv="Normal3bv" deprecated="3.1">
<param name="nx" type="GLbyte"/>
<param name="ny" type="GLbyte"/>
<param name="nz" type="GLbyte"/>
</function>
- <function name="Normal3bv" offset="53" deprecated="3.1">
+ <function name="Normal3bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="3"/>
<glx rop="28"/>
</function>
- <function name="Normal3d" offset="54" vectorequiv="Normal3dv"
- deprecated="3.1">
+ <function name="Normal3d" vectorequiv="Normal3dv" deprecated="3.1">
<param name="nx" type="GLdouble"/>
<param name="ny" type="GLdouble"/>
<param name="nz" type="GLdouble"/>
</function>
- <function name="Normal3dv" offset="55" deprecated="3.1">
+ <function name="Normal3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="29"/>
</function>
- <function name="Normal3f" offset="56" vectorequiv="Normal3fv" es1="1.0"
+ <function name="Normal3f" vectorequiv="Normal3fv" es1="1.0"
deprecated="3.1" exec="dynamic">
<param name="nx" type="GLfloat"/>
<param name="ny" type="GLfloat"/>
<param name="nz" type="GLfloat"/>
</function>
- <function name="Normal3fv" offset="57" deprecated="3.1" exec="dynamic">
+ <function name="Normal3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="30"/>
</function>
- <function name="Normal3i" offset="58" vectorequiv="Normal3iv"
- deprecated="3.1">
+ <function name="Normal3i" vectorequiv="Normal3iv" deprecated="3.1">
<param name="nx" type="GLint"/>
<param name="ny" type="GLint"/>
<param name="nz" type="GLint"/>
</function>
- <function name="Normal3iv" offset="59" deprecated="3.1">
+ <function name="Normal3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="31"/>
</function>
- <function name="Normal3s" offset="60" vectorequiv="Normal3sv"
- deprecated="3.1">
+ <function name="Normal3s" vectorequiv="Normal3sv" deprecated="3.1">
<param name="nx" type="GLshort"/>
<param name="ny" type="GLshort"/>
<param name="nz" type="GLshort"/>
</function>
- <function name="Normal3sv" offset="61" deprecated="3.1">
+ <function name="Normal3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="32"/>
</function>
- <function name="RasterPos2d" offset="62" vectorequiv="RasterPos2dv"
- deprecated="3.1">
+ <function name="RasterPos2d" vectorequiv="RasterPos2dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="RasterPos2dv" offset="63" deprecated="3.1">
+ <function name="RasterPos2dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="33"/>
</function>
- <function name="RasterPos2f" offset="64" vectorequiv="RasterPos2fv"
- deprecated="3.1">
+ <function name="RasterPos2f" vectorequiv="RasterPos2fv" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="RasterPos2fv" offset="65" deprecated="3.1">
+ <function name="RasterPos2fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="34"/>
</function>
- <function name="RasterPos2i" offset="66" vectorequiv="RasterPos2iv"
- deprecated="3.1">
+ <function name="RasterPos2i" vectorequiv="RasterPos2iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="RasterPos2iv" offset="67" deprecated="3.1">
+ <function name="RasterPos2iv" deprecated="3.1">
<param name="v" type="const GLint *" count="2"/>
<glx rop="35"/>
</function>
- <function name="RasterPos2s" offset="68" vectorequiv="RasterPos2sv"
- deprecated="3.1">
+ <function name="RasterPos2s" vectorequiv="RasterPos2sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="RasterPos2sv" offset="69" deprecated="3.1">
+ <function name="RasterPos2sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="2"/>
<glx rop="36"/>
</function>
- <function name="RasterPos3d" offset="70" vectorequiv="RasterPos3dv"
- deprecated="3.1">
+ <function name="RasterPos3d" vectorequiv="RasterPos3dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="RasterPos3dv" offset="71" deprecated="3.1">
+ <function name="RasterPos3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="37"/>
</function>
- <function name="RasterPos3f" offset="72" vectorequiv="RasterPos3fv"
- deprecated="3.1">
+ <function name="RasterPos3f" vectorequiv="RasterPos3fv" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="RasterPos3fv" offset="73" deprecated="3.1">
+ <function name="RasterPos3fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="38"/>
</function>
- <function name="RasterPos3i" offset="74" vectorequiv="RasterPos3iv"
- deprecated="3.1">
+ <function name="RasterPos3i" vectorequiv="RasterPos3iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="RasterPos3iv" offset="75" deprecated="3.1">
+ <function name="RasterPos3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="39"/>
</function>
- <function name="RasterPos3s" offset="76" vectorequiv="RasterPos3sv"
- deprecated="3.1">
+ <function name="RasterPos3s" vectorequiv="RasterPos3sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
</function>
- <function name="RasterPos3sv" offset="77" deprecated="3.1">
+ <function name="RasterPos3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="40"/>
</function>
- <function name="RasterPos4d" offset="78" vectorequiv="RasterPos4dv"
- deprecated="3.1">
+ <function name="RasterPos4d" vectorequiv="RasterPos4dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<param name="w" type="GLdouble"/>
</function>
- <function name="RasterPos4dv" offset="79" deprecated="3.1">
+ <function name="RasterPos4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="41"/>
</function>
- <function name="RasterPos4f" offset="80" vectorequiv="RasterPos4fv"
- deprecated="3.1">
+ <function name="RasterPos4f" vectorequiv="RasterPos4fv" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
<param name="w" type="GLfloat"/>
</function>
- <function name="RasterPos4fv" offset="81" deprecated="3.1">
+ <function name="RasterPos4fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="42"/>
</function>
- <function name="RasterPos4i" offset="82" vectorequiv="RasterPos4iv"
- deprecated="3.1">
+ <function name="RasterPos4i" vectorequiv="RasterPos4iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
<param name="w" type="GLint"/>
</function>
- <function name="RasterPos4iv" offset="83" deprecated="3.1">
+ <function name="RasterPos4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="43"/>
</function>
- <function name="RasterPos4s" offset="84" vectorequiv="RasterPos4sv"
- deprecated="3.1">
+ <function name="RasterPos4s" vectorequiv="RasterPos4sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<param name="w" type="GLshort"/>
</function>
- <function name="RasterPos4sv" offset="85" deprecated="3.1">
+ <function name="RasterPos4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="44"/>
</function>
- <function name="Rectd" offset="86" vectorequiv="Rectdv" deprecated="3.1">
+ <function name="Rectd" vectorequiv="Rectdv" deprecated="3.1">
<param name="x1" type="GLdouble"/>
<param name="y1" type="GLdouble"/>
<param name="x2" type="GLdouble"/>
<param name="y2" type="GLdouble"/>
</function>
- <function name="Rectdv" offset="87" deprecated="3.1">
+ <function name="Rectdv" deprecated="3.1">
<param name="v1" type="const GLdouble *" count="2"/>
<param name="v2" type="const GLdouble *" count="2"/>
<glx rop="45"/>
</function>
- <function name="Rectf" offset="88" vectorequiv="Rectfv" deprecated="3.1"
- exec="dynamic">
+ <function name="Rectf" vectorequiv="Rectfv" deprecated="3.1" exec="dynamic">
<param name="x1" type="GLfloat"/>
<param name="y1" type="GLfloat"/>
<param name="x2" type="GLfloat"/>
<param name="y2" type="GLfloat"/>
</function>
- <function name="Rectfv" offset="89" deprecated="3.1">
+ <function name="Rectfv" deprecated="3.1">
<param name="v1" type="const GLfloat *" count="2"/>
<param name="v2" type="const GLfloat *" count="2"/>
<glx rop="46"/>
</function>
- <function name="Recti" offset="90" vectorequiv="Rectiv" deprecated="3.1">
+ <function name="Recti" vectorequiv="Rectiv" deprecated="3.1">
<param name="x1" type="GLint"/>
<param name="y1" type="GLint"/>
<param name="x2" type="GLint"/>
<param name="y2" type="GLint"/>
</function>
- <function name="Rectiv" offset="91" deprecated="3.1">
+ <function name="Rectiv" deprecated="3.1">
<param name="v1" type="const GLint *" count="2"/>
<param name="v2" type="const GLint *" count="2"/>
<glx rop="47"/>
</function>
- <function name="Rects" offset="92" vectorequiv="Rectsv" deprecated="3.1">
+ <function name="Rects" vectorequiv="Rectsv" deprecated="3.1">
<param name="x1" type="GLshort"/>
<param name="y1" type="GLshort"/>
<param name="x2" type="GLshort"/>
<param name="y2" type="GLshort"/>
</function>
- <function name="Rectsv" offset="93" deprecated="3.1">
+ <function name="Rectsv" deprecated="3.1">
<param name="v1" type="const GLshort *" count="2"/>
<param name="v2" type="const GLshort *" count="2"/>
<glx rop="48"/>
</function>
- <function name="TexCoord1d" offset="94" vectorequiv="TexCoord1dv"
- deprecated="3.1">
+ <function name="TexCoord1d" vectorequiv="TexCoord1dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
</function>
- <function name="TexCoord1dv" offset="95" deprecated="3.1">
+ <function name="TexCoord1dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="49"/>
</function>
- <function name="TexCoord1f" offset="96" vectorequiv="TexCoord1fv"
+ <function name="TexCoord1f" vectorequiv="TexCoord1fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
</function>
- <function name="TexCoord1fv" offset="97" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord1fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="50"/>
</function>
- <function name="TexCoord1i" offset="98" vectorequiv="TexCoord1iv"
- deprecated="3.1">
+ <function name="TexCoord1i" vectorequiv="TexCoord1iv" deprecated="3.1">
<param name="s" type="GLint"/>
</function>
- <function name="TexCoord1iv" offset="99" deprecated="3.1">
+ <function name="TexCoord1iv" deprecated="3.1">
<param name="v" type="const GLint *" count="1"/>
<glx rop="51"/>
</function>
- <function name="TexCoord1s" offset="100" vectorequiv="TexCoord1sv"
- deprecated="3.1">
+ <function name="TexCoord1s" vectorequiv="TexCoord1sv" deprecated="3.1">
<param name="s" type="GLshort"/>
</function>
- <function name="TexCoord1sv" offset="101" deprecated="3.1">
+ <function name="TexCoord1sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="1"/>
<glx rop="52"/>
</function>
- <function name="TexCoord2d" offset="102" vectorequiv="TexCoord2dv"
- deprecated="3.1">
+ <function name="TexCoord2d" vectorequiv="TexCoord2dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
</function>
- <function name="TexCoord2dv" offset="103" deprecated="3.1">
+ <function name="TexCoord2dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="53"/>
</function>
- <function name="TexCoord2f" offset="104" vectorequiv="TexCoord2fv"
+ <function name="TexCoord2f" vectorequiv="TexCoord2fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
</function>
- <function name="TexCoord2fv" offset="105" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord2fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="54"/>
</function>
- <function name="TexCoord2i" offset="106" vectorequiv="TexCoord2iv"
- deprecated="3.1">
+ <function name="TexCoord2i" vectorequiv="TexCoord2iv" deprecated="3.1">
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
</function>
- <function name="TexCoord2iv" offset="107" deprecated="3.1">
+ <function name="TexCoord2iv" deprecated="3.1">
<param name="v" type="const GLint *" count="2"/>
<glx rop="55"/>
</function>
- <function name="TexCoord2s" offset="108" vectorequiv="TexCoord2sv"
- deprecated="3.1">
+ <function name="TexCoord2s" vectorequiv="TexCoord2sv" deprecated="3.1">
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
</function>
- <function name="TexCoord2sv" offset="109" deprecated="3.1">
+ <function name="TexCoord2sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="2"/>
<glx rop="56"/>
</function>
- <function name="TexCoord3d" offset="110" vectorequiv="TexCoord3dv"
- deprecated="3.1">
+ <function name="TexCoord3d" vectorequiv="TexCoord3dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
<param name="r" type="GLdouble"/>
</function>
- <function name="TexCoord3dv" offset="111" deprecated="3.1">
+ <function name="TexCoord3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="57"/>
</function>
- <function name="TexCoord3f" offset="112" vectorequiv="TexCoord3fv"
+ <function name="TexCoord3f" vectorequiv="TexCoord3fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
<param name="r" type="GLfloat"/>
</function>
- <function name="TexCoord3fv" offset="113" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="58"/>
</function>
- <function name="TexCoord3i" offset="114" vectorequiv="TexCoord3iv"
- deprecated="3.1">
+ <function name="TexCoord3i" vectorequiv="TexCoord3iv" deprecated="3.1">
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
<param name="r" type="GLint"/>
</function>
- <function name="TexCoord3iv" offset="115" deprecated="3.1">
+ <function name="TexCoord3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="59"/>
</function>
- <function name="TexCoord3s" offset="116" vectorequiv="TexCoord3sv"
- deprecated="3.1">
+ <function name="TexCoord3s" vectorequiv="TexCoord3sv" deprecated="3.1">
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
<param name="r" type="GLshort"/>
</function>
- <function name="TexCoord3sv" offset="117" deprecated="3.1">
+ <function name="TexCoord3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="60"/>
</function>
- <function name="TexCoord4d" offset="118" vectorequiv="TexCoord4dv"
- deprecated="3.1">
+ <function name="TexCoord4d" vectorequiv="TexCoord4dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
<param name="r" type="GLdouble"/>
<param name="q" type="GLdouble"/>
</function>
- <function name="TexCoord4dv" offset="119" deprecated="3.1">
+ <function name="TexCoord4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="61"/>
</function>
- <function name="TexCoord4f" offset="120" vectorequiv="TexCoord4fv"
+ <function name="TexCoord4f" vectorequiv="TexCoord4fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
@@ -1828,146 +1785,134 @@
<param name="q" type="GLfloat"/>
</function>
- <function name="TexCoord4fv" offset="121" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord4fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="62"/>
</function>
- <function name="TexCoord4i" offset="122" vectorequiv="TexCoord4iv"
- deprecated="3.1">
+ <function name="TexCoord4i" vectorequiv="TexCoord4iv" deprecated="3.1">
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
<param name="r" type="GLint"/>
<param name="q" type="GLint"/>
</function>
- <function name="TexCoord4iv" offset="123" deprecated="3.1">
+ <function name="TexCoord4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="63"/>
</function>
- <function name="TexCoord4s" offset="124" vectorequiv="TexCoord4sv"
- deprecated="3.1">
+ <function name="TexCoord4s" vectorequiv="TexCoord4sv" deprecated="3.1">
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
<param name="r" type="GLshort"/>
<param name="q" type="GLshort"/>
</function>
- <function name="TexCoord4sv" offset="125" deprecated="3.1">
+ <function name="TexCoord4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="64"/>
</function>
- <function name="Vertex2d" offset="126" vectorequiv="Vertex2dv"
- deprecated="3.1">
+ <function name="Vertex2d" vectorequiv="Vertex2dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="Vertex2dv" offset="127" deprecated="3.1">
+ <function name="Vertex2dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="65"/>
</function>
- <function name="Vertex2f" offset="128" vectorequiv="Vertex2fv"
+ <function name="Vertex2f" vectorequiv="Vertex2fv"
deprecated="3.1" exec="dynamic">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="Vertex2fv" offset="129" deprecated="3.1"
- exec="dynamic">
+ <function name="Vertex2fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="66"/>
</function>
- <function name="Vertex2i" offset="130" vectorequiv="Vertex2iv"
- deprecated="3.1">
+ <function name="Vertex2i" vectorequiv="Vertex2iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="Vertex2iv" offset="131" deprecated="3.1">
+ <function name="Vertex2iv" deprecated="3.1">
<param name="v" type="const GLint *" count="2"/>
<glx rop="67"/>
</function>
- <function name="Vertex2s" offset="132" vectorequiv="Vertex2sv"
- deprecated="3.1">
+ <function name="Vertex2s" vectorequiv="Vertex2sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="Vertex2sv" offset="133" deprecated="3.1">
+ <function name="Vertex2sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="2"/>
<glx rop="68"/>
</function>
- <function name="Vertex3d" offset="134" vectorequiv="Vertex3dv"
- deprecated="3.1">
+ <function name="Vertex3d" vectorequiv="Vertex3dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="Vertex3dv" offset="135" deprecated="3.1">
+ <function name="Vertex3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="69"/>
</function>
- <function name="Vertex3f" offset="136" vectorequiv="Vertex3fv"
+ <function name="Vertex3f" vectorequiv="Vertex3fv"
deprecated="3.1" exec="dynamic">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="Vertex3fv" offset="137" deprecated="3.1"
- exec="dynamic">
+ <function name="Vertex3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="70"/>
</function>
- <function name="Vertex3i" offset="138" vectorequiv="Vertex3iv"
- deprecated="3.1">
+ <function name="Vertex3i" vectorequiv="Vertex3iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="Vertex3iv" offset="139" deprecated="3.1">
+ <function name="Vertex3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="71"/>
</function>
- <function name="Vertex3s" offset="140" vectorequiv="Vertex3sv"
- deprecated="3.1">
+ <function name="Vertex3s" vectorequiv="Vertex3sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
</function>
- <function name="Vertex3sv" offset="141" deprecated="3.1">
+ <function name="Vertex3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="72"/>
</function>
- <function name="Vertex4d" offset="142" vectorequiv="Vertex4dv"
- deprecated="3.1">
+ <function name="Vertex4d" vectorequiv="Vertex4dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<param name="w" type="GLdouble"/>
</function>
- <function name="Vertex4dv" offset="143" deprecated="3.1">
+ <function name="Vertex4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="73"/>
</function>
- <function name="Vertex4f" offset="144" vectorequiv="Vertex4fv"
+ <function name="Vertex4f" vectorequiv="Vertex4fv"
deprecated="3.1" exec="dynamic">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
@@ -1975,199 +1920,195 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="Vertex4fv" offset="145" deprecated="3.1"
- exec="dynamic">
+ <function name="Vertex4fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="74"/>
</function>
- <function name="Vertex4i" offset="146" vectorequiv="Vertex4iv"
- deprecated="3.1">
+ <function name="Vertex4i" vectorequiv="Vertex4iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
<param name="w" type="GLint"/>
</function>
- <function name="Vertex4iv" offset="147" deprecated="3.1">
+ <function name="Vertex4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="75"/>
</function>
- <function name="Vertex4s" offset="148" vectorequiv="Vertex4sv"
- deprecated="3.1">
+ <function name="Vertex4s" vectorequiv="Vertex4sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<param name="w" type="GLshort"/>
</function>
- <function name="Vertex4sv" offset="149" deprecated="3.1">
+ <function name="Vertex4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="76"/>
</function>
- <function name="ClipPlane" offset="150" deprecated="3.1">
+ <function name="ClipPlane" deprecated="3.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLdouble *" count="4"/>
<glx rop="77"/>
</function>
- <function name="ColorMaterial" offset="151" deprecated="3.1">
+ <function name="ColorMaterial" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="mode" type="GLenum"/>
<glx rop="78"/>
</function>
- <function name="CullFace" offset="152" es1="1.0" es2="2.0">
+ <function name="CullFace" es1="1.0" es2="2.0">
<param name="mode" type="GLenum"/>
<glx rop="79"/>
</function>
- <function name="Fogf" offset="153" es1="1.0" deprecated="3.1">
+ <function name="Fogf" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="80"/>
</function>
- <function name="Fogfv" offset="154" es1="1.0" deprecated="3.1">
+ <function name="Fogfv" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="81"/>
</function>
- <function name="Fogi" offset="155" deprecated="3.1">
+ <function name="Fogi" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="82"/>
</function>
- <function name="Fogiv" offset="156" deprecated="3.1">
+ <function name="Fogiv" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="83"/>
</function>
- <function name="FrontFace" offset="157" es1="1.0" es2="2.0">
+ <function name="FrontFace" es1="1.0" es2="2.0">
<param name="mode" type="GLenum"/>
<glx rop="84"/>
</function>
- <function name="Hint" offset="158" es1="1.0" es2="2.0">
+ <function name="Hint" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="mode" type="GLenum"/>
<glx rop="85"/>
</function>
- <function name="Lightf" offset="159" es1="1.0" deprecated="3.1">
+ <function name="Lightf" es1="1.0" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="86"/>
</function>
- <function name="Lightfv" offset="160" es1="1.0" deprecated="3.1">
+ <function name="Lightfv" es1="1.0" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="87"/>
</function>
- <function name="Lighti" offset="161" deprecated="3.1">
+ <function name="Lighti" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="88"/>
</function>
- <function name="Lightiv" offset="162" deprecated="3.1">
+ <function name="Lightiv" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="89"/>
</function>
- <function name="LightModelf" offset="163" es1="1.0" deprecated="3.1">
+ <function name="LightModelf" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="90"/>
</function>
- <function name="LightModelfv" offset="164" es1="1.0" deprecated="3.1">
+ <function name="LightModelfv" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="91"/>
</function>
- <function name="LightModeli" offset="165" deprecated="3.1">
+ <function name="LightModeli" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="92"/>
</function>
- <function name="LightModeliv" offset="166" deprecated="3.1">
+ <function name="LightModeliv" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="93"/>
</function>
- <function name="LineStipple" offset="167" deprecated="3.1">
+ <function name="LineStipple" deprecated="3.1">
<param name="factor" type="GLint"/>
<param name="pattern" type="GLushort"/>
<glx rop="94"/>
</function>
- <function name="LineWidth" offset="168" es1="1.0" es2="2.0">
+ <function name="LineWidth" es1="1.0" es2="2.0">
<param name="width" type="GLfloat"/>
<glx rop="95"/>
</function>
- <function name="Materialf" offset="169" es1="1.0" deprecated="3.1">
+ <function name="Materialf" es1="1.0" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="96"/>
</function>
- <function name="Materialfv" offset="170" es1="1.0" deprecated="3.1"
- exec="dynamic">
+ <function name="Materialfv" es1="1.0" deprecated="3.1" exec="dynamic">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="97"/>
</function>
- <function name="Materiali" offset="171" deprecated="3.1">
+ <function name="Materiali" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="98"/>
</function>
- <function name="Materialiv" offset="172" deprecated="3.1">
+ <function name="Materialiv" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="99"/>
</function>
- <function name="PointSize" offset="173" es1="1.0">
+ <function name="PointSize" es1="1.0">
<param name="size" type="GLfloat"/>
<glx rop="100"/>
</function>
- <function name="PolygonMode" offset="174">
+ <function name="PolygonMode">
<param name="face" type="GLenum"/>
<param name="mode" type="GLenum"/>
<glx rop="101"/>
</function>
- <function name="PolygonStipple" offset="175" deprecated="3.1">
+ <function name="PolygonStipple" deprecated="3.1">
<param name="mask" type="const GLubyte *" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP" img_target="0" img_pad_dimensions="false"/>
<glx rop="102"/>
</function>
- <function name="Scissor" offset="176" es1="1.0" es2="2.0">
+ <function name="Scissor" es1="1.0" es2="2.0">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -2175,40 +2116,40 @@
<glx rop="103"/>
</function>
- <function name="ShadeModel" offset="177" es1="1.0" deprecated="3.1">
+ <function name="ShadeModel" es1="1.0" deprecated="3.1">
<param name="mode" type="GLenum"/>
<glx rop="104"/>
</function>
- <function name="TexParameterf" offset="178" es1="1.0" es2="2.0">
+ <function name="TexParameterf" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="105"/>
</function>
- <function name="TexParameterfv" offset="179" es1="1.1" es2="2.0">
+ <function name="TexParameterfv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="106"/>
</function>
- <function name="TexParameteri" offset="180" es1="1.1" es2="2.0">
+ <function name="TexParameteri" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="107"/>
</function>
- <function name="TexParameteriv" offset="181" es1="1.1" es2="2.0">
+ <function name="TexParameteriv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="108"/>
</function>
- <function name="TexImage1D" offset="182">
+ <function name="TexImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLint"/>
@@ -2220,7 +2161,7 @@
<glx rop="109" large="true"/>
</function>
- <function name="TexImage2D" offset="183" es1="1.0" es2="2.0">
+ <function name="TexImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLint"/>
@@ -2233,129 +2174,129 @@
<glx rop="110" large="true"/>
</function>
- <function name="TexEnvf" offset="184" es1="1.0" deprecated="3.1">
+ <function name="TexEnvf" es1="1.0" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="111"/>
</function>
- <function name="TexEnvfv" offset="185" es1="1.0" deprecated="3.1">
+ <function name="TexEnvfv" es1="1.0" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="112"/>
</function>
- <function name="TexEnvi" offset="186" es1="1.1" deprecated="3.1">
+ <function name="TexEnvi" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="113"/>
</function>
- <function name="TexEnviv" offset="187" es1="1.1" deprecated="3.1">
+ <function name="TexEnviv" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="114"/>
</function>
- <function name="TexGend" offset="188" deprecated="3.1">
+ <function name="TexGend" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLdouble"/>
<glx rop="115"/>
</function>
- <function name="TexGendv" offset="189" deprecated="3.1">
+ <function name="TexGendv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLdouble *" variable_param="pname"/>
<glx rop="116"/>
</function>
- <function name="TexGenf" offset="190" deprecated="3.1">
+ <function name="TexGenf" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="117"/>
</function>
- <function name="TexGenfv" offset="191" deprecated="3.1">
+ <function name="TexGenfv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="118"/>
</function>
- <function name="TexGeni" offset="192" deprecated="3.1">
+ <function name="TexGeni" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="119"/>
</function>
- <function name="TexGeniv" offset="193" deprecated="3.1">
+ <function name="TexGeniv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="120"/>
</function>
- <function name="FeedbackBuffer" offset="194" deprecated="3.1">
+ <function name="FeedbackBuffer" deprecated="3.1">
<param name="size" type="GLsizei"/>
<param name="type" type="GLenum"/>
<param name="buffer" type="GLfloat *" output="true"/>
<glx sop="105" handcode="true"/>
</function>
- <function name="SelectBuffer" offset="195" deprecated="3.1">
+ <function name="SelectBuffer" deprecated="3.1">
<param name="size" type="GLsizei"/>
<param name="buffer" type="GLuint *" output="true"/>
<glx sop="106" handcode="true"/>
</function>
- <function name="RenderMode" offset="196" deprecated="3.1">
+ <function name="RenderMode" deprecated="3.1">
<param name="mode" type="GLenum"/>
<return type="GLint"/>
<glx sop="107" handcode="true"/>
</function>
- <function name="InitNames" offset="197" deprecated="3.1">
+ <function name="InitNames" deprecated="3.1">
<glx rop="121"/>
</function>
- <function name="LoadName" offset="198" deprecated="3.1">
+ <function name="LoadName" deprecated="3.1">
<param name="name" type="GLuint"/>
<glx rop="122"/>
</function>
- <function name="PassThrough" offset="199" deprecated="3.1">
+ <function name="PassThrough" deprecated="3.1">
<param name="token" type="GLfloat"/>
<glx rop="123"/>
</function>
- <function name="PopName" offset="200" deprecated="3.1">
+ <function name="PopName" deprecated="3.1">
<glx rop="124"/>
</function>
- <function name="PushName" offset="201" deprecated="3.1">
+ <function name="PushName" deprecated="3.1">
<param name="name" type="GLuint"/>
<glx rop="125"/>
</function>
- <function name="DrawBuffer" offset="202">
+ <function name="DrawBuffer">
<param name="mode" type="GLenum"/>
<glx rop="126"/>
</function>
- <function name="Clear" offset="203" es1="1.0" es2="2.0">
+ <function name="Clear" es1="1.0" es2="2.0">
<param name="mask" type="GLbitfield"/>
<glx rop="127"/>
</function>
- <function name="ClearAccum" offset="204" deprecated="3.1">
+ <function name="ClearAccum" deprecated="3.1">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
<param name="blue" type="GLfloat"/>
@@ -2363,12 +2304,12 @@
<glx rop="128"/>
</function>
- <function name="ClearIndex" offset="205" deprecated="3.1">
+ <function name="ClearIndex" deprecated="3.1">
<param name="c" type="GLfloat"/>
<glx rop="129"/>
</function>
- <function name="ClearColor" offset="206" es1="1.0" es2="2.0">
+ <function name="ClearColor" es1="1.0" es2="2.0">
<param name="red" type="GLclampf"/>
<param name="green" type="GLclampf"/>
<param name="blue" type="GLclampf"/>
@@ -2376,22 +2317,22 @@
<glx rop="130"/>
</function>
- <function name="ClearStencil" offset="207" es1="1.0" es2="2.0">
+ <function name="ClearStencil" es1="1.0" es2="2.0">
<param name="s" type="GLint"/>
<glx rop="131"/>
</function>
- <function name="ClearDepth" offset="208">
+ <function name="ClearDepth">
<param name="depth" type="GLclampd"/>
<glx rop="132"/>
</function>
- <function name="StencilMask" offset="209" es1="1.0" es2="2.0">
+ <function name="StencilMask" es1="1.0" es2="2.0">
<param name="mask" type="GLuint"/>
<glx rop="133"/>
</function>
- <function name="ColorMask" offset="210" es1="1.0" es2="2.0">
+ <function name="ColorMask" es1="1.0" es2="2.0">
<param name="red" type="GLboolean"/>
<param name="green" type="GLboolean"/>
<param name="blue" type="GLboolean"/>
@@ -2399,50 +2340,50 @@
<glx rop="134"/>
</function>
- <function name="DepthMask" offset="211" es1="1.0" es2="2.0">
+ <function name="DepthMask" es1="1.0" es2="2.0">
<param name="flag" type="GLboolean"/>
<glx rop="135"/>
</function>
- <function name="IndexMask" offset="212" deprecated="3.1">
+ <function name="IndexMask" deprecated="3.1">
<param name="mask" type="GLuint"/>
<glx rop="136"/>
</function>
- <function name="Accum" offset="213" deprecated="3.1">
+ <function name="Accum" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="value" type="GLfloat"/>
<glx rop="137"/>
</function>
- <function name="Disable" offset="214" es1="1.0" es2="2.0">
+ <function name="Disable" es1="1.0" es2="2.0">
<param name="cap" type="GLenum"/>
<glx rop="138" handcode="client"/>
</function>
- <function name="Enable" offset="215" es1="1.0" es2="2.0">
+ <function name="Enable" es1="1.0" es2="2.0">
<param name="cap" type="GLenum"/>
<glx rop="139" handcode="client"/>
</function>
- <function name="Finish" offset="216" es1="1.0" es2="2.0">
+ <function name="Finish" es1="1.0" es2="2.0">
<glx sop="108" handcode="true"/>
</function>
- <function name="Flush" offset="217" es1="1.0" es2="2.0">
+ <function name="Flush" es1="1.0" es2="2.0">
<glx sop="142" handcode="true"/>
</function>
- <function name="PopAttrib" offset="218" deprecated="3.1">
+ <function name="PopAttrib" deprecated="3.1">
<glx rop="141"/>
</function>
- <function name="PushAttrib" offset="219" deprecated="3.1">
+ <function name="PushAttrib" deprecated="3.1">
<param name="mask" type="GLbitfield"/>
<glx rop="142"/>
</function>
- <function name="Map1d" offset="220" deprecated="3.1">
+ <function name="Map1d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
@@ -2452,7 +2393,7 @@
<glx rop="143" handcode="true"/>
</function>
- <function name="Map1f" offset="221" deprecated="3.1">
+ <function name="Map1f" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
@@ -2462,7 +2403,7 @@
<glx rop="144" handcode="true"/>
</function>
- <function name="Map2d" offset="222" deprecated="3.1">
+ <function name="Map2d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
@@ -2476,7 +2417,7 @@
<glx rop="145" handcode="true"/>
</function>
- <function name="Map2f" offset="223" deprecated="3.1">
+ <function name="Map2f" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
@@ -2490,21 +2431,21 @@
<glx rop="146" handcode="true"/>
</function>
- <function name="MapGrid1d" offset="224" deprecated="3.1">
+ <function name="MapGrid1d" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
<glx rop="147"/>
</function>
- <function name="MapGrid1f" offset="225" deprecated="3.1">
+ <function name="MapGrid1f" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
<glx rop="148"/>
</function>
- <function name="MapGrid2d" offset="226" deprecated="3.1">
+ <function name="MapGrid2d" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
@@ -2514,7 +2455,7 @@
<glx rop="149"/>
</function>
- <function name="MapGrid2f" offset="227" deprecated="3.1">
+ <function name="MapGrid2f" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
@@ -2524,64 +2465,59 @@
<glx rop="150"/>
</function>
- <function name="EvalCoord1d" offset="228" vectorequiv="EvalCoord1dv"
- deprecated="3.1">
+ <function name="EvalCoord1d" vectorequiv="EvalCoord1dv" deprecated="3.1">
<param name="u" type="GLdouble"/>
</function>
- <function name="EvalCoord1dv" offset="229" deprecated="3.1">
+ <function name="EvalCoord1dv" deprecated="3.1">
<param name="u" type="const GLdouble *" count="1"/>
<glx rop="151"/>
</function>
- <function name="EvalCoord1f" offset="230" vectorequiv="EvalCoord1fv"
+ <function name="EvalCoord1f" vectorequiv="EvalCoord1fv"
deprecated="3.1" exec="dynamic">
<param name="u" type="GLfloat"/>
</function>
- <function name="EvalCoord1fv" offset="231" deprecated="3.1">
+ <function name="EvalCoord1fv" deprecated="3.1">
<param name="u" type="const GLfloat *" count="1"/>
<glx rop="152"/>
</function>
- <function name="EvalCoord2d" offset="232" vectorequiv="EvalCoord2dv"
- deprecated="3.1">
+ <function name="EvalCoord2d" vectorequiv="EvalCoord2dv" deprecated="3.1">
<param name="u" type="GLdouble"/>
<param name="v" type="GLdouble"/>
</function>
- <function name="EvalCoord2dv" offset="233" deprecated="3.1">
+ <function name="EvalCoord2dv" deprecated="3.1">
<param name="u" type="const GLdouble *" count="2"/>
<glx rop="153"/>
</function>
- <function name="EvalCoord2f" offset="234" vectorequiv="EvalCoord2fv"
+ <function name="EvalCoord2f" vectorequiv="EvalCoord2fv"
deprecated="3.1" exec="dynamic">
<param name="u" type="GLfloat"/>
<param name="v" type="GLfloat"/>
</function>
- <function name="EvalCoord2fv" offset="235" deprecated="3.1">
+ <function name="EvalCoord2fv" deprecated="3.1">
<param name="u" type="const GLfloat *" count="2"/>
<glx rop="154"/>
</function>
- <function name="EvalMesh1" offset="236" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalMesh1" deprecated="3.1" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="i1" type="GLint"/>
<param name="i2" type="GLint"/>
<glx rop="155"/>
</function>
- <function name="EvalPoint1" offset="237" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalPoint1" deprecated="3.1" exec="dynamic">
<param name="i" type="GLint"/>
<glx rop="156"/>
</function>
- <function name="EvalMesh2" offset="238" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalMesh2" deprecated="3.1" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="i1" type="GLint"/>
<param name="i2" type="GLint"/>
@@ -2590,106 +2526,105 @@
<glx rop="157"/>
</function>
- <function name="EvalPoint2" offset="239" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalPoint2" deprecated="3.1" exec="dynamic">
<param name="i" type="GLint"/>
<param name="j" type="GLint"/>
<glx rop="158"/>
</function>
- <function name="AlphaFunc" offset="240" es1="1.0" deprecated="3.1">
+ <function name="AlphaFunc" es1="1.0" deprecated="3.1">
<param name="func" type="GLenum"/>
<param name="ref" type="GLclampf"/>
<glx rop="159"/>
</function>
- <function name="BlendFunc" offset="241" es1="1.0" es2="2.0">
+ <function name="BlendFunc" es1="1.0" es2="2.0">
<param name="sfactor" type="GLenum"/>
<param name="dfactor" type="GLenum"/>
<glx rop="160"/>
</function>
- <function name="LogicOp" offset="242" es1="1.0">
+ <function name="LogicOp" es1="1.0">
<param name="opcode" type="GLenum"/>
<glx rop="161"/>
</function>
- <function name="StencilFunc" offset="243" es1="1.0" es2="2.0">
+ <function name="StencilFunc" es1="1.0" es2="2.0">
<param name="func" type="GLenum"/>
<param name="ref" type="GLint"/>
<param name="mask" type="GLuint"/>
<glx rop="162"/>
</function>
- <function name="StencilOp" offset="244" es1="1.0" es2="2.0">
+ <function name="StencilOp" es1="1.0" es2="2.0">
<param name="fail" type="GLenum"/>
<param name="zfail" type="GLenum"/>
<param name="zpass" type="GLenum"/>
<glx rop="163"/>
</function>
- <function name="DepthFunc" offset="245" es1="1.0" es2="2.0">
+ <function name="DepthFunc" es1="1.0" es2="2.0">
<param name="func" type="GLenum"/>
<glx rop="164"/>
</function>
- <function name="PixelZoom" offset="246" deprecated="3.1">
+ <function name="PixelZoom" deprecated="3.1">
<param name="xfactor" type="GLfloat"/>
<param name="yfactor" type="GLfloat"/>
<glx rop="165"/>
</function>
- <function name="PixelTransferf" offset="247" deprecated="3.1">
+ <function name="PixelTransferf" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="166"/>
</function>
- <function name="PixelTransferi" offset="248" deprecated="3.1">
+ <function name="PixelTransferi" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="167"/>
</function>
- <function name="PixelStoref" offset="249">
+ <function name="PixelStoref">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx sop="109" handcode="client"/>
</function>
- <function name="PixelStorei" offset="250" es1="1.0" es2="2.0">
+ <function name="PixelStorei" es1="1.0" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx sop="110" handcode="client"/>
</function>
- <function name="PixelMapfv" offset="251" deprecated="3.1">
+ <function name="PixelMapfv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="mapsize" type="GLsizei" counter="true"/>
<param name="values" type="const GLfloat *" count="mapsize"/>
<glx rop="168" large="true"/>
</function>
- <function name="PixelMapuiv" offset="252" deprecated="3.1">
+ <function name="PixelMapuiv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="mapsize" type="GLsizei" counter="true"/>
<param name="values" type="const GLuint *" count="mapsize"/>
<glx rop="169" large="true"/>
</function>
- <function name="PixelMapusv" offset="253" deprecated="3.1">
+ <function name="PixelMapusv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="mapsize" type="GLsizei" counter="true"/>
<param name="values" type="const GLushort *" count="mapsize"/>
<glx rop="170" large="true"/>
</function>
- <function name="ReadBuffer" offset="254" es2="3.0">
+ <function name="ReadBuffer" es2="3.0">
<param name="mode" type="GLenum"/>
<glx rop="171"/>
</function>
- <function name="CopyPixels" offset="255" deprecated="3.1">
+ <function name="CopyPixels" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -2698,7 +2633,7 @@
<glx rop="172"/>
</function>
- <function name="ReadPixels" offset="256" es1="1.0" es2="2.0">
+ <function name="ReadPixels" es1="1.0" es2="2.0">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -2709,7 +2644,7 @@
<glx sop="111"/>
</function>
- <function name="DrawPixels" offset="257" deprecated="3.1">
+ <function name="DrawPixels" deprecated="3.1">
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
<param name="format" type="GLenum"/>
@@ -2718,155 +2653,155 @@
<glx rop="173" large="true"/>
</function>
- <function name="GetBooleanv" offset="258" es1="1.1" es2="2.0">
+ <function name="GetBooleanv" es1="1.1" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLboolean *" output="true" variable_param="pname"/>
<glx sop="112" handcode="client"/>
</function>
- <function name="GetClipPlane" offset="259" deprecated="3.1">
+ <function name="GetClipPlane" deprecated="3.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLdouble *" output="true" count="4"/>
<glx sop="113" always_array="true"/>
</function>
- <function name="GetDoublev" offset="260">
+ <function name="GetDoublev">
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
<glx sop="114" handcode="client"/>
</function>
- <function name="GetError" offset="261" es1="1.0" es2="2.0">
+ <function name="GetError" es1="1.0" es2="2.0">
<return type="GLenum"/>
<glx sop="115" handcode="client"/>
</function>
- <function name="GetFloatv" offset="262" es1="1.1" es2="2.0">
+ <function name="GetFloatv" es1="1.1" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="116" handcode="client"/>
</function>
- <function name="GetIntegerv" offset="263" es1="1.0" es2="2.0">
+ <function name="GetIntegerv" es1="1.0" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="117" handcode="client"/>
</function>
- <function name="GetLightfv" offset="264" es1="1.1" deprecated="3.1">
+ <function name="GetLightfv" es1="1.1" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="118"/>
</function>
- <function name="GetLightiv" offset="265" deprecated="3.1">
+ <function name="GetLightiv" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="119"/>
</function>
- <function name="GetMapdv" offset="266" deprecated="3.1">
+ <function name="GetMapdv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="v" type="GLdouble *" output="true" variable_param="target query"/>
<glx sop="120"/>
</function>
- <function name="GetMapfv" offset="267" deprecated="3.1">
+ <function name="GetMapfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="v" type="GLfloat *" output="true" variable_param="target query"/>
<glx sop="121"/>
</function>
- <function name="GetMapiv" offset="268" deprecated="3.1">
+ <function name="GetMapiv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="v" type="GLint *" output="true" variable_param="target query"/>
<glx sop="122"/>
</function>
- <function name="GetMaterialfv" offset="269" es1="1.1" deprecated="3.1">
+ <function name="GetMaterialfv" es1="1.1" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="123"/>
</function>
- <function name="GetMaterialiv" offset="270" deprecated="3.1">
+ <function name="GetMaterialiv" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="124"/>
</function>
- <function name="GetPixelMapfv" offset="271" deprecated="3.1">
+ <function name="GetPixelMapfv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="values" type="GLfloat *" output="true" variable_param="map"/>
<glx sop="125"/>
</function>
- <function name="GetPixelMapuiv" offset="272" deprecated="3.1">
+ <function name="GetPixelMapuiv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="values" type="GLuint *" output="true" variable_param="map"/>
<glx sop="126"/>
</function>
- <function name="GetPixelMapusv" offset="273" deprecated="3.1">
+ <function name="GetPixelMapusv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="values" type="GLushort *" output="true" variable_param="map"/>
<glx sop="127"/>
</function>
- <function name="GetPolygonStipple" offset="274" deprecated="3.1">
+ <function name="GetPolygonStipple" deprecated="3.1">
<param name="mask" type="GLubyte *" output="true" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP"/>
<glx sop="128"/>
</function>
- <function name="GetString" offset="275" es1="1.0" es2="2.0">
+ <function name="GetString" es1="1.0" es2="2.0">
<param name="name" type="GLenum"/>
<return type="const GLubyte *"/>
<glx sop="129" handcode="true"/>
</function>
- <function name="GetTexEnvfv" offset="276" es1="1.1" deprecated="3.1">
+ <function name="GetTexEnvfv" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="130"/>
</function>
- <function name="GetTexEnviv" offset="277" es1="1.1" deprecated="3.1">
+ <function name="GetTexEnviv" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="131"/>
</function>
- <function name="GetTexGendv" offset="278" deprecated="3.1">
+ <function name="GetTexGendv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
<glx sop="132"/>
</function>
- <function name="GetTexGenfv" offset="279" deprecated="3.1">
+ <function name="GetTexGenfv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="133"/>
</function>
- <function name="GetTexGeniv" offset="280" deprecated="3.1">
+ <function name="GetTexGeniv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="134"/>
</function>
- <function name="GetTexImage" offset="281">
+ <function name="GetTexImage">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="format" type="GLenum"/>
@@ -2875,21 +2810,21 @@
<glx sop="135" dimensions_in_reply="true"/>
</function>
- <function name="GetTexParameterfv" offset="282" es1="1.1" es2="2.0">
+ <function name="GetTexParameterfv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="136"/>
</function>
- <function name="GetTexParameteriv" offset="283" es1="1.1" es2="2.0">
+ <function name="GetTexParameteriv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="137"/>
</function>
- <function name="GetTexLevelParameterfv" offset="284">
+ <function name="GetTexLevelParameterfv" es2="3.1">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="pname" type="GLenum"/>
@@ -2897,7 +2832,7 @@
<glx sop="138"/>
</function>
- <function name="GetTexLevelParameteriv" offset="285">
+ <function name="GetTexLevelParameteriv" es2="3.1">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="pname" type="GLenum"/>
@@ -2905,25 +2840,25 @@
<glx sop="139"/>
</function>
- <function name="IsEnabled" offset="286" es1="1.1" es2="2.0">
+ <function name="IsEnabled" es1="1.1" es2="2.0">
<param name="cap" type="GLenum"/>
<return type="GLboolean"/>
<glx sop="140" handcode="client"/>
</function>
- <function name="IsList" offset="287" deprecated="3.1">
+ <function name="IsList" deprecated="3.1">
<param name="list" type="GLuint"/>
<return type="GLboolean"/>
<glx sop="141"/>
</function>
- <function name="DepthRange" offset="288">
+ <function name="DepthRange">
<param name="zNear" type="GLclampd"/>
<param name="zFar" type="GLclampd"/>
<glx rop="174"/>
</function>
- <function name="Frustum" offset="289" deprecated="3.1">
+ <function name="Frustum" deprecated="3.1">
<param name="left" type="GLdouble"/>
<param name="right" type="GLdouble"/>
<param name="bottom" type="GLdouble"/>
@@ -2933,36 +2868,36 @@
<glx rop="175"/>
</function>
- <function name="LoadIdentity" offset="290" es1="1.0" deprecated="3.1">
+ <function name="LoadIdentity" es1="1.0" deprecated="3.1">
<glx rop="176"/>
</function>
- <function name="LoadMatrixf" offset="291" es1="1.0" deprecated="3.1">
+ <function name="LoadMatrixf" es1="1.0" deprecated="3.1">
<param name="m" type="const GLfloat *" count="16"/>
<glx rop="177"/>
</function>
- <function name="LoadMatrixd" offset="292" deprecated="3.1">
+ <function name="LoadMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *" count="16"/>
<glx rop="178"/>
</function>
- <function name="MatrixMode" offset="293" es1="1.0" deprecated="3.1">
+ <function name="MatrixMode" es1="1.0" deprecated="3.1">
<param name="mode" type="GLenum"/>
<glx rop="179"/>
</function>
- <function name="MultMatrixf" offset="294" es1="1.0" deprecated="3.1">
+ <function name="MultMatrixf" es1="1.0" deprecated="3.1">
<param name="m" type="const GLfloat *" count="16"/>
<glx rop="180"/>
</function>
- <function name="MultMatrixd" offset="295" deprecated="3.1">
+ <function name="MultMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *" count="16"/>
<glx rop="181"/>
</function>
- <function name="Ortho" offset="296" deprecated="3.1">
+ <function name="Ortho" deprecated="3.1">
<param name="left" type="GLdouble"/>
<param name="right" type="GLdouble"/>
<param name="bottom" type="GLdouble"/>
@@ -2972,15 +2907,15 @@
<glx rop="182"/>
</function>
- <function name="PopMatrix" offset="297" es1="1.0" deprecated="3.1">
+ <function name="PopMatrix" es1="1.0" deprecated="3.1">
<glx rop="183"/>
</function>
- <function name="PushMatrix" offset="298" es1="1.0" deprecated="3.1">
+ <function name="PushMatrix" es1="1.0" deprecated="3.1">
<glx rop="184"/>
</function>
- <function name="Rotated" offset="299" deprecated="3.1">
+ <function name="Rotated" deprecated="3.1">
<param name="angle" type="GLdouble"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
@@ -2988,7 +2923,7 @@
<glx rop="185"/>
</function>
- <function name="Rotatef" offset="300" es1="1.0" deprecated="3.1">
+ <function name="Rotatef" es1="1.0" deprecated="3.1">
<param name="angle" type="GLfloat"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
@@ -2996,35 +2931,35 @@
<glx rop="186"/>
</function>
- <function name="Scaled" offset="301" deprecated="3.1">
+ <function name="Scaled" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<glx rop="187"/>
</function>
- <function name="Scalef" offset="302" es1="1.0" deprecated="3.1">
+ <function name="Scalef" es1="1.0" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
<glx rop="188"/>
</function>
- <function name="Translated" offset="303" deprecated="3.1">
+ <function name="Translated" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<glx rop="189"/>
</function>
- <function name="Translatef" offset="304" es1="1.0" deprecated="3.1">
+ <function name="Translatef" es1="1.0" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
<glx rop="190"/>
</function>
- <function name="Viewport" offset="305" es1="1.0" es2="2.0">
+ <function name="Viewport" es1="1.0" es2="2.0">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -3207,13 +3142,12 @@
<enum name="ALL_CLIENT_ATTRIB_BITS" value="0xFFFFFFFF"/>
<enum name="CLIENT_ALL_ATTRIB_BITS" value="0xFFFFFFFF"/>
- <function name="ArrayElement" offset="306" deprecated="3.1"
- exec="dynamic">
+ <function name="ArrayElement" deprecated="3.1" exec="dynamic">
<param name="i" type="GLint"/>
<glx handcode="true"/>
</function>
- <function name="ColorPointer" offset="308" es1="1.0" deprecated="3.1">
+ <function name="ColorPointer" es1="1.0" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -3221,22 +3155,19 @@
<glx handcode="true"/>
</function>
- <function name="DisableClientState" offset="309" es1="1.0"
- deprecated="3.1">
+ <function name="DisableClientState" es1="1.0" deprecated="3.1">
<param name="array" type="GLenum"/>
<glx handcode="true"/>
</function>
- <function name="DrawArrays" offset="310" es1="1.0" es2="2.0"
- exec="dynamic">
+ <function name="DrawArrays" es1="1.0" es2="2.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
<glx rop="193" handcode="true"/>
</function>
- <function name="DrawElements" offset="311" es1="1.0" es2="2.0"
- exec="dynamic">
+ <function name="DrawElements" es1="1.0" es2="2.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
@@ -3244,45 +3175,45 @@
<glx handcode="true"/>
</function>
- <function name="EdgeFlagPointer" offset="312" deprecated="3.1">
+ <function name="EdgeFlagPointer" deprecated="3.1">
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="EnableClientState" offset="313" es1="1.0" deprecated="3.1">
+ <function name="EnableClientState" es1="1.0" deprecated="3.1">
<param name="array" type="GLenum"/>
<glx handcode="true"/>
</function>
- <function name="GetPointerv" offset="329" es1="1.1">
+ <function name="GetPointerv" es1="1.1">
<param name="pname" type="GLenum"/>
<param name="params" type="GLvoid **" output="true"/>
<glx handcode="true"/>
</function>
- <function name="IndexPointer" offset="314" deprecated="3.1">
+ <function name="IndexPointer" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="InterleavedArrays" offset="317" deprecated="3.1">
+ <function name="InterleavedArrays" deprecated="3.1">
<param name="format" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="NormalPointer" offset="318" es1="1.0" deprecated="3.1">
+ <function name="NormalPointer" es1="1.0" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="TexCoordPointer" offset="320" es1="1.0" deprecated="3.1">
+ <function name="TexCoordPointer" es1="1.0" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -3290,7 +3221,7 @@
<glx handcode="true"/>
</function>
- <function name="VertexPointer" offset="321" es1="1.0" deprecated="3.1">
+ <function name="VertexPointer" es1="1.0" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -3298,13 +3229,13 @@
<glx handcode="true"/>
</function>
- <function name="PolygonOffset" offset="319" es1="1.0" es2="2.0">
+ <function name="PolygonOffset" es1="1.0" es2="2.0">
<param name="factor" type="GLfloat"/>
<param name="units" type="GLfloat"/>
<glx rop="192"/>
</function>
- <function name="CopyTexImage1D" offset="323">
+ <function name="CopyTexImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -3315,7 +3246,7 @@
<glx rop="4119"/>
</function>
- <function name="CopyTexImage2D" offset="324" es1="1.0" es2="2.0">
+ <function name="CopyTexImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -3327,7 +3258,7 @@
<glx rop="4120"/>
</function>
- <function name="CopyTexSubImage1D" offset="325">
+ <function name="CopyTexSubImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3337,7 +3268,7 @@
<glx rop="4121"/>
</function>
- <function name="CopyTexSubImage2D" offset="326" es1="1.0" es2="2.0">
+ <function name="CopyTexSubImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3349,7 +3280,7 @@
<glx rop="4122"/>
</function>
- <function name="TexSubImage1D" offset="332">
+ <function name="TexSubImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3361,7 +3292,7 @@
<glx rop="4099" large="true"/>
</function>
- <function name="TexSubImage2D" offset="333" es1="1.0" es2="2.0">
+ <function name="TexSubImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3375,7 +3306,7 @@
<glx rop="4100" large="true"/>
</function>
- <function name="AreTexturesResident" offset="322" deprecated="3.1">
+ <function name="AreTexturesResident" deprecated="3.1">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="const GLuint *" count="n"/>
<param name="residences" type="GLboolean *" output="true" count="n"/>
@@ -3383,52 +3314,51 @@
<glx sop="143" handcode="client" always_array="true"/>
</function>
- <function name="BindTexture" offset="307" es1="1.0" es2="2.0">
+ <function name="BindTexture" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="texture" type="GLuint"/>
<glx rop="4117"/>
</function>
- <function name="DeleteTextures" offset="327" es1="1.0" es2="2.0">
+ <function name="DeleteTextures" es1="1.0" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="const GLuint *" count="n"/>
<glx sop="144"/>
</function>
- <function name="GenTextures" offset="328" es1="1.0" es2="2.0">
+ <function name="GenTextures" es1="1.0" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="GLuint *" output="true" count="n"/>
<glx sop="145" always_array="true"/>
</function>
- <function name="IsTexture" offset="330" es1="1.1" es2="2.0">
+ <function name="IsTexture" es1="1.1" es2="2.0">
<param name="texture" type="GLuint"/>
<return type="GLboolean"/>
<glx sop="146"/>
</function>
- <function name="PrioritizeTextures" offset="331" deprecated="3.1">
+ <function name="PrioritizeTextures" deprecated="3.1">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="const GLuint *" count="n"/>
<param name="priorities" type="const GLclampf *" count="n"/>
<glx rop="4118"/>
</function>
- <function name="Indexub" offset="315" vectorequiv="Indexubv"
- deprecated="3.1">
+ <function name="Indexub" vectorequiv="Indexubv" deprecated="3.1">
<param name="c" type="GLubyte"/>
</function>
- <function name="Indexubv" offset="316" deprecated="3.1">
+ <function name="Indexubv" deprecated="3.1">
<param name="c" type="const GLubyte *" count="1"/>
<glx rop="194"/>
</function>
- <function name="PopClientAttrib" offset="334" deprecated="3.1">
+ <function name="PopClientAttrib" deprecated="3.1">
<glx handcode="true"/>
</function>
- <function name="PushClientAttrib" offset="335" deprecated="3.1">
+ <function name="PushClientAttrib" deprecated="3.1">
<param name="mask" type="GLbitfield"/>
<glx handcode="true"/>
</function>
@@ -3781,7 +3711,7 @@
</enum>
- <function name="BlendColor" offset="336" es2="2.0">
+ <function name="BlendColor" es2="2.0">
<param name="red" type="GLclampf"/>
<param name="green" type="GLclampf"/>
<param name="blue" type="GLclampf"/>
@@ -3789,13 +3719,12 @@
<glx rop="4096"/>
</function>
- <function name="BlendEquation" offset="337" es2="2.0">
+ <function name="BlendEquation" es2="2.0">
<param name="mode" type="GLenum"/>
<glx rop="4097"/>
</function>
- <function name="DrawRangeElements" offset="338" es2="3.0"
- exec="dynamic">
+ <function name="DrawRangeElements" es2="3.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="start" type="GLuint"/>
<param name="end" type="GLuint"/>
@@ -3805,7 +3734,7 @@
<glx handcode="true"/>
</function>
- <function name="ColorTable" offset="339" deprecated="3.1">
+ <function name="ColorTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3815,21 +3744,21 @@
<glx rop="2053" large="true"/>
</function>
- <function name="ColorTableParameterfv" offset="340" deprecated="3.1">
+ <function name="ColorTableParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="2054"/>
</function>
- <function name="ColorTableParameteriv" offset="341" deprecated="3.1">
+ <function name="ColorTableParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="2055"/>
</function>
- <function name="CopyColorTable" offset="342" deprecated="3.1">
+ <function name="CopyColorTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -3838,7 +3767,7 @@
<glx rop="2056"/>
</function>
- <function name="GetColorTable" offset="343" deprecated="3.1">
+ <function name="GetColorTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -3846,21 +3775,21 @@
<glx sop="147" dimensions_in_reply="true"/>
</function>
- <function name="GetColorTableParameterfv" offset="344" deprecated="3.1">
+ <function name="GetColorTableParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="148"/>
</function>
- <function name="GetColorTableParameteriv" offset="345" deprecated="3.1">
+ <function name="GetColorTableParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="149"/>
</function>
- <function name="ColorSubTable" offset="346" deprecated="3.1">
+ <function name="ColorSubTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -3870,7 +3799,7 @@
<glx rop="195" large="true"/>
</function>
- <function name="CopyColorSubTable" offset="347" deprecated="3.1">
+ <function name="CopyColorSubTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="x" type="GLint"/>
@@ -3879,7 +3808,7 @@
<glx rop="196"/>
</function>
- <function name="ConvolutionFilter1D" offset="348" deprecated="3.1">
+ <function name="ConvolutionFilter1D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3889,7 +3818,7 @@
<glx rop="4101" large="true"/>
</function>
- <function name="ConvolutionFilter2D" offset="349" deprecated="3.1">
+ <function name="ConvolutionFilter2D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3900,35 +3829,35 @@
<glx rop="4102" large="true"/>
</function>
- <function name="ConvolutionParameterf" offset="350" deprecated="3.1">
+ <function name="ConvolutionParameterf" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat"/>
<glx rop="4103"/>
</function>
- <function name="ConvolutionParameterfv" offset="351" deprecated="3.1">
+ <function name="ConvolutionParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="4104"/>
</function>
- <function name="ConvolutionParameteri" offset="352" deprecated="3.1">
+ <function name="ConvolutionParameteri" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint"/>
<glx rop="4105"/>
</function>
- <function name="ConvolutionParameteriv" offset="353" deprecated="3.1">
+ <function name="ConvolutionParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="4106"/>
</function>
- <function name="CopyConvolutionFilter1D" offset="354" deprecated="3.1">
+ <function name="CopyConvolutionFilter1D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -3937,7 +3866,7 @@
<glx rop="4107"/>
</function>
- <function name="CopyConvolutionFilter2D" offset="355" deprecated="3.1">
+ <function name="CopyConvolutionFilter2D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -3947,7 +3876,7 @@
<glx rop="4108"/>
</function>
- <function name="GetConvolutionFilter" offset="356" deprecated="3.1">
+ <function name="GetConvolutionFilter" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -3955,21 +3884,21 @@
<glx sop="150" dimensions_in_reply="true"/>
</function>
- <function name="GetConvolutionParameterfv" offset="357" deprecated="3.1">
+ <function name="GetConvolutionParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="151"/>
</function>
- <function name="GetConvolutionParameteriv" offset="358" deprecated="3.1">
+ <function name="GetConvolutionParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="152"/>
</function>
- <function name="GetSeparableFilter" offset="359" deprecated="3.1">
+ <function name="GetSeparableFilter" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -3979,7 +3908,7 @@
<glx sop="153" handcode="true"/>
</function>
- <function name="SeparableFilter2D" offset="360" deprecated="3.1">
+ <function name="SeparableFilter2D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3991,7 +3920,7 @@
<glx rop="4109" handcode="true"/>
</function>
- <function name="GetHistogram" offset="361" deprecated="3.1">
+ <function name="GetHistogram" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -4000,21 +3929,21 @@
<glx sop="154" dimensions_in_reply="true" img_reset="reset"/>
</function>
- <function name="GetHistogramParameterfv" offset="362" deprecated="3.1">
+ <function name="GetHistogramParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="155"/>
</function>
- <function name="GetHistogramParameteriv" offset="363" deprecated="3.1">
+ <function name="GetHistogramParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="156"/>
</function>
- <function name="GetMinmax" offset="364" deprecated="3.1">
+ <function name="GetMinmax" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -4023,21 +3952,21 @@
<glx sop="157" img_reset="reset"/>
</function>
- <function name="GetMinmaxParameterfv" offset="365" deprecated="3.1">
+ <function name="GetMinmaxParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="158"/>
</function>
- <function name="GetMinmaxParameteriv" offset="366" deprecated="3.1">
+ <function name="GetMinmaxParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="159"/>
</function>
- <function name="Histogram" offset="367" deprecated="3.1">
+ <function name="Histogram" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="width" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -4045,24 +3974,24 @@
<glx rop="4110"/>
</function>
- <function name="Minmax" offset="368" deprecated="3.1">
+ <function name="Minmax" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="sink" type="GLboolean"/>
<glx rop="4111"/>
</function>
- <function name="ResetHistogram" offset="369" deprecated="3.1">
+ <function name="ResetHistogram" deprecated="3.1">
<param name="target" type="GLenum"/>
<glx rop="4112"/>
</function>
- <function name="ResetMinmax" offset="370" deprecated="3.1">
+ <function name="ResetMinmax" deprecated="3.1">
<param name="target" type="GLenum"/>
<glx rop="4113"/>
</function>
- <function name="TexImage3D" offset="371" es2="3.0">
+ <function name="TexImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLint"/>
@@ -4076,7 +4005,7 @@
<glx rop="4114" large="true"/>
</function>
- <function name="TexSubImage3D" offset="372" es2="3.0">
+ <function name="TexSubImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4092,7 +4021,7 @@
<glx rop="4115" large="true"/>
</function>
- <function name="CopyTexSubImage3D" offset="373" es2="3.0">
+ <function name="CopyTexSubImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4319,33 +4248,28 @@
<enum name="DOT3_RGB" value="0x86AE"/>
<enum name="DOT3_RGBA" value="0x86AF"/>
- <function name="ActiveTexture" es1="1.0"
- es2="2.0" offset="374">
+ <function name="ActiveTexture" es1="1.0" es2="2.0">
<param name="texture" type="GLenum"/>
<glx rop="197"/>
</function>
- <function name="ClientActiveTexture"
- es1="1.0" deprecated="3.1" offset="375">
+ <function name="ClientActiveTexture" es1="1.0" deprecated="3.1">
<param name="texture" type="GLenum"/>
<glx handcode="true"/>
</function>
- <function name="MultiTexCoord1d"
- deprecated="3.1" offset="376">
+ <function name="MultiTexCoord1d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
</function>
- <function name="MultiTexCoord1dv"
- deprecated="3.1" offset="377">
+ <function name="MultiTexCoord1dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="198"/>
</function>
- <function name="MultiTexCoord1f" alias="MultiTexCoord1fARB"
- deprecated="3.1">
+ <function name="MultiTexCoord1f" alias="MultiTexCoord1fARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
</function>
@@ -4356,41 +4280,35 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord1i"
- deprecated="3.1" offset="380">
+ <function name="MultiTexCoord1i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
</function>
- <function name="MultiTexCoord1iv"
- deprecated="3.1" offset="381">
+ <function name="MultiTexCoord1iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="1"/>
<glx rop="200"/>
</function>
- <function name="MultiTexCoord1s"
- deprecated="3.1" offset="382">
+ <function name="MultiTexCoord1s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
</function>
- <function name="MultiTexCoord1sv"
- deprecated="3.1" offset="383">
+ <function name="MultiTexCoord1sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="1"/>
<glx rop="201"/>
</function>
- <function name="MultiTexCoord2d"
- deprecated="3.1" offset="384">
+ <function name="MultiTexCoord2d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
</function>
- <function name="MultiTexCoord2dv"
- deprecated="3.1" offset="385">
+ <function name="MultiTexCoord2dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="202"/>
@@ -4409,44 +4327,38 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord2i"
- deprecated="3.1" offset="388">
+ <function name="MultiTexCoord2i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
</function>
- <function name="MultiTexCoord2iv"
- deprecated="3.1" offset="389">
+ <function name="MultiTexCoord2iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="2"/>
<glx rop="204"/>
</function>
- <function name="MultiTexCoord2s"
- deprecated="3.1" offset="390">
+ <function name="MultiTexCoord2s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
</function>
- <function name="MultiTexCoord2sv"
- deprecated="3.1" offset="391">
+ <function name="MultiTexCoord2sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="2"/>
<glx rop="205"/>
</function>
- <function name="MultiTexCoord3d"
- deprecated="3.1" offset="392">
+ <function name="MultiTexCoord3d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
<param name="r" type="GLdouble"/>
</function>
- <function name="MultiTexCoord3dv"
- deprecated="3.1" offset="393">
+ <function name="MultiTexCoord3dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="206"/>
@@ -4466,38 +4378,33 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord3i"
- deprecated="3.1" offset="396">
+ <function name="MultiTexCoord3i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
<param name="r" type="GLint"/>
</function>
- <function name="MultiTexCoord3iv"
- deprecated="3.1" offset="397">
+ <function name="MultiTexCoord3iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="3"/>
<glx rop="208"/>
</function>
- <function name="MultiTexCoord3s"
- deprecated="3.1" offset="398">
+ <function name="MultiTexCoord3s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
<param name="r" type="GLshort"/>
</function>
- <function name="MultiTexCoord3sv"
- deprecated="3.1" offset="399">
+ <function name="MultiTexCoord3sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="3"/>
<glx rop="209"/>
</function>
- <function name="MultiTexCoord4d"
- deprecated="3.1" offset="400">
+ <function name="MultiTexCoord4d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
@@ -4505,8 +4412,7 @@
<param name="q" type="GLdouble"/>
</function>
- <function name="MultiTexCoord4dv"
- deprecated="3.1" offset="401">
+ <function name="MultiTexCoord4dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="210"/>
@@ -4527,8 +4433,7 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord4i"
- deprecated="3.1" offset="404">
+ <function name="MultiTexCoord4i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
@@ -4536,15 +4441,13 @@
<param name="q" type="GLint"/>
</function>
- <function name="MultiTexCoord4iv"
- deprecated="3.1" offset="405">
+ <function name="MultiTexCoord4iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="4"/>
<glx rop="212"/>
</function>
- <function name="MultiTexCoord4s"
- deprecated="3.1" offset="406">
+ <function name="MultiTexCoord4s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
@@ -4552,45 +4455,39 @@
<param name="q" type="GLshort"/>
</function>
- <function name="MultiTexCoord4sv"
- deprecated="3.1" offset="407">
+ <function name="MultiTexCoord4sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="213"/>
</function>
- <function name="LoadTransposeMatrixf"
- deprecated="3.1" offset="assign">
+ <function name="LoadTransposeMatrixf" deprecated="3.1">
<param name="m" type="const GLfloat *"/>
<glx handcode="true"/>
</function>
- <function name="LoadTransposeMatrixd"
- deprecated="3.1" offset="assign">
+ <function name="LoadTransposeMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="MultTransposeMatrixf"
- deprecated="3.1" offset="assign">
+ <function name="MultTransposeMatrixf" deprecated="3.1">
<param name="m" type="const GLfloat *"/>
<glx handcode="true"/>
</function>
- <function name="MultTransposeMatrixd"
- deprecated="3.1" offset="assign">
+ <function name="MultTransposeMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="SampleCoverage" es1="1.0"
- es2="2.0" offset="assign">
+ <function name="SampleCoverage" es1="1.0" es2="2.0">
<param name="value" type="GLclampf"/>
<param name="invert" type="GLboolean"/>
<glx rop="229"/>
</function>
- <function name="CompressedTexImage3D" es2="3.0" offset="assign">
+ <function name="CompressedTexImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -4603,8 +4500,7 @@
<glx rop="216" handcode="client"/>
</function>
- <function name="CompressedTexImage2D"
- es1="1.0" es2="2.0" offset="assign">
+ <function name="CompressedTexImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -4616,7 +4512,7 @@
<glx rop="215" handcode="client"/>
</function>
- <function name="CompressedTexImage1D" offset="assign">
+ <function name="CompressedTexImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -4627,7 +4523,7 @@
<glx rop="214" handcode="client"/>
</function>
- <function name="CompressedTexSubImage3D" es2="3.0" offset="assign">
+ <function name="CompressedTexSubImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4642,8 +4538,7 @@
<glx rop="219" handcode="client"/>
</function>
- <function name="CompressedTexSubImage2D"
- es1="1.0" es2="2.0" offset="assign">
+ <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4656,7 +4551,7 @@
<glx rop="218" handcode="client"/>
</function>
- <function name="CompressedTexSubImage1D" offset="assign">
+ <function name="CompressedTexSubImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4667,7 +4562,7 @@
<glx rop="217" handcode="client"/>
</function>
- <function name="GetCompressedTexImage" offset="assign">
+ <function name="GetCompressedTexImage">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="img" type="GLvoid *" output="true"/>
@@ -4790,7 +4685,7 @@
</enum>
<enum name="COMPARE_R_TO_TEXTURE" value="0x884E"/>
- <function name="BlendFuncSeparate" es2="2.0" offset="assign">
+ <function name="BlendFuncSeparate" es2="2.0">
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
<param name="sfactorAlpha" type="GLenum"/>
@@ -4806,24 +4701,23 @@
<param name="coord" type="const GLfloat *"/>
</function>
- <function name="FogCoordd" deprecated="3.1" offset="assign">
+ <function name="FogCoordd" deprecated="3.1">
<param name="coord" type="GLdouble"/>
</function>
- <function name="FogCoorddv" deprecated="3.1" offset="assign">
+ <function name="FogCoorddv" deprecated="3.1">
<param name="coord" type="const GLdouble *" count="1"/>
<glx rop="4125"/>
</function>
- <function name="FogCoordPointer"
- deprecated="3.1" offset="assign">
+ <function name="FogCoordPointer" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="MultiDrawArrays" offset="assign">
+ <function name="MultiDrawArrays">
<param name="mode" type="GLenum"/>
<param name="first" type="const GLint *"/>
<param name="count" type="const GLsizei *"/>
@@ -4839,52 +4733,48 @@
<param name="primcount" type="GLsizei"/>
</function>
- <function name="PointParameterf" es1="1.1" offset="assign">
+ <function name="PointParameterf" es1="1.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="2065"/>
</function>
- <function name="PointParameterfv" es1="1.1" offset="assign">
+ <function name="PointParameterfv" es1="1.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="2066"/>
</function>
- <function name="PointParameteri" offset="assign">
+ <function name="PointParameteri">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="4221"/>
</function>
- <function name="PointParameteriv" offset="assign">
+ <function name="PointParameteriv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="4222"/>
</function>
- <function name="SecondaryColor3b"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3b" deprecated="3.1">
<param name="red" type="GLbyte"/>
<param name="green" type="GLbyte"/>
<param name="blue" type="GLbyte"/>
</function>
- <function name="SecondaryColor3bv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="3"/>
<glx rop="4126"/>
</function>
- <function name="SecondaryColor3d"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3d" deprecated="3.1">
<param name="red" type="GLdouble"/>
<param name="green" type="GLdouble"/>
<param name="blue" type="GLdouble"/>
</function>
- <function name="SecondaryColor3dv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="4130"/>
</function>
@@ -4901,73 +4791,62 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="SecondaryColor3i"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3i" deprecated="3.1">
<param name="red" type="GLint"/>
<param name="green" type="GLint"/>
<param name="blue" type="GLint"/>
</function>
- <function name="SecondaryColor3iv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="4128"/>
</function>
- <function name="SecondaryColor3s"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3s" deprecated="3.1">
<param name="red" type="GLshort"/>
<param name="green" type="GLshort"/>
<param name="blue" type="GLshort"/>
</function>
- <function name="SecondaryColor3sv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="4127"/>
</function>
- <function name="SecondaryColor3ub"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3ub" deprecated="3.1">
<param name="red" type="GLubyte"/>
<param name="green" type="GLubyte"/>
<param name="blue" type="GLubyte"/>
</function>
- <function name="SecondaryColor3ubv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3ubv" deprecated="3.1">
<param name="v" type="const GLubyte *" count="3"/>
<glx rop="4131"/>
</function>
- <function name="SecondaryColor3ui"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3ui" deprecated="3.1">
<param name="red" type="GLuint"/>
<param name="green" type="GLuint"/>
<param name="blue" type="GLuint"/>
</function>
- <function name="SecondaryColor3uiv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3uiv" deprecated="3.1">
<param name="v" type="const GLuint *" count="3"/>
<glx rop="4133"/>
</function>
- <function name="SecondaryColor3us"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3us" deprecated="3.1">
<param name="red" type="GLushort"/>
<param name="green" type="GLushort"/>
<param name="blue" type="GLushort"/>
</function>
- <function name="SecondaryColor3usv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3usv" deprecated="3.1">
<param name="v" type="const GLushort *" count="3"/>
<glx rop="4132"/>
</function>
- <function name="SecondaryColorPointer"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColorPointer" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -4975,93 +4854,93 @@
<glx handcode="true"/>
</function>
- <function name="WindowPos2d" deprecated="3.1" offset="assign">
+ <function name="WindowPos2d" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2dv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2dv" deprecated="3.1">
<param name="v" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2f" deprecated="3.1" offset="assign">
+ <function name="WindowPos2f" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2fv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2fv" deprecated="3.1">
<param name="v" type="const GLfloat *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2i" deprecated="3.1" offset="assign">
+ <function name="WindowPos2i" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2iv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2iv" deprecated="3.1">
<param name="v" type="const GLint *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2s" deprecated="3.1" offset="assign">
+ <function name="WindowPos2s" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2sv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2sv" deprecated="3.1">
<param name="v" type="const GLshort *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3d" deprecated="3.1" offset="assign">
+ <function name="WindowPos3d" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3dv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3dv" deprecated="3.1">
<param name="v" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3f" deprecated="3.1" offset="assign">
+ <function name="WindowPos3f" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="WindowPos3fv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="230"/>
</function>
- <function name="WindowPos3i" deprecated="3.1" offset="assign">
+ <function name="WindowPos3i" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3iv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3iv" deprecated="3.1">
<param name="v" type="const GLint *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3s" deprecated="3.1" offset="assign">
+ <function name="WindowPos3s" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3sv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3sv" deprecated="3.1">
<param name="v" type="const GLshort *"/>
<glx handcode="true"/>
</function>
@@ -5132,13 +5011,13 @@
<type name="intptr" size="4" glx_name="CARD32"/>
<type name="sizeiptr" size="4" unsigned="true" glx_name="CARD32"/>
- <function name="BindBuffer" es1="1.1" es2="2.0" offset="assign">
+ <function name="BindBuffer" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="buffer" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BufferData" es1="1.1" es2="2.0" offset="assign">
+ <function name="BufferData" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="size" type="GLsizeiptr" counter="true"/>
<param name="data" type="const GLvoid *" count="size" img_null_flag="true"/>
@@ -5146,8 +5025,7 @@
<glx ignore="true"/>
</function>
- <function name="BufferSubData" es1="1.1"
- es2="2.0" offset="assign">
+ <function name="BufferSubData" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr" counter="true"/>
@@ -5155,35 +5033,33 @@
<glx ignore="true"/>
</function>
- <function name="DeleteBuffers" es1="1.1"
- es2="2.0" offset="assign">
+ <function name="DeleteBuffers" es1="1.1" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="buffer" type="const GLuint *" count="n"/>
<glx ignore="true"/>
</function>
- <function name="GenBuffers" es1="1.1" es2="2.0" offset="assign">
+ <function name="GenBuffers" es1="1.1" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="buffer" type="GLuint *" output="true" count="n"/>
<glx ignore="true"/>
</function>
- <function name="GetBufferParameteriv"
- es1="1.1" es2="2.0" offset="assign">
+ <function name="GetBufferParameteriv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="GetBufferPointerv" es2="3.0" offset="assign">
+ <function name="GetBufferPointerv" es2="3.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLvoid **" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetBufferSubData" offset="assign">
+ <function name="GetBufferSubData">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr" counter="true"/>
@@ -5191,69 +5067,69 @@
<glx ignore="true"/>
</function>
- <function name="IsBuffer" es1="1.1" es2="2.0" offset="assign">
+ <function name="IsBuffer" es1="1.1" es2="2.0">
<param name="buffer" type="GLuint"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="MapBuffer" offset="assign">
+ <function name="MapBuffer">
<param name="target" type="GLenum"/>
<param name="access" type="GLenum"/>
<return type="GLvoid *"/>
<glx ignore="true"/>
</function>
- <function name="UnmapBuffer" es2="3.0" offset="assign">
+ <function name="UnmapBuffer" es2="3.0">
<param name="target" type="GLenum"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="GenQueries" es2="3.0" offset="assign">
+ <function name="GenQueries" es2="3.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="GLuint *" output="true" count="n"/>
<glx sop="162" always_array="true"/>
</function>
- <function name="DeleteQueries" es2="3.0" offset="assign">
+ <function name="DeleteQueries" es2="3.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="const GLuint *" count="n"/>
<glx sop="161"/>
</function>
- <function name="IsQuery" es2="3.0" offset="assign">
+ <function name="IsQuery" es2="3.0">
<param name="id" type="GLuint"/>
<return type="GLboolean"/>
<glx sop="163"/>
</function>
- <function name="BeginQuery" es2="3.0" offset="assign">
+ <function name="BeginQuery" es2="3.0">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
<glx rop="231"/>
</function>
- <function name="EndQuery" es2="3.0" offset="assign">
+ <function name="EndQuery" es2="3.0">
<param name="target" type="GLenum"/>
<glx rop="232"/>
</function>
- <function name="GetQueryiv" es2="3.0" offset="assign">
+ <function name="GetQueryiv" es2="3.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="164"/>
</function>
- <function name="GetQueryObjectiv" offset="assign">
+ <function name="GetQueryObjectiv">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="165"/>
</function>
- <function name="GetQueryObjectuiv" es2="3.0" offset="assign">
+ <function name="GetQueryObjectuiv" es2="3.0">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *" output="true" variable_param="pname"/>
@@ -5356,20 +5232,19 @@
<enum name="STENCIL_BACK_VALUE_MASK" value="0x8CA4"/>
<enum name="STENCIL_BACK_WRITEMASK" value="0x8CA5"/>
- <function name="BlendEquationSeparate"
- es2="2.0" offset="assign">
+ <function name="BlendEquationSeparate" es2="2.0">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
<glx rop="4228"/>
</function>
- <function name="DrawBuffers" es2="3.0" offset="assign">
+ <function name="DrawBuffers" es2="3.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="bufs" type="const GLenum *" count="n"/>
<glx rop="233" large="true"/>
</function>
- <function name="StencilFuncSeparate" offset="assign" es2="2.0">
+ <function name="StencilFuncSeparate" es2="2.0">
<param name="face" type="GLenum"/>
<param name="func" type="GLenum"/>
<param name="ref" type="GLint"/>
@@ -5377,7 +5252,7 @@
<glx ignore="true"/>
</function>
- <function name="StencilOpSeparate" offset="assign" es2="2.0">
+ <function name="StencilOpSeparate" es2="2.0">
<param name="face" type="GLenum"/>
<param name="sfail" type="GLenum"/>
<param name="zfail" type="GLenum"/>
@@ -5385,72 +5260,70 @@
<glx ignore="true"/>
</function>
- <function name="StencilMaskSeparate" offset="assign" es2="2.0">
+ <function name="StencilMaskSeparate" es2="2.0">
<param name="face" type="GLenum"/>
<param name="mask" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="AttachShader" offset="assign" es2="2.0">
+ <function name="AttachShader" es2="2.0">
<param name="program" type="GLuint"/>
<param name="shader" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BindAttribLocation"
- es2="2.0" offset="assign">
+ <function name="BindAttribLocation" es2="2.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<glx ignore="true"/>
</function>
- <function name="CompileShader" es2="2.0" offset="assign">
+ <function name="CompileShader" es2="2.0">
<param name="shader" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="CreateProgram" offset="assign" es2="2.0">
+ <function name="CreateProgram" es2="2.0">
<return type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="CreateShader" offset="assign" es2="2.0">
+ <function name="CreateShader" es2="2.0">
<param name="type" type="GLenum"/>
<return type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DeleteProgram" offset="assign" es2="2.0">
+ <function name="DeleteProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DeleteShader" offset="assign" es2="2.0">
+ <function name="DeleteShader" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DetachShader" offset="assign" es2="2.0">
+ <function name="DetachShader" es2="2.0">
<param name="program" type="GLuint"/>
<param name="shader" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DisableVertexAttribArray" es2="2.0" offset="assign">
+ <function name="DisableVertexAttribArray" es2="2.0">
<param name="index" type="GLuint"/>
<glx ignore="true"/>
<glx handcode="true"/>
</function>
- <function name="EnableVertexAttribArray"
- es2="2.0" offset="assign">
+ <function name="EnableVertexAttribArray" es2="2.0">
<param name="index" type="GLuint"/>
<glx ignore="true"/>
<glx handcode="true"/>
</function>
- <function name="GetActiveAttrib" es2="2.0" offset="assign">
+ <function name="GetActiveAttrib" es2="2.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="bufSize" type="GLsizei "/>
@@ -5461,7 +5334,7 @@
<glx ignore="true"/>
</function>
- <function name="GetActiveUniform" es2="2.0" offset="assign">
+ <function name="GetActiveUniform" es2="2.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -5472,7 +5345,7 @@
<glx ignore="true"/>
</function>
- <function name="GetAttachedShaders" offset="assign" es2="2.0">
+ <function name="GetAttachedShaders" es2="2.0">
<param name="program" type="GLuint"/>
<param name="maxCount" type="GLsizei"/>
<param name="count" type="GLsizei *" output="true"/>
@@ -5480,21 +5353,21 @@
<glx ignore="true"/>
</function>
- <function name="GetAttribLocation" es2="2.0" offset="assign">
+ <function name="GetAttribLocation" es2="2.0">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="GetProgramiv" offset="assign" es2="2.0">
+ <function name="GetProgramiv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetProgramInfoLog" offset="assign" es2="2.0">
+ <function name="GetProgramInfoLog" es2="2.0">
<param name="program" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -5502,14 +5375,14 @@
<glx ignore="true"/>
</function>
- <function name="GetShaderiv" offset="assign" es2="2.0">
+ <function name="GetShaderiv" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
<glx ignore="true"/>
</function>
- <function name="GetShaderInfoLog" offset="assign" es2="2.0">
+ <function name="GetShaderInfoLog" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -5517,7 +5390,7 @@
<glx ignore="true"/>
</function>
- <function name="GetShaderSource" es2="2.0" offset="assign">
+ <function name="GetShaderSource" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *" output="true"/>
@@ -5525,29 +5398,28 @@
<glx ignore="true"/>
</function>
- <function name="GetUniformLocation"
- es2="2.0" offset="assign">
+ <function name="GetUniformLocation" es2="2.0">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="GetUniformfv" es2="2.0" offset="assign">
+ <function name="GetUniformfv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLfloat *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetUniformiv" es2="2.0" offset="assign">
+ <function name="GetUniformiv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLint *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetVertexAttribdv" offset="assign">
+ <function name="GetVertexAttribdv">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
@@ -5555,7 +5427,7 @@
<glx handcode="client" vendorpriv="1301"/>
</function>
- <function name="GetVertexAttribfv" es2="2.0" offset="assign">
+ <function name="GetVertexAttribfv" es2="2.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
@@ -5563,7 +5435,7 @@
<glx handcode="client" vendorpriv="1302"/>
</function>
- <function name="GetVertexAttribiv" es2="2.0" offset="assign">
+ <function name="GetVertexAttribiv" es2="2.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
@@ -5571,8 +5443,7 @@
<glx handcode="client" vendorpriv="1303"/>
</function>
- <function name="GetVertexAttribPointerv"
- es2="2.0" offset="assign">
+ <function name="GetVertexAttribPointerv" es2="2.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="pointer" type="GLvoid **" output="true"/>
@@ -5580,24 +5451,24 @@
<glx handcode="true"/>
</function>
- <function name="IsProgram" offset="assign" es2="2.0">
+ <function name="IsProgram" es2="2.0">
<param name="program" type="GLuint"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="IsShader" offset="assign" es2="2.0">
+ <function name="IsShader" es2="2.0">
<param name="shader" type="GLuint"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="LinkProgram" es2="2.0" offset="assign">
+ <function name="LinkProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="ShaderSource" es2="2.0" offset="assign">
+ <function name="ShaderSource" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="string" type="const GLchar * const *"/>
@@ -5605,30 +5476,30 @@
<glx ignore="true"/>
</function>
- <function name="UseProgram" es2="2.0" offset="assign">
+ <function name="UseProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform1f" es2="2.0" offset="assign">
+ <function name="Uniform1f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2f" es2="2.0" offset="assign">
+ <function name="Uniform2f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<param name="v1" type="GLfloat"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3f" es2="2.0" offset="assign">
+ <function name="Uniform3f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<param name="v1" type="GLfloat"/>
<param name="v2" type="GLfloat"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4f" es2="2.0" offset="assign">
+ <function name="Uniform4f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<param name="v1" type="GLfloat"/>
@@ -5637,25 +5508,25 @@
<glx ignore="true"/>
</function>
- <function name="Uniform1i" es2="2.0" offset="assign">
+ <function name="Uniform1i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2i" es2="2.0" offset="assign">
+ <function name="Uniform2i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<param name="v1" type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3i" es2="2.0" offset="assign">
+ <function name="Uniform3i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<param name="v1" type="GLint"/>
<param name="v2" type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4i" es2="2.0" offset="assign">
+ <function name="Uniform4i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<param name="v1" type="GLint"/>
@@ -5664,71 +5535,71 @@
<glx ignore="true"/>
</function>
- <function name="Uniform1fv" es2="2.0" offset="assign">
+ <function name="Uniform1fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2fv" es2="2.0" offset="assign">
+ <function name="Uniform2fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count" count_scale="2"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3fv" es2="2.0" offset="assign">
+ <function name="Uniform3fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count" count_scale="3"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4fv" es2="2.0" offset="assign">
+ <function name="Uniform4fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count" count_scale="4"/>
<glx ignore="true"/>
</function>
- <function name="Uniform1iv" es2="2.0" offset="assign">
+ <function name="Uniform1iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2iv" es2="2.0" offset="assign">
+ <function name="Uniform2iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count" count_scale="2"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3iv" es2="2.0" offset="assign">
+ <function name="Uniform3iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count" count_scale="3"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4iv" es2="2.0" offset="assign">
+ <function name="Uniform4iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count" count_scale="4"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix2fv" es2="2.0" offset="assign">
+ <function name="UniformMatrix2fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="4"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix3fv" es2="2.0" offset="assign">
+ <function name="UniformMatrix3fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="9"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix4fv" es2="2.0" offset="assign">
+ <function name="UniformMatrix4fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
@@ -5736,16 +5607,16 @@
<glx ignore="true"/>
</function>
- <function name="ValidateProgram" es2="2.0" offset="assign">
+ <function name="ValidateProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="VertexAttrib1d" offset="assign">
+ <function name="VertexAttrib1d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="VertexAttrib1dv" offset="assign">
+ <function name="VertexAttrib1dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="4197" doubles_in_order="true"/>
@@ -5758,22 +5629,22 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib1s" offset="assign">
+ <function name="VertexAttrib1s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
</function>
- <function name="VertexAttrib1sv" offset="assign">
+ <function name="VertexAttrib1sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="1"/>
<glx rop="4189"/>
</function>
- <function name="VertexAttrib2d" offset="assign">
+ <function name="VertexAttrib2d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="VertexAttrib2dv" offset="assign">
+ <function name="VertexAttrib2dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="4198" doubles_in_order="true"/>
@@ -5787,24 +5658,24 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib2s" offset="assign">
+ <function name="VertexAttrib2s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="VertexAttrib2sv" offset="assign">
+ <function name="VertexAttrib2sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="2"/>
<glx rop="4190"/>
</function>
- <function name="VertexAttrib3d" offset="assign">
+ <function name="VertexAttrib3d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="VertexAttrib3dv" offset="assign">
+ <function name="VertexAttrib3dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="4199" doubles_in_order="true"/>
@@ -5819,68 +5690,68 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib3s" offset="assign">
+ <function name="VertexAttrib3s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
</function>
- <function name="VertexAttrib3sv" offset="assign">
+ <function name="VertexAttrib3sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="3"/>
<glx rop="4191"/>
</function>
- <function name="VertexAttrib4Nbv" offset="assign">
+ <function name="VertexAttrib4Nbv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLbyte *" count="4"/>
<glx rop="4235"/>
</function>
- <function name="VertexAttrib4Niv" offset="assign">
+ <function name="VertexAttrib4Niv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *" count="4"/>
<glx rop="4237"/>
</function>
- <function name="VertexAttrib4Nsv" offset="assign">
+ <function name="VertexAttrib4Nsv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="4236"/>
</function>
- <function name="VertexAttrib4Nub" offset="assign">
+ <function name="VertexAttrib4Nub">
<param name="index" type="GLuint"/>
<param name="x" type="GLubyte"/>
<param name="y" type="GLubyte"/>
<param name="z" type="GLubyte"/>
<param name="w" type="GLubyte"/>
</function>
- <function name="VertexAttrib4Nubv" offset="assign">
+ <function name="VertexAttrib4Nubv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="4201"/>
</function>
- <function name="VertexAttrib4Nuiv" offset="assign">
+ <function name="VertexAttrib4Nuiv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *" count="4"/>
<glx rop="4239"/>
</function>
- <function name="VertexAttrib4Nusv" offset="assign">
+ <function name="VertexAttrib4Nusv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLushort *" count="4"/>
<glx rop="4238"/>
</function>
- <function name="VertexAttrib4bv" offset="assign">
+ <function name="VertexAttrib4bv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLbyte *" count="4"/>
<glx rop="4230"/>
</function>
- <function name="VertexAttrib4d" offset="assign">
+ <function name="VertexAttrib4d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<param name="w" type="GLdouble"/>
</function>
- <function name="VertexAttrib4dv" offset="assign">
+ <function name="VertexAttrib4dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="4200" doubles_in_order="true"/>
@@ -5896,41 +5767,40 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib4iv" offset="assign">
+ <function name="VertexAttrib4iv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *" count="4"/>
<glx rop="4231"/>
</function>
- <function name="VertexAttrib4s" offset="assign">
+ <function name="VertexAttrib4s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<param name="w" type="GLshort"/>
</function>
- <function name="VertexAttrib4sv" offset="assign">
+ <function name="VertexAttrib4sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="4192"/>
</function>
- <function name="VertexAttrib4ubv" offset="assign">
+ <function name="VertexAttrib4ubv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="4232"/>
</function>
- <function name="VertexAttrib4uiv" offset="assign">
+ <function name="VertexAttrib4uiv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *" count="4"/>
<glx rop="4234"/>
</function>
- <function name="VertexAttrib4usv" offset="assign">
+ <function name="VertexAttrib4usv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLushort *" count="4"/>
<glx rop="4233"/>
</function>
- <function name="VertexAttribPointer"
- es2="2.0" offset="assign">
+ <function name="VertexAttribPointer" es2="2.0">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -5971,42 +5841,42 @@
<enum name="COMPRESSED_SLUMINANCE" value="0x8C4A"/>
<enum name="COMPRESSED_SLUMINANCE_ALPHA" value="0x8C4B"/>
- <function name="UniformMatrix2x3fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix2x3fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="6"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix3x2fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix3x2fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="6"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix2x4fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix2x4fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="6"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix4x2fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix4x2fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="8"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix3x4fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix3x4fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="12"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix4x3fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix4x3fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
@@ -6081,13 +5951,13 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord1fARB" offset="378"
+ <function name="MultiTexCoord1fARB"
vectorequiv="MultiTexCoord1fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
</function>
- <function name="MultiTexCoord1fvARB" offset="379" exec="dynamic">
+ <function name="MultiTexCoord1fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="199"/>
@@ -6127,14 +5997,14 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord2fARB" offset="386"
+ <function name="MultiTexCoord2fARB"
vectorequiv="MultiTexCoord2fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
</function>
- <function name="MultiTexCoord2fvARB" offset="387" exec="dynamic">
+ <function name="MultiTexCoord2fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="203"/>
@@ -6177,7 +6047,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord3fARB" offset="394"
+ <function name="MultiTexCoord3fARB"
vectorequiv="MultiTexCoord3fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
@@ -6185,7 +6055,7 @@
<param name="r" type="GLfloat"/>
</function>
- <function name="MultiTexCoord3fvARB" offset="395" exec="dynamic">
+ <function name="MultiTexCoord3fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="207"/>
@@ -6231,7 +6101,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord4fARB" offset="402"
+ <function name="MultiTexCoord4fARB"
vectorequiv="MultiTexCoord4fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
@@ -6240,7 +6110,7 @@
<param name="q" type="GLfloat"/>
</function>
- <function name="MultiTexCoord4fvARB" offset="403" exec="dynamic">
+ <function name="MultiTexCoord4fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="211"/>
@@ -6672,7 +6542,7 @@
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
- <glx handcode="true"/>
+ <glx ignore="true" handcode="true"/>
</function>
<function name="VertexBlendARB" exec="skip">
@@ -6738,7 +6608,7 @@
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
- <glx handcode="true"/>
+ <glx ignore="true" handcode="true"/>
</function>
</category>
@@ -7108,13 +6978,13 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib1fARB" offset="assign"
- vectorequiv="VertexAttrib1fvARB" exec="dynamic">
+ <function name="VertexAttrib1fARB"
+ vectorequiv="VertexAttrib1fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
</function>
- <function name="VertexAttrib1fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib1fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="4193"/>
@@ -7143,14 +7013,14 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib2fARB" offset="assign"
+ <function name="VertexAttrib2fARB"
vectorequiv="VertexAttrib2fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="VertexAttrib2fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib2fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="4194"/>
@@ -7181,7 +7051,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib3fARB" offset="assign"
+ <function name="VertexAttrib3fARB"
vectorequiv="VertexAttrib3fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
@@ -7189,7 +7059,7 @@
<param name="z" type="GLfloat"/>
</function>
- <function name="VertexAttrib3fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib3fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="4195"/>
@@ -7222,7 +7092,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib4fARB" offset="assign"
+ <function name="VertexAttrib4fARB"
vectorequiv="VertexAttrib4fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
@@ -7231,7 +7101,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="VertexAttrib4fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib4fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="4196"/>
@@ -7332,7 +7202,7 @@
<param name="index" type="GLuint"/>
</function>
- <function name="ProgramStringARB" offset="assign" deprecated="3.1">
+ <function name="ProgramStringARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="len" type="GLsizei" counter="true"/>
@@ -7340,31 +7210,31 @@
<glx rop="4217" large="true"/>
</function>
- <function name="BindProgramARB" offset="assign">
+ <function name="BindProgramARB">
<param name="target" type="GLenum"/>
<param name="program" type="GLuint"/>
<glx rop="4180"/>
</function>
- <function name="DeleteProgramsARB" offset="assign">
+ <function name="DeleteProgramsARB">
<param name="n" type="GLsizei" counter="true"/>
<param name="programs" type="const GLuint *" count="n"/>
<glx vendorpriv="1294"/>
</function>
- <function name="GenProgramsARB" offset="assign">
+ <function name="GenProgramsARB">
<param name="n" type="GLsizei" counter="true"/>
<param name="programs" type="GLuint *" output="true" count="n"/>
<glx vendorpriv="1295" always_array="true"/>
</function>
- <function name="IsProgramARB" offset="assign">
+ <function name="IsProgramARB">
<param name="program" type="GLuint"/>
<return type="GLboolean"/>
<glx vendorpriv="1304"/>
</function>
- <function name="ProgramEnvParameter4dARB" offset="assign"
+ <function name="ProgramEnvParameter4dARB"
vectorequiv="ProgramEnvParameter4dvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7374,7 +7244,7 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="ProgramEnvParameter4dvARB" offset="assign"
+ <function name="ProgramEnvParameter4dvARB"
deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7382,7 +7252,7 @@
<glx rop="4185" doubles_in_order="true"/>
</function>
- <function name="ProgramEnvParameter4fARB" offset="assign"
+ <function name="ProgramEnvParameter4fARB"
vectorequiv="ProgramEnvParameter4fvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7392,7 +7262,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramEnvParameter4fvARB" offset="assign"
+ <function name="ProgramEnvParameter4fvARB"
deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7400,7 +7270,7 @@
<glx rop="4184"/>
</function>
- <function name="ProgramLocalParameter4dARB" offset="assign"
+ <function name="ProgramLocalParameter4dARB"
vectorequiv="ProgramLocalParameter4dvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7410,7 +7280,7 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="ProgramLocalParameter4dvARB" offset="assign"
+ <function name="ProgramLocalParameter4dvARB"
deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7418,7 +7288,7 @@
<glx rop="4216" doubles_in_order="true"/>
</function>
- <function name="ProgramLocalParameter4fARB" offset="assign"
+ <function name="ProgramLocalParameter4fARB"
vectorequiv="ProgramLocalParameter4fvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7428,8 +7298,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramLocalParameter4fvARB" offset="assign"
- deprecated="3.1">
+ <function name="ProgramLocalParameter4fvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="const GLfloat *" count="4"/>
@@ -7448,32 +7317,28 @@
the ARB_vertex_program protocol to unused padding.
-->
- <function name="GetProgramEnvParameterdvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramEnvParameterdvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLdouble *" output="true" count="4"/>
<glx vendorpriv="1297" handcode="client" doubles_in_order="true"/>
</function>
- <function name="GetProgramEnvParameterfvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramEnvParameterfvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLfloat *" output="true" count="4"/>
<glx vendorpriv="1296" handcode="client"/>
</function>
- <function name="GetProgramLocalParameterdvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramLocalParameterdvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLdouble *" output="true" count="4"/>
<glx vendorpriv="1306" handcode="client" doubles_in_order="true"/>
</function>
- <function name="GetProgramLocalParameterfvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramLocalParameterfvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLfloat *" output="true" count="4"/>
@@ -7481,14 +7346,14 @@
</function>
- <function name="GetProgramivARB" offset="assign" deprecated="3.1">
+ <function name="GetProgramivARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="1307"/>
</function>
- <function name="GetProgramStringARB" offset="assign" deprecated="3.1">
+ <function name="GetProgramStringARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="string" type="GLvoid *" output="true"/>
@@ -7774,24 +7639,24 @@
<type name="charARB" size="1" glx_name="CARD8"/>
<type name="handleARB" size="4" glx_name="CARD32"/>
- <function name="DeleteObjectARB" offset="assign">
+ <function name="DeleteObjectARB">
<param name="obj" type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="GetHandleARB" offset="assign">
+ <function name="GetHandleARB">
<param name="pname" type="GLenum"/>
<return type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="DetachObjectARB" offset="assign">
+ <function name="DetachObjectARB">
<param name="containerObj" type="GLhandleARB"/>
<param name="attachedObj" type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="CreateShaderObjectARB" offset="assign">
+ <function name="CreateShaderObjectARB">
<param name="shaderType" type="GLenum"/>
<return type="GLhandleARB"/>
<glx ignore="true"/>
@@ -7808,12 +7673,12 @@
<param name="shader" type="GLhandleARB"/>
</function>
- <function name="CreateProgramObjectARB" offset="assign">
+ <function name="CreateProgramObjectARB">
<return type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="AttachObjectARB" offset="assign">
+ <function name="AttachObjectARB">
<param name="containerObj" type="GLhandleARB"/>
<param name="obj" type="GLhandleARB"/>
<glx ignore="true"/>
@@ -7952,21 +7817,21 @@
<param name="value" type="const GLfloat *"/>
</function>
- <function name="GetObjectParameterfvARB" offset="assign">
+ <function name="GetObjectParameterfvARB">
<param name="obj" type="GLhandleARB"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetObjectParameterivARB" offset="assign">
+ <function name="GetObjectParameterivARB">
<param name="obj" type="GLhandleARB"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetInfoLogARB" offset="assign">
+ <function name="GetInfoLogARB">
<param name="obj" type="GLhandleARB"/>
<param name="maxLength" type="GLsizei"/>
<param name="length" type="GLsizei *" output="true"/>
@@ -7974,7 +7839,7 @@
<glx ignore="true"/>
</function>
- <function name="GetAttachedObjectsARB" offset="assign">
+ <function name="GetAttachedObjectsARB">
<param name="containerObj" type="GLhandleARB"/>
<param name="maxLength" type="GLsizei"/>
<param name="length" type="GLsizei *" output="true"/>
@@ -8189,17 +8054,17 @@
<enum name="TIMESTAMP" value="0x8E28"/>
<type name="int64" size="8"/>
<type name="uint64" unsigned="true" size="8"/>
- <function name="GetQueryObjecti64v" static_dispatch="false" offset="assign">
+ <function name="GetQueryObjecti64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64 *"/>
</function>
- <function name="GetQueryObjectui64v" static_dispatch="false" offset="assign">
+ <function name="GetQueryObjectui64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint64 *"/>
</function>
- <function name="QueryCounter" offset="assign" static_dispatch="false">
+ <function name="QueryCounter">
<param name="id" type="GLuint"/>
<param name="target" type="GLenum"/>
</function>
@@ -8219,25 +8084,24 @@
<enum name="MAX_TRANSFORM_FEEDBACK_BUFFERS" value="0x8E70"/>
<enum name="MAX_VERTEX_STREAMS" value="0x8E71"/>
- <function name="DrawTransformFeedbackStream" offset="assign"
- exec="dynamic">
+ <function name="DrawTransformFeedbackStream" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="stream" type="GLuint"/>
</function>
- <function name="BeginQueryIndexed" offset="assign">
+ <function name="BeginQueryIndexed">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="id" type="GLuint"/>
</function>
- <function name="EndQueryIndexed" offset="assign">
+ <function name="EndQueryIndexed">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
</function>
- <function name="GetQueryIndexediv" offset="assign">
+ <function name="GetQueryIndexediv">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -8268,15 +8132,13 @@
<xi:include href="ARB_base_instance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<category name="GL_ARB_transform_feedback_instanced" number="109">
- <function name="DrawTransformFeedbackInstanced" offset="assign"
- exec="dynamic">
+ <function name="DrawTransformFeedbackInstanced" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="primcount" type="GLsizei"/>
</function>
- <function name="DrawTransformFeedbackStreamInstanced" offset="assign"
- exec="dynamic">
+ <function name="DrawTransformFeedbackStreamInstanced" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="stream" type="GLuint"/>
@@ -8360,7 +8222,7 @@
<enum name="BUFFER_STORAGE_FLAGS" value="0x8220" />
<enum name="CLIENT_MAPPED_BUFFER_BARRIER_BIT" value="0x4000" />
- <function name="BufferStorage" offset="assign">
+ <function name="BufferStorage">
<param name="target" type="GLenum"/>
<param name="size" type="GLsizeiptr"/>
<param name="data" type="const GLvoid *"/>
@@ -8420,7 +8282,7 @@
<category name="GL_EXT_polygon_offset" number="3">
<enum name="POLYGON_OFFSET_BIAS_EXT" value="0x8039"/>
- <function name="PolygonOffsetEXT" offset="assign" deprecated="3.1">
+ <function name="PolygonOffsetEXT" deprecated="3.1">
<param name="factor" type="GLfloat"/>
<param name="bias" type="GLfloat"/>
<glx rop="4098" ignore="true"/>
@@ -8669,7 +8531,7 @@
</enum>
<enum name="TABLE_TOO_LARGE_EXT" value="0x8031"/>
- <function name="GetHistogramEXT" alias="GetHistogram" static_dispatch="false">
+ <function name="GetHistogramEXT" alias="GetHistogram">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -8678,21 +8540,21 @@
<glx vendorpriv="5" dimensions_in_reply="true" img_reset="reset"/>
</function>
- <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv" static_dispatch="false">
+ <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="6"/>
</function>
- <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv" static_dispatch="false">
+ <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="7"/>
</function>
- <function name="GetMinmaxEXT" alias="GetMinmax" static_dispatch="false">
+ <function name="GetMinmaxEXT" alias="GetMinmax">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -8701,38 +8563,38 @@
<glx vendorpriv="8" img_reset="reset"/>
</function>
- <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv" static_dispatch="false">
+ <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="9"/>
</function>
- <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv" static_dispatch="false">
+ <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="10"/>
</function>
- <function name="HistogramEXT" alias="Histogram" static_dispatch="false">
+ <function name="HistogramEXT" alias="Histogram">
<param name="target" type="GLenum"/>
<param name="width" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
<param name="sink" type="GLboolean"/>
</function>
- <function name="MinmaxEXT" alias="Minmax" static_dispatch="false">
+ <function name="MinmaxEXT" alias="Minmax">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="sink" type="GLboolean"/>
</function>
- <function name="ResetHistogramEXT" alias="ResetHistogram" static_dispatch="false">
+ <function name="ResetHistogramEXT" alias="ResetHistogram">
<param name="target" type="GLenum"/>
</function>
- <function name="ResetMinmaxEXT" alias="ResetMinmax" static_dispatch="false">
+ <function name="ResetMinmaxEXT" alias="ResetMinmax">
<param name="target" type="GLenum"/>
</function>
</category>
@@ -8804,7 +8666,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D" static_dispatch="false">
+ <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8813,7 +8675,7 @@
<param name="image" type="const GLvoid *"/>
</function>
- <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D" static_dispatch="false">
+ <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8823,31 +8685,31 @@
<param name="image" type="const GLvoid *"/>
</function>
- <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf" static_dispatch="false">
+ <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat"/>
</function>
- <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv" static_dispatch="false">
+ <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri" static_dispatch="false">
+ <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint"/>
</function>
- <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv" static_dispatch="false">
+ <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D" static_dispatch="false">
+ <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -8855,7 +8717,7 @@
<param name="width" type="GLsizei"/>
</function>
- <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D" static_dispatch="false">
+ <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -8864,7 +8726,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter" static_dispatch="false">
+ <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -8872,21 +8734,21 @@
<glx vendorpriv="1" dimensions_in_reply="true"/>
</function>
- <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv" static_dispatch="false">
+ <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="2"/>
</function>
- <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv" static_dispatch="false">
+ <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="3"/>
</function>
- <function name="GetSeparableFilterEXT" alias="GetSeparableFilter" static_dispatch="false">
+ <function name="GetSeparableFilterEXT" alias="GetSeparableFilter">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -8896,7 +8758,7 @@
<glx vendorpriv="4" handcode="true"/>
</function>
- <function name="SeparableFilter2DEXT" alias="SeparableFilter2D" static_dispatch="false">
+ <function name="SeparableFilter2DEXT" alias="SeparableFilter2D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8968,7 +8830,7 @@
<size name="GetColorTableParameterivSGI" mode="get"/>
</enum>
- <function name="ColorTableSGI" alias="ColorTable" static_dispatch="false">
+ <function name="ColorTableSGI" alias="ColorTable">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8977,19 +8839,19 @@
<param name="table" type="const GLvoid *"/>
</function>
- <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv" static_dispatch="false">
+ <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv" static_dispatch="false">
+ <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="CopyColorTableSGI" alias="CopyColorTable" static_dispatch="false">
+ <function name="CopyColorTableSGI" alias="CopyColorTable">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -8997,7 +8859,7 @@
<param name="width" type="GLsizei"/>
</function>
- <function name="GetColorTableSGI" alias="GetColorTable" static_dispatch="false">
+ <function name="GetColorTableSGI" alias="GetColorTable">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -9005,14 +8867,14 @@
<glx vendorpriv="4098" dimensions_in_reply="true"/>
</function>
- <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv" static_dispatch="false">
+ <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="4099"/>
</function>
- <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv" static_dispatch="false">
+ <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
@@ -9170,15 +9032,13 @@
</category>
<category name="GL_SGIS_multisample" number="25">
- <function name="SampleMaskSGIS" offset="assign" static_dispatch="false"
- exec="skip">
+ <function name="SampleMaskSGIS" exec="skip">
<param name="value" type="GLclampf"/>
<param name="invert" type="GLboolean"/>
<glx rop="2048"/>
</function>
- <function name="SamplePatternSGIS" offset="assign" static_dispatch="false"
- exec="skip">
+ <function name="SamplePatternSGIS" exec="skip">
<param name="pattern" type="GLenum"/>
<glx rop="2049"/>
</function>
@@ -9209,7 +9069,7 @@
<param name="i" type="GLint"/>
</function>
- <function name="ColorPointerEXT" offset="assign" deprecated="3.1">
+ <function name="ColorPointerEXT" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -9224,7 +9084,7 @@
<param name="count" type="GLsizei"/>
</function>
- <function name="EdgeFlagPointerEXT" offset="assign" deprecated="3.1">
+ <function name="EdgeFlagPointerEXT" deprecated="3.1">
<param name="stride" type="GLsizei"/>
<param name="count" type="GLsizei"/>
<param name="pointer" type="const GLboolean *"/>
@@ -9236,7 +9096,7 @@
<param name="params" type="GLvoid **" output="true"/>
</function>
- <function name="IndexPointerEXT" offset="assign" deprecated="3.1">
+ <function name="IndexPointerEXT" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -9244,7 +9104,7 @@
<glx handcode="true"/>
</function>
- <function name="NormalPointerEXT" offset="assign" deprecated="3.1">
+ <function name="NormalPointerEXT" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -9252,7 +9112,7 @@
<glx handcode="true"/>
</function>
- <function name="TexCoordPointerEXT" offset="assign" deprecated="3.1">
+ <function name="TexCoordPointerEXT" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -9261,7 +9121,7 @@
<glx handcode="true"/>
</function>
- <function name="VertexPointerEXT" offset="assign" deprecated="3.1">
+ <function name="VertexPointerEXT" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -9589,7 +9449,7 @@
<!-- Extension number 73 is not listed in the extension registry. -->
<category name="GL_EXT_color_subtable" number="74">
- <function name="ColorSubTableEXT" alias="ColorSubTable" static_dispatch="false">
+ <function name="ColorSubTableEXT" alias="ColorSubTable">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -9598,7 +9458,7 @@
<param name="data" type="const GLvoid *"/>
</function>
- <function name="CopyColorSubTableEXT" alias="CopyColorSubTable" static_dispatch="false">
+ <function name="CopyColorSubTableEXT" alias="CopyColorSubTable">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="x" type="GLint"/>
@@ -9800,13 +9660,13 @@
<enum name="ARRAY_ELEMENT_LOCK_FIRST_EXT" value="0x81A8"/>
<enum name="ARRAY_ELEMENT_LOCK_COUNT_EXT" value="0x81A9"/>
- <function name="LockArraysEXT" offset="assign" deprecated="3.1">
+ <function name="LockArraysEXT" deprecated="3.1">
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
<glx handcode="true" ignore="true"/>
</function>
- <function name="UnlockArraysEXT" offset="assign" deprecated="3.1">
+ <function name="UnlockArraysEXT" deprecated="3.1">
<glx handcode="true" ignore="true"/>
</function>
</category>
@@ -10148,13 +10008,13 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="SecondaryColor3fEXT" offset="assign" vectorequiv="SecondaryColor3fvEXT">
+ <function name="SecondaryColor3fEXT" vectorequiv="SecondaryColor3fvEXT">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
<param name="blue" type="GLfloat"/>
</function>
- <function name="SecondaryColor3fvEXT" offset="assign">
+ <function name="SecondaryColor3fvEXT">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="4129"/>
</function>
@@ -10236,8 +10096,7 @@
<param name="primcount" type="GLsizei"/>
</function>
- <function name="MultiDrawElementsEXT" offset="assign" es1="1.0" es2="2.0"
- exec="dynamic">
+ <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="const GLsizei *"/>
<param name="type" type="GLenum"/>
@@ -10248,12 +10107,11 @@
</category>
<category name="GL_EXT_fog_coord" number="149">
- <function name="FogCoordfEXT" offset="assign" vectorequiv="FogCoordfvEXT"
- exec="dynamic">
+ <function name="FogCoordfEXT" vectorequiv="FogCoordfvEXT" exec="dynamic">
<param name="coord" type="GLfloat"/>
</function>
- <function name="FogCoordfvEXT" offset="assign" exec="dynamic">
+ <function name="FogCoordfvEXT" exec="dynamic">
<param name="coord" type="const GLfloat *" count="1"/>
<glx rop="4124"/>
</function>
@@ -11105,7 +10963,7 @@
</category>
<category name="GL_MESA_resize_buffers" number="196">
- <function name="ResizeBuffersMESA" offset="assign" exec="skip">
+ <function name="ResizeBuffersMESA" exec="skip">
<glx ignore="true"/>
</function>
</category>
@@ -11187,7 +11045,7 @@
<param name="v" type="const GLshort *"/>
</function>
- <function name="WindowPos4dMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4dMESA" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
@@ -11195,12 +11053,12 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4dvMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4dvMESA" deprecated="3.1">
<param name="v" type="const GLdouble *"/>
<glx ignore="true"/>
</function>
- <function name="WindowPos4fMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4fMESA" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
@@ -11208,12 +11066,12 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4fvMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4fvMESA" deprecated="3.1">
<param name="v" type="const GLfloat *"/>
<glx ignore="true"/>
</function>
- <function name="WindowPos4iMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4iMESA" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
@@ -11221,12 +11079,12 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4ivMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4ivMESA" deprecated="3.1">
<param name="v" type="const GLint *"/>
<glx ignore="true"/>
</function>
- <function name="WindowPos4sMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4sMESA" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
@@ -11234,7 +11092,7 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4svMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4svMESA" deprecated="3.1">
<param name="v" type="const GLshort *"/>
<glx ignore="true"/>
</function>
@@ -11248,7 +11106,7 @@
</category>
<category name="GL_IBM_multimode_draw_arrays" number="200">
- <function name="MultiModeDrawArraysIBM" offset="assign" static_dispatch="false">
+ <function name="MultiModeDrawArraysIBM">
<param name="mode" type="const GLenum *"/>
<param name="first" type="const GLint *"/>
<param name="count" type="const GLsizei *"/>
@@ -11257,7 +11115,7 @@
<glx handcode="true" ignore="true"/>
</function>
- <function name="MultiModeDrawElementsIBM" offset="assign" static_dispatch="false">
+ <function name="MultiModeDrawElementsIBM">
<param name="mode" type="const GLenum *"/>
<param name="count" type="const GLsizei *"/>
<param name="type" type="GLenum"/>
@@ -11354,12 +11212,12 @@
</category>
<category name="GL_EXT_multisample" number="209">
- <function name="SampleMaskEXT" alias="SampleMaskSGIS" static_dispatch="false">
+ <function name="SampleMaskEXT" alias="SampleMaskSGIS">
<param name="value" type="GLclampf"/>
<param name="invert" type="GLboolean"/>
</function>
- <function name="SamplePatternEXT" alias="SamplePatternSGIS" static_dispatch="false">
+ <function name="SamplePatternEXT" alias="SamplePatternSGIS">
<param name="pattern" type="GLenum"/>
</function>
</category>
@@ -11656,8 +11514,7 @@
<enum name="MAP2_VERTEX_ATTRIB14_4_NV" value="0x867E"/>
<enum name="MAP2_VERTEX_ATTRIB15_4_NV" value="0x867F"/>
- <function name="AreProgramsResidentNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="AreProgramsResidentNV" deprecated="3.1" exec="skip">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="const GLuint *" count="n"/>
<param name="residences" type="GLboolean *" output="true" count="n"/>
@@ -11675,8 +11532,7 @@
<param name="programs" type="const GLuint *"/>
</function>
- <function name="ExecuteProgramNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="ExecuteProgramNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="params" type="const GLfloat *" count="4"/>
@@ -11694,8 +11550,7 @@
of these functions.
-->
- <function name="GetProgramParameterdvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramParameterdvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -11703,8 +11558,7 @@
<glx vendorpriv="1297"/>
</function>
- <function name="GetProgramParameterfvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramParameterfvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -11712,24 +11566,21 @@
<glx vendorpriv="1296"/>
</function>
- <function name="GetProgramivNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramivNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="1298"/>
</function>
- <function name="GetProgramStringNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramStringNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="program" type="GLubyte *" output="true"/>
<glx vendorpriv="1299" handcode="server" always_array="true"/>
</function>
- <function name="GetTrackMatrixivNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetTrackMatrixivNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="address" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -11737,24 +11588,21 @@
<glx vendorpriv="1300"/>
</function>
- <function name="GetVertexAttribdvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetVertexAttribdvNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
<glx vendorpriv="1301"/>
</function>
- <function name="GetVertexAttribfvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetVertexAttribfvNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="1302"/>
</function>
- <function name="GetVertexAttribivNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetVertexAttribivNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
@@ -11772,8 +11620,7 @@
<return type="GLboolean"/>
</function>
- <function name="LoadProgramNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="LoadProgramNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
@@ -11811,8 +11658,7 @@
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ProgramParameters4dvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="ProgramParameters4dvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="num" type="GLsizei" counter="true"/>
@@ -11820,8 +11666,7 @@
<glx rop="4187"/>
</function>
- <function name="ProgramParameters4fvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="ProgramParameters4fvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="num" type="GLsizei" counter="true"/>
@@ -11829,15 +11674,13 @@
<glx rop="4186"/>
</function>
- <function name="RequestResidentProgramsNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="RequestResidentProgramsNV" deprecated="3.1" exec="skip">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="const GLuint *" count="n"/>
<glx rop="4182"/>
</function>
- <function name="TrackMatrixNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="TrackMatrixNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="address" type="GLuint"/>
<param name="matrix" type="GLenum"/>
@@ -11845,8 +11688,7 @@
<glx rop="4188"/>
</function>
- <function name="VertexAttribPointerNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="VertexAttribPointerNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -11855,32 +11697,32 @@
<glx handcode="true"/>
</function>
- <function name="VertexAttrib1sNV" offset="assign"
+ <function name="VertexAttrib1sNV"
vectorequiv="VertexAttrib1svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
</function>
- <function name="VertexAttrib1svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib1svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="1"/>
<glx rop="4265"/>
</function>
- <function name="VertexAttrib2sNV" offset="assign"
+ <function name="VertexAttrib2sNV"
vectorequiv="VertexAttrib2svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="VertexAttrib2svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib2svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="2"/>
<glx rop="4266"/>
</function>
- <function name="VertexAttrib3sNV" offset="assign"
+ <function name="VertexAttrib3sNV"
vectorequiv="VertexAttrib3svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
@@ -11888,13 +11730,13 @@
<param name="z" type="GLshort"/>
</function>
- <function name="VertexAttrib3svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib3svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="3"/>
<glx rop="4267"/>
</function>
- <function name="VertexAttrib4sNV" offset="assign"
+ <function name="VertexAttrib4sNV"
vectorequiv="VertexAttrib4svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
@@ -11903,60 +11745,53 @@
<param name="w" type="GLshort"/>
</function>
- <function name="VertexAttrib4svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib4svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="4268"/>
</function>
- <function name="VertexAttrib1fNV" offset="assign"
- vectorequiv="VertexAttrib1fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib1fNV"
+ vectorequiv="VertexAttrib1fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
</function>
- <function name="VertexAttrib1fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib1fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="4269"/>
</function>
- <function name="VertexAttrib2fNV" offset="assign"
- vectorequiv="VertexAttrib2fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib2fNV"
+ vectorequiv="VertexAttrib2fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="VertexAttrib2fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib2fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="4270"/>
</function>
- <function name="VertexAttrib3fNV" offset="assign"
- vectorequiv="VertexAttrib3fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib3fNV"
+ vectorequiv="VertexAttrib3fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="VertexAttrib3fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib3fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="4271"/>
</function>
- <function name="VertexAttrib4fNV" offset="assign"
- vectorequiv="VertexAttrib4fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib4fNV"
+ vectorequiv="VertexAttrib4fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
@@ -11964,39 +11799,38 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="VertexAttrib4fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib4fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="4272"/>
</function>
- <function name="VertexAttrib1dNV" offset="assign"
+ <function name="VertexAttrib1dNV"
vectorequiv="VertexAttrib1dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="VertexAttrib1dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib1dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="4273" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib2dNV" offset="assign"
+ <function name="VertexAttrib2dNV"
vectorequiv="VertexAttrib2dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="VertexAttrib2dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib2dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="4274" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib3dNV" offset="assign"
+ <function name="VertexAttrib3dNV"
vectorequiv="VertexAttrib3dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
@@ -12004,13 +11838,13 @@
<param name="z" type="GLdouble"/>
</function>
- <function name="VertexAttrib3dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib3dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="4275" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib4dNV" offset="assign"
+ <function name="VertexAttrib4dNV"
vectorequiv="VertexAttrib4dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
@@ -12019,13 +11853,13 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="VertexAttrib4dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib4dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="4276" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib4ubNV" offset="assign"
+ <function name="VertexAttrib4ubNV"
vectorequiv="VertexAttrib4ubvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLubyte"/>
@@ -12034,97 +11868,97 @@
<param name="w" type="GLubyte"/>
</function>
- <function name="VertexAttrib4ubvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib4ubvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="4277"/>
</function>
- <function name="VertexAttribs1svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs1svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n"/>
<glx rop="4202"/>
</function>
- <function name="VertexAttribs2svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs2svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n" count_scale="2"/>
<glx rop="4203"/>
</function>
- <function name="VertexAttribs3svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs3svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n" count_scale="3"/>
<glx rop="4204"/>
</function>
- <function name="VertexAttribs4svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n" count_scale="4"/>
<glx rop="4205"/>
</function>
- <function name="VertexAttribs1fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs1fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n"/>
<glx rop="4206"/>
</function>
- <function name="VertexAttribs2fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs2fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n" count_scale="2"/>
<glx rop="4207"/>
</function>
- <function name="VertexAttribs3fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs3fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n" count_scale="3"/>
<glx rop="4208"/>
</function>
- <function name="VertexAttribs4fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n" count_scale="4"/>
<glx rop="4209"/>
</function>
- <function name="VertexAttribs1dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs1dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n"/>
<glx rop="4210" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs2dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs2dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n" count_scale="2"/>
<glx rop="4211" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs3dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs3dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n" count_scale="3"/>
<glx rop="4212" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs4dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n" count_scale="4"/>
<glx rop="4213" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs4ubvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4ubvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLubyte *" count="n" count_scale="4"/>
@@ -12193,22 +12027,22 @@
<size name="GetTexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
</enum>
- <function name="TexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="TexBumpParameterfvATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="const GLfloat *" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="TexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="TexBumpParameterivATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="const GLint *" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="GetTexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="GetTexBumpParameterfvATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat *" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="GetTexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="GetTexBumpParameterivATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint *" variable_param="pname"/>
<glx ignore="true"/>
@@ -12327,45 +12161,45 @@
redudndant garbage. There are a lot of enums with the value 0x00000001.
-->
- <function name="GenFragmentShadersATI" offset="assign" deprecated="3.1">
+ <function name="GenFragmentShadersATI" deprecated="3.1">
<return type="GLuint"/>
<param name="range" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BindFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="BindFragmentShaderATI" deprecated="3.1">
<param name="id" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DeleteFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="DeleteFragmentShaderATI" deprecated="3.1">
<param name="id" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BeginFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="BeginFragmentShaderATI" deprecated="3.1">
<glx ignore="true"/>
</function>
- <function name="EndFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="EndFragmentShaderATI" deprecated="3.1">
<glx ignore="true"/>
</function>
- <function name="PassTexCoordATI" offset="assign" deprecated="3.1">
+ <function name="PassTexCoordATI" deprecated="3.1">
<param name="dst" type="GLuint"/>
<param name="coord" type="GLuint"/>
<param name="swizzle" type="GLenum"/>
<glx ignore="true"/>
</function>
- <function name="SampleMapATI" offset="assign" deprecated="3.1">
+ <function name="SampleMapATI" deprecated="3.1">
<param name="dst" type="GLuint"/>
<param name="interp" type="GLuint"/>
<param name="swizzle" type="GLenum"/>
<glx ignore="true"/>
</function>
- <function name="ColorFragmentOp1ATI" offset="assign" deprecated="3.1">
+ <function name="ColorFragmentOp1ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMask" type="GLuint"/>
@@ -12376,7 +12210,7 @@
<glx ignore="true"/>
</function>
- <function name="ColorFragmentOp2ATI" offset="assign" deprecated="3.1">
+ <function name="ColorFragmentOp2ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMask" type="GLuint"/>
@@ -12390,7 +12224,7 @@
<glx ignore="true"/>
</function>
- <function name="ColorFragmentOp3ATI" offset="assign" deprecated="3.1">
+ <function name="ColorFragmentOp3ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMask" type="GLuint"/>
@@ -12407,7 +12241,7 @@
<glx ignore="true"/>
</function>
- <function name="AlphaFragmentOp1ATI" offset="assign" deprecated="3.1">
+ <function name="AlphaFragmentOp1ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMod" type="GLuint"/>
@@ -12417,7 +12251,7 @@
<glx ignore="true"/>
</function>
- <function name="AlphaFragmentOp2ATI" offset="assign" deprecated="3.1">
+ <function name="AlphaFragmentOp2ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMod" type="GLuint"/>
@@ -12430,7 +12264,7 @@
<glx ignore="true"/>
</function>
- <function name="AlphaFragmentOp3ATI" offset="assign" deprecated="3.1">
+ <function name="AlphaFragmentOp3ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMod" type="GLuint"/>
@@ -12446,8 +12280,7 @@
<glx ignore="true"/>
</function>
- <function name="SetFragmentShaderConstantATI" offset="assign"
- deprecated="3.1">
+ <function name="SetFragmentShaderConstantATI" deprecated="3.1">
<param name="dst" type="GLuint"/>
<param name="value" type="const GLfloat *"/>
<glx ignore="true"/>
@@ -12547,8 +12380,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="ActiveStencilFaceEXT" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="ActiveStencilFaceEXT" deprecated="3.1">
<param name="face" type="GLenum"/>
<glx rop="4220"/>
</function>
@@ -12588,7 +12420,7 @@
<enum name="MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV" value="0x8868"/>
<enum name="PROGRAM_ERROR_STRING_NV" value="0x8874"/>
- <function name="ProgramNamedParameter4fNV" offset="assign"
+ <function name="ProgramNamedParameter4fNV"
vectorequiv="ProgramNamedParameter4fvNV" deprecated="3.1"
exec="skip">
<param name="id" type="GLuint"/>
@@ -12600,7 +12432,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramNamedParameter4dNV" offset="assign"
+ <function name="ProgramNamedParameter4dNV"
vectorequiv="ProgramNamedParameter4dvNV" deprecated="3.1"
exec="skip">
<param name="id" type="GLuint"/>
@@ -12612,8 +12444,7 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="ProgramNamedParameter4fvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="ProgramNamedParameter4fvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12621,8 +12452,7 @@
<glx rop="4218"/>
</function>
- <function name="ProgramNamedParameter4dvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="ProgramNamedParameter4dvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12630,8 +12460,7 @@
<glx rop="4219"/>
</function>
- <function name="GetProgramNamedParameterfvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="GetProgramNamedParameterfvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12639,8 +12468,7 @@
<glx vendorpriv="1310" always_array="true"/>
</function>
- <function name="GetProgramNamedParameterdvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="GetProgramNamedParameterdvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12684,7 +12512,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="DepthBoundsEXT" offset="assign" static_dispatch="false">
+ <function name="DepthBoundsEXT">
<param name="zmin" type="GLclampd"/>
<param name="zmax" type="GLclampd"/>
<glx rop="4229" ignore="true"/>
@@ -12705,7 +12533,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="BlendEquationSeparateEXT" static_dispatch="false" alias="BlendEquationSeparate">
+ <function name="BlendEquationSeparateEXT" alias="BlendEquationSeparate">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
@@ -12789,14 +12617,12 @@
<enum name="BUFFER_FLUSHING_UNMAP_APPLE" count="1" value="0x8A13">
<size name="GetBufferParameteriv" mode="get"/>
</enum>
- <function name="BufferParameteriAPPLE" offset="assign"
- static_dispatch="false" exec="skip">
+ <function name="BufferParameteriAPPLE" exec="skip">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="FlushMappedBufferRangeAPPLE" offset="assign"
- static_dispatch="false" exec="skip">
+ <function name="FlushMappedBufferRangeAPPLE" exec="skip">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr"/>
@@ -12875,7 +12701,7 @@
<enum name="POLYGON_OFFSET_CLAMP_EXT" value="0x8E1B">
<size name="Get" mode="get"/>
</enum>
- <function name="PolygonOffsetClampEXT" offset="assign">
+ <function name="PolygonOffsetClampEXT">
<param name="factor" type="GLfloat"/>
<param name="units" type="GLfloat"/>
<param name="clamp" type="GLfloat"/>
@@ -12885,7 +12711,7 @@
<!-- Unnumbered extensions sorted by name. -->
<category name="GL_ATI_blend_equation_separate">
- <function name="BlendEquationSeparateATI" alias="BlendEquationSeparate" static_dispatch="false">
+ <function name="BlendEquationSeparateATI" alias="BlendEquationSeparate">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
@@ -12905,14 +12731,13 @@
<size name="Get" mode="get"/>
</enum>
- <function name="StencilOpSeparateATI" alias="StencilOpSeparate" static_dispatch="false">
+ <function name="StencilOpSeparateATI" alias="StencilOpSeparate">
<param name="face" type="GLenum"/>
<param name="sfail" type="GLenum"/>
<param name="zfail" type="GLenum"/>
<param name="zpass" type="GLenum"/>
</function>
- <function name="StencilFuncSeparateATI" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="StencilFuncSeparateATI" deprecated="3.1">
<param name="frontfunc" type="GLenum"/>
<param name="backfunc" type="GLenum"/>
<param name="ref" type="GLint"/>
@@ -12922,16 +12747,14 @@
</category>
<category name="GL_EXT_gpu_program_parameters">
- <function name="ProgramEnvParameters4fvEXT" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="ProgramEnvParameters4fvEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ProgramLocalParameters4fvEXT" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="ProgramLocalParameters4fvEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
@@ -12943,12 +12766,12 @@
<enum name="TIME_ELAPSED_EXT" value="0x88BF"/>
<type name="int64EXT" size="8"/>
<type name="uint64EXT" unsigned="true" size="8"/>
- <function name="GetQueryObjecti64vEXT" static_dispatch="false" alias="GetQueryObjecti64v">
+ <function name="GetQueryObjecti64vEXT" alias="GetQueryObjecti64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64EXT *"/>
</function>
- <function name="GetQueryObjectui64vEXT" static_dispatch="false" alias="GetQueryObjectui64v">
+ <function name="GetQueryObjectui64vEXT" alias="GetQueryObjectui64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint64EXT *"/>
@@ -12956,7 +12779,7 @@
</category>
<category name="GL_INGR_blend_func_separate">
- <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparate" static_dispatch="false">
+ <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparate">
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
<param name="sfactorAlpha" type="GLenum"/>
@@ -12984,12 +12807,12 @@
<size name="PointParameterfv"/>
</enum>
- <function name="PointParameterfSGIS" alias="PointParameterf" static_dispatch="false">
+ <function name="PointParameterfSGIS" alias="PointParameterf">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
</function>
- <function name="PointParameterfvSGIS" alias="PointParameterfv" static_dispatch="false">
+ <function name="PointParameterfvSGIS" alias="PointParameterfv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py b/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py
index 23e23295b..fa6217e1b 100644
--- a/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py
+++ b/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py
@@ -25,9 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
import gl_XML, glX_XML
-import sys, getopt
class PrintGenericStubs(gl_XML.gl_print_base):
def __init__(self):
@@ -244,30 +245,24 @@ class PrintGenericStubs(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode]" % sys.argv[0]
- sys.exit(1)
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML description of an API.')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- mode = "generic"
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
+def main():
+ """Main function."""
+ args = _parser()
+ printer = PrintGenericStubs()
- for (arg,val) in args:
- if arg == '-m':
- mode = val
- elif arg == "-f":
- file_name = val
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
+ printer.Print(api)
- if mode == "generic":
- printer = PrintGenericStubs()
- else:
- print "ERROR: Invalid mode \"%s\" specified." % mode
- show_usage()
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
- printer.Print(api)
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_XML.py b/mesalib/src/mapi/glapi/gen/gl_XML.py
index 1a2bc2b91..67aba81a7 100644
--- a/mesalib/src/mapi/glapi/gen/gl_XML.py
+++ b/mesalib/src/mapi/glapi/gen/gl_XML.py
@@ -30,6 +30,7 @@ import xml.etree.ElementTree as ET
import re, sys, string
import os.path
import typeexpr
+import static_data
def parse_GL_API( file_name, factory = None ):
@@ -625,7 +626,7 @@ class gl_function( gl_item ):
# Decimal('1.1') }.
self.api_map = {}
- self.assign_offset = 0
+ self.assign_offset = False
self.static_entry_points = []
@@ -649,7 +650,7 @@ class gl_function( gl_item ):
name = element.get( "name" )
alias = element.get( "alias" )
- if is_attr_true(element, "static_dispatch", "true"):
+ if name in static_data.functions:
self.static_entry_points.append(name)
self.entry_points.append( name )
@@ -684,16 +685,11 @@ class gl_function( gl_item ):
# Only try to set the offset when a non-alias entry-point
# is being processed.
- offset = element.get( "offset" )
- if offset:
- try:
- o = int( offset )
- self.offset = o
- except Exception, e:
- self.offset = -1
- if offset == "assign":
- self.assign_offset = 1
-
+ if name in static_data.offsets:
+ self.offset = static_data.offsets[name]
+ else:
+ self.offset = -1
+ self.assign_offset = self.exec_flavor != "skip" or name in static_data.unused_functions
if not self.name:
self.name = true_name
diff --git a/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml b/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml
index d158a6b31..fc1528410 100644
--- a/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml
+++ b/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml
@@ -18,45 +18,45 @@
<type name="fixed" size="4" />
<type name="clampx" size="4" />
- <function name="AlphaFuncx" es1="1.0" desktop="false" offset="assign">
+ <function name="AlphaFuncx" es1="1.0" desktop="false">
<param name="func" type="GLenum"/>
<param name="ref" type="GLclampx"/>
</function>
- <function name="ClearColorx" es1="1.0" desktop="false" offset="assign">
+ <function name="ClearColorx" es1="1.0" desktop="false">
<param name="red" type="GLclampx"/>
<param name="green" type="GLclampx"/>
<param name="blue" type="GLclampx"/>
<param name="alpha" type="GLclampx"/>
</function>
- <function name="ClearDepthx" es1="1.0" desktop="false" offset="assign">
+ <function name="ClearDepthx" es1="1.0" desktop="false">
<param name="depth" type="GLclampx"/>
</function>
- <function name="Color4x" es1="1.0" desktop="false" offset="assign">
+ <function name="Color4x" es1="1.0" desktop="false">
<param name="red" type="GLfixed"/>
<param name="green" type="GLfixed"/>
<param name="blue" type="GLfixed"/>
<param name="alpha" type="GLfixed"/>
</function>
- <function name="DepthRangex" es1="1.0" desktop="false" offset="assign">
+ <function name="DepthRangex" es1="1.0" desktop="false">
<param name="zNear" type="GLclampx"/>
<param name="zFar" type="GLclampx"/>
</function>
- <function name="Fogx" es1="1.0" desktop="false" offset="assign">
+ <function name="Fogx" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Fogxv" es1="1.0" desktop="false" offset="assign">
+ <function name="Fogxv" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="Frustumx" es1="1.0" desktop="false" offset="assign">
+ <function name="Frustumx" es1="1.0" desktop="false">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -65,53 +65,53 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="LightModelx" es1="1.0" desktop="false" offset="assign">
+ <function name="LightModelx" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="LightModelxv" es1="1.0" desktop="false" offset="assign">
+ <function name="LightModelxv" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="Lightx" es1="1.0" desktop="false" offset="assign">
+ <function name="Lightx" es1="1.0" desktop="false">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Lightxv" es1="1.0" desktop="false" offset="assign">
+ <function name="Lightxv" es1="1.0" desktop="false">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="LineWidthx" es1="1.0" desktop="false" offset="assign">
+ <function name="LineWidthx" es1="1.0" desktop="false">
<param name="width" type="GLfixed"/>
</function>
- <function name="LoadMatrixx" es1="1.0" desktop="false" offset="assign">
+ <function name="LoadMatrixx" es1="1.0" desktop="false">
<param name="m" type="const GLfixed *" count="16"/>
</function>
- <function name="Materialx" es1="1.0" desktop="false" offset="assign">
+ <function name="Materialx" es1="1.0" desktop="false">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Materialxv" es1="1.0" desktop="false" offset="assign">
+ <function name="Materialxv" es1="1.0" desktop="false">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="MultMatrixx" es1="1.0" desktop="false" offset="assign">
+ <function name="MultMatrixx" es1="1.0" desktop="false">
<param name="m" type="const GLfixed *" count="16"/>
</function>
- <function name="MultiTexCoord4x" es1="1.0" desktop="false" offset="assign">
+ <function name="MultiTexCoord4x" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="s" type="GLfixed"/>
<param name="t" type="GLfixed"/>
@@ -119,13 +119,13 @@
<param name="q" type="GLfixed"/>
</function>
- <function name="Normal3x" es1="1.0" desktop="false" offset="assign">
+ <function name="Normal3x" es1="1.0" desktop="false">
<param name="nx" type="GLfixed"/>
<param name="ny" type="GLfixed"/>
<param name="nz" type="GLfixed"/>
</function>
- <function name="Orthox" es1="1.0" desktop="false" offset="assign">
+ <function name="Orthox" es1="1.0" desktop="false">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -134,59 +134,59 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="PointSizex" es1="1.0" desktop="false" offset="assign">
+ <function name="PointSizex" es1="1.0" desktop="false">
<param name="size" type="GLfixed"/>
</function>
- <function name="PolygonOffsetx" es1="1.0" desktop="false" offset="assign">
+ <function name="PolygonOffsetx" es1="1.0" desktop="false">
<param name="factor" type="GLfixed"/>
<param name="units" type="GLfixed"/>
</function>
- <function name="Rotatex" es1="1.0" desktop="false" offset="assign">
+ <function name="Rotatex" es1="1.0" desktop="false">
<param name="angle" type="GLfixed"/>
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="SampleCoveragex" es1="1.0" desktop="false" offset="assign">
+ <function name="SampleCoveragex" es1="1.0" desktop="false">
<param name="value" type="GLclampx"/>
<param name="invert" type="GLboolean"/>
</function>
- <function name="Scalex" es1="1.0" desktop="false" offset="assign">
+ <function name="Scalex" es1="1.0" desktop="false">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="TexEnvx" es1="1.0" desktop="false" offset="assign">
+ <function name="TexEnvx" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="TexEnvxv" es1="1.0" desktop="false" offset="assign">
+ <function name="TexEnvxv" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="TexParameterx" es1="1.0" desktop="false" offset="assign">
+ <function name="TexParameterx" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Translatex" es1="1.0" desktop="false" offset="assign">
+ <function name="Translatex" es1="1.0" desktop="false">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
<!-- from GL_OES_single_precision -->
- <function name="Frustumf" es1="1.0" desktop="false" offset="assign">
+ <function name="Frustumf" es1="1.0" desktop="false">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
@@ -195,7 +195,7 @@
<param name="zFar" type="GLfloat"/>
</function>
- <function name="Orthof" es1="1.0" desktop="false" offset="assign">
+ <function name="Orthof" es1="1.0" desktop="false">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
@@ -207,68 +207,68 @@
<category name="es1.1">
<!-- from GL_OES_fixed_point -->
- <function name="ClipPlanex" es1="1.1" desktop="false" offset="assign">
+ <function name="ClipPlanex" es1="1.1" desktop="false">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfixed *" count="4"/>
</function>
- <function name="GetClipPlanex" es1="1.1" offset="assign">
+ <function name="GetClipPlanex" es1="1.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfixed *" output="true" count="4"/>
</function>
- <function name="GetFixedv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetFixedv" es1="1.1" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetLightxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetLightxv" es1="1.1" desktop="false">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetMaterialxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetMaterialxv" es1="1.1" desktop="false">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetTexEnvxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetTexEnvxv" es1="1.1" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetTexParameterxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetTexParameterxv" es1="1.1" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="PointParameterx" es1="1.1" desktop="false" offset="assign">
+ <function name="PointParameterx" es1="1.1" desktop="false">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="PointParameterxv" es1="1.1" desktop="false" offset="assign">
+ <function name="PointParameterxv" es1="1.1" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="TexParameterxv" es1="1.1" desktop="false" offset="assign">
+ <function name="TexParameterxv" es1="1.1" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
<!-- from GL_OES_single_precision -->
- <function name="ClipPlanef" es1="1.1" desktop="false" offset="assign">
+ <function name="ClipPlanef" es1="1.1" desktop="false">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfloat *" count="4"/>
</function>
- <function name="GetClipPlanef" es1="1.1" offset="assign">
+ <function name="GetClipPlanef" es1="1.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfloat *" output="true" count="4"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/gl_apitemp.py b/mesalib/src/mapi/glapi/gen/gl_apitemp.py
index 4157032c5..5e985a2ec 100644
--- a/mesalib/src/mapi/glapi/gen/gl_apitemp.py
+++ b/mesalib/src/mapi/glapi/gen/gl_apitemp.py
@@ -25,9 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import gl_XML, glX_XML
import license
-import sys, getopt
class PrintGlOffsets(gl_XML.gl_print_base):
def __init__(self, es=False):
@@ -301,27 +302,30 @@ _glapi_proc UNUSED_TABLE_NAME[] = {"""
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-c]" % sys.argv[0]
- print "-c Enable compatibility with OpenGL ES."
- sys.exit(1)
-
-if __name__ == '__main__':
- file_name = "gl_API.xml"
+def _parser():
+ """Parser arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ metavar='<input file name>',
+ dest='filename',
+ default="gl_API.xml",
+ help="An XML file describing the API.")
+ parser.add_argument('-c',
+ action='store_true',
+ dest='es',
+ help="Enable OpenGL ES compatibility")
+ return parser.parse_args()
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:c")
- except Exception,e:
- show_usage()
- es = False
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-c":
- es = True
+def main():
+ """Main function."""
+ args = _parser()
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
- printer = PrintGlOffsets(es)
+ printer = PrintGlOffsets(args.es)
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_enums.py b/mesalib/src/mapi/glapi/gen/gl_enums.py
index f45782df8..955f27d08 100644
--- a/mesalib/src/mapi/glapi/gen/gl_enums.py
+++ b/mesalib/src/mapi/glapi/gen/gl_enums.py
@@ -1,8 +1,8 @@
#!/usr/bin/python2
# -*- Mode: Python; py-indent-offset: 8 -*-
-# (C) Copyright Zack Rusin 2005
-# All Rights Reserved.
+# (C) Copyright Zack Rusin 2005. All Rights Reserved.
+# Copyright (C) 2015 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -26,6 +26,8 @@
# Authors:
# Zack Rusin <zack@kde.org>
+import argparse
+
import license
import gl_XML
import sys, getopt
@@ -201,21 +203,21 @@ _mesa_lookup_prim_by_nr(GLuint nr)
enum.append( [name, priority] )
-def show_usage():
- print "Usage: %s [-f input_file_name]" % sys.argv[0]
- sys.exit(1)
+def _parser():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--input_file',
+ required=True,
+ help="Choose an xml file to parse.")
+ return parser.parse_args()
-if __name__ == '__main__':
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:")
- except Exception,e:
- show_usage()
- api_list = []
- for (arg,val) in args:
- if arg == "-f":
- api = gl_XML.parse_GL_API( val )
- api_list.append(api);
+def main():
+ args = _parser()
+ api_list = [gl_XML.parse_GL_API(args.input_file)]
printer = PrintGlEnums()
- printer.Print( api_list )
+ printer.Print(api_list)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_genexec.py b/mesalib/src/mapi/glapi/gen/gl_genexec.py
index 4e76fe3c2..26d8e7bfb 100644
--- a/mesalib/src/mapi/glapi/gen/gl_genexec.py
+++ b/mesalib/src/mapi/glapi/gen/gl_genexec.py
@@ -25,10 +25,12 @@
# _mesa_initialize_exec_table(). It is responsible for populating all
# entries in the "exec" dispatch table that aren't dynamic.
+import argparse
import collections
import license
import gl_XML
-import sys, getopt
+import sys
+import apiexec
exec_flavor_map = {
@@ -175,18 +177,49 @@ class PrintCode(gl_XML.gl_print_base):
raise Exception(
'Unrecognized exec flavor {0!r}'.format(f.exec_flavor))
condition_parts = []
- if f.desktop:
- if f.deprecated:
+ if f.name in apiexec.functions:
+ ex = apiexec.functions[f.name]
+ unconditional_count = 0
+
+ if ex.compatibility is not None:
condition_parts.append('ctx->API == API_OPENGL_COMPAT')
- else:
- condition_parts.append('_mesa_is_desktop_gl(ctx)')
- if 'es1' in f.api_map:
- condition_parts.append('ctx->API == API_OPENGLES')
- if 'es2' in f.api_map:
- if f.api_map['es2'] > 2.0:
- condition_parts.append('(ctx->API == API_OPENGLES2 && ctx->Version >= {0})'.format(int(f.api_map['es2'] * 10)))
- else:
- condition_parts.append('ctx->API == API_OPENGLES2')
+ unconditional_count += 1
+
+ if ex.core is not None:
+ condition_parts.append('ctx->API == API_OPENGL_CORE')
+ unconditional_count += 1
+
+ if ex.es1 is not None:
+ condition_parts.append('ctx->API == API_OPENGLES')
+ unconditional_count += 1
+
+ if ex.es2 is not None:
+ if ex.es2 > 20:
+ condition_parts.append('(ctx->API == API_OPENGLES2 && ctx->Version >= {0})'.format(ex.es2))
+ else:
+ condition_parts.append('ctx->API == API_OPENGLES2')
+ unconditional_count += 1
+
+ # If the function is unconditionally available in all four
+ # APIs, then it is always available. Replace the complex
+ # tautology condition with "true" and let GCC do the right
+ # thing.
+ if unconditional_count == 4:
+ condition_parts = ['true']
+ else:
+ if f.desktop:
+ if f.deprecated:
+ condition_parts.append('ctx->API == API_OPENGL_COMPAT')
+ else:
+ condition_parts.append('_mesa_is_desktop_gl(ctx)')
+ if 'es1' in f.api_map:
+ condition_parts.append('ctx->API == API_OPENGLES')
+ if 'es2' in f.api_map:
+ if f.api_map['es2'] > 2.0:
+ condition_parts.append('(ctx->API == API_OPENGLES2 && ctx->Version >= {0})'.format(int(f.api_map['es2'] * 10)))
+ else:
+ condition_parts.append('ctx->API == API_OPENGLES2')
+
if not condition_parts:
# This function does not exist in any API.
continue
@@ -207,24 +240,23 @@ class PrintCode(gl_XML.gl_print_base):
print ' }'
-def show_usage():
- print "Usage: %s [-f input_file_name]" % sys.argv[0]
- sys.exit(1)
-
+def _parser():
+ """Parse arguments and return namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_and_es_API.xml',
+ help='an xml file describing an API')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_and_es_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
-
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
+def main():
+ """Main function."""
+ args = _parser()
printer = PrintCode()
-
- api = gl_XML.parse_GL_API(file_name)
+ api = gl_XML.parse_GL_API(args.filename)
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_gentable.py b/mesalib/src/mapi/glapi/gen/gl_gentable.py
index 06a5ebf04..1b3eb7247 100644
--- a/mesalib/src/mapi/glapi/gen/gl_gentable.py
+++ b/mesalib/src/mapi/glapi/gen/gl_gentable.py
@@ -2,6 +2,7 @@
# (C) Copyright IBM Corporation 2004, 2005
# (C) Copyright Apple Inc. 2011
+# Copyright (C) 2015 Intel Corporation
# All Rights Reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
@@ -29,9 +30,10 @@
# Based on code ogiginally by:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
import gl_XML, glX_XML
-import sys, getopt
header = """/* GLXEXT is the define used in the xserver when the GLX extension is being
* built. Hijack this to determine whether this file is being built for the
@@ -186,23 +188,27 @@ class PrintCode(gl_XML.gl_print_base):
print body_template % vars
return
-def show_usage():
- print "Usage: %s [-f input_file_name]" % sys.argv[0]
- sys.exit(1)
-if __name__ == '__main__':
- file_name = "gl_API.xml"
+def _parser():
+ """Parse arguments and return a namespace object."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML file description of an API')
+
+ return parser.parse_args()
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
+def main():
+ """Main function."""
+ args = _parser()
printer = PrintCode()
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_procs.py b/mesalib/src/mapi/glapi/gen/gl_procs.py
index b1fffc4ca..685e2fac3 100644
--- a/mesalib/src/mapi/glapi/gen/gl_procs.py
+++ b/mesalib/src/mapi/glapi/gen/gl_procs.py
@@ -25,9 +25,12 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
-import gl_XML, glX_XML
-import sys, getopt
+import gl_XML
+import glX_XML
+
class PrintGlProcs(gl_XML.gl_print_base):
def __init__(self, es=False):
@@ -39,7 +42,6 @@ class PrintGlProcs(gl_XML.gl_print_base):
"""Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
(C) Copyright IBM Corporation 2004, 2006""", "BRIAN PAUL, IBM")
-
def printRealHeader(self):
print """
/* This file is only included by glapi.c and is used for
@@ -161,26 +163,28 @@ typedef struct {
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-c]" % sys.argv[0]
- print "-c Enable compatibility with OpenGL ES."
- sys.exit(1)
+def _parser():
+ """Parse arguments and return a namepsace."""
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--filename',
+ default='gl_API.xml',
+ metavar="input_file_name",
+ dest='file_name',
+ help="Path to an XML description of OpenGL API.")
+ parser.add_argument('-c', '--es-version',
+ dest='es',
+ action="store_true",
+ help="filter functions for es")
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+ api = gl_XML.parse_GL_API(args.file_name, glX_XML.glx_item_factory())
+ PrintGlProcs(args.es).Print(api)
+
if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:c")
- except Exception,e:
- show_usage()
-
- es = False
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-c":
- es = True
-
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
- printer = PrintGlProcs(es)
- printer.Print(api)
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_table.py b/mesalib/src/mapi/glapi/gen/gl_table.py
index fd384689f..3f0290230 100644
--- a/mesalib/src/mapi/glapi/gen/gl_table.py
+++ b/mesalib/src/mapi/glapi/gen/gl_table.py
@@ -2,6 +2,7 @@
# (C) Copyright IBM Corporation 2004
# All Rights Reserved.
+# Copyright (c) 2014 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -25,9 +26,11 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import gl_XML
import license
-import sys, getopt
+
class PrintGlTable(gl_XML.gl_print_base):
def __init__(self, es=False):
@@ -39,21 +42,20 @@ class PrintGlTable(gl_XML.gl_print_base):
self.license = license.bsd_license_template % ( \
"""Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
- self.ifdef_emitted = False;
+ self.ifdef_emitted = False
return
-
def printBody(self, api):
for f in api.functionIterateByOffset():
if not f.is_abi() and not self.ifdef_emitted:
print '#if !defined HAVE_SHARED_GLAPI'
self.ifdef_emitted = True
arg_string = f.get_parameter_string()
- print ' %s (GLAPIENTRYP %s)(%s); /* %d */' % (f.return_type, f.name, arg_string, f.offset)
+ print ' %s (GLAPIENTRYP %s)(%s); /* %d */' % (
+ f.return_type, f.name, arg_string, f.offset)
print '#endif /* !defined HAVE_SHARED_GLAPI */'
-
def printRealHeader(self):
print '#ifndef GLAPIENTRYP'
print '# ifndef GLAPIENTRY'
@@ -68,7 +70,6 @@ class PrintGlTable(gl_XML.gl_print_base):
print '{'
return
-
def printRealFooter(self):
print '};'
return
@@ -81,7 +82,8 @@ class PrintRemapTable(gl_XML.gl_print_base):
self.es = es
self.header_tag = '_DISPATCH_H_'
self.name = "gl_table.py (from Mesa)"
- self.license = license.bsd_license_template % ("(C) Copyright IBM Corporation 2005", "IBM")
+ self.license = license.bsd_license_template % (
+ "(C) Copyright IBM Corporation 2005", "IBM")
return
@@ -100,6 +102,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
"""
return
+
def printBody(self, api):
print '#define CALL_by_offset(disp, cast, offset, parameters) \\'
print ' (*(cast (GET_by_offset(disp, offset)))) parameters'
@@ -124,10 +127,10 @@ class PrintRemapTable(gl_XML.gl_print_base):
count = 0
for f in api.functionIterateByOffset():
if not f.is_abi():
- functions.append( [f, count] )
+ functions.append([f, count])
count += 1
else:
- abi_functions.append( [f, -1] )
+ abi_functions.append([f, -1])
if self.es:
# remember functions with aliases
@@ -165,7 +168,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
print ''
for f, index in abi_functions + functions:
- arg_string = gl_XML.create_parameter_string( f.parameters, 0 )
+ arg_string = gl_XML.create_parameter_string(f.parameters, 0)
print 'typedef %s (GLAPIENTRYP _glptr_%s)(%s);' % (f.return_type, f.name, arg_string)
print '#define CALL_%s(disp, parameters) \\' % (f.name)
@@ -199,40 +202,44 @@ class PrintRemapTable(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m mode] [-c ver]" % sys.argv[0]
- print " -m mode Mode can be 'table' or 'remap_table'."
- print " -c ver Version can be 'es1' or 'es2'."
- sys.exit(1)
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--filename',
+ default='gl_API.xml',
+ metavar="input_file_name",
+ dest='file_name',
+ help="Path to an XML description of OpenGL API.")
+ parser.add_argument('-m', '--mode',
+ choices=['table', 'remap_table'],
+ default='table',
+ metavar="mode",
+ help="Generate either a table or a remap_table")
+ parser.add_argument('-c', '--es-version',
+ choices=[None, 'es1', 'es2'],
+ default=None,
+ metavar="ver",
+ dest='es',
+ help="filter functions for es")
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ api = gl_XML.parse_GL_API(args.file_name)
+
+ if args.mode == "table":
+ printer = PrintGlTable(args.es)
+ elif args.mode == "remap_table":
+ printer = PrintRemapTable(args.es)
+
+ if args.es is not None:
+ api.filter_functions_by_api(args.es)
+
+ printer.Print(api)
+
if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:c:")
- except Exception,e:
- show_usage()
-
- mode = "table"
- es = None
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "-c":
- es = val
-
- if mode == "table":
- printer = PrintGlTable(es)
- elif mode == "remap_table":
- printer = PrintRemapTable(es)
- else:
- show_usage()
-
- api = gl_XML.parse_GL_API( file_name )
-
- if es is not None:
- api.filter_functions_by_api(es)
-
- printer.Print( api )
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py b/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py
index 7afc2b108..cf42371f8 100644
--- a/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py
+++ b/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py
@@ -25,9 +25,11 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+import copy
+
import license
import gl_XML, glX_XML
-import sys, getopt, copy
def should_use_push(registers):
for [reg, offset] in registers:
@@ -289,30 +291,25 @@ class PrintGenericStubs(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode]" % sys.argv[0]
- sys.exit(1)
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- mode = "generic"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
-
- for (arg,val) in args:
- if arg == '-m':
- mode = val
- elif arg == "-f":
- file_name = val
-
- if mode == "generic":
- printer = PrintGenericStubs()
- else:
- print "ERROR: Invalid mode \"%s\" specified." % mode
- show_usage()
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ default='gl_API.xml',
+ dest='filename',
+ help='An XML file describing an API')
+ return parser.parse_args()
+
+
+def main():
+ """Main file."""
+ args = _parser()
+ printer = PrintGenericStubs()
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_x86_asm.py b/mesalib/src/mapi/glapi/gen/gl_x86_asm.py
index f855dbaaa..c0c7941ce 100644
--- a/mesalib/src/mapi/glapi/gen/gl_x86_asm.py
+++ b/mesalib/src/mapi/glapi/gen/gl_x86_asm.py
@@ -25,9 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
import gl_XML, glX_XML
-import sys, getopt
class PrintGenericStubs(gl_XML.gl_print_base):
@@ -217,30 +218,22 @@ class PrintGenericStubs(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode]" % sys.argv[0]
- sys.exit(1)
+def _parser():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML file describing an API.')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- mode = "generic"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
-
- for (arg,val) in args:
- if arg == '-m':
- mode = val
- elif arg == "-f":
- file_name = val
-
- if mode == "generic":
- printer = PrintGenericStubs()
- else:
- print "ERROR: Invalid mode \"%s\" specified." % mode
- show_usage()
-
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+
+def main():
+ args = _parser()
+ printer = PrintGenericStubs()
+
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/remap_helper.py b/mesalib/src/mapi/glapi/gen/remap_helper.py
index e1a13d0b3..94ae1936d 100644
--- a/mesalib/src/mapi/glapi/gen/remap_helper.py
+++ b/mesalib/src/mapi/glapi/gen/remap_helper.py
@@ -24,9 +24,11 @@
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
-import gl_XML
+import argparse
+
import license
-import sys, getopt, string
+import gl_XML
+
def get_function_spec(func):
sig = ""
@@ -54,6 +56,7 @@ def get_function_spec(func):
return spec
+
class PrintGlRemap(gl_XML.gl_print_base):
def __init__(self):
gl_XML.gl_print_base.__init__(self)
@@ -163,30 +166,34 @@ class PrintGlRemap(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-c ver]" % sys.argv[0]
- print " -c ver Version can be 'es1' or 'es2'."
- sys.exit(1)
+def _parser():
+ """Parse input options and return a namsepace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--filename',
+ default="gl_API.xml",
+ metavar="input_file_name",
+ dest='file_name',
+ help="An xml description file.")
+ parser.add_argument('-c', '--es-version',
+ choices=[None, 'es1', 'es2'],
+ default=None,
+ metavar='ver',
+ dest='es',
+ help='A GLES version to support')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:c:")
- except Exception,e:
- show_usage()
+def main():
+ """Main function."""
+ args = _parser()
- es = None
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-c":
- es = val
+ api = gl_XML.parse_GL_API(args.file_name)
+ if args.es is not None:
+ api.filter_functions_by_api(args.es)
- api = gl_XML.parse_GL_API( file_name )
+ printer = PrintGlRemap()
+ printer.Print(api)
- if es is not None:
- api.filter_functions_by_api(es)
- printer = PrintGlRemap()
- printer.Print( api )
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/static_data.py b/mesalib/src/mapi/glapi/gen/static_data.py
new file mode 100644
index 000000000..142c503b0
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/static_data.py
@@ -0,0 +1,1729 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2015 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.
+
+"""Table of functions that have ABI-mandated offsets in the dispatch table.
+
+This list will never change."""
+offsets = {
+ "NewList": 0,
+ "EndList": 1,
+ "CallList": 2,
+ "CallLists": 3,
+ "DeleteLists": 4,
+ "GenLists": 5,
+ "ListBase": 6,
+ "Begin": 7,
+ "Bitmap": 8,
+ "Color3b": 9,
+ "Color3bv": 10,
+ "Color3d": 11,
+ "Color3dv": 12,
+ "Color3f": 13,
+ "Color3fv": 14,
+ "Color3i": 15,
+ "Color3iv": 16,
+ "Color3s": 17,
+ "Color3sv": 18,
+ "Color3ub": 19,
+ "Color3ubv": 20,
+ "Color3ui": 21,
+ "Color3uiv": 22,
+ "Color3us": 23,
+ "Color3usv": 24,
+ "Color4b": 25,
+ "Color4bv": 26,
+ "Color4d": 27,
+ "Color4dv": 28,
+ "Color4f": 29,
+ "Color4fv": 30,
+ "Color4i": 31,
+ "Color4iv": 32,
+ "Color4s": 33,
+ "Color4sv": 34,
+ "Color4ub": 35,
+ "Color4ubv": 36,
+ "Color4ui": 37,
+ "Color4uiv": 38,
+ "Color4us": 39,
+ "Color4usv": 40,
+ "EdgeFlag": 41,
+ "EdgeFlagv": 42,
+ "End": 43,
+ "Indexd": 44,
+ "Indexdv": 45,
+ "Indexf": 46,
+ "Indexfv": 47,
+ "Indexi": 48,
+ "Indexiv": 49,
+ "Indexs": 50,
+ "Indexsv": 51,
+ "Normal3b": 52,
+ "Normal3bv": 53,
+ "Normal3d": 54,
+ "Normal3dv": 55,
+ "Normal3f": 56,
+ "Normal3fv": 57,
+ "Normal3i": 58,
+ "Normal3iv": 59,
+ "Normal3s": 60,
+ "Normal3sv": 61,
+ "RasterPos2d": 62,
+ "RasterPos2dv": 63,
+ "RasterPos2f": 64,
+ "RasterPos2fv": 65,
+ "RasterPos2i": 66,
+ "RasterPos2iv": 67,
+ "RasterPos2s": 68,
+ "RasterPos2sv": 69,
+ "RasterPos3d": 70,
+ "RasterPos3dv": 71,
+ "RasterPos3f": 72,
+ "RasterPos3fv": 73,
+ "RasterPos3i": 74,
+ "RasterPos3iv": 75,
+ "RasterPos3s": 76,
+ "RasterPos3sv": 77,
+ "RasterPos4d": 78,
+ "RasterPos4dv": 79,
+ "RasterPos4f": 80,
+ "RasterPos4fv": 81,
+ "RasterPos4i": 82,
+ "RasterPos4iv": 83,
+ "RasterPos4s": 84,
+ "RasterPos4sv": 85,
+ "Rectd": 86,
+ "Rectdv": 87,
+ "Rectf": 88,
+ "Rectfv": 89,
+ "Recti": 90,
+ "Rectiv": 91,
+ "Rects": 92,
+ "Rectsv": 93,
+ "TexCoord1d": 94,
+ "TexCoord1dv": 95,
+ "TexCoord1f": 96,
+ "TexCoord1fv": 97,
+ "TexCoord1i": 98,
+ "TexCoord1iv": 99,
+ "TexCoord1s": 100,
+ "TexCoord1sv": 101,
+ "TexCoord2d": 102,
+ "TexCoord2dv": 103,
+ "TexCoord2f": 104,
+ "TexCoord2fv": 105,
+ "TexCoord2i": 106,
+ "TexCoord2iv": 107,
+ "TexCoord2s": 108,
+ "TexCoord2sv": 109,
+ "TexCoord3d": 110,
+ "TexCoord3dv": 111,
+ "TexCoord3f": 112,
+ "TexCoord3fv": 113,
+ "TexCoord3i": 114,
+ "TexCoord3iv": 115,
+ "TexCoord3s": 116,
+ "TexCoord3sv": 117,
+ "TexCoord4d": 118,
+ "TexCoord4dv": 119,
+ "TexCoord4f": 120,
+ "TexCoord4fv": 121,
+ "TexCoord4i": 122,
+ "TexCoord4iv": 123,
+ "TexCoord4s": 124,
+ "TexCoord4sv": 125,
+ "Vertex2d": 126,
+ "Vertex2dv": 127,
+ "Vertex2f": 128,
+ "Vertex2fv": 129,
+ "Vertex2i": 130,
+ "Vertex2iv": 131,
+ "Vertex2s": 132,
+ "Vertex2sv": 133,
+ "Vertex3d": 134,
+ "Vertex3dv": 135,
+ "Vertex3f": 136,
+ "Vertex3fv": 137,
+ "Vertex3i": 138,
+ "Vertex3iv": 139,
+ "Vertex3s": 140,
+ "Vertex3sv": 141,
+ "Vertex4d": 142,
+ "Vertex4dv": 143,
+ "Vertex4f": 144,
+ "Vertex4fv": 145,
+ "Vertex4i": 146,
+ "Vertex4iv": 147,
+ "Vertex4s": 148,
+ "Vertex4sv": 149,
+ "ClipPlane": 150,
+ "ColorMaterial": 151,
+ "CullFace": 152,
+ "Fogf": 153,
+ "Fogfv": 154,
+ "Fogi": 155,
+ "Fogiv": 156,
+ "FrontFace": 157,
+ "Hint": 158,
+ "Lightf": 159,
+ "Lightfv": 160,
+ "Lighti": 161,
+ "Lightiv": 162,
+ "LightModelf": 163,
+ "LightModelfv": 164,
+ "LightModeli": 165,
+ "LightModeliv": 166,
+ "LineStipple": 167,
+ "LineWidth": 168,
+ "Materialf": 169,
+ "Materialfv": 170,
+ "Materiali": 171,
+ "Materialiv": 172,
+ "PointSize": 173,
+ "PolygonMode": 174,
+ "PolygonStipple": 175,
+ "Scissor": 176,
+ "ShadeModel": 177,
+ "TexParameterf": 178,
+ "TexParameterfv": 179,
+ "TexParameteri": 180,
+ "TexParameteriv": 181,
+ "TexImage1D": 182,
+ "TexImage2D": 183,
+ "TexEnvf": 184,
+ "TexEnvfv": 185,
+ "TexEnvi": 186,
+ "TexEnviv": 187,
+ "TexGend": 188,
+ "TexGendv": 189,
+ "TexGenf": 190,
+ "TexGenfv": 191,
+ "TexGeni": 192,
+ "TexGeniv": 193,
+ "FeedbackBuffer": 194,
+ "SelectBuffer": 195,
+ "RenderMode": 196,
+ "InitNames": 197,
+ "LoadName": 198,
+ "PassThrough": 199,
+ "PopName": 200,
+ "PushName": 201,
+ "DrawBuffer": 202,
+ "Clear": 203,
+ "ClearAccum": 204,
+ "ClearIndex": 205,
+ "ClearColor": 206,
+ "ClearStencil": 207,
+ "ClearDepth": 208,
+ "StencilMask": 209,
+ "ColorMask": 210,
+ "DepthMask": 211,
+ "IndexMask": 212,
+ "Accum": 213,
+ "Disable": 214,
+ "Enable": 215,
+ "Finish": 216,
+ "Flush": 217,
+ "PopAttrib": 218,
+ "PushAttrib": 219,
+ "Map1d": 220,
+ "Map1f": 221,
+ "Map2d": 222,
+ "Map2f": 223,
+ "MapGrid1d": 224,
+ "MapGrid1f": 225,
+ "MapGrid2d": 226,
+ "MapGrid2f": 227,
+ "EvalCoord1d": 228,
+ "EvalCoord1dv": 229,
+ "EvalCoord1f": 230,
+ "EvalCoord1fv": 231,
+ "EvalCoord2d": 232,
+ "EvalCoord2dv": 233,
+ "EvalCoord2f": 234,
+ "EvalCoord2fv": 235,
+ "EvalMesh1": 236,
+ "EvalPoint1": 237,
+ "EvalMesh2": 238,
+ "EvalPoint2": 239,
+ "AlphaFunc": 240,
+ "BlendFunc": 241,
+ "LogicOp": 242,
+ "StencilFunc": 243,
+ "StencilOp": 244,
+ "DepthFunc": 245,
+ "PixelZoom": 246,
+ "PixelTransferf": 247,
+ "PixelTransferi": 248,
+ "PixelStoref": 249,
+ "PixelStorei": 250,
+ "PixelMapfv": 251,
+ "PixelMapuiv": 252,
+ "PixelMapusv": 253,
+ "ReadBuffer": 254,
+ "CopyPixels": 255,
+ "ReadPixels": 256,
+ "DrawPixels": 257,
+ "GetBooleanv": 258,
+ "GetClipPlane": 259,
+ "GetDoublev": 260,
+ "GetError": 261,
+ "GetFloatv": 262,
+ "GetIntegerv": 263,
+ "GetLightfv": 264,
+ "GetLightiv": 265,
+ "GetMapdv": 266,
+ "GetMapfv": 267,
+ "GetMapiv": 268,
+ "GetMaterialfv": 269,
+ "GetMaterialiv": 270,
+ "GetPixelMapfv": 271,
+ "GetPixelMapuiv": 272,
+ "GetPixelMapusv": 273,
+ "GetPolygonStipple": 274,
+ "GetString": 275,
+ "GetTexEnvfv": 276,
+ "GetTexEnviv": 277,
+ "GetTexGendv": 278,
+ "GetTexGenfv": 279,
+ "GetTexGeniv": 280,
+ "GetTexImage": 281,
+ "GetTexParameterfv": 282,
+ "GetTexParameteriv": 283,
+ "GetTexLevelParameterfv": 284,
+ "GetTexLevelParameteriv": 285,
+ "IsEnabled": 286,
+ "IsList": 287,
+ "DepthRange": 288,
+ "Frustum": 289,
+ "LoadIdentity": 290,
+ "LoadMatrixf": 291,
+ "LoadMatrixd": 292,
+ "MatrixMode": 293,
+ "MultMatrixf": 294,
+ "MultMatrixd": 295,
+ "Ortho": 296,
+ "PopMatrix": 297,
+ "PushMatrix": 298,
+ "Rotated": 299,
+ "Rotatef": 300,
+ "Scaled": 301,
+ "Scalef": 302,
+ "Translated": 303,
+ "Translatef": 304,
+ "Viewport": 305,
+ "ArrayElement": 306,
+ "ColorPointer": 308,
+ "DisableClientState": 309,
+ "DrawArrays": 310,
+ "DrawElements": 311,
+ "EdgeFlagPointer": 312,
+ "EnableClientState": 313,
+ "GetPointerv": 329,
+ "IndexPointer": 314,
+ "InterleavedArrays": 317,
+ "NormalPointer": 318,
+ "TexCoordPointer": 320,
+ "VertexPointer": 321,
+ "PolygonOffset": 319,
+ "CopyTexImage1D": 323,
+ "CopyTexImage2D": 324,
+ "CopyTexSubImage1D": 325,
+ "CopyTexSubImage2D": 326,
+ "TexSubImage1D": 332,
+ "TexSubImage2D": 333,
+ "AreTexturesResident": 322,
+ "BindTexture": 307,
+ "DeleteTextures": 327,
+ "GenTextures": 328,
+ "IsTexture": 330,
+ "PrioritizeTextures": 331,
+ "Indexub": 315,
+ "Indexubv": 316,
+ "PopClientAttrib": 334,
+ "PushClientAttrib": 335,
+ "BlendColor": 336,
+ "BlendEquation": 337,
+ "DrawRangeElements": 338,
+ "ColorTable": 339,
+ "ColorTableParameterfv": 340,
+ "ColorTableParameteriv": 341,
+ "CopyColorTable": 342,
+ "GetColorTable": 343,
+ "GetColorTableParameterfv": 344,
+ "GetColorTableParameteriv": 345,
+ "ColorSubTable": 346,
+ "CopyColorSubTable": 347,
+ "ConvolutionFilter1D": 348,
+ "ConvolutionFilter2D": 349,
+ "ConvolutionParameterf": 350,
+ "ConvolutionParameterfv": 351,
+ "ConvolutionParameteri": 352,
+ "ConvolutionParameteriv": 353,
+ "CopyConvolutionFilter1D": 354,
+ "CopyConvolutionFilter2D": 355,
+ "GetConvolutionFilter": 356,
+ "GetConvolutionParameterfv": 357,
+ "GetConvolutionParameteriv": 358,
+ "GetSeparableFilter": 359,
+ "SeparableFilter2D": 360,
+ "GetHistogram": 361,
+ "GetHistogramParameterfv": 362,
+ "GetHistogramParameteriv": 363,
+ "GetMinmax": 364,
+ "GetMinmaxParameterfv": 365,
+ "GetMinmaxParameteriv": 366,
+ "Histogram": 367,
+ "Minmax": 368,
+ "ResetHistogram": 369,
+ "ResetMinmax": 370,
+ "TexImage3D": 371,
+ "TexSubImage3D": 372,
+ "CopyTexSubImage3D": 373,
+ "ActiveTexture": 374,
+ "ClientActiveTexture": 375,
+ "MultiTexCoord1d": 376,
+ "MultiTexCoord1dv": 377,
+ "MultiTexCoord1fARB": 378,
+ "MultiTexCoord1fvARB": 379,
+ "MultiTexCoord1i": 380,
+ "MultiTexCoord1iv": 381,
+ "MultiTexCoord1s": 382,
+ "MultiTexCoord1sv": 383,
+ "MultiTexCoord2d": 384,
+ "MultiTexCoord2dv": 385,
+ "MultiTexCoord2fARB": 386,
+ "MultiTexCoord2fvARB": 387,
+ "MultiTexCoord2i": 388,
+ "MultiTexCoord2iv": 389,
+ "MultiTexCoord2s": 390,
+ "MultiTexCoord2sv": 391,
+ "MultiTexCoord3d": 392,
+ "MultiTexCoord3dv": 393,
+ "MultiTexCoord3fARB": 394,
+ "MultiTexCoord3fvARB": 395,
+ "MultiTexCoord3i": 396,
+ "MultiTexCoord3iv": 397,
+ "MultiTexCoord3s": 398,
+ "MultiTexCoord3sv": 399,
+ "MultiTexCoord4d": 400,
+ "MultiTexCoord4dv": 401,
+ "MultiTexCoord4fARB": 402,
+ "MultiTexCoord4fvARB": 403,
+ "MultiTexCoord4i": 404,
+ "MultiTexCoord4iv": 405,
+ "MultiTexCoord4s": 406,
+ "MultiTexCoord4sv": 407
+}
+
+functions = [
+ "Accum",
+ "ActiveTexture",
+ "ActiveTextureARB",
+ "AlphaFunc",
+ "AlphaFuncx",
+ "AreTexturesResident",
+ "AreTexturesResidentEXT",
+ "ArrayElement",
+ "ArrayElementEXT",
+ "AttachObjectARB",
+ "AttachShader",
+ "Begin",
+ "BeginConditionalRender",
+ "BeginConditionalRenderNV",
+ "BeginQuery",
+ "BeginQueryARB",
+ "BeginQueryIndexed",
+ "BeginTransformFeedback",
+ "BindAttribLocation",
+ "BindAttribLocationARB",
+ "BindBuffer",
+ "BindBufferARB",
+ "BindBufferBase",
+ "BindBufferRange",
+ "BindBuffersBase",
+ "BindBuffersRange",
+ "BindFragDataLocation",
+ "BindFragDataLocationEXT",
+ "BindFragDataLocationIndexed",
+ "BindFramebuffer",
+ "BindFramebufferEXT",
+ "BindImageTexture",
+ "BindImageTextures",
+ "BindProgramARB",
+ "BindRenderbuffer",
+ "BindRenderbufferEXT",
+ "BindSampler",
+ "BindSamplers",
+ "BindTexture",
+ "BindTextureEXT",
+ "BindTextures",
+ "BindTransformFeedback",
+ "BindVertexArray",
+ "BindVertexBuffer",
+ "BindVertexBuffers",
+ "Bitmap",
+ "BlendColor",
+ "BlendColorEXT",
+ "BlendEquation",
+ "BlendEquationEXT",
+ "BlendEquationiARB",
+ "BlendEquationSeparate",
+ "BlendEquationSeparateiARB",
+ "BlendFunc",
+ "BlendFunciARB",
+ "BlendFuncSeparate",
+ "BlendFuncSeparateEXT",
+ "BlendFuncSeparateiARB",
+ "BlitFramebuffer",
+ "BufferData",
+ "BufferDataARB",
+ "BufferStorage",
+ "BufferSubData",
+ "BufferSubDataARB",
+ "CallList",
+ "CallLists",
+ "CheckFramebufferStatus",
+ "CheckFramebufferStatusEXT",
+ "ClampColor",
+ "ClampColorARB",
+ "Clear",
+ "ClearAccum",
+ "ClearBufferData",
+ "ClearBufferfi",
+ "ClearBufferfv",
+ "ClearBufferiv",
+ "ClearBufferSubData",
+ "ClearBufferuiv",
+ "ClearColor",
+ "ClearColorIiEXT",
+ "ClearColorIuiEXT",
+ "ClearColorx",
+ "ClearDepth",
+ "ClearDepthf",
+ "ClearDepthx",
+ "ClearIndex",
+ "ClearStencil",
+ "ClearTexImage",
+ "ClearTexSubImage",
+ "ClientActiveTexture",
+ "ClientActiveTextureARB",
+ "ClientWaitSync",
+ "ClipPlane",
+ "ClipPlanef",
+ "ClipPlanex",
+ "Color3b",
+ "Color3bv",
+ "Color3d",
+ "Color3dv",
+ "Color3f",
+ "Color3fv",
+ "Color3i",
+ "Color3iv",
+ "Color3s",
+ "Color3sv",
+ "Color3ub",
+ "Color3ubv",
+ "Color3ui",
+ "Color3uiv",
+ "Color3us",
+ "Color3usv",
+ "Color4b",
+ "Color4bv",
+ "Color4d",
+ "Color4dv",
+ "Color4f",
+ "Color4fv",
+ "Color4i",
+ "Color4iv",
+ "Color4s",
+ "Color4sv",
+ "Color4ub",
+ "Color4ubv",
+ "Color4ui",
+ "Color4uiv",
+ "Color4us",
+ "Color4usv",
+ "Color4x",
+ "ColorMask",
+ "ColorMaski",
+ "ColorMaskIndexedEXT",
+ "ColorMaterial",
+ "ColorP3ui",
+ "ColorP3uiv",
+ "ColorP4ui",
+ "ColorP4uiv",
+ "ColorPointer",
+ "ColorPointerEXT",
+ "ColorSubTable",
+ "ColorTable",
+ "ColorTableParameterfv",
+ "ColorTableParameteriv",
+ "CompileShader",
+ "CompileShaderARB",
+ "CompressedTexImage1D",
+ "CompressedTexImage1DARB",
+ "CompressedTexImage2D",
+ "CompressedTexImage2DARB",
+ "CompressedTexImage3D",
+ "CompressedTexImage3DARB",
+ "CompressedTexSubImage1D",
+ "CompressedTexSubImage1DARB",
+ "CompressedTexSubImage2D",
+ "CompressedTexSubImage2DARB",
+ "CompressedTexSubImage3D",
+ "CompressedTexSubImage3DARB",
+ "ConvolutionFilter1D",
+ "ConvolutionFilter2D",
+ "ConvolutionParameterf",
+ "ConvolutionParameterfv",
+ "ConvolutionParameteri",
+ "ConvolutionParameteriv",
+ "CopyBufferSubData",
+ "CopyColorSubTable",
+ "CopyColorTable",
+ "CopyConvolutionFilter1D",
+ "CopyConvolutionFilter2D",
+ "CopyImageSubData",
+ "CopyPixels",
+ "CopyTexImage1D",
+ "CopyTexImage2D",
+ "CopyTexSubImage1D",
+ "CopyTexSubImage2D",
+ "CopyTexSubImage3D",
+ "CopyTexSubImage3DEXT",
+ "CreateProgram",
+ "CreateProgramObjectARB",
+ "CreateShader",
+ "CreateShaderObjectARB",
+ "CullFace",
+ "DebugMessageCallback",
+ "DebugMessageCallbackARB",
+ "DebugMessageControl",
+ "DebugMessageControlARB",
+ "DebugMessageInsert",
+ "DebugMessageInsertARB",
+ "DeleteBuffers",
+ "DeleteBuffersARB",
+ "DeleteFramebuffers",
+ "DeleteFramebuffersEXT",
+ "DeleteLists",
+ "DeleteObjectARB",
+ "DeleteProgram",
+ "DeleteProgramsARB",
+ "DeleteQueries",
+ "DeleteQueriesARB",
+ "DeleteRenderbuffers",
+ "DeleteRenderbuffersEXT",
+ "DeleteSamplers",
+ "DeleteShader",
+ "DeleteSync",
+ "DeleteTextures",
+ "DeleteTexturesEXT",
+ "DeleteTransformFeedbacks",
+ "DeleteVertexArrays",
+ "DepthFunc",
+ "DepthMask",
+ "DepthRange",
+ "DepthRangeArrayv",
+ "DepthRangef",
+ "DepthRangeIndexed",
+ "DepthRangex",
+ "DetachObjectARB",
+ "DetachShader",
+ "Disable",
+ "DisableClientState",
+ "Disablei",
+ "DisableIndexedEXT",
+ "DisableVertexAttribArray",
+ "DisableVertexAttribArrayARB",
+ "DispatchCompute",
+ "DispatchComputeIndirect",
+ "DrawArrays",
+ "DrawArraysEXT",
+ "DrawArraysIndirect",
+ "DrawArraysInstanced",
+ "DrawArraysInstancedARB",
+ "DrawArraysInstancedBaseInstance",
+ "DrawArraysInstancedEXT",
+ "DrawBuffer",
+ "DrawBuffers",
+ "DrawBuffersARB",
+ "DrawBuffersATI",
+ "DrawElements",
+ "DrawElementsBaseVertex",
+ "DrawElementsIndirect",
+ "DrawElementsInstanced",
+ "DrawElementsInstancedARB",
+ "DrawElementsInstancedBaseInstance",
+ "DrawElementsInstancedBaseVertex",
+ "DrawElementsInstancedBaseVertexBaseInstance",
+ "DrawElementsInstancedEXT",
+ "DrawPixels",
+ "DrawRangeElements",
+ "DrawRangeElementsBaseVertex",
+ "DrawRangeElementsEXT",
+ "DrawTransformFeedback",
+ "DrawTransformFeedbackInstanced",
+ "DrawTransformFeedbackStream",
+ "DrawTransformFeedbackStreamInstanced",
+ "EdgeFlag",
+ "EdgeFlagPointer",
+ "EdgeFlagPointerEXT",
+ "EdgeFlagv",
+ "Enable",
+ "EnableClientState",
+ "Enablei",
+ "EnableIndexedEXT",
+ "EnableVertexAttribArray",
+ "EnableVertexAttribArrayARB",
+ "End",
+ "EndConditionalRender",
+ "EndConditionalRenderNV",
+ "EndList",
+ "EndQuery",
+ "EndQueryARB",
+ "EndQueryIndexed",
+ "EndTransformFeedback",
+ "EvalCoord1d",
+ "EvalCoord1dv",
+ "EvalCoord1f",
+ "EvalCoord1fv",
+ "EvalCoord2d",
+ "EvalCoord2dv",
+ "EvalCoord2f",
+ "EvalCoord2fv",
+ "EvalMesh1",
+ "EvalMesh2",
+ "EvalPoint1",
+ "EvalPoint2",
+ "FeedbackBuffer",
+ "FenceSync",
+ "Finish",
+ "Flush",
+ "FlushMappedBufferRange",
+ "FogCoordd",
+ "FogCoorddEXT",
+ "FogCoorddv",
+ "FogCoorddvEXT",
+ "FogCoordf",
+ "FogCoordfEXT",
+ "FogCoordfv",
+ "FogCoordfvEXT",
+ "FogCoordPointer",
+ "FogCoordPointerEXT",
+ "Fogf",
+ "Fogfv",
+ "Fogi",
+ "Fogiv",
+ "Fogx",
+ "Fogxv",
+ "FramebufferRenderbuffer",
+ "FramebufferRenderbufferEXT",
+ "FramebufferTexture",
+ "FramebufferTexture1D",
+ "FramebufferTexture1DEXT",
+ "FramebufferTexture2D",
+ "FramebufferTexture2DEXT",
+ "FramebufferTexture3D",
+ "FramebufferTexture3DEXT",
+ "FramebufferTextureARB",
+ "FramebufferTextureLayer",
+ "FramebufferTextureLayerARB",
+ "FramebufferTextureLayerEXT",
+ "FrontFace",
+ "Frustum",
+ "Frustumf",
+ "Frustumx",
+ "GenBuffers",
+ "GenBuffersARB",
+ "GenerateMipmap",
+ "GenerateMipmapEXT",
+ "GenFramebuffers",
+ "GenFramebuffersEXT",
+ "GenLists",
+ "GenProgramsARB",
+ "GenQueries",
+ "GenQueriesARB",
+ "GenRenderbuffers",
+ "GenRenderbuffersEXT",
+ "GenSamplers",
+ "GenTextures",
+ "GenTexturesEXT",
+ "GenTransformFeedbacks",
+ "GenVertexArrays",
+ "GetActiveAtomicCounterBufferiv",
+ "GetActiveAttrib",
+ "GetActiveAttribARB",
+ "GetActiveUniform",
+ "GetActiveUniformARB",
+ "GetActiveUniformBlockiv",
+ "GetActiveUniformBlockName",
+ "GetActiveUniformName",
+ "GetActiveUniformsiv",
+ "GetAttachedObjectsARB",
+ "GetAttachedShaders",
+ "GetAttribLocation",
+ "GetAttribLocationARB",
+ "GetBooleanIndexedvEXT",
+ "GetBooleani_v",
+ "GetBooleanv",
+ "GetBufferParameteri64v",
+ "GetBufferParameteriv",
+ "GetBufferParameterivARB",
+ "GetBufferPointerv",
+ "GetBufferPointervARB",
+ "GetBufferSubData",
+ "GetBufferSubDataARB",
+ "GetClipPlane",
+ "GetClipPlanef",
+ "GetClipPlanex",
+ "GetColorTable",
+ "GetColorTableParameterfv",
+ "GetColorTableParameteriv",
+ "GetCompressedTexImage",
+ "GetCompressedTexImageARB",
+ "GetConvolutionFilter",
+ "GetConvolutionParameterfv",
+ "GetConvolutionParameteriv",
+ "GetDebugMessageLog",
+ "GetDebugMessageLogARB",
+ "GetDoublei_v",
+ "GetDoublev",
+ "GetError",
+ "GetFixedv",
+ "GetFloati_v",
+ "GetFloatv",
+ "GetFragDataIndex",
+ "GetFragDataLocation",
+ "GetFragDataLocationEXT",
+ "GetFramebufferAttachmentParameteriv",
+ "GetFramebufferAttachmentParameterivEXT",
+ "GetGraphicsResetStatusARB",
+ "GetHandleARB",
+ "GetHistogram",
+ "GetHistogramParameterfv",
+ "GetHistogramParameteriv",
+ "GetInfoLogARB",
+ "GetInteger64i_v",
+ "GetInteger64v",
+ "GetIntegerIndexedvEXT",
+ "GetIntegeri_v",
+ "GetIntegerv",
+ "GetLightfv",
+ "GetLightiv",
+ "GetLightxv",
+ "GetMapdv",
+ "GetMapfv",
+ "GetMapiv",
+ "GetMaterialfv",
+ "GetMaterialiv",
+ "GetMaterialxv",
+ "GetMinmax",
+ "GetMinmaxParameterfv",
+ "GetMinmaxParameteriv",
+ "GetMultisamplefv",
+ "GetnColorTableARB",
+ "GetnCompressedTexImageARB",
+ "GetnConvolutionFilterARB",
+ "GetnHistogramARB",
+ "GetnMapdvARB",
+ "GetnMapfvARB",
+ "GetnMapivARB",
+ "GetnMinmaxARB",
+ "GetnPixelMapfvARB",
+ "GetnPixelMapuivARB",
+ "GetnPixelMapusvARB",
+ "GetnPolygonStippleARB",
+ "GetnSeparableFilterARB",
+ "GetnTexImageARB",
+ "GetnUniformdvARB",
+ "GetnUniformfvARB",
+ "GetnUniformivARB",
+ "GetnUniformuivARB",
+ "GetObjectLabel",
+ "GetObjectParameterfvARB",
+ "GetObjectParameterivARB",
+ "GetObjectPtrLabel",
+ "GetPixelMapfv",
+ "GetPixelMapuiv",
+ "GetPixelMapusv",
+ "GetPointerv",
+ "GetPointervEXT",
+ "GetPolygonStipple",
+ "GetProgramBinary",
+ "GetProgramEnvParameterdvARB",
+ "GetProgramEnvParameterfvARB",
+ "GetProgramInfoLog",
+ "GetProgramiv",
+ "GetProgramivARB",
+ "GetProgramLocalParameterdvARB",
+ "GetProgramLocalParameterfvARB",
+ "GetProgramStringARB",
+ "GetQueryIndexediv",
+ "GetQueryiv",
+ "GetQueryivARB",
+ "GetQueryObjectiv",
+ "GetQueryObjectivARB",
+ "GetQueryObjectuiv",
+ "GetQueryObjectuivARB",
+ "GetRenderbufferParameteriv",
+ "GetRenderbufferParameterivEXT",
+ "GetSamplerParameterfv",
+ "GetSamplerParameterIiv",
+ "GetSamplerParameterIuiv",
+ "GetSamplerParameteriv",
+ "GetSeparableFilter",
+ "GetShaderInfoLog",
+ "GetShaderiv",
+ "GetShaderPrecisionFormat",
+ "GetShaderSource",
+ "GetShaderSourceARB",
+ "GetString",
+ "GetStringi",
+ "GetSynciv",
+ "GetTexEnvfv",
+ "GetTexEnviv",
+ "GetTexEnvxv",
+ "GetTexGendv",
+ "GetTexGenfv",
+ "GetTexGeniv",
+ "GetTexImage",
+ "GetTexLevelParameterfv",
+ "GetTexLevelParameteriv",
+ "GetTexParameterfv",
+ "GetTexParameterIiv",
+ "GetTexParameterIivEXT",
+ "GetTexParameterIuiv",
+ "GetTexParameterIuivEXT",
+ "GetTexParameteriv",
+ "GetTexParameterxv",
+ "GetTransformFeedbackVarying",
+ "GetUniformBlockIndex",
+ "GetUniformfv",
+ "GetUniformfvARB",
+ "GetUniformIndices",
+ "GetUniformiv",
+ "GetUniformivARB",
+ "GetUniformLocation",
+ "GetUniformLocationARB",
+ "GetUniformuiv",
+ "GetUniformuivEXT",
+ "GetVertexAttribdv",
+ "GetVertexAttribdvARB",
+ "GetVertexAttribfv",
+ "GetVertexAttribfvARB",
+ "GetVertexAttribIiv",
+ "GetVertexAttribIivEXT",
+ "GetVertexAttribIuiv",
+ "GetVertexAttribIuivEXT",
+ "GetVertexAttribiv",
+ "GetVertexAttribivARB",
+ "GetVertexAttribPointerv",
+ "GetVertexAttribPointervARB",
+ "Hint",
+ "Histogram",
+ "Indexd",
+ "Indexdv",
+ "Indexf",
+ "Indexfv",
+ "Indexi",
+ "Indexiv",
+ "IndexMask",
+ "IndexPointer",
+ "IndexPointerEXT",
+ "Indexs",
+ "Indexsv",
+ "Indexub",
+ "Indexubv",
+ "InitNames",
+ "InterleavedArrays",
+ "InvalidateBufferData",
+ "InvalidateBufferSubData",
+ "InvalidateFramebuffer",
+ "InvalidateSubFramebuffer",
+ "InvalidateTexImage",
+ "InvalidateTexSubImage",
+ "IsBuffer",
+ "IsBufferARB",
+ "IsEnabled",
+ "IsEnabledi",
+ "IsEnabledIndexedEXT",
+ "IsFramebuffer",
+ "IsFramebufferEXT",
+ "IsList",
+ "IsProgram",
+ "IsProgramARB",
+ "IsQuery",
+ "IsQueryARB",
+ "IsRenderbuffer",
+ "IsRenderbufferEXT",
+ "IsSampler",
+ "IsShader",
+ "IsSync",
+ "IsTexture",
+ "IsTextureEXT",
+ "IsTransformFeedback",
+ "IsVertexArray",
+ "Lightf",
+ "Lightfv",
+ "Lighti",
+ "Lightiv",
+ "LightModelf",
+ "LightModelfv",
+ "LightModeli",
+ "LightModeliv",
+ "LightModelx",
+ "LightModelxv",
+ "Lightx",
+ "Lightxv",
+ "LineStipple",
+ "LineWidth",
+ "LineWidthx",
+ "LinkProgram",
+ "LinkProgramARB",
+ "ListBase",
+ "LoadIdentity",
+ "LoadMatrixd",
+ "LoadMatrixf",
+ "LoadMatrixx",
+ "LoadName",
+ "LoadTransposeMatrixd",
+ "LoadTransposeMatrixdARB",
+ "LoadTransposeMatrixf",
+ "LoadTransposeMatrixfARB",
+ "LockArraysEXT",
+ "LogicOp",
+ "Map1d",
+ "Map1f",
+ "Map2d",
+ "Map2f",
+ "MapBuffer",
+ "MapBufferARB",
+ "MapBufferRange",
+ "MapGrid1d",
+ "MapGrid1f",
+ "MapGrid2d",
+ "MapGrid2f",
+ "Materialf",
+ "Materialfv",
+ "Materiali",
+ "Materialiv",
+ "Materialx",
+ "Materialxv",
+ "MatrixMode",
+ "MemoryBarrier",
+ "Minmax",
+ "MinSampleShading",
+ "MinSampleShadingARB",
+ "MultiDrawArrays",
+ "MultiDrawArraysEXT",
+ "MultiDrawArraysIndirect",
+ "MultiDrawElements",
+ "MultiDrawElementsBaseVertex",
+ "MultiDrawElementsEXT",
+ "MultiDrawElementsIndirect",
+ "MultiTexCoord1d",
+ "MultiTexCoord1dARB",
+ "MultiTexCoord1dv",
+ "MultiTexCoord1dvARB",
+ "MultiTexCoord1f",
+ "MultiTexCoord1fARB",
+ "MultiTexCoord1fv",
+ "MultiTexCoord1fvARB",
+ "MultiTexCoord1i",
+ "MultiTexCoord1iARB",
+ "MultiTexCoord1iv",
+ "MultiTexCoord1ivARB",
+ "MultiTexCoord1s",
+ "MultiTexCoord1sARB",
+ "MultiTexCoord1sv",
+ "MultiTexCoord1svARB",
+ "MultiTexCoord2d",
+ "MultiTexCoord2dARB",
+ "MultiTexCoord2dv",
+ "MultiTexCoord2dvARB",
+ "MultiTexCoord2f",
+ "MultiTexCoord2fARB",
+ "MultiTexCoord2fv",
+ "MultiTexCoord2fvARB",
+ "MultiTexCoord2i",
+ "MultiTexCoord2iARB",
+ "MultiTexCoord2iv",
+ "MultiTexCoord2ivARB",
+ "MultiTexCoord2s",
+ "MultiTexCoord2sARB",
+ "MultiTexCoord2sv",
+ "MultiTexCoord2svARB",
+ "MultiTexCoord3d",
+ "MultiTexCoord3dARB",
+ "MultiTexCoord3dv",
+ "MultiTexCoord3dvARB",
+ "MultiTexCoord3f",
+ "MultiTexCoord3fARB",
+ "MultiTexCoord3fv",
+ "MultiTexCoord3fvARB",
+ "MultiTexCoord3i",
+ "MultiTexCoord3iARB",
+ "MultiTexCoord3iv",
+ "MultiTexCoord3ivARB",
+ "MultiTexCoord3s",
+ "MultiTexCoord3sARB",
+ "MultiTexCoord3sv",
+ "MultiTexCoord3svARB",
+ "MultiTexCoord4d",
+ "MultiTexCoord4dARB",
+ "MultiTexCoord4dv",
+ "MultiTexCoord4dvARB",
+ "MultiTexCoord4f",
+ "MultiTexCoord4fARB",
+ "MultiTexCoord4fv",
+ "MultiTexCoord4fvARB",
+ "MultiTexCoord4i",
+ "MultiTexCoord4iARB",
+ "MultiTexCoord4iv",
+ "MultiTexCoord4ivARB",
+ "MultiTexCoord4s",
+ "MultiTexCoord4sARB",
+ "MultiTexCoord4sv",
+ "MultiTexCoord4svARB",
+ "MultiTexCoord4x",
+ "MultiTexCoordP1ui",
+ "MultiTexCoordP1uiv",
+ "MultiTexCoordP2ui",
+ "MultiTexCoordP2uiv",
+ "MultiTexCoordP3ui",
+ "MultiTexCoordP3uiv",
+ "MultiTexCoordP4ui",
+ "MultiTexCoordP4uiv",
+ "MultMatrixd",
+ "MultMatrixf",
+ "MultMatrixx",
+ "MultTransposeMatrixd",
+ "MultTransposeMatrixdARB",
+ "MultTransposeMatrixf",
+ "MultTransposeMatrixfARB",
+ "NewList",
+ "Normal3b",
+ "Normal3bv",
+ "Normal3d",
+ "Normal3dv",
+ "Normal3f",
+ "Normal3fv",
+ "Normal3i",
+ "Normal3iv",
+ "Normal3s",
+ "Normal3sv",
+ "Normal3x",
+ "NormalP3ui",
+ "NormalP3uiv",
+ "NormalPointer",
+ "NormalPointerEXT",
+ "ObjectLabel",
+ "ObjectPtrLabel",
+ "Ortho",
+ "Orthof",
+ "Orthox",
+ "PassThrough",
+ "PauseTransformFeedback",
+ "PixelMapfv",
+ "PixelMapuiv",
+ "PixelMapusv",
+ "PixelStoref",
+ "PixelStorei",
+ "PixelTransferf",
+ "PixelTransferi",
+ "PixelZoom",
+ "PointParameterf",
+ "PointParameterfARB",
+ "PointParameterfEXT",
+ "PointParameterfv",
+ "PointParameterfvARB",
+ "PointParameterfvEXT",
+ "PointParameteri",
+ "PointParameteriv",
+ "PointParameterx",
+ "PointParameterxv",
+ "PointSize",
+ "PointSizePointerOES",
+ "PointSizex",
+ "PolygonMode",
+ "PolygonOffset",
+ "PolygonOffsetx",
+ "PolygonStipple",
+ "PopAttrib",
+ "PopClientAttrib",
+ "PopDebugGroup",
+ "PopMatrix",
+ "PopName",
+ "PrimitiveRestartIndex",
+ "PrimitiveRestartIndexNV",
+ "PrimitiveRestartNV",
+ "PrioritizeTextures",
+ "PrioritizeTexturesEXT",
+ "ProgramBinary",
+ "ProgramEnvParameter4dARB",
+ "ProgramEnvParameter4dvARB",
+ "ProgramEnvParameter4fARB",
+ "ProgramEnvParameter4fvARB",
+ "ProgramLocalParameter4dARB",
+ "ProgramLocalParameter4dvARB",
+ "ProgramLocalParameter4fARB",
+ "ProgramLocalParameter4fvARB",
+ "ProgramParameteri",
+ "ProgramParameteriARB",
+ "ProgramStringARB",
+ "ProvokingVertex",
+ "ProvokingVertexEXT",
+ "PushAttrib",
+ "PushClientAttrib",
+ "PushDebugGroup",
+ "PushMatrix",
+ "PushName",
+ "RasterPos2d",
+ "RasterPos2dv",
+ "RasterPos2f",
+ "RasterPos2fv",
+ "RasterPos2i",
+ "RasterPos2iv",
+ "RasterPos2s",
+ "RasterPos2sv",
+ "RasterPos3d",
+ "RasterPos3dv",
+ "RasterPos3f",
+ "RasterPos3fv",
+ "RasterPos3i",
+ "RasterPos3iv",
+ "RasterPos3s",
+ "RasterPos3sv",
+ "RasterPos4d",
+ "RasterPos4dv",
+ "RasterPos4f",
+ "RasterPos4fv",
+ "RasterPos4i",
+ "RasterPos4iv",
+ "RasterPos4s",
+ "RasterPos4sv",
+ "ReadBuffer",
+ "ReadnPixelsARB",
+ "ReadPixels",
+ "Rectd",
+ "Rectdv",
+ "Rectf",
+ "Rectfv",
+ "Recti",
+ "Rectiv",
+ "Rects",
+ "Rectsv",
+ "ReleaseShaderCompiler",
+ "RenderbufferStorage",
+ "RenderbufferStorageEXT",
+ "RenderbufferStorageMultisample",
+ "RenderbufferStorageMultisampleEXT",
+ "RenderMode",
+ "ResetHistogram",
+ "ResetMinmax",
+ "ResumeTransformFeedback",
+ "Rotated",
+ "Rotatef",
+ "Rotatex",
+ "SampleCoverage",
+ "SampleCoverageARB",
+ "SampleCoveragex",
+ "SampleMaski",
+ "SamplerParameterf",
+ "SamplerParameterfv",
+ "SamplerParameteri",
+ "SamplerParameterIiv",
+ "SamplerParameterIuiv",
+ "SamplerParameteriv",
+ "Scaled",
+ "Scalef",
+ "Scalex",
+ "Scissor",
+ "ScissorArrayv",
+ "ScissorIndexed",
+ "ScissorIndexedv",
+ "SecondaryColor3b",
+ "SecondaryColor3bEXT",
+ "SecondaryColor3bv",
+ "SecondaryColor3bvEXT",
+ "SecondaryColor3d",
+ "SecondaryColor3dEXT",
+ "SecondaryColor3dv",
+ "SecondaryColor3dvEXT",
+ "SecondaryColor3f",
+ "SecondaryColor3fEXT",
+ "SecondaryColor3fv",
+ "SecondaryColor3fvEXT",
+ "SecondaryColor3i",
+ "SecondaryColor3iEXT",
+ "SecondaryColor3iv",
+ "SecondaryColor3ivEXT",
+ "SecondaryColor3s",
+ "SecondaryColor3sEXT",
+ "SecondaryColor3sv",
+ "SecondaryColor3svEXT",
+ "SecondaryColor3ub",
+ "SecondaryColor3ubEXT",
+ "SecondaryColor3ubv",
+ "SecondaryColor3ubvEXT",
+ "SecondaryColor3ui",
+ "SecondaryColor3uiEXT",
+ "SecondaryColor3uiv",
+ "SecondaryColor3uivEXT",
+ "SecondaryColor3us",
+ "SecondaryColor3usEXT",
+ "SecondaryColor3usv",
+ "SecondaryColor3usvEXT",
+ "SecondaryColorP3ui",
+ "SecondaryColorP3uiv",
+ "SecondaryColorPointer",
+ "SecondaryColorPointerEXT",
+ "SelectBuffer",
+ "SeparableFilter2D",
+ "ShadeModel",
+ "ShaderBinary",
+ "ShaderSource",
+ "ShaderSourceARB",
+ "StencilFunc",
+ "StencilFuncSeparate",
+ "StencilMask",
+ "StencilMaskSeparate",
+ "StencilOp",
+ "StencilOpSeparate",
+ "TexBuffer",
+ "TexBufferARB",
+ "TexBufferRange",
+ "TexCoord1d",
+ "TexCoord1dv",
+ "TexCoord1f",
+ "TexCoord1fv",
+ "TexCoord1i",
+ "TexCoord1iv",
+ "TexCoord1s",
+ "TexCoord1sv",
+ "TexCoord2d",
+ "TexCoord2dv",
+ "TexCoord2f",
+ "TexCoord2fv",
+ "TexCoord2i",
+ "TexCoord2iv",
+ "TexCoord2s",
+ "TexCoord2sv",
+ "TexCoord3d",
+ "TexCoord3dv",
+ "TexCoord3f",
+ "TexCoord3fv",
+ "TexCoord3i",
+ "TexCoord3iv",
+ "TexCoord3s",
+ "TexCoord3sv",
+ "TexCoord4d",
+ "TexCoord4dv",
+ "TexCoord4f",
+ "TexCoord4fv",
+ "TexCoord4i",
+ "TexCoord4iv",
+ "TexCoord4s",
+ "TexCoord4sv",
+ "TexCoordP1ui",
+ "TexCoordP1uiv",
+ "TexCoordP2ui",
+ "TexCoordP2uiv",
+ "TexCoordP3ui",
+ "TexCoordP3uiv",
+ "TexCoordP4ui",
+ "TexCoordP4uiv",
+ "TexCoordPointer",
+ "TexCoordPointerEXT",
+ "TexEnvf",
+ "TexEnvfv",
+ "TexEnvi",
+ "TexEnviv",
+ "TexEnvx",
+ "TexEnvxv",
+ "TexGend",
+ "TexGendv",
+ "TexGenf",
+ "TexGenfv",
+ "TexGeni",
+ "TexGeniv",
+ "TexImage1D",
+ "TexImage2D",
+ "TexImage2DMultisample",
+ "TexImage3D",
+ "TexImage3DEXT",
+ "TexImage3DMultisample",
+ "TexParameterf",
+ "TexParameterfv",
+ "TexParameteri",
+ "TexParameterIiv",
+ "TexParameterIivEXT",
+ "TexParameterIuiv",
+ "TexParameterIuivEXT",
+ "TexParameteriv",
+ "TexParameterx",
+ "TexParameterxv",
+ "TexStorage1D",
+ "TexStorage2D",
+ "TexStorage2DMultisample",
+ "TexStorage3D",
+ "TexStorage3DMultisample",
+ "TexSubImage1D",
+ "TexSubImage2D",
+ "TexSubImage3D",
+ "TexSubImage3DEXT",
+ "TextureBarrierNV",
+ "TextureStorage1DEXT",
+ "TextureStorage2DEXT",
+ "TextureStorage3DEXT",
+ "TextureView",
+ "TransformFeedbackVaryings",
+ "Translated",
+ "Translatef",
+ "Translatex",
+ "Uniform1f",
+ "Uniform1fARB",
+ "Uniform1fv",
+ "Uniform1fvARB",
+ "Uniform1i",
+ "Uniform1iARB",
+ "Uniform1iv",
+ "Uniform1ivARB",
+ "Uniform1ui",
+ "Uniform1uiEXT",
+ "Uniform1uiv",
+ "Uniform1uivEXT",
+ "Uniform2f",
+ "Uniform2fARB",
+ "Uniform2fv",
+ "Uniform2fvARB",
+ "Uniform2i",
+ "Uniform2iARB",
+ "Uniform2iv",
+ "Uniform2ivARB",
+ "Uniform2ui",
+ "Uniform2uiEXT",
+ "Uniform2uiv",
+ "Uniform2uivEXT",
+ "Uniform3f",
+ "Uniform3fARB",
+ "Uniform3fv",
+ "Uniform3fvARB",
+ "Uniform3i",
+ "Uniform3iARB",
+ "Uniform3iv",
+ "Uniform3ivARB",
+ "Uniform3ui",
+ "Uniform3uiEXT",
+ "Uniform3uiv",
+ "Uniform3uivEXT",
+ "Uniform4f",
+ "Uniform4fARB",
+ "Uniform4fv",
+ "Uniform4fvARB",
+ "Uniform4i",
+ "Uniform4iARB",
+ "Uniform4iv",
+ "Uniform4ivARB",
+ "Uniform4ui",
+ "Uniform4uiEXT",
+ "Uniform4uiv",
+ "Uniform4uivEXT",
+ "UniformBlockBinding",
+ "UniformMatrix2fv",
+ "UniformMatrix2fvARB",
+ "UniformMatrix2x3fv",
+ "UniformMatrix2x4fv",
+ "UniformMatrix3fv",
+ "UniformMatrix3fvARB",
+ "UniformMatrix3x2fv",
+ "UniformMatrix3x4fv",
+ "UniformMatrix4fv",
+ "UniformMatrix4fvARB",
+ "UniformMatrix4x2fv",
+ "UniformMatrix4x3fv",
+ "UnlockArraysEXT",
+ "UnmapBuffer",
+ "UnmapBufferARB",
+ "UseProgram",
+ "UseProgramObjectARB",
+ "ValidateProgram",
+ "ValidateProgramARB",
+ "Vertex2d",
+ "Vertex2dv",
+ "Vertex2f",
+ "Vertex2fv",
+ "Vertex2i",
+ "Vertex2iv",
+ "Vertex2s",
+ "Vertex2sv",
+ "Vertex3d",
+ "Vertex3dv",
+ "Vertex3f",
+ "Vertex3fv",
+ "Vertex3i",
+ "Vertex3iv",
+ "Vertex3s",
+ "Vertex3sv",
+ "Vertex4d",
+ "Vertex4dv",
+ "Vertex4f",
+ "Vertex4fv",
+ "Vertex4i",
+ "Vertex4iv",
+ "Vertex4s",
+ "Vertex4sv",
+ "VertexAttrib1d",
+ "VertexAttrib1dARB",
+ "VertexAttrib1dv",
+ "VertexAttrib1dvARB",
+ "VertexAttrib1f",
+ "VertexAttrib1fARB",
+ "VertexAttrib1fv",
+ "VertexAttrib1fvARB",
+ "VertexAttrib1s",
+ "VertexAttrib1sARB",
+ "VertexAttrib1sv",
+ "VertexAttrib1svARB",
+ "VertexAttrib2d",
+ "VertexAttrib2dARB",
+ "VertexAttrib2dv",
+ "VertexAttrib2dvARB",
+ "VertexAttrib2f",
+ "VertexAttrib2fARB",
+ "VertexAttrib2fv",
+ "VertexAttrib2fvARB",
+ "VertexAttrib2s",
+ "VertexAttrib2sARB",
+ "VertexAttrib2sv",
+ "VertexAttrib2svARB",
+ "VertexAttrib3d",
+ "VertexAttrib3dARB",
+ "VertexAttrib3dv",
+ "VertexAttrib3dvARB",
+ "VertexAttrib3f",
+ "VertexAttrib3fARB",
+ "VertexAttrib3fv",
+ "VertexAttrib3fvARB",
+ "VertexAttrib3s",
+ "VertexAttrib3sARB",
+ "VertexAttrib3sv",
+ "VertexAttrib3svARB",
+ "VertexAttrib4bv",
+ "VertexAttrib4bvARB",
+ "VertexAttrib4d",
+ "VertexAttrib4dARB",
+ "VertexAttrib4dv",
+ "VertexAttrib4dvARB",
+ "VertexAttrib4f",
+ "VertexAttrib4fARB",
+ "VertexAttrib4fv",
+ "VertexAttrib4fvARB",
+ "VertexAttrib4iv",
+ "VertexAttrib4ivARB",
+ "VertexAttrib4Nbv",
+ "VertexAttrib4NbvARB",
+ "VertexAttrib4Niv",
+ "VertexAttrib4NivARB",
+ "VertexAttrib4Nsv",
+ "VertexAttrib4NsvARB",
+ "VertexAttrib4Nub",
+ "VertexAttrib4NubARB",
+ "VertexAttrib4Nubv",
+ "VertexAttrib4NubvARB",
+ "VertexAttrib4Nuiv",
+ "VertexAttrib4NuivARB",
+ "VertexAttrib4Nusv",
+ "VertexAttrib4NusvARB",
+ "VertexAttrib4s",
+ "VertexAttrib4sARB",
+ "VertexAttrib4sv",
+ "VertexAttrib4svARB",
+ "VertexAttrib4ubv",
+ "VertexAttrib4ubvARB",
+ "VertexAttrib4uiv",
+ "VertexAttrib4uivARB",
+ "VertexAttrib4usv",
+ "VertexAttrib4usvARB",
+ "VertexAttribBinding",
+ "VertexAttribDivisor",
+ "VertexAttribDivisorARB",
+ "VertexAttribFormat",
+ "VertexAttribI1i",
+ "VertexAttribI1iEXT",
+ "VertexAttribI1iv",
+ "VertexAttribI1ivEXT",
+ "VertexAttribI1ui",
+ "VertexAttribI1uiEXT",
+ "VertexAttribI1uiv",
+ "VertexAttribI1uivEXT",
+ "VertexAttribI2i",
+ "VertexAttribI2iEXT",
+ "VertexAttribI2iv",
+ "VertexAttribI2ivEXT",
+ "VertexAttribI2ui",
+ "VertexAttribI2uiEXT",
+ "VertexAttribI2uiv",
+ "VertexAttribI2uivEXT",
+ "VertexAttribI3i",
+ "VertexAttribI3iEXT",
+ "VertexAttribI3iv",
+ "VertexAttribI3ivEXT",
+ "VertexAttribI3ui",
+ "VertexAttribI3uiEXT",
+ "VertexAttribI3uiv",
+ "VertexAttribI3uivEXT",
+ "VertexAttribI4bv",
+ "VertexAttribI4bvEXT",
+ "VertexAttribI4i",
+ "VertexAttribI4iEXT",
+ "VertexAttribI4iv",
+ "VertexAttribI4ivEXT",
+ "VertexAttribI4sv",
+ "VertexAttribI4svEXT",
+ "VertexAttribI4ubv",
+ "VertexAttribI4ubvEXT",
+ "VertexAttribI4ui",
+ "VertexAttribI4uiEXT",
+ "VertexAttribI4uiv",
+ "VertexAttribI4uivEXT",
+ "VertexAttribI4usv",
+ "VertexAttribI4usvEXT",
+ "VertexAttribIFormat",
+ "VertexAttribIPointer",
+ "VertexAttribIPointerEXT",
+ "VertexAttribLFormat",
+ "VertexAttribP1ui",
+ "VertexAttribP1uiv",
+ "VertexAttribP2ui",
+ "VertexAttribP2uiv",
+ "VertexAttribP3ui",
+ "VertexAttribP3uiv",
+ "VertexAttribP4ui",
+ "VertexAttribP4uiv",
+ "VertexAttribPointer",
+ "VertexAttribPointerARB",
+ "VertexBindingDivisor",
+ "VertexP2ui",
+ "VertexP2uiv",
+ "VertexP3ui",
+ "VertexP3uiv",
+ "VertexP4ui",
+ "VertexP4uiv",
+ "VertexPointer",
+ "VertexPointerEXT",
+ "Viewport",
+ "ViewportArrayv",
+ "ViewportIndexedf",
+ "ViewportIndexedfv",
+ "WaitSync",
+ "WindowPos2d",
+ "WindowPos2dARB",
+ "WindowPos2dv",
+ "WindowPos2dvARB",
+ "WindowPos2f",
+ "WindowPos2fARB",
+ "WindowPos2fv",
+ "WindowPos2fvARB",
+ "WindowPos2i",
+ "WindowPos2iARB",
+ "WindowPos2iv",
+ "WindowPos2ivARB",
+ "WindowPos2s",
+ "WindowPos2sARB",
+ "WindowPos2sv",
+ "WindowPos2svARB",
+ "WindowPos3d",
+ "WindowPos3dARB",
+ "WindowPos3dv",
+ "WindowPos3dvARB",
+ "WindowPos3f",
+ "WindowPos3fARB",
+ "WindowPos3fv",
+ "WindowPos3fvARB",
+ "WindowPos3i",
+ "WindowPos3iARB",
+ "WindowPos3iv",
+ "WindowPos3ivARB",
+ "WindowPos3s",
+ "WindowPos3sARB",
+ "WindowPos3sv",
+ "WindowPos3svARB",
+]
+
+"""Functions that need dispatch slots but are not used
+
+Some of these functions may have GLX protocol support (for
+indirect-rendering). Other were used in previous versions of Mesa. They keep
+slots in the dispatch table so that newer versions of libGL can still be used
+with older drivers."""
+unused_functions = [
+ # SGIS_multisample
+ "SampleMaskSGIS",
+ "SamplePatternSGIS",
+
+ # NV_vertex_program
+ "AreProgramsResidentNV",
+ "ExecuteProgramNV",
+ "GetProgramParameterdvNV",
+ "GetProgramParameterfvNV",
+ "GetProgramivNV",
+ "GetProgramStringNV",
+ "GetTrackMatrixivNV",
+ "GetVertexAttribdvNV",
+ "GetVertexAttribfvNV",
+ "GetVertexAttribivNV",
+ "LoadProgramNV",
+ "ProgramParameters4dvNV",
+ "ProgramParameters4fvNV",
+ "RequestResidentProgramsNV",
+ "TrackMatrixNV",
+ "VertexAttribPointerNV",
+
+ # MESA_resize_buffers
+ "ResizeBuffersMESA",
+
+ # ATI_envmap_bumpmap
+ "TexBumpParameterfvATI",
+ "TexBumpParameterivATI",
+ "GetTexBumpParameterfvATI",
+ "GetTexBumpParameterivATI",
+
+ # NV_fragment_program
+ "ProgramNamedParameter4fNV",
+ "ProgramNamedParameter4dNV",
+ "ProgramNamedParameter4fvNV",
+ "ProgramNamedParameter4dvNV",
+ "GetProgramNamedParameterfvNV",
+ "GetProgramNamedParameterdvNV",
+
+ # APPLE_flush_buffer_range
+ "BufferParameteriAPPLE",
+ "FlushMappedBufferRangeAPPLE",
+
+ # EXT_separate_shader_objects
+ "UseShaderProgramEXT",
+ "ActiveProgramEXT",
+ "CreateShaderProgramEXT",
+]
diff --git a/mesalib/src/mesa/Android.gen.mk b/mesalib/src/mesa/Android.gen.mk
index cc979547e..145f2594c 100644
--- a/mesalib/src/mesa/Android.gen.mk
+++ b/mesalib/src/mesa/Android.gen.mk
@@ -115,9 +115,11 @@ $(intermediates)/main/api_exec.c: $(dispatch_deps)
GET_HASH_GEN := $(LOCAL_PATH)/main/get_hash_generator.py
+$(intermediates)/main/get_hash.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(GET_HASH_GEN)
+$(intermediates)/main/get_hash.h: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml
$(intermediates)/main/get_hash.h: $(glapi)/gl_and_es_API.xml \
$(LOCAL_PATH)/main/get_hash_params.py $(GET_HASH_GEN)
- @$(MESA_PYTHON2) $(GET_HASH_GEN) -f $< > $@
+ $(call es-gen)
FORMAT_INFO := $(LOCAL_PATH)/main/format_info.py
format_info_deps := \
@@ -125,8 +127,10 @@ format_info_deps := \
$(LOCAL_PATH)/main/format_parser.py \
$(FORMAT_INFO)
+$(intermediates)/main/format_info.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(FORMAT_INFO)
+$(intermediates)/main/format_info.h: PRIVATE_XML :=
$(intermediates)/main/format_info.h: $(format_info_deps)
- @$(MESA_PYTHON2) $(FORMAT_INFO) $< > $@
+ $(call es-gen, $<)
FORMAT_PACK := $(LOCAL_PATH)/main/format_pack.py
format_pack_deps := \
@@ -134,8 +138,10 @@ format_pack_deps := \
$(LOCAL_PATH)/main/format_parser.py \
$(FORMAT_PACK)
+$(intermediates)/main/format_pack.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(FORMAT_PACK)
+$(intermediates)/main/format_pack.c: PRIVATE_XML :=
$(intermediates)/main/format_pack.c: $(format_pack_deps)
- $(hide) $(MESA_PYTHON2) $(FORMAT_PACK) $< > $@
+ $(call es-gen, $<)
FORMAT_UNPACK := $(LOCAL_PATH)/main/format_unpack.py
format_unpack_deps := \
@@ -143,5 +149,7 @@ format_unpack_deps := \
$(LOCAL_PATH)/main/format_parser.py \
$(FORMAT_UNPACK)
+$(intermediates)/main/format_unpack.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(FORMAT_UNPACK)
+$(intermediates)/main/format_unpack.c: PRIVATE_XML :=
$(intermediates)/main/format_unpack.c: $(format_unpack_deps)
- $(hide) $(MESA_PYTHON2) $(FORMAT_UNPACK) $< > $@
+ $(call es-gen, $<)
diff --git a/mesalib/src/mesa/Android.libmesa_glsl_utils.mk b/mesalib/src/mesa/Android.libmesa_glsl_utils.mk
index 3497377af..ed620ac64 100644
--- a/mesalib/src/mesa/Android.libmesa_glsl_utils.mk
+++ b/mesalib/src/mesa/Android.libmesa_glsl_utils.mk
@@ -44,7 +44,8 @@ LOCAL_C_INCLUDES := \
LOCAL_SRC_FILES := \
main/imports.c \
program/prog_hash_table.c \
- program/symbol_table.c
+ program/symbol_table.c \
+ program/dummy_errors.c
include $(MESA_COMMON_MK)
include $(BUILD_STATIC_LIBRARY)
@@ -68,7 +69,8 @@ LOCAL_C_INCLUDES := \
LOCAL_SRC_FILES := \
main/imports.c \
program/prog_hash_table.c \
- program/symbol_table.c
+ program/symbol_table.c \
+ program/dummy_errors.c
include $(MESA_COMMON_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/mesalib/src/mesa/Makefile.am b/mesalib/src/mesa/Makefile.am
index 60114e4f6..71794b5da 100644
--- a/mesalib/src/mesa/Makefile.am
+++ b/mesalib/src/mesa/Makefile.am
@@ -60,7 +60,6 @@ main/git_sha1.h: main/git_sha1.h.tmp
include Makefile.sources
EXTRA_DIST = \
- drivers/haiku \
drivers/SConscript \
main/format_info.py \
main/format_pack.py \
diff --git a/mesalib/src/mesa/drivers/SConscript b/mesalib/src/mesa/drivers/SConscript
index db656780c..5d654f538 100644
--- a/mesalib/src/mesa/drivers/SConscript
+++ b/mesalib/src/mesa/drivers/SConscript
@@ -8,6 +8,3 @@ if env['dri']:
'dri/common/xmlpool/SConscript',
'dri/common/SConscript',
])
-
-if env['platform'] == 'haiku':
- SConscript('haiku/swrast/SConscript')
diff --git a/mesalib/src/mesa/drivers/common/meta_blit.c b/mesalib/src/mesa/drivers/common/meta_blit.c
index bb2164276..9cace2b24 100644
--- a/mesalib/src/mesa/drivers/common/meta_blit.c
+++ b/mesalib/src/mesa/drivers/common/meta_blit.c
@@ -82,7 +82,7 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx,
y_scale = samples * 0.5;
/* We expect only power of 2 samples in source multisample buffer. */
- assert(samples > 0 && (samples & (samples - 1)) == 0);
+ assert(samples > 0 && is_power_of_two(samples));
while (samples >> (shader_offset + 1)) {
shader_offset++;
}
@@ -263,7 +263,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
}
/* We expect only power of 2 samples in source multisample buffer. */
- assert(samples > 0 && (samples & (samples - 1)) == 0);
+ assert(samples > 0 && is_power_of_two(samples));
while (samples >> (shader_offset + 1)) {
shader_offset++;
}
@@ -434,7 +434,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
* (so the floating point exponent just gets increased), rather than
* doing a naive sum and dividing.
*/
- assert((samples & (samples - 1)) == 0);
+ assert(is_power_of_two(samples));
/* Fetch each individual sample. */
sample_resolve = rzalloc_size(mem_ctx, 1);
for (i = 0; i < samples; i++) {
diff --git a/mesalib/src/mesa/drivers/common/meta_tex_subimage.c b/mesalib/src/mesa/drivers/common/meta_tex_subimage.c
index ad6e7873e..d2474f527 100644
--- a/mesalib/src/mesa/drivers/common/meta_tex_subimage.c
+++ b/mesalib/src/mesa/drivers/common/meta_tex_subimage.c
@@ -34,6 +34,7 @@
#include "macros.h"
#include "meta.h"
#include "pbo.h"
+#include "readpix.h"
#include "shaderapi.h"
#include "state.h"
#include "teximage.h"
@@ -150,7 +151,8 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
bool success = false;
int z;
- if (!_mesa_is_bufferobj(packing->BufferObj) && !create_pbo)
+ if (!_mesa_is_bufferobj(packing->BufferObj) &&
+ (!create_pbo || pixels == NULL))
return false;
if (format == GL_DEPTH_COMPONENT ||
@@ -257,6 +259,7 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
GLuint pbo = 0, pbo_tex = 0, fbos[2] = { 0, 0 };
int full_height, image_height;
struct gl_texture_image *pbo_tex_image;
+ struct gl_renderbuffer *rb = NULL;
GLenum status;
bool success = false;
int z;
@@ -273,6 +276,13 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
if (ctx->_ImageTransferState)
return false;
+
+ if (!tex_image) {
+ rb = ctx->ReadBuffer->_ColorReadBuffer;
+ if (_mesa_need_rgb_to_luminance_conversion(rb->Format, format))
+ return false;
+ }
+
/* For arrays, use a tall (height * depth) 2D texture but taking into
* account the inter-image padding specified with the image height packing
* property.
diff --git a/mesalib/src/mesa/drivers/dri/Makefile.am b/mesalib/src/mesa/drivers/dri/Makefile.am
index fa1de103b..08a8e6455 100644
--- a/mesalib/src/mesa/drivers/dri/Makefile.am
+++ b/mesalib/src/mesa/drivers/dri/Makefile.am
@@ -60,6 +60,7 @@ mesa_dri_drivers_la_LIBADD = \
../../libmesa.la \
common/libmegadriver_stub.la \
common/libdricommon.la \
+ common/libxmlconfig.la \
$(MEGADRIVERS_DEPS) \
$(DRI_LIB_DEPS) \
$()
diff --git a/mesalib/src/mesa/drivers/dri/common/Android.mk b/mesalib/src/mesa/drivers/dri/common/Android.mk
index a7fcd6d57..6986f5e8c 100644
--- a/mesalib/src/mesa/drivers/dri/common/Android.mk
+++ b/mesalib/src/mesa/drivers/dri/common/Android.mk
@@ -39,7 +39,9 @@ intermediates := $(call local-generated-sources-dir)
LOCAL_C_INCLUDES := \
$(MESA_DRI_C_INCLUDES)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+ $(LOCAL_PATH) \
+ $(intermediates)
# swrast only
ifeq ($(MESA_GPU_DRIVERS),swrast)
@@ -48,7 +50,9 @@ else
LOCAL_SHARED_LIBRARIES := libdrm
endif
-LOCAL_SRC_FILES := $(DRI_COMMON_FILES)
+LOCAL_SRC_FILES := \
+ $(DRI_COMMON_FILES) \
+ $(XMLCONFIG_FILES)
MESA_DRI_OPTIONS_H := $(intermediates)/xmlpool/options.h
LOCAL_GENERATED_SOURCES := $(MESA_DRI_OPTIONS_H)
diff --git a/mesalib/src/mesa/drivers/dri/common/Makefile.am b/mesalib/src/mesa/drivers/dri/common/Makefile.am
index da8f97a98..ae19fcb35 100644
--- a/mesalib/src/mesa/drivers/dri/common/Makefile.am
+++ b/mesalib/src/mesa/drivers/dri/common/Makefile.am
@@ -33,16 +33,20 @@ AM_CFLAGS = \
-I$(top_srcdir)/src/gallium/include \
-I$(top_srcdir)/src/gallium/auxiliary \
$(DEFINES) \
- $(EXPAT_CFLAGS) \
$(VISIBILITY_CFLAGS)
noinst_LTLIBRARIES = \
libdricommon.la \
+ libxmlconfig.la \
libmegadriver_stub.la \
libdri_test_stubs.la
libdricommon_la_SOURCES = $(DRI_COMMON_FILES)
+libxmlconfig_la_SOURCES = $(XMLCONFIG_FILES)
+libxmlconfig_la_CFLAGS = $(AM_CFLAGS) $(EXPAT_CFLAGS)
+libxmlconfig_la_LIBADD = $(EXPAT_LIBS) -lm
+
libdri_test_stubs_la_SOURCES = $(test_stubs_FILES)
libdri_test_stubs_la_CFLAGS = $(AM_CFLAGS) -DNO_MAIN
diff --git a/mesalib/src/mesa/drivers/dri/common/Makefile.sources b/mesalib/src/mesa/drivers/dri/common/Makefile.sources
index d00ec5f73..d5d8da8fc 100644
--- a/mesalib/src/mesa/drivers/dri/common/Makefile.sources
+++ b/mesalib/src/mesa/drivers/dri/common/Makefile.sources
@@ -2,7 +2,9 @@ DRI_COMMON_FILES := \
utils.c \
utils.h \
dri_util.c \
- dri_util.h \
+ dri_util.h
+
+XMLCONFIG_FILES := \
xmlconfig.c \
xmlconfig.h
diff --git a/mesalib/src/mesa/drivers/dri/common/SConscript b/mesalib/src/mesa/drivers/dri/common/SConscript
index 0bee1b41f..b402736db 100644
--- a/mesalib/src/mesa/drivers/dri/common/SConscript
+++ b/mesalib/src/mesa/drivers/dri/common/SConscript
@@ -37,7 +37,7 @@ drienv.PkgUseModules('DRM')
# else
#env.Append(CPPDEFINES = ['__NOT_HAVE_DRM_H'])
-sources = drienv.ParseSourceList('Makefile.sources', 'DRI_COMMON_FILES')
+sources = drienv.ParseSourceList('Makefile.sources', ['DRI_COMMON_FILES', 'XMLCONFIG_FILES' ])
dri_common = drienv.ConvenienceLibrary(
target = 'dri_common',
diff --git a/mesalib/src/mesa/drivers/dri/common/dri_util.c b/mesalib/src/mesa/drivers/dri/common/dri_util.c
index d6e875fcf..e7ababe0b 100644
--- a/mesalib/src/mesa/drivers/dri/common/dri_util.c
+++ b/mesalib/src/mesa/drivers/dri/common/dri_util.c
@@ -162,13 +162,21 @@ driCreateNewScreen2(int scrn, int fd,
return NULL;
}
- int gl_version_override = _mesa_get_gl_version_override();
- if (gl_version_override >= 31) {
- psp->max_gl_core_version = MAX2(psp->max_gl_core_version,
- gl_version_override);
- } else {
- psp->max_gl_compat_version = MAX2(psp->max_gl_compat_version,
- gl_version_override);
+ struct gl_constants consts = { 0 };
+ gl_api api;
+ unsigned version;
+
+ api = API_OPENGLES2;
+ if (_mesa_override_gl_version_contextless(&consts, &api, &version))
+ psp->max_gl_es2_version = version;
+
+ api = API_OPENGL_COMPAT;
+ if (_mesa_override_gl_version_contextless(&consts, &api, &version)) {
+ if (api == API_OPENGL_CORE) {
+ psp->max_gl_core_version = version;
+ } else {
+ psp->max_gl_compat_version = version;
+ }
}
psp->api_mask = (1 << __DRI_API_OPENGL);
diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast.c b/mesalib/src/mesa/drivers/dri/swrast/swrast.c
index cbc946c3f..2d4bb702f 100644
--- a/mesalib/src/mesa/drivers/dri/swrast/swrast.c
+++ b/mesalib/src/mesa/drivers/dri/swrast/swrast.c
@@ -62,7 +62,9 @@
#include "swrast/s_context.h"
#include <sys/types.h>
-#include <sys/sysctl.h>
+#ifdef HAVE_SYS_SYSCTL_H
+# include <sys/sysctl.h>
+#endif
const __DRIextension **__driDriverGetExtensions_swrast(void);
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SConscript b/mesalib/src/mesa/drivers/haiku/swrast/SConscript
deleted file mode 100644
index 907325e32..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SConscript
+++ /dev/null
@@ -1,33 +0,0 @@
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#/src',
- '#/src/mapi',
- '#/src/mesa',
- '#/src/mesa/main',
- '#/include/HaikuGL',
- '/boot/system/develop/headers/private',
- Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
-])
-
-env.Prepend(LIBS = [
- mesautil,
- glsl,
- mesa,
-])
-
-env.Prepend(LIBS = [libgl])
-
-sources = [
- 'SoftwareRast.cpp'
-]
-
-# Disallow undefined symbols
-#env.Append(SHLINKFLAGS = ['-Wl,-z,defs'])
-
-libswrast = env.SharedLibrary(
- target = 'swrast',
- source = sources
-)
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp
deleted file mode 100644
index 813ad1ff2..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp
+++ /dev/null
@@ -1,697 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Jérôme Duval, korli@users.berlios.de
- * Philippe Houdoin, philippe.houdoin@free.fr
- * Artur Wyszynski, harakash@gmail.com
- * Alexander von Gluck, kallisti5@unixzen.com
- */
-
-
-#include <kernel/image.h>
-#include "SoftwareRast.h"
-
-#include <Autolock.h>
-#include <interface/DirectWindowPrivate.h>
-#include <GraphicsDefs.h>
-#include <Screen.h>
-#include <stdio.h>
-#include <string.h>
-
-extern "C" {
-#include "extensions.h"
-#include "drivers/common/driverfuncs.h"
-#include "drivers/common/meta.h"
-#include "main/api_exec.h"
-#include "main/colormac.h"
-#include "main/cpuinfo.h"
-#include "main/buffers.h"
-#include "main/formats.h"
-#include "main/framebuffer.h"
-#include "main/renderbuffer.h"
-#include "main/version.h"
-#include "main/vtxfmt.h"
-#include "swrast/swrast.h"
-#include "swrast/s_renderbuffer.h"
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/tnl.h"
-#include "tnl/t_context.h"
-#include "tnl/t_pipeline.h"
-#include "vbo/vbo.h"
-
-
-#ifdef DEBUG
-# define TRACE(x...) printf("MesaSoftwareRast: " x)
-# define CALLED() printf("MesaSoftwareRast: %s\n", __PRETTY_FUNCTION__)
-#else
-# define TRACE(x...)
-# define CALLED()
-#endif
-
-#define ERROR(x...) printf("MesaSoftwareRast: " x)
-}
-
-
-extern const char* color_space_name(color_space space);
-
-
-extern "C" _EXPORT BGLRenderer*
-instantiate_gl_renderer(BGLView* view, ulong options,
- BGLDispatcher* dispatcher)
-{
- return new MesaSoftwareRast(view, options, dispatcher);
-}
-
-
-MesaSoftwareRast::MesaSoftwareRast(BGLView* view, ulong options,
- BGLDispatcher* dispatcher)
- : BGLRenderer(view, options, dispatcher),
- fBitmap(NULL),
- fDirectModeEnabled(false),
- fInfo(NULL),
- fInfoLocker("info locker"),
- fVisual(NULL),
- fFrameBuffer(NULL),
- fFrontRenderBuffer(NULL),
- fBackRenderBuffer(NULL),
- fColorSpace(B_NO_COLOR_SPACE)
-{
- CALLED();
-
- fColorSpace = BScreen(GLView()->Window()).ColorSpace();
-
- // We force single buffering for the time being
- options &= ~BGL_DOUBLE;
-
- const GLboolean rgbFlag = ((options & BGL_INDEX) == 0);
- const GLboolean alphaFlag = ((options & BGL_ALPHA) == BGL_ALPHA);
- const GLboolean dblFlag = ((options & BGL_DOUBLE) == BGL_DOUBLE);
- const GLboolean stereoFlag = false;
- const GLint depth = (options & BGL_DEPTH) ? 16 : 0;
- const GLint stencil = (options & BGL_STENCIL) ? 8 : 0;
- const GLint accum = (options & BGL_ACCUM) ? 16 : 0;
- const GLint red = rgbFlag ? 8 : 0;
- const GLint green = rgbFlag ? 8 : 0;
- const GLint blue = rgbFlag ? 8 : 0;
- const GLint alpha = alphaFlag ? 8 : 0;
-
- fOptions = options; // | BGL_INDIRECT;
- struct dd_function_table functions;
-
- fVisual = _mesa_create_visual(dblFlag, stereoFlag, red, green,
- blue, alpha, depth, stencil, accum, accum, accum,
- alpha ? accum : 0, 1);
-
- // Initialize device driver function table
- _mesa_init_driver_functions(&functions);
-
- functions.GetString = _GetString;
- functions.UpdateState = _UpdateState;
- functions.MapRenderbuffer = _RenderBufferMap;
- functions.Flush = _Flush;
-
- // create core context
- // We inherit gl_context to this class
- _mesa_initialize_context(this, API_OPENGL_COMPAT, fVisual, NULL,
- &functions);
-
- /* Initialize the software rasterizer and helper modules. */
- _swrast_CreateContext(this);
- _vbo_CreateContext(this);
- _tnl_CreateContext(this);
- _swsetup_CreateContext(this);
- _swsetup_Wakeup(this);
-
- // Use default TCL pipeline
- TNL_CONTEXT(this)->Driver.RunPipeline = _tnl_run_pipeline;
-
- _mesa_meta_init(this);
- _mesa_enable_sw_extensions(this);
-
- _mesa_compute_version(this);
-
- _mesa_initialize_dispatch_tables(this);
- _mesa_initialize_vbo_vtxfmt(this);
-
- // create core framebuffer
- fFrameBuffer = _mesa_create_framebuffer(fVisual);
- if (fFrameBuffer == NULL) {
- ERROR("%s: Unable to calloc GL FrameBuffer!\n", __func__);
- _mesa_destroy_visual(fVisual);
- return;
- }
-
- // Setup front render buffer
- fFrontRenderBuffer = _NewRenderBuffer(true);
- if (fFrontRenderBuffer == NULL) {
- ERROR("%s: FrontRenderBuffer is requested but unallocated!\n",
- __func__);
- _mesa_destroy_visual(fVisual);
- free(fFrameBuffer);
- return;
- }
- _mesa_add_renderbuffer(fFrameBuffer, BUFFER_FRONT_LEFT,
- &fFrontRenderBuffer->Base);
-
- // Setup back render buffer (if requested)
- if (fVisual->doubleBufferMode) {
- fBackRenderBuffer = _NewRenderBuffer(false);
- if (fBackRenderBuffer == NULL) {
- ERROR("%s: BackRenderBuffer is requested but unallocated!\n",
- __func__);
- _mesa_destroy_visual(fVisual);
- free(fFrameBuffer);
- return;
- }
- _mesa_add_renderbuffer(fFrameBuffer, BUFFER_BACK_LEFT,
- &fBackRenderBuffer->Base);
- }
-
- _swrast_add_soft_renderbuffers(fFrameBuffer, GL_FALSE,
- fVisual->haveDepthBuffer, fVisual->haveStencilBuffer,
- fVisual->haveAccumBuffer, alphaFlag, GL_FALSE);
-
- BRect bounds = view->Bounds();
- fWidth = (GLint)bounds.Width();
- fHeight = (GLint)bounds.Height();
-
- // some stupid applications (Quake2) don't even think about calling LockGL()
- // before using glGetString and its glGet*() friends...
- // so make sure there is at least a valid context.
-
- if (!_mesa_get_current_context()) {
- LockGL();
- // not needed, we don't have a looper yet: UnlockLooper();
- }
-}
-
-
-MesaSoftwareRast::~MesaSoftwareRast()
-{
- CALLED();
- _swsetup_DestroyContext(this);
- _swrast_DestroyContext(this);
- _tnl_DestroyContext(this);
- _vbo_DestroyContext(this);
- _mesa_destroy_visual(fVisual);
- _mesa_destroy_framebuffer(fFrameBuffer);
- _mesa_destroy_context(this);
-
- free(fInfo);
- free(fFrameBuffer);
-
- delete fBitmap;
-}
-
-
-void
-MesaSoftwareRast::LockGL()
-{
- CALLED();
- BGLRenderer::LockGL();
-
- _mesa_make_current(this, fFrameBuffer, fFrameBuffer);
-
- color_space colorSpace = BScreen(GLView()->Window()).ColorSpace();
-
- GLuint width = fWidth;
- GLuint height = fHeight;
-
- BAutolock lock(fInfoLocker);
- if (fDirectModeEnabled && fInfo != NULL) {
- width = fInfo->window_bounds.right
- - fInfo->window_bounds.left + 1;
- height = fInfo->window_bounds.bottom
- - fInfo->window_bounds.top + 1;
- }
-
- if (fColorSpace != colorSpace) {
- fColorSpace = colorSpace;
- _SetupRenderBuffer(&fFrontRenderBuffer->Base, fColorSpace);
- if (fVisual->doubleBufferMode)
- _SetupRenderBuffer(&fBackRenderBuffer->Base, fColorSpace);
- }
-
- _CheckResize(width, height);
-}
-
-
-void
-MesaSoftwareRast::UnlockGL()
-{
- CALLED();
- _mesa_make_current(this, NULL, NULL);
- BGLRenderer::UnlockGL();
-}
-
-
-void
-MesaSoftwareRast::SwapBuffers(bool VSync)
-{
- CALLED();
-
- if (!fBitmap)
- return;
-
- if (fVisual->doubleBufferMode)
- _mesa_notifySwapBuffers(this);
-
- if (!fDirectModeEnabled || fInfo == NULL) {
- if (GLView()->LockLooperWithTimeout(1000) == B_OK) {
- GLView()->DrawBitmap(fBitmap, B_ORIGIN);
- GLView()->UnlockLooper();
- }
- } else {
- // TODO: Here the BGLView needs to be drawlocked.
- _CopyToDirect();
- }
-
- if (VSync) {
- BScreen screen(GLView()->Window());
- screen.WaitForRetrace();
- }
-}
-
-
-void
-MesaSoftwareRast::Draw(BRect updateRect)
-{
- CALLED();
- if (fBitmap && (!fDirectModeEnabled || (fInfo == NULL)))
- GLView()->DrawBitmap(fBitmap, updateRect, updateRect);
-}
-
-
-status_t
-MesaSoftwareRast::CopyPixelsOut(BPoint location, BBitmap* bitmap)
-{
- CALLED();
- color_space scs = fBitmap->ColorSpace();
- color_space dcs = bitmap->ColorSpace();
-
- if (scs != dcs && (scs != B_RGBA32 || dcs != B_RGB32)) {
- fprintf(stderr, "CopyPixelsOut(): incompatible color space: %s != %s\n",
- color_space_name(scs),
- color_space_name(dcs));
- return B_BAD_TYPE;
- }
-
- BRect sr = fBitmap->Bounds();
- BRect dr = bitmap->Bounds();
-
- sr = sr & dr.OffsetBySelf(location);
- dr = sr.OffsetByCopy(-location.x, -location.y);
-
- uint8* ps = (uint8*)fBitmap->Bits();
- uint8* pd = (uint8*)bitmap->Bits();
- uint32* s;
- uint32* d;
- uint32 y;
- for (y = (uint32)sr.top; y <= (uint32)sr.bottom; y++) {
- s = (uint32*)(ps + y * fBitmap->BytesPerRow());
- s += (uint32)sr.left;
-
- d = (uint32*)(pd + (y + (uint32)(dr.top - sr.top))
- * bitmap->BytesPerRow());
- d += (uint32)dr.left;
-
- memcpy(d, s, dr.IntegerWidth() * 4);
- }
- return B_OK;
-}
-
-
-status_t
-MesaSoftwareRast::CopyPixelsIn(BBitmap* bitmap, BPoint location)
-{
- CALLED();
- color_space scs = bitmap->ColorSpace();
- color_space dcs = fBitmap->ColorSpace();
-
- if (scs != dcs && (dcs != B_RGBA32 || scs != B_RGB32)) {
- fprintf(stderr, "CopyPixelsIn(): incompatible color space: %s != %s\n",
- color_space_name(scs),
- color_space_name(dcs));
- return B_BAD_TYPE;
- }
-
- BRect sr = bitmap->Bounds();
- BRect dr = fBitmap->Bounds();
-
- sr = sr & dr.OffsetBySelf(location);
- dr = sr.OffsetByCopy(-location.x, -location.y);
-
- uint8* ps = (uint8*)bitmap->Bits();
- uint8* pd = (uint8*)fBitmap->Bits();
- uint32* s;
- uint32* d;
- uint32 y;
- for (y = (uint32)sr.top; y <= (uint32)sr.bottom; y++) {
- s = (uint32*)(ps + y * bitmap->BytesPerRow());
- s += (uint32)sr.left;
-
- d = (uint32*)(pd + (y + (uint32)(dr.top - sr.top))
- * fBitmap->BytesPerRow());
- d += (uint32)dr.left;
-
- memcpy(d, s, dr.IntegerWidth() * 4);
- }
- return B_OK;
-}
-
-
-void
-MesaSoftwareRast::EnableDirectMode(bool enabled)
-{
- fDirectModeEnabled = enabled;
-}
-
-
-void
-MesaSoftwareRast::DirectConnected(direct_buffer_info* info)
-{
- // TODO: I'm not sure we need to do this: BGLView already
- // keeps a local copy of the direct_buffer_info passed by
- // BDirectWindow::DirectConnected().
- BAutolock lock(fInfoLocker);
- if (info) {
- if (!fInfo) {
- fInfo = (direct_buffer_info*)malloc(DIRECT_BUFFER_INFO_AREA_SIZE);
- if (!fInfo)
- return;
- }
- memcpy(fInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE);
- } else if (fInfo) {
- free(fInfo);
- fInfo = NULL;
- }
-}
-
-
-void
-MesaSoftwareRast::FrameResized(float width, float height)
-{
- BAutolock lock(fInfoLocker);
- _CheckResize((GLuint)width, (GLuint)height);
-}
-
-
-void
-MesaSoftwareRast::_CheckResize(GLuint newWidth, GLuint newHeight)
-{
- CALLED();
-
- if (fBitmap && newWidth == fWidth
- && newHeight == fHeight) {
- return;
- }
-
- _mesa_resize_framebuffer(this, fFrameBuffer, newWidth, newHeight);
- fHeight = newHeight;
- fWidth = newWidth;
-
- _AllocateBitmap();
-}
-
-
-void
-MesaSoftwareRast::_AllocateBitmap()
-{
- CALLED();
-
- // allocate new size of back buffer bitmap
- delete fBitmap;
- fBitmap = NULL;
-
- if (fWidth < 1 || fHeight < 1) {
- TRACE("%s: Cannot allocate bitmap < 1x1!\n", __func__);
- return;
- }
-
- BRect rect(0.0, 0.0, fWidth - 1, fHeight - 1);
- fBitmap = new BBitmap(rect, fColorSpace);
-
- #if 0
- // Used for platform optimized drawing
- for (uint i = 0; i < fHeight; i++) {
- fRowAddr[fHeight - i - 1] = (GLvoid *)((GLubyte *)fBitmap->Bits()
- + i * fBitmap->BytesPerRow());
- }
- #endif
-
- fFrameBuffer->Width = fWidth;
- fFrameBuffer->Height = fHeight;
- TRACE("%s: Bitmap Size: %" B_PRIu32 "\n", __func__, fBitmap->BitsLength());
-
- fFrontRenderBuffer->Buffer = (GLubyte*)fBitmap->Bits();
-}
-
-
-// #pragma mark - static
-
-
-const GLubyte*
-MesaSoftwareRast::_GetString(gl_context* ctx, GLenum name)
-{
- switch (name) {
- case GL_VENDOR:
- return (const GLubyte*) "Mesa Project";
- case GL_RENDERER:
- return (const GLubyte*) "Software Rasterizer";
- default:
- // Let core library handle all other cases
- return NULL;
- }
-}
-
-
-void
-MesaSoftwareRast::_UpdateState(gl_context* ctx, GLuint new_state)
-{
- if (!ctx)
- return;
-
- CALLED();
- _swrast_InvalidateState(ctx, new_state);
- _swsetup_InvalidateState(ctx, new_state);
- _vbo_InvalidateState(ctx, new_state);
- _tnl_InvalidateState(ctx, new_state);
-}
-
-
-GLboolean
-MesaSoftwareRast::_RenderBufferStorage(gl_context* ctx,
- struct gl_renderbuffer* render, GLenum internalFormat,
- GLuint width, GLuint height)
-{
- CALLED();
-
- render->Width = width;
- render->Height = height;
-
- struct swrast_renderbuffer *swRenderBuffer = swrast_renderbuffer(render);
-
- swRenderBuffer->RowStride = width * _mesa_get_format_bytes(render->Format);
-
- return GL_TRUE;
-}
-
-
-GLboolean
-MesaSoftwareRast::_RenderBufferStorageMalloc(gl_context* ctx,
- struct gl_renderbuffer* render, GLenum internalFormat,
- GLuint width, GLuint height)
-{
- CALLED();
-
- render->Width = width;
- render->Height = height;
-
- struct swrast_renderbuffer *swRenderBuffer = swrast_renderbuffer(render);
-
- if (swRenderBuffer != NULL) {
- free(swRenderBuffer->Buffer);
- swRenderBuffer->RowStride
- = width * _mesa_get_format_bytes(render->Format);
-
- uint32 size = swRenderBuffer->RowStride * height;
- TRACE("%s: Allocate %" B_PRIu32 " bytes for RenderBuffer\n",
- __func__, size);
- swRenderBuffer->Buffer = (GLubyte*)malloc(size);
- if (!swRenderBuffer->Buffer) {
- ERROR("%s: Memory allocation failure!\n", __func__);
- return GL_FALSE;
- }
- } else {
- ERROR("%s: Couldn't obtain software renderbuffer!\n",
- __func__);
- return GL_FALSE;
- }
-
- return GL_TRUE;
-}
-
-
-void
-MesaSoftwareRast::_Flush(gl_context* ctx)
-{
- CALLED();
- MesaSoftwareRast* driverContext = static_cast<MesaSoftwareRast*>(ctx);
-
- //MesaSoftwareRast* driverContext = (MesaSoftwareRast*)ctx->DriverCtx;
- if ((driverContext->fOptions & BGL_DOUBLE) == 0) {
- // TODO: SwapBuffers() can call _CopyToDirect(), which should
- // be always called with with the BGLView drawlocked.
- // This is not always the case if called from here.
- driverContext->SwapBuffers();
- }
-}
-
-
-struct swrast_renderbuffer*
-MesaSoftwareRast::_NewRenderBuffer(bool front)
-{
- CALLED();
- struct swrast_renderbuffer *swRenderBuffer
- = (struct swrast_renderbuffer*)calloc(1, sizeof *swRenderBuffer);
-
- if (!swRenderBuffer) {
- ERROR("%s: Failed calloc RenderBuffer\n", __func__);
- return NULL;
- }
-
- _mesa_init_renderbuffer(&swRenderBuffer->Base, 0);
-
- swRenderBuffer->Base.ClassID = HAIKU_SWRAST_RENDERBUFFER_CLASS;
- swRenderBuffer->Base.RefCount = 1;
- swRenderBuffer->Base.Delete = _RenderBufferDelete;
-
- if (!front)
- swRenderBuffer->Base.AllocStorage = _RenderBufferStorageMalloc;
- else
- swRenderBuffer->Base.AllocStorage = _RenderBufferStorage;
-
- if (_SetupRenderBuffer(&swRenderBuffer->Base, fColorSpace) != B_OK) {
- free(swRenderBuffer);
- return NULL;
- }
-
- return swRenderBuffer;
-}
-
-
-status_t
-MesaSoftwareRast::_SetupRenderBuffer(struct gl_renderbuffer* rb,
- color_space colorSpace)
-{
- CALLED();
-
- rb->InternalFormat = GL_RGBA;
-
- switch (colorSpace) {
- case B_RGBA32:
- rb->_BaseFormat = GL_RGBA;
- rb->Format = MESA_FORMAT_B8G8R8A8_UNORM;
- break;
- case B_RGB32:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_B8G8R8X8_UNORM;
- break;
- case B_RGB24:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_BGR_UNORM8;
- break;
- case B_RGB16:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_B5G6R5_UNORM;
- break;
- case B_RGB15:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_B5G5R5A1_UNORM;
- break;
- default:
- fprintf(stderr, "Unsupported screen color space %s\n",
- color_space_name(fColorSpace));
- debugger("Unsupported OpenGL color space");
- return B_ERROR;
- }
- return B_OK;
-}
-
-
-/*! Y inverted Map RenderBuffer function
- We use a BBitmap for storage which has Y inverted.
- If the Mesa provided Map function ever allows external
- control of this we can omit this function.
-*/
-void
-MesaSoftwareRast::_RenderBufferMap(gl_context *ctx,
- struct gl_renderbuffer *rb, GLuint x, GLuint y, GLuint w, GLuint h,
- GLbitfield mode, GLubyte **mapOut, GLint *rowStrideOut)
-{
- if (rb->ClassID == HAIKU_SWRAST_RENDERBUFFER_CLASS) {
- struct swrast_renderbuffer *srb = swrast_renderbuffer(rb);
- const GLuint bpp = _mesa_get_format_bytes(rb->Format);
- GLint rowStride = rb->Width * bpp; // in Bytes
-
- y = rb->Height - y - 1;
-
- *rowStrideOut = -rowStride;
- *mapOut = (GLubyte *) srb->Buffer + y * rowStride + x * bpp;
- } else {
- _swrast_map_soft_renderbuffer(ctx, rb, x, y, w, h, mode,
- mapOut, rowStrideOut);
- }
-}
-
-
-void
-MesaSoftwareRast::_RenderBufferDelete(struct gl_context *ctx,
- struct gl_renderbuffer* rb)
-{
- CALLED();
- if (rb != NULL) {
- struct swrast_renderbuffer *swRenderBuffer
- = swrast_renderbuffer(rb);
- if (swRenderBuffer != NULL)
- free(swRenderBuffer->Buffer);
- }
- free(rb);
-}
-
-
-void
-MesaSoftwareRast::_CopyToDirect()
-{
- BAutolock lock(fInfoLocker);
-
- // check the bitmap size still matches the size
- if (fInfo->window_bounds.bottom - fInfo->window_bounds.top
- != fBitmap->Bounds().IntegerHeight()
- || fInfo->window_bounds.right - fInfo->window_bounds.left
- != fBitmap->Bounds().IntegerWidth())
- return;
-
- uint8 bytesPerPixel = fInfo->bits_per_pixel / 8;
- uint32 bytesPerRow = fBitmap->BytesPerRow();
- for (uint32 i = 0; i < fInfo->clip_list_count; i++) {
- clipping_rect *clip = &fInfo->clip_list[i];
- int32 height = clip->bottom - clip->top + 1;
- int32 bytesWidth
- = (clip->right - clip->left + 1) * bytesPerPixel;
- uint8* p = (uint8*)fInfo->bits + clip->top
- * fInfo->bytes_per_row + clip->left * bytesPerPixel;
- uint8* b = (uint8*)fBitmap->Bits()
- + (clip->top - fInfo->window_bounds.top) * bytesPerRow
- + (clip->left - fInfo->window_bounds.left)
- * bytesPerPixel;
-
- for (int y = 0; y < height; y++) {
- memcpy(p, b, bytesWidth);
- p += fInfo->bytes_per_row;
- b += bytesPerRow;
- }
- }
-}
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h
deleted file mode 100644
index 8f0f01848..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Jérôme Duval, korli@users.berlios.de
- * Philippe Houdoin, philippe.houdoin@free.fr
- * Artur Wyszynski, harakash@gmail.com
- */
-#ifndef MESASOFTWARERENDERER_H
-#define MESASOFTWARERENDERER_H
-
-
-#define HAIKU_SWRAST_RENDERBUFFER_CLASS 0x737752 // swR
-
-
-#include "GLRenderer.h"
-
-extern "C" {
-#include "context.h"
-#include "main/version.h"
-#include "swrast/s_chan.h"
-#include "swrast/s_context.h"
-}
-
-
-class MesaSoftwareRast : public BGLRenderer, public gl_context {
-public:
- MesaSoftwareRast(BGLView* view,
- ulong bgl_options,
- BGLDispatcher* dispatcher);
- virtual ~MesaSoftwareRast();
-
- virtual void LockGL();
- virtual void UnlockGL();
-
- virtual void SwapBuffers(bool VSync = false);
- virtual void Draw(BRect updateRect);
- virtual status_t CopyPixelsOut(BPoint source, BBitmap* dest);
- virtual status_t CopyPixelsIn(BBitmap* source, BPoint dest);
- virtual void FrameResized(float width, float height);
-
- virtual void EnableDirectMode(bool enabled);
- virtual void DirectConnected(direct_buffer_info* info);
-
-private:
- static const GLubyte* _GetString(gl_context* ctx, GLenum name);
- void _CheckResize(GLuint newWidth, GLuint newHeight);
- static void _UpdateState(gl_context* ctx, GLuint newState);
- static void _Flush(gl_context *ctx);
-
- struct swrast_renderbuffer* _NewRenderBuffer(bool front);
- status_t _SetupRenderBuffer(struct gl_renderbuffer* rb,
- color_space colorSpace);
-
-/* Mesa callbacks */
- static void _RenderBufferDelete(struct gl_context *ctx,
- struct gl_renderbuffer* rb);
- static GLboolean _RenderBufferStorage(gl_context* ctx,
- struct gl_renderbuffer* render,
- GLenum internalFormat,
- GLuint width, GLuint height);
- static GLboolean _RenderBufferStorageMalloc(gl_context* ctx,
- struct gl_renderbuffer* render,
- GLenum internalFormat,
- GLuint width, GLuint height);
- static void _RenderBufferMap(gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint x, GLuint y, GLuint w, GLuint h,
- GLbitfield mode, GLubyte **mapOut,
- GLint *rowStrideOut);
-
- void _AllocateBitmap();
- void _CopyToDirect();
-
- BBitmap* fBitmap;
- bool fDirectModeEnabled;
- direct_buffer_info* fInfo;
- BLocker fInfoLocker;
- ulong fOptions;
-
- gl_config* fVisual;
-
- struct gl_framebuffer* fFrameBuffer;
- struct swrast_renderbuffer* fFrontRenderBuffer;
- struct swrast_renderbuffer* fBackRenderBuffer;
-
- GLuint fWidth;
- GLuint fHeight;
- color_space fColorSpace;
-
- void* fRowAddr[SWRAST_MAX_HEIGHT];
-};
-
-#endif // MESASOFTWARERENDERER_H
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef
deleted file mode 100644
index cb6033210..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- */
-
-resource app_signature "application/x-vnd.Haiku-swrast";
-
-resource app_version {
- major = 9,
- middle = 0,
- minor = 0,
- variety = 0,
- internal = 0,
- short_info = "Software Rasterizer",
- long_info = "Haiku Mesa Software GL Rasterizer"
-};
-
-resource vector_icon {
- $"6E6369660A0200140294A9FF18020014028DFFFF97058C0500020006023B10B7"
- $"37F036BA1A993D466848C719BEBE2000919292FFD5D5D5020016023900000000"
- $"000000003EE0004AE00048E0005EF884C702000203392E8D383001BAD97F3C12"
- $"8B4786BD48B8AD0D97BBFFFF7B4168DBE9FF4168DB97020002023A0C1238D099"
- $"BE44203F4BD14B38844678240DF56A7D9FE1EA064CC704016B0500090A044024"
- $"2438404C5C380A044028243C40505C3C0A042438243B5C3C5C380608BFBE4D59"
- $"4D59515957575659585560406044603C5E3A5C3CCB4FBFBA5E3ECA9DC11F564B"
- $"584A544C504C0606AF0F2F3D2F3D393D4034BF593542324130432F42364432C0"
- $"3FBC5A2F48354A2F480608AE9A22303EB5BD3AB42542B755422E412F3C29322D"
- $"32223C0204263726372538263F253E263F304430443143303C313D303C02043D"
- $"423D423C433D4A3C493D4A495049504A4F49474A484947060DAEAAAE014E445A"
- $"3456365E325E3D5D3F5A3A5542544E4D573A4E364439463342324A2242310A0A"
- $"0002020102403CA00C88888C8CC1401673C40D6544F2950A01010002403CA000"
- $"0000000000401673C40D65446CF80A08020304023EC16A0000000000003EC16A"
- $"45DD1844C6550A030105123EC16A0000000000003EC16A45DD1844C655011784"
- $"22040A040105023EC16A0000000000003EC16A45DD1844C6550A030108123EC1"
- $"6A0000000000003EC16A45DD1844C65501178422040A0503080706023EC16A00"
- $"00000000003EC16A45DD1844C6550A030206071A3EC16A0000000000003EC16A"
- $"45DD1844C65510FF0215810004178222040A060106023EC16A0000000000003E"
- $"C16A45DD1844C6550A070107023EC16A0000000000003EC16A45DD1844C655"
-};
diff --git a/mesalib/src/mesa/main/api_exec.h b/mesalib/src/mesa/main/api_exec.h
index 12249fec2..655cb32d0 100644
--- a/mesalib/src/mesa/main/api_exec.h
+++ b/mesalib/src/mesa/main/api_exec.h
@@ -38,6 +38,9 @@ _mesa_initialize_exec_table(struct gl_context *ctx);
extern void
_mesa_initialize_dispatch_tables(struct gl_context *ctx);
+extern struct _glapi_table *
+_mesa_new_nop_table(unsigned numEntries);
+
#ifdef __cplusplus
} // extern "C"
#endif
diff --git a/mesalib/src/mesa/main/api_loopback.c b/mesalib/src/mesa/main/api_loopback.c
index 9932a8373..a7fd82c53 100644
--- a/mesalib/src/mesa/main/api_loopback.c
+++ b/mesalib/src/mesa/main/api_loopback.c
@@ -1772,7 +1772,9 @@ _mesa_loopback_init_api_table(const struct gl_context *ctx,
SET_VertexAttribI4sv(dest, _mesa_VertexAttribI4sv);
SET_VertexAttribI4ubv(dest, _mesa_VertexAttribI4ubv);
SET_VertexAttribI4usv(dest, _mesa_VertexAttribI4usv);
+ }
+ if (ctx->API == API_OPENGL_CORE) {
/* GL 4.1 / GL_ARB_vertex_attrib_64bit */
SET_VertexAttribL1d(dest, _mesa_VertexAttribL1d);
SET_VertexAttribL2d(dest, _mesa_VertexAttribL2d);
diff --git a/mesalib/src/mesa/main/arrayobj.c b/mesalib/src/mesa/main/arrayobj.c
index 320f435ea..7c4004043 100644
--- a/mesalib/src/mesa/main/arrayobj.c
+++ b/mesalib/src/mesa/main/arrayobj.c
@@ -617,14 +617,6 @@ void GLAPIENTRY
_mesa_CreateVertexArrays(GLsizei n, GLuint *arrays)
{
GET_CURRENT_CONTEXT(ctx);
-
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateVertexArrays(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
gen_vertex_arrays(ctx, n, arrays, true, "glCreateVertexArrays");
}
@@ -667,13 +659,6 @@ _mesa_VertexArrayElementBuffer(GLuint vaobj, GLuint buffer)
struct gl_vertex_array_object *vao;
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayElementBuffer(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
ASSERT_OUTSIDE_BEGIN_END(ctx);
/* The GL_ARB_direct_state_access specification says:
@@ -710,13 +695,6 @@ _mesa_GetVertexArrayiv(GLuint vaobj, GLenum pname, GLint *param)
ASSERT_OUTSIDE_BEGIN_END(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetVertexArrayiv(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The GL_ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated if <vaobj> is not
diff --git a/mesalib/src/mesa/main/attrib.c b/mesalib/src/mesa/main/attrib.c
index b163c0aa6..53626e38b 100644
--- a/mesalib/src/mesa/main/attrib.c
+++ b/mesalib/src/mesa/main/attrib.c
@@ -177,6 +177,10 @@ struct texture_state
};
+/** An unused GL_*_BIT value */
+#define DUMMY_BIT 0x10000000
+
+
/**
* Allocate new attribute node of given type/kind. Attach payload data.
* Insert it into the linked list named by 'head'.
@@ -253,6 +257,15 @@ _mesa_PushAttrib(GLbitfield mask)
/* groups specified by the mask. */
head = NULL;
+ if (mask == 0) {
+ /* if mask is zero we still need to push something so that we
+ * don't get a GL_STACK_UNDERFLOW error in glPopAttrib().
+ */
+ GLuint dummy = 0;
+ if (!push_attrib(ctx, &head, DUMMY_BIT, sizeof(dummy), &dummy))
+ goto end;
+ }
+
if (mask & GL_ACCUM_BUFFER_BIT) {
if (!push_attrib(ctx, &head, GL_ACCUM_BUFFER_BIT,
sizeof(struct gl_accum_attrib),
@@ -928,6 +941,10 @@ _mesa_PopAttrib(void)
}
switch (attr->kind) {
+ case DUMMY_BIT:
+ /* do nothing */
+ break;
+
case GL_ACCUM_BUFFER_BIT:
{
const struct gl_accum_attrib *accum;
@@ -1074,6 +1091,11 @@ _mesa_PopAttrib(void)
_mesa_ClearDepth(depth->Clear);
_mesa_set_enable(ctx, GL_DEPTH_TEST, depth->Test);
_mesa_DepthMask(depth->Mask);
+ if (ctx->Extensions.EXT_depth_bounds_test) {
+ _mesa_set_enable(ctx, GL_DEPTH_BOUNDS_TEST_EXT,
+ depth->BoundsTest);
+ _mesa_DepthBoundsEXT(depth->BoundsMin, depth->BoundsMax);
+ }
}
break;
case GL_ENABLE_BIT:
diff --git a/mesalib/src/mesa/main/blit.c b/mesalib/src/mesa/main/blit.c
index fac972450..db8fee5a4 100644
--- a/mesalib/src/mesa/main/blit.c
+++ b/mesalib/src/mesa/main/blit.c
@@ -540,13 +540,6 @@ _mesa_BlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *readFb, *drawFb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBlitNamedFramebuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx,
"glBlitNamedFramebuffer(%u %u %d, %d, %d, %d, "
diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c
index 660bc9489..66dee6802 100644
--- a/mesalib/src/mesa/main/bufferobj.c
+++ b/mesalib/src/mesa/main/bufferobj.c
@@ -1303,12 +1303,6 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa)
const char *func = dsa ? "glCreateBuffers" : "glGenBuffers";
- if (dsa && !ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "%s(%d)\n", func, n);
@@ -1483,13 +1477,6 @@ _mesa_NamedBufferStorage(GLuint buffer, GLsizeiptr size, const GLvoid *data,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedBufferStorage(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glNamedBufferStorage");
if (!bufObj)
return;
@@ -1616,13 +1603,6 @@ _mesa_NamedBufferData(GLuint buffer, GLsizeiptr size, const GLvoid *data,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedBufferData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glNamedBufferData");
if (!bufObj)
return;
@@ -1693,13 +1673,6 @@ _mesa_NamedBufferSubData(GLuint buffer, GLintptr offset,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glNamedBufferSubData");
if (!bufObj)
return;
@@ -1737,13 +1710,6 @@ _mesa_GetNamedBufferSubData(GLuint buffer, GLintptr offset,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glGetNamedBufferSubData");
if (!bufObj)
@@ -1839,13 +1805,6 @@ _mesa_ClearNamedBufferData(GLuint buffer, GLenum internalformat,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedBufferData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glClearNamedBufferData");
if (!bufObj)
return;
@@ -1883,13 +1842,6 @@ _mesa_ClearNamedBufferSubData(GLuint buffer, GLenum internalformat,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glClearNamedBufferSubData");
if (!bufObj)
@@ -1978,13 +1930,6 @@ _mesa_UnmapNamedBuffer(GLuint buffer)
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glUnmapNamedBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return GL_FALSE;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glUnmapNamedBuffer");
if (!bufObj)
return GL_FALSE;
@@ -2094,13 +2039,6 @@ _mesa_GetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params)
struct gl_buffer_object *bufObj;
GLint64 parameter;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glGetNamedBufferParameteriv");
if (!bufObj)
@@ -2121,13 +2059,6 @@ _mesa_GetNamedBufferParameteri64v(GLuint buffer, GLenum pname,
struct gl_buffer_object *bufObj;
GLint64 parameter;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferParameteri64v(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glGetNamedBufferParameteri64v");
if (!bufObj)
@@ -2167,13 +2098,6 @@ _mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params)
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferPointerv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (pname != GL_BUFFER_MAP_POINTER) {
_mesa_error(ctx, GL_INVALID_ENUM, "glGetNamedBufferPointerv(pname != "
"GL_BUFFER_MAP_POINTER)");
@@ -2288,13 +2212,6 @@ _mesa_CopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *src, *dst;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCopyNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
src = _mesa_lookup_bufferobj_err(ctx, readBuffer,
"glCopyNamedBufferSubData");
if (!src)
@@ -2513,13 +2430,6 @@ _mesa_MapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glMapNamedBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return NULL;
- }
-
if (!ctx->Extensions.ARB_map_buffer_range) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glMapNamedBufferRange("
@@ -2587,13 +2497,6 @@ _mesa_MapNamedBuffer(GLuint buffer, GLenum access)
struct gl_buffer_object *bufObj;
GLbitfield accessFlags;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glMapNamedBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return NULL;
- }
-
if (!get_map_buffer_access_flags(ctx, access, &accessFlags)) {
_mesa_error(ctx, GL_INVALID_ENUM, "glMapNamedBuffer(invalid access)");
return NULL;
@@ -2684,14 +2587,6 @@ _mesa_FlushMappedNamedBufferRange(GLuint buffer, GLintptr offset,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glFlushMappedNamedBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glFlushMappedNamedBufferRange");
if (!bufObj)
diff --git a/mesalib/src/mesa/main/buffers.c b/mesalib/src/mesa/main/buffers.c
index c83459add..0536266d7 100644
--- a/mesalib/src/mesa/main/buffers.c
+++ b/mesalib/src/mesa/main/buffers.c
@@ -303,13 +303,6 @@ _mesa_NamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf)
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *fb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferDrawBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (framebuffer) {
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferDrawBuffer");
@@ -520,13 +513,6 @@ _mesa_NamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n,
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *fb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferDrawBuffers(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (framebuffer) {
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferDrawBuffers");
@@ -764,13 +750,6 @@ _mesa_NamedFramebufferReadBuffer(GLuint framebuffer, GLenum src)
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *fb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferReadBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (framebuffer) {
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferReadBuffer");
diff --git a/mesalib/src/mesa/main/clear.c b/mesalib/src/mesa/main/clear.c
index c6999f7fd..426caea47 100644
--- a/mesalib/src/mesa/main/clear.c
+++ b/mesalib/src/mesa/main/clear.c
@@ -412,14 +412,6 @@ _mesa_ClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferiv(buffer, drawbuffer, value);
@@ -510,14 +502,6 @@ _mesa_ClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferuiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferuiv(buffer, drawbuffer, value);
@@ -629,14 +613,6 @@ _mesa_ClearNamedFramebufferfv(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferfv(buffer, drawbuffer, value);
@@ -719,14 +695,6 @@ _mesa_ClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferfi(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferfi(buffer, 0, depth, stencil);
diff --git a/mesalib/src/mesa/main/config.h b/mesalib/src/mesa/main/config.h
index 5a66a4eec..9c3baf4c6 100644
--- a/mesalib/src/mesa/main/config.h
+++ b/mesalib/src/mesa/main/config.h
@@ -213,19 +213,10 @@
/** For GL_ARB_fragment_program */
/*@{*/
#define MAX_FRAGMENT_PROGRAM_ADDRESS_REGS 0
+#define MAX_FRAGMENT_PROGRAM_PARAMS 64
+#define MAX_FRAGMENT_PROGRAM_INPUTS 12
/*@}*/
-/** For GL_NV_fragment_program */
-/*@{*/
-#define MAX_NV_FRAGMENT_PROGRAM_INSTRUCTIONS 1024 /* 72 for GL_ARB_f_p */
-#define MAX_NV_FRAGMENT_PROGRAM_TEMPS 96
-#define MAX_NV_FRAGMENT_PROGRAM_PARAMS 64
-#define MAX_NV_FRAGMENT_PROGRAM_INPUTS 12
-#define MAX_NV_FRAGMENT_PROGRAM_OUTPUTS 3
-#define MAX_NV_FRAGMENT_PROGRAM_WRITE_ONLYS 2
-/*@}*/
-
-
/** For GL_ARB_vertex_shader */
/*@{*/
#define MAX_VERTEX_GENERIC_ATTRIBS 16
diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c
index 544cc142f..79fa01849 100644
--- a/mesalib/src/mesa/main/context.c
+++ b/mesalib/src/mesa/main/context.c
@@ -489,8 +489,8 @@ init_program_limits(struct gl_constants *consts, gl_shader_stage stage,
prog->MaxOutputComponents = 16 * 4; /* old limit not to break tnl and swrast */
break;
case MESA_SHADER_FRAGMENT:
- prog->MaxParameters = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
- prog->MaxAttribs = MAX_NV_FRAGMENT_PROGRAM_INPUTS;
+ prog->MaxParameters = MAX_FRAGMENT_PROGRAM_PARAMS;
+ prog->MaxAttribs = MAX_FRAGMENT_PROGRAM_INPUTS;
prog->MaxAddressRegs = MAX_FRAGMENT_PROGRAM_ADDRESS_REGS;
prog->MaxUniformComponents = 4 * MAX_UNIFORMS;
prog->MaxInputComponents = 16 * 4; /* old limit not to break tnl and swrast */
@@ -883,6 +883,19 @@ update_default_objects(struct gl_context *ctx)
}
+/* XXX this is temporary and should be removed at some point in the
+ * future when there's a reasonable expectation that the libGL library
+ * contains the _glapi_new_nop_table() and _glapi_set_nop_handler()
+ * functions which were added in Mesa 10.6.
+ */
+#if !defined(_WIN32)
+/* Avoid libGL / driver ABI break */
+#define USE_GLAPI_NOP_FEATURES 0
+#else
+#define USE_GLAPI_NOP_FEATURES 1
+#endif
+
+
/**
* This function is called by the glapi no-op functions. For each OpenGL
* function/entrypoint there's a simple no-op function. These "no-op"
@@ -898,6 +911,7 @@ update_default_objects(struct gl_context *ctx)
*
* \param name the name of the OpenGL function
*/
+#if USE_GLAPI_NOP_FEATURES
static void
nop_handler(const char *name)
{
@@ -914,6 +928,7 @@ nop_handler(const char *name)
}
#endif
}
+#endif
/**
@@ -923,12 +938,52 @@ nop_handler(const char *name)
static void GLAPIENTRY
nop_glFlush(void)
{
- /* don't record an error like we do in _mesa_generic_nop() */
+ /* don't record an error like we do in nop_handler() */
+}
+#endif
+
+
+#if !USE_GLAPI_NOP_FEATURES
+static int
+generic_nop(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "unsupported function called "
+ "(unsupported extension or deprecated function?)");
+ return 0;
}
#endif
/**
+ * Create a new API dispatch table in which all entries point to the
+ * generic_nop() function. This will not work on Windows because of
+ * the __stdcall convention which requires the callee to clean up the
+ * call stack. That's impossible with one generic no-op function.
+ */
+struct _glapi_table *
+_mesa_new_nop_table(unsigned numEntries)
+{
+ struct _glapi_table *table;
+
+#if !USE_GLAPI_NOP_FEATURES
+ table = malloc(numEntries * sizeof(_glapi_proc));
+ if (table) {
+ _glapi_proc *entry = (_glapi_proc *) table;
+ unsigned i;
+ for (i = 0; i < numEntries; i++) {
+ entry[i] = (_glapi_proc) generic_nop;
+ }
+ }
+#else
+ table = _glapi_new_nop_table(numEntries);
+#endif
+ return table;
+}
+
+
+/**
* Allocate and initialize a new dispatch table. The table will be
* populated with pointers to "no-op" functions. In turn, the no-op
* functions will call nop_handler() above.
@@ -941,8 +996,9 @@ alloc_dispatch_table(void)
* Mesa we do this to accommodate different versions of libGL and various
* DRI drivers.
*/
- GLint numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);
- struct _glapi_table *table = _glapi_new_nop_table(numEntries);
+ int numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);
+
+ struct _glapi_table *table = _mesa_new_nop_table(numEntries);
#if defined(_WIN32)
if (table) {
@@ -966,7 +1022,9 @@ alloc_dispatch_table(void)
}
#endif
+#if USE_GLAPI_NOP_FEATURES
_glapi_set_nop_handler(nop_handler);
+#endif
return table;
}
@@ -1111,9 +1169,7 @@ _mesa_initialize_context(struct gl_context *ctx,
ctx->HasConfig = GL_FALSE;
}
- if (_mesa_is_desktop_gl(ctx)) {
- _mesa_override_gl_version(ctx);
- }
+ _mesa_override_gl_version(ctx);
/* misc one-time initializations */
one_time_init(ctx);
@@ -1275,7 +1331,6 @@ _mesa_free_context_data( struct gl_context *ctx )
_mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, NULL);
_mesa_reference_vertprog(ctx, &ctx->VertexProgram._TnlProgram, NULL);
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current, NULL);
_mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current, NULL);
_mesa_reference_fragprog(ctx, &ctx->FragmentProgram.Current, NULL);
diff --git a/mesalib/src/mesa/main/copyimage.c b/mesalib/src/mesa/main/copyimage.c
index fd22f2889..e8732c617 100644
--- a/mesalib/src/mesa/main/copyimage.c
+++ b/mesalib/src/mesa/main/copyimage.c
@@ -40,14 +40,25 @@ enum mesa_block_class {
BLOCK_CLASS_64_BITS
};
+/**
+ * Prepare the source or destination resource, including:
+ * - Error checking
+ * - Creating texture wrappers for renderbuffers
+ * \param name the texture or renderbuffer name
+ * \param target GL_TEXTURE target or GL_RENDERBUFFER. For the later, will
+ * be changed to a compatible GL_TEXTURE target.
+ * \param level mipmap level
+ * \param tex_obj returns a pointer to a texture object
+ * \param tex_image returns a pointer to a texture image
+ * \param tmp_tex returns temporary texture object name
+ * \return true if success, false if error
+ */
static bool
prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level,
struct gl_texture_object **tex_obj,
struct gl_texture_image **tex_image, GLuint *tmp_tex,
const char *dbg_prefix)
{
- struct gl_renderbuffer *rb;
-
if (name == 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glCopyImageSubData(%sName = %d)", dbg_prefix, name);
@@ -87,7 +98,7 @@ prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level,
}
if (*target == GL_RENDERBUFFER) {
- rb = _mesa_lookup_renderbuffer(ctx, name);
+ struct gl_renderbuffer *rb = _mesa_lookup_renderbuffer(ctx, name);
if (!rb) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glCopyImageSubData(%sName = %u)", dbg_prefix, name);
@@ -169,8 +180,15 @@ prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level,
return true;
}
+
+/**
+ * Check that the x,y,z,width,height,region is within the texture image
+ * dimensions.
+ * \return true if bounds OK, false if regions is out of bounds
+ */
static bool
-check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
+check_region_bounds(struct gl_context *ctx,
+ const struct gl_texture_image *tex_image,
int x, int y, int z, int width, int height, int depth,
const char *dbg_prefix)
{
@@ -188,6 +206,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
return false;
}
+ /* Check X direction */
if (x + width > tex_image->Width) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glCopyImageSubData(%sX or %sWidth exceeds image bounds)",
@@ -195,6 +214,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
return false;
}
+ /* Check Y direction */
switch (tex_image->TexObject->Target) {
case GL_TEXTURE_1D:
case GL_TEXTURE_1D_ARRAY:
@@ -215,6 +235,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
break;
}
+ /* Check Z direction */
switch (tex_image->TexObject->Target) {
case GL_TEXTURE_1D:
case GL_TEXTURE_2D:
@@ -260,7 +281,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
}
static bool
-compressed_format_compatible(struct gl_context *ctx,
+compressed_format_compatible(const struct gl_context *ctx,
GLenum compressedFormat, GLenum otherFormat)
{
enum mesa_block_class compressedClass, otherClass;
@@ -348,8 +369,8 @@ compressed_format_compatible(struct gl_context *ctx,
}
static bool
-copy_format_compatible(struct gl_context *ctx,
- GLenum srcFormat, GLenum dstFormat)
+copy_format_compatible(const struct gl_context *ctx,
+ GLenum srcFormat, GLenum dstFormat)
{
/*
* From ARB_copy_image spec:
@@ -389,7 +410,7 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel,
struct gl_texture_object *srcTexObj, *dstTexObj;
struct gl_texture_image *srcTexImage, *dstTexImage;
GLuint src_bw, src_bh, dst_bw, dst_bh;
- int i, srcNewZ, dstNewZ;
+ int i;
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glCopyImageSubData(%u, %s, %d, %d, %d, %d, "
@@ -447,6 +468,8 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel,
}
for (i = 0; i < srcDepth; ++i) {
+ int srcNewZ, dstNewZ;
+
if (srcTexObj->Target == GL_TEXTURE_CUBE_MAP) {
srcTexImage = srcTexObj->Image[i + srcZ][srcLevel];
srcNewZ = 0;
diff --git a/mesalib/src/mesa/main/depth.c b/mesalib/src/mesa/main/depth.c
index 29851ecb8..bb4591cf1 100644
--- a/mesalib/src/mesa/main/depth.c
+++ b/mesalib/src/mesa/main/depth.c
@@ -65,6 +65,9 @@ _mesa_DepthFunc( GLenum func )
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glDepthFunc %s\n", _mesa_lookup_enum_by_nr(func));
+ if (ctx->Depth.Func == func)
+ return;
+
switch (func) {
case GL_LESS: /* (default) pass if incoming z < stored z */
case GL_GEQUAL:
@@ -80,9 +83,6 @@ _mesa_DepthFunc( GLenum func )
return;
}
- if (ctx->Depth.Func == func)
- return;
-
FLUSH_VERTICES(ctx, _NEW_DEPTH);
ctx->Depth.Func = func;
diff --git a/mesalib/src/mesa/main/dlist.c b/mesalib/src/mesa/main/dlist.c
index 431c4b48b..aafe486fb 100644
--- a/mesalib/src/mesa/main/dlist.c
+++ b/mesalib/src/mesa/main/dlist.c
@@ -7592,28 +7592,6 @@ save_FramebufferTexture(GLenum target, GLenum attachment,
}
}
-static void GLAPIENTRY
-save_FramebufferTextureFace(GLenum target, GLenum attachment,
- GLuint texture, GLint level, GLenum face)
-{
- Node *n;
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_FRAMEBUFFER_TEXTURE_FACE, 5);
- if (n) {
- n[1].e = target;
- n[2].e = attachment;
- n[3].ui = texture;
- n[4].i = level;
- n[5].e = face;
- }
- if (ctx->ExecuteFlag) {
- CALL_FramebufferTextureFaceARB(ctx->Exec, (target, attachment, texture,
- level, face));
- }
-}
-
-
static void GLAPIENTRY
save_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
@@ -8873,11 +8851,6 @@ execute_list(struct gl_context *ctx, GLuint list)
CALL_FramebufferTexture(ctx->Exec, (n[1].e, n[2].e,
n[3].ui, n[4].i));
break;
- case OPCODE_FRAMEBUFFER_TEXTURE_FACE:
- CALL_FramebufferTextureFaceARB(ctx->Exec, (n[1].e, n[2].e,
- n[3].ui, n[4].i, n[5].e));
- break;
-
/* GL_ARB_sync */
case OPCODE_WAIT_SYNC:
{
@@ -9644,10 +9617,9 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
SET_BlendEquationiARB(table, save_BlendEquationi);
SET_BlendEquationSeparateiARB(table, save_BlendEquationSeparatei);
- /* GL_ARB_geometry_shader4 */
+ /* OpenGL 3.2 */
SET_ProgramParameteri(table, save_ProgramParameteri);
SET_FramebufferTexture(table, save_FramebufferTexture);
- SET_FramebufferTextureFaceARB(table, save_FramebufferTextureFace);
/* GL_NV_conditional_render */
SET_BeginConditionalRender(table, save_BeginConditionalRender);
diff --git a/mesalib/src/mesa/main/errors.c b/mesalib/src/mesa/main/errors.c
index 2aa1deb63..16f10ddb6 100644
--- a/mesalib/src/mesa/main/errors.c
+++ b/mesalib/src/mesa/main/errors.c
@@ -39,6 +39,7 @@
#include "mtypes.h"
#include "version.h"
#include "util/hash_table.h"
+#include "util/simple_list.h"
static mtx_t DynamicIDMutex = _MTX_INITIALIZER_NP;
static GLuint NextDynamicID = 1;
diff --git a/mesalib/src/mesa/main/extensions.c b/mesalib/src/mesa/main/extensions.c
index c82416aa0..f9bf503a0 100644
--- a/mesalib/src/mesa/main/extensions.c
+++ b/mesalib/src/mesa/main/extensions.c
@@ -104,7 +104,7 @@ static const struct extension extension_table[] = {
{ "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL, 2003 },
{ "GL_ARB_depth_texture", o(ARB_depth_texture), GLL, 2001 },
{ "GL_ARB_derivative_control", o(ARB_derivative_control), GL, 2014 },
- { "GL_ARB_direct_state_access", o(ARB_direct_state_access), GL, 2014 },
+ { "GL_ARB_direct_state_access", o(dummy_true), GLC, 2014 },
{ "GL_ARB_draw_buffers", o(dummy_true), GL, 2002 },
{ "GL_ARB_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 },
{ "GL_ARB_draw_elements_base_vertex", o(ARB_draw_elements_base_vertex), GL, 2009 },
diff --git a/mesalib/src/mesa/main/fbobject.c b/mesalib/src/mesa/main/fbobject.c
index 8db651ca2..c5a702636 100644
--- a/mesalib/src/mesa/main/fbobject.c
+++ b/mesalib/src/mesa/main/fbobject.c
@@ -1489,14 +1489,6 @@ void GLAPIENTRY
_mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers)
{
GET_CURRENT_CONTEXT(ctx);
-
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateRenderbuffers(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
create_render_buffers(ctx, n, renderbuffers, true);
}
@@ -1937,12 +1929,6 @@ renderbuffer_storage_named(GLuint renderbuffer, GLenum internalFormat,
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (MESA_VERBOSE & VERBOSE_API) {
if (samples == NO_SAMPLES)
_mesa_debug(ctx, "%s(%u, %s, %d, %d)\n",
@@ -2197,13 +2183,6 @@ _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedRenderbufferParameteriv("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
struct gl_renderbuffer *rb = _mesa_lookup_renderbuffer(ctx, renderbuffer);
if (!rb || rb == &DummyRenderbuffer) {
/* ID was reserved, but no real renderbuffer object made yet */
@@ -2475,12 +2454,6 @@ create_framebuffers(GLsizei n, GLuint *framebuffers, bool dsa)
const char *func = dsa ? "glCreateFramebuffers" : "glGenFramebuffers";
- if (dsa && !ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (n < 0) {
_mesa_error(ctx, GL_INVALID_VALUE, "%s(n < 0)", func);
return;
@@ -2579,13 +2552,6 @@ _mesa_CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target)
struct gl_framebuffer *fb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCheckNamedFramebufferStatus(GL_ARB_direct_state_access "
- "is not supported)");
- return 0;
- }
-
/* Validate the target (for conformance's sake) and grab a reference to the
* default framebuffer in case framebuffer = 0.
* Section 9.4 Framebuffer Completeness of the OpenGL 4.5 core spec
@@ -2741,6 +2707,10 @@ check_texture_target(struct gl_context *ctx, GLenum target,
/* We're being called by glFramebufferTextureLayer().
* The only legal texture types for that function are 3D,
* cube-map, and 1D/2D/cube-map array textures.
+ *
+ * We don't need to check for GL_ARB_texture_cube_map_array because the
+ * application wouldn't have been able to create a texture with a
+ * GL_TEXTURE_CUBE_MAP_ARRAY target if the extension were not enabled.
*/
switch (target) {
case GL_TEXTURE_3D:
@@ -2750,10 +2720,13 @@ check_texture_target(struct gl_context *ctx, GLenum target,
case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
return true;
case GL_TEXTURE_CUBE_MAP:
- /* This target is valid in TextureLayer when ARB_direct_state_access
- * or OpenGL 4.5 is supported.
+ /* We don't need to check the extension (GL_ARB_direct_state_access) or
+ * GL version (4.5) for GL_TEXTURE_CUBE_MAP because DSA is always
+ * enabled in core profile. This can be called from
+ * _mesa_FramebufferTextureLayer in compatibility profile (OpenGL 3.0),
+ * so we do have to check the profile.
*/
- return ctx->Extensions.ARB_direct_state_access;
+ return ctx->API == API_OPENGL_CORE;
}
_mesa_error(ctx, GL_INVALID_OPERATION,
@@ -3131,12 +3104,6 @@ _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment,
const char *func = "glNamedFramebufferTextureLayer";
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
/* Get the framebuffer object */
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer, func);
if (!fb)
@@ -3222,12 +3189,6 @@ _mesa_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment,
const char *func = "glNamedFramebufferTexture";
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (!_mesa_has_geometry_shaders(ctx)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"unsupported function (glNamedFramebufferTexture) called");
@@ -3353,15 +3314,10 @@ _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment,
struct gl_renderbuffer *rb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferRenderbuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferRenderbuffer");
+ if (!fb)
+ return;
if (renderbuffertarget != GL_RENDERBUFFER) {
_mesa_error(ctx, GL_INVALID_ENUM,
@@ -3692,13 +3648,6 @@ _mesa_GetNamedFramebufferAttachmentParameteriv(GLuint framebuffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *buffer;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedFramebufferAttachmentParameteriv("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
if (framebuffer) {
buffer = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glGetNamedFramebufferAttachmentParameteriv");
@@ -3731,13 +3680,6 @@ _mesa_NamedFramebufferParameteri(GLuint framebuffer, GLenum pname,
(void) pname;
(void) param;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferParameteri("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
_mesa_error(ctx, GL_INVALID_OPERATION,
"glNamedFramebufferParameteri not supported "
"(ARB_framebuffer_no_attachments not implemented)");
@@ -3754,13 +3696,6 @@ _mesa_GetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname,
(void) pname;
(void) param;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferParameteriv("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
_mesa_error(ctx, GL_INVALID_OPERATION,
"glGetNamedFramebufferParameteriv not supported "
"(ARB_framebuffer_no_attachments not implemented)");
@@ -3929,13 +3864,6 @@ _mesa_InvalidateNamedFramebufferSubData(GLuint framebuffer,
struct gl_framebuffer *fb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glInvalidateNamedFramebufferSubData("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
/* The OpenGL 4.5 core spec (02.02.2015) says (in Section 17.4 Whole
* Framebuffer Operations, PDF page 522): "If framebuffer is zero, the
* default draw framebuffer is affected."
@@ -3997,13 +3925,6 @@ _mesa_InvalidateNamedFramebufferData(GLuint framebuffer,
struct gl_framebuffer *fb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glInvalidateNamedFramebufferData("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
/* The OpenGL 4.5 core spec (02.02.2015) says (in Section 17.4 Whole
* Framebuffer Operations, PDF page 522): "If framebuffer is zero, the
* default draw framebuffer is affected."
diff --git a/mesalib/src/mesa/main/formats.c b/mesalib/src/mesa/main/formats.c
index 8af44e905..baeb1bfe5 100644
--- a/mesalib/src/mesa/main/formats.c
+++ b/mesalib/src/mesa/main/formats.c
@@ -397,6 +397,11 @@ format_array_format_table_init(void)
format_array_format_table = _mesa_hash_table_create(NULL, NULL,
array_formats_equal);
+ if (!format_array_format_table) {
+ _mesa_error_no_memory(__func__);
+ return;
+ }
+
for (f = 1; f < MESA_FORMAT_COUNT; ++f) {
info = _mesa_get_format_info(f);
if (!info->ArrayFormat)
@@ -432,6 +437,12 @@ _mesa_format_from_array_format(uint32_t array_format)
call_once(&format_array_format_table_exists, format_array_format_table_init);
+ if (!format_array_format_table) {
+ static const once_flag once_flag_init = ONCE_FLAG_INIT;
+ format_array_format_table_exists = once_flag_init;
+ return MESA_FORMAT_NONE;
+ }
+
entry = _mesa_hash_table_search_pre_hashed(format_array_format_table,
array_format,
(void *)(intptr_t)array_format);
diff --git a/mesalib/src/mesa/main/genmipmap.c b/mesalib/src/mesa/main/genmipmap.c
index 32b9460ad..9aef09019 100644
--- a/mesalib/src/mesa/main/genmipmap.c
+++ b/mesalib/src/mesa/main/genmipmap.c
@@ -158,13 +158,6 @@ _mesa_GenerateTextureMipmap(GLuint texture)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGenerateTextureMipmap(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, "glGenerateTextureMipmap");
if (!texObj)
return;
diff --git a/mesalib/src/mesa/main/get.c b/mesalib/src/mesa/main/get.c
index 8a6c81aff..1bc9b5d82 100644
--- a/mesalib/src/mesa/main/get.c
+++ b/mesalib/src/mesa/main/get.c
@@ -138,6 +138,7 @@ enum value_extra {
EXTRA_API_GL_CORE,
EXTRA_API_ES2,
EXTRA_API_ES3,
+ EXTRA_API_ES31,
EXTRA_NEW_BUFFERS,
EXTRA_NEW_FRAG_CLAMP,
EXTRA_VALID_DRAW_BUFFER,
@@ -348,6 +349,12 @@ static const int extra_ARB_shader_image_load_store_and_geometry_shader[] = {
EXTRA_END
};
+static const int extra_ARB_draw_indirect_es31[] = {
+ EXT(ARB_draw_indirect),
+ EXTRA_API_ES31,
+ EXTRA_END
+};
+
EXTRA_EXT(ARB_texture_cube_map);
EXTRA_EXT(EXT_texture_array);
EXTRA_EXT(NV_fog_distance);
@@ -1078,6 +1085,11 @@ check_extra(struct gl_context *ctx, const char *func, const struct value_desc *d
if (_mesa_is_gles3(ctx))
api_found = GL_TRUE;
break;
+ case EXTRA_API_ES31:
+ api_check = GL_TRUE;
+ if (_mesa_is_gles31(ctx))
+ api_found = GL_TRUE;
+ break;
case EXTRA_API_GL:
api_check = GL_TRUE;
if (_mesa_is_desktop_gl(ctx))
diff --git a/mesalib/src/mesa/main/get_hash_params.py b/mesalib/src/mesa/main/get_hash_params.py
index 41cb2c17b..513d5d21b 100644
--- a/mesalib/src/mesa/main/get_hash_params.py
+++ b/mesalib/src/mesa/main/get_hash_params.py
@@ -409,6 +409,12 @@ descriptor=[
[ "SAMPLER_BINDING", "LOC_CUSTOM, TYPE_INT, GL_SAMPLER_BINDING, NO_EXTRA" ],
]},
+# Enums in OpenGL Core profile and ES 3.1
+{ "apis": ["GL_CORE", "GLES3"], "params": [
+# GL_ARB_draw_indirect / GLES 3.1
+ [ "DRAW_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_draw_indirect_es31" ],
+]},
+
# Remaining enums are only in OpenGL
{ "apis": ["GL", "GL_CORE"], "params": [
[ "ACCUM_RED_BITS", "BUFFER_INT(Visual.accumRedBits), NO_EXTRA" ],
@@ -804,8 +810,6 @@ descriptor=[
{ "apis": ["GL_CORE"], "params": [
# GL_ARB_texture_buffer_range
[ "TEXTURE_BUFFER_OFFSET_ALIGNMENT", "CONTEXT_INT(Const.TextureBufferOffsetAlignment), extra_ARB_texture_buffer_range" ],
-# GL_ARB_draw_indirect
- [ "DRAW_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_draw_indirect" ],
# GL_ARB_viewport_array
[ "MAX_VIEWPORTS", "CONTEXT_INT(Const.MaxViewports), extra_ARB_viewport_array" ],
diff --git a/mesalib/src/mesa/main/getstring.c b/mesalib/src/mesa/main/getstring.c
index 1b2c7f054..72d99ca4e 100644
--- a/mesalib/src/mesa/main/getstring.c
+++ b/mesalib/src/mesa/main/getstring.c
@@ -72,10 +72,18 @@ shading_language_version(struct gl_context *ctx)
break;
case API_OPENGLES2:
- return (ctx->Version < 30)
- ? (const GLubyte *) "OpenGL ES GLSL ES 1.0.16"
- : (const GLubyte *) "OpenGL ES GLSL ES 3.00";
-
+ switch (ctx->Version) {
+ case 20:
+ return (const GLubyte *) "OpenGL ES GLSL ES 1.0.16";
+ case 30:
+ return (const GLubyte *) "OpenGL ES GLSL ES 3.00";
+ case 31:
+ return (const GLubyte *) "OpenGL ES GLSL ES 3.10";
+ default:
+ _mesa_problem(ctx,
+ "Invalid OpenGL ES version in shading_language_version()");
+ return (const GLubyte *) 0;
+ }
case API_OPENGLES:
/* fall-through */
diff --git a/mesalib/src/mesa/main/glformats.c b/mesalib/src/mesa/main/glformats.c
index 8ced57949..ac69fabcc 100644
--- a/mesalib/src/mesa/main/glformats.c
+++ b/mesalib/src/mesa/main/glformats.c
@@ -1200,7 +1200,7 @@ _mesa_is_depth_or_stencil_format(GLenum format)
* \return GL_TRUE if compressed, GL_FALSE if uncompressed
*/
GLboolean
-_mesa_is_compressed_format(struct gl_context *ctx, GLenum format)
+_mesa_is_compressed_format(const struct gl_context *ctx, GLenum format)
{
switch (format) {
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
@@ -1678,6 +1678,10 @@ _mesa_error_check_format_and_type(const struct gl_context *ctx,
case GL_LUMINANCE:
case GL_ALPHA:
return GL_NO_ERROR;
+ case GL_RG:
+ case GL_RED:
+ if (_mesa_is_gles3(ctx) || ctx->Extensions.ARB_texture_rg)
+ return GL_NO_ERROR;
default:
return GL_INVALID_OPERATION;
}
@@ -2292,8 +2296,18 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
break;
case GL_HALF_FLOAT:
- if (internalFormat != GL_RG16F)
- return GL_INVALID_OPERATION;
+ case GL_HALF_FLOAT_OES:
+ switch (internalFormat) {
+ case GL_RG16F:
+ break;
+ case GL_RG:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_half_float)
+ break;
+ /* fallthrough */
+ default:
+ return GL_INVALID_OPERATION;
+ }
break;
case GL_FLOAT:
@@ -2301,6 +2315,11 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
case GL_RG16F:
case GL_RG32F:
break;
+ case GL_RG:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_float)
+ break;
+ /* fallthrough */
default:
return GL_INVALID_OPERATION;
}
@@ -2361,8 +2380,19 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
break;
case GL_HALF_FLOAT:
- if (internalFormat != GL_R16F)
+ case GL_HALF_FLOAT_OES:
+ switch (internalFormat) {
+ case GL_R16F:
+ break;
+ case GL_RG:
+ case GL_RED:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_half_float)
+ break;
+ /* fallthrough */
+ default:
return GL_INVALID_OPERATION;
+ }
break;
case GL_FLOAT:
@@ -2370,6 +2400,11 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
case GL_R16F:
case GL_R32F:
break;
+ case GL_RED:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_float)
+ break;
+ /* fallthrough */
default:
return GL_INVALID_OPERATION;
}
diff --git a/mesalib/src/mesa/main/glformats.h b/mesalib/src/mesa/main/glformats.h
index e1ecd64d5..8881cb7d8 100644
--- a/mesalib/src/mesa/main/glformats.h
+++ b/mesalib/src/mesa/main/glformats.h
@@ -96,7 +96,7 @@ extern GLboolean
_mesa_is_depth_or_stencil_format(GLenum format);
extern GLboolean
-_mesa_is_compressed_format(struct gl_context *ctx, GLenum format);
+_mesa_is_compressed_format(const struct gl_context *ctx, GLenum format);
extern GLenum
_mesa_base_format_to_integer_format(GLenum format);
diff --git a/mesalib/src/mesa/main/glheader.h b/mesalib/src/mesa/main/glheader.h
index 7f7f9a39b..a2d98d4dd 100644
--- a/mesalib/src/mesa/main/glheader.h
+++ b/mesalib/src/mesa/main/glheader.h
@@ -135,12 +135,6 @@ typedef void *GLeglImageOES;
#define GL_SHADER_PROGRAM_MESA 0x9999
-/**
- * Internal token for geometry programs.
- * Use the value for GL_GEOMETRY_PROGRAM_NV for now.
- */
-#define MESA_GEOMETRY_PROGRAM 0x8c26
-
/* Several fields of struct gl_config can take these as values. Since
* GLX header files may not be available everywhere they need to be used,
* redefine them here.
diff --git a/mesalib/src/mesa/main/hash.c b/mesalib/src/mesa/main/hash.c
index d04cccd94..315b5d640 100644
--- a/mesalib/src/mesa/main/hash.c
+++ b/mesalib/src/mesa/main/hash.c
@@ -389,34 +389,6 @@ _mesa_HashDeleteAll(struct _mesa_HashTable *table,
/**
- * Clone all entries in a hash table, into a new table.
- *
- * \param table the hash table to clone
- */
-struct _mesa_HashTable *
-_mesa_HashClone(const struct _mesa_HashTable *table)
-{
- /* cast-away const */
- struct _mesa_HashTable *table2 = (struct _mesa_HashTable *) table;
- struct hash_entry *entry;
- struct _mesa_HashTable *clonetable;
-
- assert(table);
- mtx_lock(&table2->Mutex);
-
- clonetable = _mesa_NewHashTable();
- assert(clonetable);
- hash_table_foreach(table->ht, entry) {
- _mesa_HashInsert(clonetable, (GLint)(uintptr_t)entry->key, entry->data);
- }
-
- mtx_unlock(&table2->Mutex);
-
- return clonetable;
-}
-
-
-/**
* Walk over all entries in a hash table, calling callback function for each.
* Note: we use a separate mutex in this function to avoid a recursive
* locking deadlock (in case the callback calls _mesa_HashRemove()) and to
diff --git a/mesalib/src/mesa/main/hash.h b/mesalib/src/mesa/main/hash.h
index e3e8f492e..da3b9973d 100644
--- a/mesalib/src/mesa/main/hash.h
+++ b/mesalib/src/mesa/main/hash.h
@@ -59,9 +59,6 @@ _mesa_HashDeleteAll(struct _mesa_HashTable *table,
void (*callback)(GLuint key, void *data, void *userData),
void *userData);
-extern struct _mesa_HashTable *
-_mesa_HashClone(const struct _mesa_HashTable *table);
-
extern void
_mesa_HashWalk(const struct _mesa_HashTable *table,
void (*callback)(GLuint key, void *data, void *userData),
diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h
index 83425176a..e67e8074a 100644
--- a/mesalib/src/mesa/main/mtypes.h
+++ b/mesalib/src/mesa/main/mtypes.h
@@ -43,7 +43,6 @@
#include "glapi/glapi.h"
#include "math/m_matrix.h" /* GLmatrix */
#include "glsl/shader_enums.h"
-#include "util/simple_list.h" /* struct simple_node */
#include "main/formats.h" /* MESA_FORMAT_COUNT */
@@ -398,7 +397,6 @@ struct gl_config
{
GLboolean rgbMode;
GLboolean floatMode;
- GLboolean colorIndexMode; /* XXX is this used anywhere? */
GLuint doubleBufferMode;
GLuint stereoMode;
@@ -2275,16 +2273,10 @@ struct gl_vertex_program_state
*/
struct gl_geometry_program_state
{
- GLboolean Enabled; /**< GL_ARB_GEOMETRY_SHADER4 */
- GLboolean _Enabled; /**< Enabled and valid program? */
- struct gl_geometry_program *Current; /**< user-bound geometry program */
-
/** Currently enabled and valid program (including internal programs
* and compiled shader programs).
*/
struct gl_geometry_program *_Current;
-
- GLfloat Parameters[MAX_PROGRAM_ENV_PARAMS][4]; /**< Env params */
};
/**
@@ -2320,8 +2312,6 @@ struct gl_fragment_program_state
*/
struct gl_compute_program_state
{
- struct gl_compute_program *Current; /**< user-bound compute program */
-
/** Currently enabled and valid program (including internal programs
* and compiled shader programs).
*/
@@ -2728,7 +2718,7 @@ struct gl_shader_program
} Comp;
/* post-link info: */
- unsigned NumUserUniformStorage;
+ unsigned NumUniformStorage;
unsigned NumHiddenUniforms;
struct gl_uniform_storage *UniformStorage;
@@ -3004,7 +2994,6 @@ struct gl_shared_state
struct _mesa_HashTable *Programs; /**< All vertex/fragment programs */
struct gl_vertex_program *DefaultVertexProgram;
struct gl_fragment_program *DefaultFragmentProgram;
- struct gl_geometry_program *DefaultGeometryProgram;
/*@}*/
/* GL_ATI_fragment_shader */
@@ -3621,7 +3610,6 @@ struct gl_extensions
GLboolean ARB_depth_clamp;
GLboolean ARB_depth_texture;
GLboolean ARB_derivative_control;
- GLboolean ARB_direct_state_access;
GLboolean ARB_draw_buffers_blend;
GLboolean ARB_draw_elements_base_vertex;
GLboolean ARB_draw_indirect;
diff --git a/mesalib/src/mesa/main/pipelineobj.c b/mesalib/src/mesa/main/pipelineobj.c
index a33cdd139..0fefa7d56 100644
--- a/mesalib/src/mesa/main/pipelineobj.c
+++ b/mesalib/src/mesa/main/pipelineobj.c
@@ -553,12 +553,6 @@ _mesa_CreateProgramPipelines(GLsizei n, GLuint *pipelines)
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glCreateProgramPipelines("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
create_program_pipelines(ctx, n, pipelines, true);
}
diff --git a/mesalib/src/mesa/main/program_resource.c b/mesalib/src/mesa/main/program_resource.c
index b15a13210..d857b84e6 100644
--- a/mesalib/src/mesa/main/program_resource.c
+++ b/mesalib/src/mesa/main/program_resource.c
@@ -220,12 +220,12 @@ _mesa_GetProgramResourceIndex(GLuint program, GLenum programInterface,
case GL_PROGRAM_INPUT:
case GL_PROGRAM_OUTPUT:
case GL_UNIFORM:
- case GL_UNIFORM_BLOCK:
case GL_TRANSFORM_FEEDBACK_VARYING:
- /* Validate name syntax for arrays. */
+ /* Validate name syntax for array variables */
if (!valid_program_resource_index_name(name))
return GL_INVALID_INDEX;
-
+ /* fall-through */
+ case GL_UNIFORM_BLOCK:
res = _mesa_program_resource_find_name(shProg, programInterface, name);
if (!res)
return GL_INVALID_INDEX;
diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c
index 2784b4c05..5ff1b9532 100644
--- a/mesalib/src/mesa/main/queryobj.c
+++ b/mesalib/src/mesa/main/queryobj.c
@@ -284,13 +284,6 @@ _mesa_CreateQueries(GLenum target, GLsizei n, GLuint *ids)
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateQueries(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
switch (target) {
case GL_SAMPLES_PASSED:
case GL_ANY_SAMPLES_PASSED:
diff --git a/mesalib/src/mesa/main/readpix.c b/mesalib/src/mesa/main/readpix.c
index df46f8361..a3357cd64 100644
--- a/mesalib/src/mesa/main/readpix.c
+++ b/mesalib/src/mesa/main/readpix.c
@@ -46,15 +46,18 @@
/**
* Return true if the conversion L=R+G+B is needed.
*/
-static GLboolean
-need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format)
+GLboolean
+_mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format)
{
GLenum baseTexFormat = _mesa_get_format_base_format(texFormat);
return (baseTexFormat == GL_RG ||
baseTexFormat == GL_RGB ||
baseTexFormat == GL_RGBA) &&
- (format == GL_LUMINANCE || format == GL_LUMINANCE_ALPHA);
+ (format == GL_LUMINANCE ||
+ format == GL_LUMINANCE_ALPHA ||
+ format == GL_LUMINANCE_INTEGER_EXT ||
+ format == GL_LUMINANCE_ALPHA_INTEGER_EXT);
}
@@ -102,7 +105,7 @@ get_readpixels_transfer_ops(const struct gl_context *ctx, mesa_format texFormat,
* have any effect anyway.
*/
if (_mesa_get_format_datatype(texFormat) == GL_UNSIGNED_NORMALIZED &&
- !need_rgb_to_luminance_conversion(texFormat, format)) {
+ !_mesa_need_rgb_to_luminance_conversion(texFormat, format)) {
transferOps &= ~IMAGE_CLAMP_BIT;
}
@@ -146,7 +149,7 @@ _mesa_readpixels_needs_slow_path(const struct gl_context *ctx, GLenum format,
default:
/* Color formats. */
- if (need_rgb_to_luminance_conversion(rb->Format, format)) {
+ if (_mesa_need_rgb_to_luminance_conversion(rb->Format, format)) {
return GL_TRUE;
}
@@ -418,7 +421,7 @@ read_rgba_pixels( struct gl_context *ctx,
const struct gl_pixelstore_attrib *packing )
{
GLbitfield transferOps;
- bool dst_is_integer, dst_is_luminance, needs_rebase;
+ bool dst_is_integer, convert_rgb_to_lum, needs_rebase;
int dst_stride, src_stride, rb_stride;
uint32_t dst_format, src_format;
GLubyte *dst, *map;
@@ -439,10 +442,8 @@ read_rgba_pixels( struct gl_context *ctx,
dst_is_integer = _mesa_is_enum_format_integer(format);
dst_stride = _mesa_image_row_stride(packing, width, format, type);
dst_format = _mesa_format_from_format_and_type(format, type);
- dst_is_luminance = format == GL_LUMINANCE ||
- format == GL_LUMINANCE_ALPHA ||
- format == GL_LUMINANCE_INTEGER_EXT ||
- format == GL_LUMINANCE_ALPHA_INTEGER_EXT;
+ convert_rgb_to_lum =
+ _mesa_need_rgb_to_luminance_conversion(rb->Format, format);
dst = (GLubyte *) _mesa_image_address2d(packing, pixels, width, height,
format, type, 0, 0);
@@ -490,7 +491,7 @@ read_rgba_pixels( struct gl_context *ctx,
*/
assert(!transferOps || (transferOps && !dst_is_integer));
- needs_rgba = transferOps || dst_is_luminance;
+ needs_rgba = transferOps || convert_rgb_to_lum;
rgba = NULL;
if (needs_rgba) {
uint32_t rgba_format;
@@ -563,7 +564,7 @@ read_rgba_pixels( struct gl_context *ctx,
* If the dst format is Luminance, we need to do the conversion by computing
* L=R+G+B values.
*/
- if (!dst_is_luminance) {
+ if (!convert_rgb_to_lum) {
_mesa_format_convert(dst, dst_format, dst_stride,
src, src_format, src_stride,
width, height,
diff --git a/mesalib/src/mesa/main/readpix.h b/mesalib/src/mesa/main/readpix.h
index 4bb35e17e..1636dd9ce 100644
--- a/mesalib/src/mesa/main/readpix.h
+++ b/mesalib/src/mesa/main/readpix.h
@@ -37,6 +37,9 @@ extern GLboolean
_mesa_readpixels_needs_slow_path(const struct gl_context *ctx, GLenum format,
GLenum type, GLboolean uses_blit);
+extern GLboolean
+_mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format);
+
extern void
_mesa_readpixels(struct gl_context *ctx,
GLint x, GLint y, GLsizei width, GLsizei height,
diff --git a/mesalib/src/mesa/main/samplerobj.c b/mesalib/src/mesa/main/samplerobj.c
index 60711a5b5..a3aacc66a 100644
--- a/mesalib/src/mesa/main/samplerobj.c
+++ b/mesalib/src/mesa/main/samplerobj.c
@@ -221,13 +221,6 @@ void GLAPIENTRY
_mesa_CreateSamplers(GLsizei count, GLuint *samplers)
{
GET_CURRENT_CONTEXT(ctx);
-
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glCreateSamplers("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
create_samplers(ctx, count, samplers, "glCreateSamplers");
}
diff --git a/mesalib/src/mesa/main/shader_query.cpp b/mesalib/src/mesa/main/shader_query.cpp
index 3445f89a3..a6246a39a 100644
--- a/mesalib/src/mesa/main/shader_query.cpp
+++ b/mesalib/src/mesa/main/shader_query.cpp
@@ -479,12 +479,20 @@ _mesa_GetFragDataLocation(GLuint program, const GLchar *name)
const char*
_mesa_program_resource_name(struct gl_program_resource *res)
{
+ const ir_variable *var;
switch (res->Type) {
case GL_UNIFORM_BLOCK:
return RESOURCE_UBO(res)->Name;
case GL_TRANSFORM_FEEDBACK_VARYING:
return RESOURCE_XFB(res)->Name;
case GL_PROGRAM_INPUT:
+ var = RESOURCE_VAR(res);
+ /* Special case gl_VertexIDMESA -> gl_VertexID. */
+ if (var->data.mode == ir_var_system_value &&
+ var->data.location == SYSTEM_VALUE_VERTEX_ID_ZERO_BASE) {
+ return "gl_VertexID";
+ }
+ /* fallthrough */
case GL_PROGRAM_OUTPUT:
return RESOURCE_VAR(res)->name;
case GL_UNIFORM:
@@ -539,6 +547,17 @@ struct gl_program_resource *
_mesa_program_resource_find_name(struct gl_shader_program *shProg,
GLenum programInterface, const char *name)
{
+ GET_CURRENT_CONTEXT(ctx);
+ const char *full_name = name;
+
+ /* When context has 'VertexID_is_zero_based' set, gl_VertexID has been
+ * lowered to gl_VertexIDMESA.
+ */
+ if (name && ctx->Const.VertexID_is_zero_based) {
+ if (strcmp(name, "gl_VertexID") == 0)
+ full_name = "gl_VertexIDMESA";
+ }
+
struct gl_program_resource *res = shProg->ProgramResourceList;
for (unsigned i = 0; i < shProg->NumProgramResourceList; i++, res++) {
if (res->Type != programInterface)
@@ -563,7 +582,7 @@ _mesa_program_resource_find_name(struct gl_shader_program *shProg,
break;
case GL_PROGRAM_INPUT:
case GL_PROGRAM_OUTPUT:
- if (array_index_of_resource(res, name) >= 0)
+ if (array_index_of_resource(res, full_name) >= 0)
return res;
break;
default:
@@ -728,6 +747,10 @@ program_resource_location(struct gl_shader_program *shProg,
return -1;
}
+ /* Built-in locations should report GL_INVALID_INDEX. */
+ if (is_gl_identifier(name))
+ return GL_INVALID_INDEX;
+
/* VERT_ATTRIB_GENERIC0 and FRAG_RESULT_DATA0 are decremented as these
* offsets are used internally to differentiate between built-in attributes
* and user-defined attributes.
diff --git a/mesalib/src/mesa/main/shaderapi.c b/mesalib/src/mesa/main/shaderapi.c
index a04b28711..a4296adf7 100644
--- a/mesalib/src/mesa/main/shaderapi.c
+++ b/mesalib/src/mesa/main/shaderapi.c
@@ -532,7 +532,7 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname,
/* True if geometry shaders (of the form that was adopted into GLSL 1.50
* and GL 3.2) are available in this context
*/
- const bool has_core_gs = _mesa_is_desktop_gl(ctx) && ctx->Version >= 32;
+ const bool has_core_gs = _mesa_has_geometry_shaders(ctx);
/* Are uniform buffer objects available in this context?
*/
@@ -569,13 +569,13 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname,
*params = _mesa_longest_attribute_name_length(shProg);
return;
case GL_ACTIVE_UNIFORMS:
- *params = shProg->NumUserUniformStorage - shProg->NumHiddenUniforms;
+ *params = shProg->NumUniformStorage - shProg->NumHiddenUniforms;
return;
case GL_ACTIVE_UNIFORM_MAX_LENGTH: {
unsigned i;
GLint max_len = 0;
const unsigned num_uniforms =
- shProg->NumUserUniformStorage - shProg->NumHiddenUniforms;
+ shProg->NumUniformStorage - shProg->NumHiddenUniforms;
for (i = 0; i < num_uniforms; i++) {
/* Add one for the terminating NUL character for a non-array, and
diff --git a/mesalib/src/mesa/main/shaderobj.c b/mesalib/src/mesa/main/shaderobj.c
index e42896036..110a18e1e 100644
--- a/mesalib/src/mesa/main/shaderobj.c
+++ b/mesalib/src/mesa/main/shaderobj.c
@@ -282,10 +282,10 @@ _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
unsigned i;
if (shProg->UniformStorage) {
- for (i = 0; i < shProg->NumUserUniformStorage; ++i)
+ for (i = 0; i < shProg->NumUniformStorage; ++i)
_mesa_uniform_detach_all_driver_storage(&shProg->UniformStorage[i]);
ralloc_free(shProg->UniformStorage);
- shProg->NumUserUniformStorage = 0;
+ shProg->NumUniformStorage = 0;
shProg->UniformStorage = NULL;
}
diff --git a/mesalib/src/mesa/main/shared.c b/mesalib/src/mesa/main/shared.c
index 0b76cc012..d5ac9f1fb 100644
--- a/mesalib/src/mesa/main/shared.c
+++ b/mesalib/src/mesa/main/shared.c
@@ -313,7 +313,6 @@ free_shared_state(struct gl_context *ctx, struct gl_shared_state *shared)
_mesa_DeleteHashTable(shared->Programs);
_mesa_reference_vertprog(ctx, &shared->DefaultVertexProgram, NULL);
- _mesa_reference_geomprog(ctx, &shared->DefaultGeometryProgram, NULL);
_mesa_reference_fragprog(ctx, &shared->DefaultFragmentProgram, NULL);
_mesa_HashDeleteAll(shared->ATIShaders, delete_fragshader_cb, ctx);
diff --git a/mesalib/src/mesa/main/state.c b/mesalib/src/mesa/main/state.c
index 2657c532f..5b970081a 100644
--- a/mesalib/src/mesa/main/state.c
+++ b/mesalib/src/mesa/main/state.c
@@ -225,7 +225,7 @@ update_program(struct gl_context *ctx)
if (ctx->GeometryProgram._Current != prevGP) {
new_state |= _NEW_PROGRAM;
if (ctx->Driver.BindProgram) {
- ctx->Driver.BindProgram(ctx, MESA_GEOMETRY_PROGRAM,
+ ctx->Driver.BindProgram(ctx, GL_GEOMETRY_PROGRAM_NV,
(struct gl_program *) ctx->GeometryProgram._Current);
}
}
diff --git a/mesalib/src/mesa/main/texgetimage.c b/mesalib/src/mesa/main/texgetimage.c
index f582a7f78..92b4d6795 100644
--- a/mesalib/src/mesa/main/texgetimage.c
+++ b/mesalib/src/mesa/main/texgetimage.c
@@ -1108,13 +1108,6 @@ _mesa_GetTextureImage(GLuint texture, GLint level, GLenum format,
GLenum err;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureImage(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/*
* This has been moved here because a format/type mismatch can cause a NULL
* texImage object, which in turn causes the mismatch error to be
@@ -1351,13 +1344,6 @@ _mesa_GetCompressedTextureImage(GLuint texture, GLint level,
GLint image_stride;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetCompressedTextureImage(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glGetCompressedTextureImage");
if (!texObj)
diff --git a/mesalib/src/mesa/main/teximage.c b/mesalib/src/mesa/main/teximage.c
index 7616fd7ce..3d85615fa 100644
--- a/mesalib/src/mesa/main/teximage.c
+++ b/mesalib/src/mesa/main/teximage.c
@@ -222,7 +222,7 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
}
}
- if (ctx->Extensions.ARB_stencil_texturing) {
+ if (ctx->Extensions.ARB_texture_stencil8) {
switch (internalFormat) {
case GL_STENCIL_INDEX:
case GL_STENCIL_INDEX1:
@@ -3624,13 +3624,6 @@ texturesubimage(struct gl_context *ctx, GLuint dims,
_mesa_lookup_enum_by_nr(format),
_mesa_lookup_enum_by_nr(type), pixels);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureSubImage%uD(GL_ARB_direct_state_access "
- "is not supported)", dims);
- return;
- }
-
/* Get the texture object by Name. */
texObj = _mesa_lookup_texture(ctx, texture);
if (!texObj) {
@@ -4190,12 +4183,6 @@ _mesa_CopyTextureSubImage1D(GLuint texture, GLint level,
const char *self = "glCopyTextureSubImage1D";
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", self);
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, self);
if (!texObj)
return;
@@ -4220,12 +4207,6 @@ _mesa_CopyTextureSubImage2D(GLuint texture, GLint level,
const char *self = "glCopyTextureSubImage2D";
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", self);
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, self);
if (!texObj)
return;
@@ -4253,12 +4234,6 @@ _mesa_CopyTextureSubImage3D(GLuint texture, GLint level,
const char *self = "glCopyTextureSubImage3D";
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", self);
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, self);
if (!texObj)
return;
@@ -4854,13 +4829,6 @@ _mesa_CompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCompressedTextureSubImage1D(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glCompressedTextureSubImage1D");
if (!texObj)
@@ -4939,13 +4907,6 @@ _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCompressedTextureSubImage2D(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glCompressedTextureSubImage2D");
if (!texObj)
@@ -5024,13 +4985,6 @@ _mesa_CompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCompressedTextureSubImage3D(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glCompressedTextureSubImage3D");
if (!texObj)
@@ -5515,13 +5469,6 @@ _mesa_TextureBuffer(GLuint texture, GLenum internalFormat, GLuint buffer)
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (buffer) {
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glTextureBuffer");
if (!bufObj)
@@ -5550,13 +5497,6 @@ _mesa_TextureBufferRange(GLuint texture, GLenum internalFormat, GLuint buffer,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (buffer) {
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glTextureBufferRange");
@@ -5861,13 +5801,6 @@ _mesa_TextureStorage2DMultisample(GLuint texture, GLsizei samples,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureStorage2DMultisample(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glTextureStorage2DMultisample");
if (!texObj)
@@ -5888,13 +5821,6 @@ _mesa_TextureStorage3DMultisample(GLuint texture, GLsizei samples,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureStorage3DMultisample(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/* Get the texture object by Name. */
texObj = _mesa_lookup_texture_err(ctx, texture,
"glTextureStorage3DMultisample");
diff --git a/mesalib/src/mesa/main/texobj.c b/mesalib/src/mesa/main/texobj.c
index d51e6954b..c563f1e74 100644
--- a/mesalib/src/mesa/main/texobj.c
+++ b/mesalib/src/mesa/main/texobj.c
@@ -1317,13 +1317,6 @@ _mesa_CreateTextures(GLenum target, GLsizei n, GLuint *textures)
GLint targetIndex;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateTextures(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/*
* The 4.5 core profile spec (30.10.2014) doesn't specify what
* glCreateTextures should do with invalid targets, which was probably an
@@ -1815,13 +1808,6 @@ _mesa_BindTextureUnit(GLuint unit, GLuint texture)
_mesa_debug(ctx, "glBindTextureUnit %s %d\n",
_mesa_lookup_enum_by_nr(GL_TEXTURE0+unit), (GLint) texture);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBindTextureUnit(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/* Section 8.1 (Texture Objects) of the OpenGL 4.5 core profile spec
* (20141030) says:
* "When texture is zero, each of the targets enumerated at the
diff --git a/mesalib/src/mesa/main/texparam.c b/mesalib/src/mesa/main/texparam.c
index 1fa583002..d74134f41 100644
--- a/mesalib/src/mesa/main/texparam.c
+++ b/mesalib/src/mesa/main/texparam.c
@@ -1108,13 +1108,6 @@ _mesa_TextureParameterfv(GLuint texture, GLenum pname, const GLfloat *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1131,13 +1124,6 @@ _mesa_TextureParameterf(GLuint texture, GLenum pname, GLfloat param)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterf(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1154,13 +1140,6 @@ _mesa_TextureParameteri(GLuint texture, GLenum pname, GLint param)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameteri(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1178,13 +1157,6 @@ _mesa_TextureParameteriv(GLuint texture, GLenum pname,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1202,13 +1174,6 @@ _mesa_TextureParameterIiv(GLuint texture, GLenum pname, const GLint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterIiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1226,13 +1191,6 @@ _mesa_TextureParameterIuiv(GLuint texture, GLenum pname, const GLuint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterIuiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1692,13 +1650,6 @@ _mesa_GetTextureLevelParameterfv(GLuint texture, GLint level,
GLint iparam;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureLevelParameterfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glGetTextureLevelParameterfv");
if (!texObj)
@@ -1717,13 +1668,6 @@ _mesa_GetTextureLevelParameteriv(GLuint texture, GLint level,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureLevelParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glGetTextureLevelParameteriv");
if (!texObj)
@@ -2283,13 +2227,6 @@ _mesa_GetTextureParameterfv(GLuint texture, GLenum pname, GLfloat *params)
struct gl_texture_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameterfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!obj) {
/* User passed a non-generated name. */
@@ -2307,13 +2244,6 @@ _mesa_GetTextureParameteriv(GLuint texture, GLenum pname, GLint *params)
struct gl_texture_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!obj) {
/* User passed a non-generated name. */
@@ -2331,13 +2261,6 @@ _mesa_GetTextureParameterIiv(GLuint texture, GLenum pname, GLint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameterIiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -2356,13 +2279,6 @@ _mesa_GetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameterIuiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!texObj) {
/* User passed a non-generated name. */
diff --git a/mesalib/src/mesa/main/texstorage.c b/mesalib/src/mesa/main/texstorage.c
index dee74a825..53cb2c091 100644
--- a/mesalib/src/mesa/main/texstorage.c
+++ b/mesalib/src/mesa/main/texstorage.c
@@ -507,13 +507,6 @@ texturestorage(GLuint dims, GLuint texture, GLsizei levels,
_mesa_lookup_enum_by_nr(internalformat),
width, height, depth);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureStorage%uD(GL_ARB_direct_state_access "
- "is not supported)", dims);
- return;
- }
-
/* Check the format to make sure it is sized. */
if (!_mesa_is_legal_tex_storage_format(ctx, internalformat)) {
_mesa_error(ctx, GL_INVALID_ENUM,
diff --git a/mesalib/src/mesa/main/textureview.c b/mesalib/src/mesa/main/textureview.c
index cd87a27d2..6b0aed4ea 100644
--- a/mesalib/src/mesa/main/textureview.c
+++ b/mesalib/src/mesa/main/textureview.c
@@ -167,7 +167,7 @@ static const struct internal_format_class_info s3tc_compatible_internal_formats[
* \return VIEW_CLASS if internalformat found in table, false otherwise.
*/
static GLenum
-lookup_view_class(struct gl_context *ctx, GLenum internalformat)
+lookup_view_class(const struct gl_context *ctx, GLenum internalformat)
{
GLuint i;
@@ -176,9 +176,11 @@ lookup_view_class(struct gl_context *ctx, GLenum internalformat)
return compatible_internal_formats[i].view_class;
}
- if (ctx->Extensions.EXT_texture_compression_s3tc && ctx->Extensions.EXT_texture_sRGB) {
+ if (ctx->Extensions.EXT_texture_compression_s3tc &&
+ ctx->Extensions.EXT_texture_sRGB) {
for (i = 0; i < ARRAY_SIZE(s3tc_compatible_internal_formats); i++) {
- if (s3tc_compatible_internal_formats[i].internal_format == internalformat)
+ if (s3tc_compatible_internal_formats[i].internal_format
+ == internalformat)
return s3tc_compatible_internal_formats[i].view_class;
}
}
@@ -226,7 +228,8 @@ initialize_texture_fields(struct gl_context *ctx,
0, internalFormat, texFormat);
}
- _mesa_next_mipmap_level_size(target, 0, levelWidth, levelHeight, levelDepth,
+ _mesa_next_mipmap_level_size(target, 0,
+ levelWidth, levelHeight, levelDepth,
&levelWidth, &levelHeight, &levelDepth);
}
@@ -320,8 +323,8 @@ target_valid(struct gl_context *ctx, GLenum origTarget, GLenum newTarget)
* If an error is found, record it with _mesa_error()
* \return false if any error, true otherwise.
*/
-GLboolean
-_mesa_texture_view_compatible_format(struct gl_context *ctx,
+bool
+_mesa_texture_view_compatible_format(const struct gl_context *ctx,
GLenum origInternalFormat,
GLenum newInternalFormat)
{
@@ -334,15 +337,16 @@ _mesa_texture_view_compatible_format(struct gl_context *ctx,
* or an INVALID_OPERATION error is generated.
*/
if (origInternalFormat == newInternalFormat)
- return GL_TRUE;
+ return true;
origViewClass = lookup_view_class(ctx, origInternalFormat);
newViewClass = lookup_view_class(ctx, newInternalFormat);
if ((origViewClass == newViewClass) && origViewClass != false)
- return GL_TRUE;
+ return true;
- return GL_FALSE;
+ return false;
}
+
/**
* Helper function for TexStorage and teximagemultisample to set immutable
* texture state needed by ARB_texture_view.
@@ -357,17 +361,19 @@ _mesa_set_texture_view_state(struct gl_context *ctx,
/* Get a reference to what will become this View's base level */
texImage = _mesa_select_tex_image(texObj, target, 0);
- /* When an immutable texture is created via glTexStorage or glTexImageMultisample,
+ /* When an immutable texture is created via glTexStorage or
+ * glTexImageMultisample,
* TEXTURE_IMMUTABLE_FORMAT becomes TRUE.
* TEXTURE_IMMUTABLE_LEVELS and TEXTURE_VIEW_NUM_LEVELS become levels.
* If the texture target is TEXTURE_1D_ARRAY then
* TEXTURE_VIEW_NUM_LAYERS becomes height.
* If the texture target is TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP_ARRAY,
- * or TEXTURE_2D_MULTISAMPLE_ARRAY then TEXTURE_VIEW_NUM_LAYERS becomes depth.
+ * or TEXTURE_2D_MULTISAMPLE_ARRAY then TEXTURE_VIEW_NUM_LAYERS becomes
+ * depth.
* If the texture target is TEXTURE_CUBE_MAP, then
* TEXTURE_VIEW_NUM_LAYERS becomes 6.
* For any other texture target, TEXTURE_VIEW_NUM_LAYERS becomes 1.
- *
+ *
* ARB_texture_multisample: Multisample textures do
* not have multiple image levels.
*/
@@ -401,7 +407,6 @@ _mesa_set_texture_view_state(struct gl_context *ctx,
case GL_TEXTURE_CUBE_MAP:
texObj->NumLayers = 6;
break;
-
}
}
@@ -435,16 +440,20 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
minlevel, numlevels, minlayer, numlayers);
if (origtexture == 0) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)", origtexture);
+ _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)",
+ origtexture);
return;
}
/* Need original texture information to validate arguments */
origTexObj = _mesa_lookup_texture(ctx, origtexture);
- /* If <origtexture> is not the name of a texture, INVALID_VALUE is generated. */
+ /* If <origtexture> is not the name of a texture, INVALID_VALUE
+ * is generated.
+ */
if (!origTexObj) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)", origtexture);
+ _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)",
+ origtexture);
return;
}
@@ -452,7 +461,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
* INVALID_OPERATION is generated.
*/
if (!origTexObj->Immutable) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(origtexture not immutable)");
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(origtexture not immutable)");
return;
}
@@ -467,7 +477,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
*/
texObj = _mesa_lookup_texture(ctx, texture);
if (texObj == NULL) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(texture = %u non-gen name)", texture);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(texture = %u non-gen name)", texture);
return;
}
@@ -475,7 +486,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
* the error INVALID_OPERATION is generated.
*/
if (texObj->Target) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(texture = %u already bound)", texture);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(texture = %u already bound)", texture);
return;
}
@@ -484,33 +496,35 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
return; /* error was recorded */
}
- /* minlevel and minlayer are relative to the view of origtexture
+ /* minlevel and minlayer are relative to the view of origtexture.
* If minlevel or minlayer is greater than level or layer, respectively,
- * of origtexture return INVALID_VALUE.
+ * return INVALID_VALUE.
*/
newViewMinLevel = origTexObj->MinLevel + minlevel;
newViewMinLayer = origTexObj->MinLayer + minlayer;
if (newViewMinLevel >= (origTexObj->MinLevel + origTexObj->NumLevels)) {
_mesa_error(ctx, GL_INVALID_VALUE,
- "glTextureView(new minlevel (%d) > orig minlevel (%d) + orig numlevels (%d))",
+ "glTextureView(new minlevel (%d) > orig minlevel (%d)"
+ " + orig numlevels (%d))",
newViewMinLevel, origTexObj->MinLevel, origTexObj->NumLevels);
return;
}
if (newViewMinLayer >= (origTexObj->MinLayer + origTexObj->NumLayers)) {
_mesa_error(ctx, GL_INVALID_VALUE,
- "glTextureView(new minlayer (%d) > orig minlayer (%d) + orig numlayers (%d))",
+ "glTextureView(new minlayer (%d) > orig minlayer (%d)"
+ " + orig numlayers (%d))",
newViewMinLayer, origTexObj->MinLayer, origTexObj->NumLayers);
return;
}
if (!_mesa_texture_view_compatible_format(ctx,
- origTexObj->Image[0][0]->InternalFormat,
- internalformat)) {
+ origTexObj->Image[0][0]->InternalFormat,
+ internalformat)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureView(internalformat %s not compatible with origtexture %s)",
- _mesa_lookup_enum_by_nr(internalformat),
- _mesa_lookup_enum_by_nr(origTexObj->Image[0][0]->InternalFormat));
+ "glTextureView(internalformat %s not compatible with origtexture %s)",
+ _mesa_lookup_enum_by_nr(internalformat),
+ _mesa_lookup_enum_by_nr(origTexObj->Image[0][0]->InternalFormat));
return;
}
@@ -569,14 +583,16 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
dimensionsOK = _mesa_legal_texture_dimensions(ctx, target, 0,
width, height, depth, 0);
if (!dimensionsOK) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(invalid width or height or depth)");
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(invalid width or height or depth)");
return;
}
sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, 0, texFormat,
width, height, depth, 0);
if (!sizeOK) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(invalid texture size)");
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(invalid texture size)");
return;
}
@@ -591,17 +607,19 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
case GL_TEXTURE_RECTANGLE:
case GL_TEXTURE_2D_MULTISAMPLE:
if (numlayers != 1) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(numlayers %d != 1)", numlayers);
+ _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(numlayers %d != 1)",
+ numlayers);
return;
}
break;
case GL_TEXTURE_CUBE_MAP:
- /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped <numlayers>
- * must be equal to 6.
+ /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped
+ * <numlayers> must be equal to 6.
*/
if (newViewNumLayers != 6) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(clamped numlayers %d != 6)",
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glTextureView(clamped numlayers %d != 6)",
newViewNumLayers);
return;
}
@@ -615,7 +633,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
*/
if ((newViewNumLayers % 6) != 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
- "glTextureView(clamped numlayers %d is not a multiple of 6)",
+ "glTextureView(clamped numlayers %d is not"
+ " a multiple of 6)",
newViewNumLayers);
return;
}
@@ -628,7 +647,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
*/
if ((target == GL_TEXTURE_CUBE_MAP || target == GL_TEXTURE_CUBE_MAP_ARRAY) &&
(origTexImage->Width != origTexImage->Height)) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(origtexture width (%d) != height (%d))",
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(origtexture width (%d) != height (%d))",
origTexImage->Width, origTexImage->Height);
return;
}
@@ -662,7 +682,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
texObj->ImmutableLevels = origTexObj->ImmutableLevels;
texObj->Target = target;
- if (ctx->Driver.TextureView != NULL && !ctx->Driver.TextureView(ctx, texObj, origTexObj)) {
+ if (ctx->Driver.TextureView != NULL &&
+ !ctx->Driver.TextureView(ctx, texObj, origTexObj)) {
return; /* driver recorded error */
}
}
diff --git a/mesalib/src/mesa/main/textureview.h b/mesalib/src/mesa/main/textureview.h
index 549a13cd8..59e24b68d 100644
--- a/mesalib/src/mesa/main/textureview.h
+++ b/mesalib/src/mesa/main/textureview.h
@@ -29,8 +29,8 @@
#ifndef TEXTUREVIEW_H
#define TEXTUREVIEW_H
-GLboolean
-_mesa_texture_view_compatible_format(struct gl_context *ctx,
+bool
+_mesa_texture_view_compatible_format(const struct gl_context *ctx,
GLenum origInternalFormat,
GLenum newInternalFormat);
@@ -41,7 +41,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
GLuint minlayer, GLuint numlayers);
extern void
-_mesa_set_texture_view_state(struct gl_context *ctx, struct gl_texture_object *texObj,
- GLenum target, GLuint levels);
+_mesa_set_texture_view_state(struct gl_context *ctx,
+ struct gl_texture_object *texObj,
+ GLenum target, GLuint levels);
#endif /* TEXTUREVIEW_H */
diff --git a/mesalib/src/mesa/main/transformfeedback.c b/mesalib/src/mesa/main/transformfeedback.c
index 642fa9647..103011ce5 100644
--- a/mesalib/src/mesa/main/transformfeedback.c
+++ b/mesalib/src/mesa/main/transformfeedback.c
@@ -706,13 +706,6 @@ _mesa_TransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer)
struct gl_transform_feedback_object *obj;
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTransformFeedbackBufferBase(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glTransformFeedbackBufferBase");
if(!obj) {
@@ -736,13 +729,6 @@ _mesa_TransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer,
struct gl_transform_feedback_object *obj;
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTransformFeedbackBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glTransformFeedbackBufferRange");
if(!obj) {
@@ -1059,13 +1045,6 @@ _mesa_CreateTransformFeedbacks(GLsizei n, GLuint *names)
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateTransformFeedbacks(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
create_transform_feedbacks(ctx, n, names, true);
}
@@ -1236,13 +1215,6 @@ _mesa_GetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param)
struct gl_transform_feedback_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTransformFeedbackiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glGetTransformFeedbackiv");
if(!obj) {
@@ -1269,13 +1241,6 @@ _mesa_GetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index,
struct gl_transform_feedback_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTransformFeedbacki_v(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glGetTransformFeedbacki_v");
if(!obj) {
@@ -1305,13 +1270,6 @@ _mesa_GetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index,
struct gl_transform_feedback_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTransformFeedbacki64_v(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glGetTransformFeedbacki64_v");
if(!obj) {
diff --git a/mesalib/src/mesa/main/uniform_query.cpp b/mesalib/src/mesa/main/uniform_query.cpp
index 728bd1bac..cab5083e8 100644
--- a/mesalib/src/mesa/main/uniform_query.cpp
+++ b/mesalib/src/mesa/main/uniform_query.cpp
@@ -237,6 +237,13 @@ validate_uniform_parameters(struct gl_context *ctx,
struct gl_uniform_storage *const uni = shProg->UniformRemapTable[location];
+ /* Even though no location is assigned to a built-in uniform and this
+ * function should already have returned NULL, this test makes it explicit
+ * that we are not allowing to update the value of a built-in.
+ */
+ if (uni->builtin)
+ return NULL;
+
if (uni->array_elements == 0) {
if (count > 1) {
_mesa_error(ctx, GL_INVALID_OPERATION,
@@ -1028,6 +1035,10 @@ _mesa_get_uniform_location(struct gl_shader_program *shProg,
if (!found)
return GL_INVALID_INDEX;
+ /* If the uniform is built-in, fail. */
+ if (shProg->UniformStorage[location].builtin)
+ return GL_INVALID_INDEX;
+
/* If the uniform is an array, fail if the index is out of bounds.
* (A negative index is caught above.) This also fails if the uniform
* is not an array, but the user is trying to index it, because
@@ -1047,7 +1058,7 @@ _mesa_sampler_uniforms_are_valid(const struct gl_shader_program *shProg,
char *errMsg, size_t errMsgLength)
{
/* Shader does not have samplers. */
- if (shProg->NumUserUniformStorage == 0)
+ if (shProg->NumUniformStorage == 0)
return true;
if (!shProg->SamplersValidated) {
@@ -1087,7 +1098,7 @@ _mesa_sampler_uniforms_pipeline_are_valid(struct gl_pipeline_object *pipeline)
if (!shProg[idx])
continue;
- for (unsigned i = 0; i < shProg[idx]->NumUserUniformStorage; i++) {
+ for (unsigned i = 0; i < shProg[idx]->NumUniformStorage; i++) {
const struct gl_uniform_storage *const storage =
&shProg[idx]->UniformStorage[i];
const glsl_type *const t = (storage->type->is_array())
diff --git a/mesalib/src/mesa/main/uniforms.h b/mesalib/src/mesa/main/uniforms.h
index 55fa2357e..bd7b05e20 100644
--- a/mesalib/src/mesa/main/uniforms.h
+++ b/mesalib/src/mesa/main/uniforms.h
@@ -343,10 +343,6 @@ void GLAPIENTRY
_mesa_ProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
-long
-_mesa_parse_program_resource_name(const GLchar *name,
- const GLchar **out_base_name_end);
-
unsigned
_mesa_get_uniform_location(struct gl_shader_program *shProg,
const GLchar *name, unsigned *offset);
diff --git a/mesalib/src/mesa/main/varray.c b/mesalib/src/mesa/main/varray.c
index da6bbce52..7389037ae 100644
--- a/mesalib/src/mesa/main/varray.c
+++ b/mesalib/src/mesa/main/varray.c
@@ -777,13 +777,6 @@ _mesa_EnableVertexArrayAttrib(GLuint vaobj, GLuint index)
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glEnableVertexArrayAttrib(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by EnableVertexArrayAttrib
@@ -837,13 +830,6 @@ _mesa_DisableVertexArrayAttrib(GLuint vaobj, GLuint index)
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glDisableVertexArrayAttrib(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by EnableVertexArrayAttrib
@@ -1108,13 +1094,6 @@ _mesa_GetVertexArrayIndexediv(GLuint vaobj, GLuint index,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetVertexArrayIndexediv(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated if <vaobj> is not
@@ -1178,14 +1157,6 @@ _mesa_GetVertexArrayIndexed64iv(GLuint vaobj, GLuint index,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetVertexArrayIndexed64iv(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated if <vaobj> is not
@@ -1774,13 +1745,6 @@ _mesa_VertexArrayVertexBuffer(GLuint vaobj, GLuint bindingIndex, GLuint buffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayVertexBuffer(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayVertexBuffer
@@ -1946,14 +1910,6 @@ _mesa_VertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayVertexBuffers(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayVertexBuffer
@@ -2062,12 +2018,6 @@ vertex_array_attrib_format(GLuint vaobj, GLuint attribIndex, GLint size,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported", func);
- return;
- }
-
ASSERT_OUTSIDE_BEGIN_END(ctx);
/* The ARB_direct_state_access spec says:
@@ -2205,13 +2155,6 @@ _mesa_VertexArrayAttribBinding(GLuint vaobj, GLuint attribIndex, GLuint bindingI
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayAttribBinding(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayAttribBinding
@@ -2286,13 +2229,6 @@ _mesa_VertexArrayBindingDivisor(GLuint vaobj, GLuint bindingIndex, GLuint diviso
struct gl_vertex_array_object *vao;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayBindingDivisor(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayBindingDivisor
diff --git a/mesalib/src/mesa/main/version.c b/mesalib/src/mesa/main/version.c
index 699a0de46..60c76040e 100644
--- a/mesalib/src/mesa/main/version.c
+++ b/mesalib/src/mesa/main/version.c
@@ -51,15 +51,20 @@ check_for_ending(const char *string, const char *ending)
* fwd_context is only valid if version > 0
*/
static void
-get_gl_override(int *version, bool *fwd_context, bool *compat_context)
+get_gl_override(gl_api api, int *version, bool *fwd_context,
+ bool *compat_context)
{
- const char *env_var = "MESA_GL_VERSION_OVERRIDE";
+ const char *env_var = (api == API_OPENGL_CORE || api == API_OPENGL_COMPAT)
+ ? "MESA_GL_VERSION_OVERRIDE" : "MESA_GLES_VERSION_OVERRIDE";
const char *version_str;
int major, minor, n;
static int override_version = -1;
static bool fc_suffix = false;
static bool compat_suffix = false;
+ if (api == API_OPENGLES)
+ goto exit;
+
if (override_version < 0) {
override_version = 0;
@@ -75,7 +80,12 @@ get_gl_override(int *version, bool *fwd_context, bool *compat_context)
override_version = 0;
} else {
override_version = major * 10 + minor;
- if (override_version < 30 && fc_suffix) {
+
+ /* There is no such thing as compatibility or forward-compatible for
+ * OpenGL ES 2.0 or 3.x APIs.
+ */
+ if ((override_version < 30 && fc_suffix) ||
+ (api == API_OPENGLES2 && (fc_suffix || compat_suffix))) {
fprintf(stderr, "error: invalid value for %s: %s\n",
env_var, version_str);
}
@@ -83,6 +93,7 @@ get_gl_override(int *version, bool *fwd_context, bool *compat_context)
}
}
+exit:
*version = override_version;
*fwd_context = fc_suffix;
*compat_context = compat_suffix;
@@ -130,18 +141,26 @@ _mesa_override_gl_version_contextless(struct gl_constants *consts,
int version;
bool fwd_context, compat_context;
- get_gl_override(&version, &fwd_context, &compat_context);
+ get_gl_override(*apiOut, &version, &fwd_context, &compat_context);
if (version > 0) {
*versionOut = version;
- if (version >= 30 && fwd_context) {
- *apiOut = API_OPENGL_CORE;
- consts->ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT;
- } else if (version >= 31 && !compat_context) {
- *apiOut = API_OPENGL_CORE;
- } else {
- *apiOut = API_OPENGL_COMPAT;
+
+ /* If the API is a desktop API, adjust the context flags. We may also
+ * need to modify the API depending on the version. For example, Mesa
+ * does not support a GL 3.3 compatibility profile.
+ */
+ if (*apiOut == API_OPENGL_CORE || *apiOut == API_OPENGL_COMPAT) {
+ if (version >= 30 && fwd_context) {
+ *apiOut = API_OPENGL_CORE;
+ consts->ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT;
+ } else if (version >= 31 && !compat_context) {
+ *apiOut = API_OPENGL_CORE;
+ } else {
+ *apiOut = API_OPENGL_COMPAT;
+ }
}
+
return true;
}
return false;
@@ -157,22 +176,6 @@ _mesa_override_gl_version(struct gl_context *ctx)
}
/**
- * Returns the gl override value
- *
- * version > 0 indicates there is an override requested
- */
-int
-_mesa_get_gl_version_override(void)
-{
- int version;
- bool fwd_context, compat_context;
-
- get_gl_override(&version, &fwd_context, &compat_context);
-
- return version;
-}
-
-/**
* Override the context's GLSL version if the environment variable
* MESA_GLSL_VERSION_OVERRIDE is set. Valid values for
* MESA_GLSL_VERSION_OVERRIDE are integers, such as "130".
@@ -433,7 +436,23 @@ compute_version_es2(const struct gl_extensions *extensions)
extensions->EXT_texture_snorm &&
extensions->NV_primitive_restart &&
extensions->OES_depth_texture_cube_map);
- if (ver_3_0) {
+ const bool ver_3_1 = (ver_3_0 &&
+ extensions->ARB_arrays_of_arrays &&
+ extensions->ARB_compute_shader &&
+ extensions->ARB_draw_indirect &&
+ false /*extensions->ARB_framebuffer_no_attachments*/ &&
+ extensions->ARB_shader_atomic_counters &&
+ extensions->ARB_shader_image_load_store &&
+ false /*extensions->ARB_shader_image_size*/ &&
+ false /*extensions->ARB_shader_storage_buffer_object*/ &&
+ extensions->ARB_shading_language_packing &&
+ extensions->ARB_stencil_texturing &&
+ extensions->ARB_gpu_shader5 &&
+ extensions->EXT_shader_integer_mix);
+
+ if (ver_3_1) {
+ return 31;
+ } else if (ver_3_0) {
return 30;
} else if (ver_2_0) {
return 20;
diff --git a/mesalib/src/mesa/main/version.h b/mesalib/src/mesa/main/version.h
index 450a0e31d..ee7cb7501 100644
--- a/mesalib/src/mesa/main/version.h
+++ b/mesalib/src/mesa/main/version.h
@@ -47,7 +47,4 @@ _mesa_override_gl_version(struct gl_context *ctx);
extern void
_mesa_override_glsl_version(struct gl_constants *consts);
-extern int
-_mesa_get_gl_version_override(void);
-
#endif /* VERSION_H */
diff --git a/mesalib/src/mesa/main/vtxfmt.c b/mesalib/src/mesa/main/vtxfmt.c
index d7ef7e278..81bf4c589 100644
--- a/mesalib/src/mesa/main/vtxfmt.c
+++ b/mesalib/src/mesa/main/vtxfmt.c
@@ -207,7 +207,7 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
SET_VertexAttribP4uiv(tab, vfmt->VertexAttribP4uiv);
}
- if (_mesa_is_desktop_gl(ctx)) {
+ if (ctx->API == API_OPENGL_CORE) {
SET_VertexAttribL1d(tab, vfmt->VertexAttribL1d);
SET_VertexAttribL2d(tab, vfmt->VertexAttribL2d);
SET_VertexAttribL3d(tab, vfmt->VertexAttribL3d);
diff --git a/mesalib/src/mesa/program/dummy_errors.c b/mesalib/src/mesa/program/dummy_errors.c
new file mode 100644
index 000000000..d69f54d1d
--- /dev/null
+++ b/mesalib/src/mesa/program/dummy_errors.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright © 2014 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.
+ */
+#include <stdio.h>
+#include "main/errors.h"
+
+void
+_mesa_error_no_memory(const char *caller)
+{
+ fprintf(stderr, "Mesa error: out of memory in %s", caller);
+}
diff --git a/mesalib/src/mesa/program/ir_to_mesa.cpp b/mesalib/src/mesa/program/ir_to_mesa.cpp
index 3dcb53702..18e3bc5d5 100644
--- a/mesalib/src/mesa/program/ir_to_mesa.cpp
+++ b/mesalib/src/mesa/program/ir_to_mesa.cpp
@@ -262,6 +262,7 @@ public:
virtual void visit(ir_if *);
virtual void visit(ir_emit_vertex *);
virtual void visit(ir_end_primitive *);
+ virtual void visit(ir_barrier *);
/*@}*/
src_reg result;
@@ -405,7 +406,7 @@ ir_to_mesa_visitor::emit_dp(ir_instruction *ir,
dst_reg dst, src_reg src0, src_reg src1,
unsigned elements)
{
- static const gl_inst_opcode dot_opcodes[] = {
+ static const enum prog_opcode dot_opcodes[] = {
OPCODE_DP2, OPCODE_DP3, OPCODE_DP4
};
@@ -2117,6 +2118,12 @@ ir_to_mesa_visitor::visit(ir_end_primitive *)
assert(!"Geometry shaders not supported.");
}
+void
+ir_to_mesa_visitor::visit(ir_barrier *)
+{
+ unreachable("GLSL barrier() not supported.");
+}
+
ir_to_mesa_visitor::ir_to_mesa_visitor()
{
result.file = PROGRAM_UNDEFINED;
@@ -2406,9 +2413,14 @@ _mesa_associate_uniform_storage(struct gl_context *ctx,
if (!found)
continue;
+ struct gl_uniform_storage *storage =
+ &shader_program->UniformStorage[location];
+
+ /* Do not associate any uniform storage to built-in uniforms */
+ if (storage->builtin)
+ continue;
+
if (location != last_location) {
- struct gl_uniform_storage *storage =
- &shader_program->UniformStorage[location];
enum gl_uniform_driver_format format = uniform_native;
unsigned columns = 0;
@@ -2720,7 +2732,7 @@ get_mesa_program(struct gl_context *ctx,
mesa_inst->Opcode = inst->op;
mesa_inst->CondUpdate = inst->cond_update;
if (inst->saturate)
- mesa_inst->SaturateMode = SATURATE_ZERO_ONE;
+ mesa_inst->Saturate = GL_TRUE;
mesa_inst->DstReg.File = inst->dst.file;
mesa_inst->DstReg.Index = inst->dst.index;
mesa_inst->DstReg.CondMask = inst->dst.cond_mask;
diff --git a/mesalib/src/mesa/program/prog_execute.c b/mesalib/src/mesa/program/prog_execute.c
index 16e8e340d..46260b548 100644
--- a/mesalib/src/mesa/program/prog_execute.c
+++ b/mesalib/src/mesa/program/prog_execute.c
@@ -397,7 +397,7 @@ store_vector4(const struct prog_instruction *inst,
struct gl_program_machine *machine, const GLfloat value[4])
{
const struct prog_dst_register *dstReg = &(inst->DstReg);
- const GLboolean clamp = inst->SaturateMode == SATURATE_ZERO_ONE;
+ const GLboolean clamp = inst->Saturate;
GLuint writeMask = dstReg->WriteMask;
GLfloat clampedValue[4];
GLfloat *dst = get_dst_register_pointer(dstReg, machine);
diff --git a/mesalib/src/mesa/program/prog_instruction.c b/mesalib/src/mesa/program/prog_instruction.c
index f9ebe4e8f..21ef35337 100644
--- a/mesalib/src/mesa/program/prog_instruction.c
+++ b/mesalib/src/mesa/program/prog_instruction.c
@@ -55,7 +55,7 @@ _mesa_init_instructions(struct prog_instruction *inst, GLuint count)
inst[i].DstReg.CondMask = COND_TR;
inst[i].DstReg.CondSwizzle = SWIZZLE_NOOP;
- inst[i].SaturateMode = SATURATE_OFF;
+ inst[i].Saturate = GL_FALSE;
inst[i].Precision = FLOAT32;
}
}
@@ -114,7 +114,7 @@ _mesa_free_instructions(struct prog_instruction *inst, GLuint count)
*/
struct instruction_info
{
- gl_inst_opcode Opcode;
+ enum prog_opcode Opcode;
const char *Name;
GLuint NumSrcRegs;
GLuint NumDstRegs;
@@ -198,7 +198,7 @@ static const struct instruction_info InstInfo[MAX_OPCODE] = {
* Return the number of src registers for the given instruction/opcode.
*/
GLuint
-_mesa_num_inst_src_regs(gl_inst_opcode opcode)
+_mesa_num_inst_src_regs(enum prog_opcode opcode)
{
assert(opcode < MAX_OPCODE);
assert(opcode == InstInfo[opcode].Opcode);
@@ -211,7 +211,7 @@ _mesa_num_inst_src_regs(gl_inst_opcode opcode)
* Return the number of dst registers for the given instruction/opcode.
*/
GLuint
-_mesa_num_inst_dst_regs(gl_inst_opcode opcode)
+_mesa_num_inst_dst_regs(enum prog_opcode opcode)
{
assert(opcode < MAX_OPCODE);
assert(opcode == InstInfo[opcode].Opcode);
@@ -221,7 +221,7 @@ _mesa_num_inst_dst_regs(gl_inst_opcode opcode)
GLboolean
-_mesa_is_tex_instruction(gl_inst_opcode opcode)
+_mesa_is_tex_instruction(enum prog_opcode opcode)
{
return (opcode == OPCODE_TEX ||
opcode == OPCODE_TXB ||
@@ -285,7 +285,7 @@ _mesa_check_soa_dependencies(const struct prog_instruction *inst)
* Return string name for given program opcode.
*/
const char *
-_mesa_opcode_string(gl_inst_opcode opcode)
+_mesa_opcode_string(enum prog_opcode opcode)
{
if (opcode < MAX_OPCODE)
return InstInfo[opcode].Name;
diff --git a/mesalib/src/mesa/program/prog_instruction.h b/mesalib/src/mesa/program/prog_instruction.h
index 96da198f8..d56f96cfa 100644
--- a/mesalib/src/mesa/program/prog_instruction.h
+++ b/mesalib/src/mesa/program/prog_instruction.h
@@ -118,15 +118,6 @@
/**
- * Saturation modes when storing values.
- */
-/*@{*/
-#define SATURATE_OFF 0
-#define SATURATE_ZERO_ONE 1
-/*@}*/
-
-
-/**
* Per-component negation masks
*/
/*@{*/
@@ -143,7 +134,7 @@
/**
* Program instruction opcodes for vertex, fragment and geometry programs.
*/
-typedef enum prog_opcode {
+enum prog_opcode {
/* ARB_vp ARB_fp NV_vp NV_fp GLSL */
/*------------------------------------------*/
OPCODE_NOP = 0, /* X */
@@ -213,7 +204,7 @@ typedef enum prog_opcode {
OPCODE_TRUNC, /* X */
OPCODE_XPD, /* X X */
MAX_OPCODE
-} gl_inst_opcode;
+};
/**
@@ -300,7 +291,7 @@ struct prog_dst_register
*/
struct prog_instruction
{
- gl_inst_opcode Opcode;
+ enum prog_opcode Opcode;
struct prog_src_register SrcReg[3];
struct prog_dst_register DstReg;
@@ -327,15 +318,12 @@ struct prog_instruction
GLuint CondDst:1;
/**
- * Saturate each value of the vectored result to the range [0,1] or the
- * range [-1,1]. \c SSAT mode (i.e., saturation to the range [-1,1]) is
- * only available in NV_fragment_program2 mode.
- * Value is one of the SATURATE_* tokens.
+ * Saturate each value of the vectored result to the range [0,1].
*
* \since
* NV_fragment_program_option, NV_vertex_program3.
*/
- GLuint SaturateMode:2;
+ GLuint Saturate:1;
/**
* Per-instruction selectable precision: FLOAT32, FLOAT16, FIXED12.
@@ -368,9 +356,6 @@ struct prog_instruction
*/
GLint BranchTarget;
- /** for driver use (try to remove someday) */
- GLint Aux;
-
/** for debugging purposes */
const char *Comment;
};
@@ -394,19 +379,19 @@ extern void
_mesa_free_instructions(struct prog_instruction *inst, GLuint count);
extern GLuint
-_mesa_num_inst_src_regs(gl_inst_opcode opcode);
+_mesa_num_inst_src_regs(enum prog_opcode opcode);
extern GLuint
-_mesa_num_inst_dst_regs(gl_inst_opcode opcode);
+_mesa_num_inst_dst_regs(enum prog_opcode opcode);
extern GLboolean
-_mesa_is_tex_instruction(gl_inst_opcode opcode);
+_mesa_is_tex_instruction(enum prog_opcode opcode);
extern GLboolean
_mesa_check_soa_dependencies(const struct prog_instruction *inst);
extern const char *
-_mesa_opcode_string(gl_inst_opcode opcode);
+_mesa_opcode_string(enum prog_opcode opcode);
#ifdef __cplusplus
diff --git a/mesalib/src/mesa/program/prog_optimize.c b/mesalib/src/mesa/program/prog_optimize.c
index 6d4485acb..f9e9035fc 100644
--- a/mesalib/src/mesa/program/prog_optimize.c
+++ b/mesalib/src/mesa/program/prog_optimize.c
@@ -478,7 +478,7 @@ can_upward_mov_be_modifed(const struct prog_instruction *mov)
return
can_downward_mov_be_modifed(mov) &&
mov->DstReg.File == PROGRAM_TEMPORARY &&
- mov->SaturateMode == SATURATE_OFF;
+ !mov->Saturate;
}
@@ -653,7 +653,7 @@ _mesa_merge_mov_into_inst(struct prog_instruction *inst,
if (mask != (inst->DstReg.WriteMask & mask))
return GL_FALSE;
- inst->SaturateMode |= mov->SaturateMode;
+ inst->Saturate |= mov->Saturate;
/* Depending on the instruction, we may need to recompute the swizzles.
* Also, some other instructions (like TEX) are not linear. We will only
diff --git a/mesalib/src/mesa/program/prog_print.c b/mesalib/src/mesa/program/prog_print.c
index d588d07ff..e4faa63c0 100644
--- a/mesalib/src/mesa/program/prog_print.c
+++ b/mesalib/src/mesa/program/prog_print.c
@@ -600,7 +600,7 @@ _mesa_fprint_alu_instruction(FILE *f,
fprintf(f, ".C");
/* frag prog only */
- if (inst->SaturateMode == SATURATE_ZERO_ONE)
+ if (inst->Saturate)
fprintf(f, "_SAT");
fprintf(f, " ");
@@ -658,7 +658,7 @@ _mesa_fprint_instruction_opt(FILE *f,
switch (inst->Opcode) {
case OPCODE_SWZ:
fprintf(f, "SWZ");
- if (inst->SaturateMode == SATURATE_ZERO_ONE)
+ if (inst->Saturate)
fprintf(f, "_SAT");
fprintf(f, " ");
fprint_dst_reg(f, &inst->DstReg, mode, prog);
@@ -675,7 +675,7 @@ _mesa_fprint_instruction_opt(FILE *f,
case OPCODE_TXB:
case OPCODE_TXD:
fprintf(f, "%s", _mesa_opcode_string(inst->Opcode));
- if (inst->SaturateMode == SATURATE_ZERO_ONE)
+ if (inst->Saturate)
fprintf(f, "_SAT");
fprintf(f, " ");
fprint_dst_reg(f, &inst->DstReg, mode, prog);
@@ -864,7 +864,7 @@ _mesa_fprint_program_opt(FILE *f,
else
fprintf(f, "# Fragment Program/Shader %u\n", prog->Id);
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
fprintf(f, "# Geometry Shader\n");
}
diff --git a/mesalib/src/mesa/program/prog_to_nir.c b/mesalib/src/mesa/program/prog_to_nir.c
index 6c5fa51ec..d54f93424 100644
--- a/mesalib/src/mesa/program/prog_to_nir.c
+++ b/mesalib/src/mesa/program/prog_to_nir.c
@@ -47,6 +47,7 @@ struct ptn_compile {
nir_builder build;
bool error;
+ nir_variable *parameters;
nir_variable *input_vars[VARYING_SLOT_MAX];
nir_variable *output_vars[VARYING_SLOT_MAX];
nir_register **output_regs;
@@ -112,21 +113,6 @@ ptn_get_dest(struct ptn_compile *c, const struct prog_dst_register *prog_dst)
return dest;
}
-/**
- * Multiply the contents of the ADDR register by 4 to convert from the number
- * of vec4s to the number of floating point components.
- */
-static nir_ssa_def *
-ptn_addr_reg_value(struct ptn_compile *c)
-{
- nir_builder *b = &c->build;
- nir_alu_src src;
- memset(&src, 0, sizeof(src));
- src.src = nir_src_for_reg(c->addr_reg);
-
- return nir_imul(b, nir_fmov_alu(b, src, 1), nir_imm_int(b, 4));
-}
-
static nir_ssa_def *
ptn_get_src(struct ptn_compile *c, const struct prog_src_register *prog_src)
{
@@ -180,27 +166,38 @@ ptn_get_src(struct ptn_compile *c, const struct prog_src_register *prog_src)
}
/* FALLTHROUGH */
case PROGRAM_STATE_VAR: {
- nir_intrinsic_op load_op =
- prog_src->RelAddr ? nir_intrinsic_load_uniform_indirect :
- nir_intrinsic_load_uniform;
- nir_intrinsic_instr *load = nir_intrinsic_instr_create(b->shader, load_op);
+ nir_intrinsic_instr *load =
+ nir_intrinsic_instr_create(b->shader, nir_intrinsic_load_var);
nir_ssa_dest_init(&load->instr, &load->dest, 4, NULL);
load->num_components = 4;
- /* Multiply src->Index by 4 to scale from # of vec4s to components. */
- load->const_index[0] = 4 * prog_src->Index;
- load->const_index[1] = 1;
+ load->variables[0] = nir_deref_var_create(load, c->parameters);
+ nir_deref_array *deref_arr =
+ nir_deref_array_create(load->variables[0]);
+ deref_arr->deref.type = glsl_vec4_type();
+ load->variables[0]->deref.child = &deref_arr->deref;
if (prog_src->RelAddr) {
- nir_ssa_def *reladdr = ptn_addr_reg_value(c);
+ deref_arr->deref_array_type = nir_deref_array_type_indirect;
+
+ nir_alu_src addr_src = { NIR_SRC_INIT };
+ addr_src.src = nir_src_for_reg(c->addr_reg);
+ nir_ssa_def *reladdr = nir_imov_alu(b, addr_src, 1);
+
if (prog_src->Index < 0) {
/* This is a negative offset which should be added to the address
* register's value.
*/
- reladdr = nir_iadd(b, reladdr, nir_imm_int(b, load->const_index[0]));
- load->const_index[0] = 0;
+ reladdr = nir_iadd(b, reladdr, nir_imm_int(b, prog_src->Index));
+
+ deref_arr->base_offset = 0;
+ } else {
+ deref_arr->base_offset = prog_src->Index;
}
- load->src[0] = nir_src_for_ssa(reladdr);
+ deref_arr->indirect = nir_src_for_ssa(reladdr);
+ } else {
+ deref_arr->deref_array_type = nir_deref_array_type_direct;
+ deref_arr->base_offset = prog_src->Index;
}
nir_instr_insert_after_cf_list(b->cf_node_list, &load->instr);
@@ -700,7 +697,7 @@ static const nir_op op_trans[MAX_OPCODE] = {
[OPCODE_ADD] = nir_op_fadd,
[OPCODE_ARL] = 0,
[OPCODE_CMP] = 0,
- [OPCODE_COS] = nir_op_fcos,
+ [OPCODE_COS] = 0,
[OPCODE_DDX] = nir_op_fddx,
[OPCODE_DDY] = nir_op_fddy,
[OPCODE_DP2] = 0,
@@ -709,11 +706,11 @@ static const nir_op op_trans[MAX_OPCODE] = {
[OPCODE_DPH] = 0,
[OPCODE_DST] = 0,
[OPCODE_END] = 0,
- [OPCODE_EX2] = nir_op_fexp2,
+ [OPCODE_EX2] = 0,
[OPCODE_EXP] = 0,
[OPCODE_FLR] = nir_op_ffloor,
[OPCODE_FRC] = nir_op_ffract,
- [OPCODE_LG2] = nir_op_flog2,
+ [OPCODE_LG2] = 0,
[OPCODE_LIT] = 0,
[OPCODE_LOG] = 0,
[OPCODE_LRP] = 0,
@@ -722,15 +719,15 @@ static const nir_op op_trans[MAX_OPCODE] = {
[OPCODE_MIN] = nir_op_fmin,
[OPCODE_MOV] = nir_op_fmov,
[OPCODE_MUL] = nir_op_fmul,
- [OPCODE_POW] = nir_op_fpow,
- [OPCODE_RCP] = nir_op_frcp,
+ [OPCODE_POW] = 0,
+ [OPCODE_RCP] = 0,
- [OPCODE_RSQ] = nir_op_frsq,
+ [OPCODE_RSQ] = 0,
[OPCODE_SCS] = 0,
[OPCODE_SEQ] = 0,
[OPCODE_SGE] = 0,
[OPCODE_SGT] = 0,
- [OPCODE_SIN] = nir_op_fsin,
+ [OPCODE_SIN] = 0,
[OPCODE_SLE] = 0,
[OPCODE_SLT] = 0,
[OPCODE_SNE] = 0,
@@ -767,7 +764,8 @@ ptn_emit_instruction(struct ptn_compile *c, struct prog_instruction *prog_inst)
switch (op) {
case OPCODE_RSQ:
- ptn_move_dest(b, dest, nir_frsq(b, ptn_channel(b, src[0], X)));
+ ptn_move_dest(b, dest,
+ nir_frsq(b, nir_fabs(b, ptn_channel(b, src[0], X))));
break;
case OPCODE_RCP:
@@ -894,7 +892,7 @@ ptn_emit_instruction(struct ptn_compile *c, struct prog_instruction *prog_inst)
break;
default:
- if (op_trans[op] != 0 || op == OPCODE_MOV) {
+ if (op_trans[op] != 0) {
ptn_alu(b, op_trans[op], dest, src);
} else {
fprintf(stderr, "unknown opcode: %s\n", _mesa_opcode_string(op));
@@ -903,8 +901,8 @@ ptn_emit_instruction(struct ptn_compile *c, struct prog_instruction *prog_inst)
break;
}
- if (prog_inst->SaturateMode) {
- assert(prog_inst->SaturateMode == SATURATE_ZERO_ONE);
+ if (prog_inst->Saturate) {
+ assert(prog_inst->Saturate);
assert(!dest.dest.is_ssa);
ptn_move_dest(b, dest, nir_fsat(b, ptn_src_for_dest(c, &dest)));
}
@@ -926,10 +924,23 @@ ptn_add_output_stores(struct ptn_compile *c)
foreach_list_typed(nir_variable, var, node, &b->shader->outputs) {
nir_intrinsic_instr *store =
nir_intrinsic_instr_create(b->shader, nir_intrinsic_store_var);
- store->num_components = 4;
+ store->num_components = glsl_get_vector_elements(var->type);
store->variables[0] =
nir_deref_var_create(store, c->output_vars[var->data.location]);
- store->src[0].reg.reg = c->output_regs[var->data.location];
+
+ if (c->prog->Target == GL_FRAGMENT_PROGRAM_ARB &&
+ var->data.location == FRAG_RESULT_DEPTH) {
+ /* result.depth has this strange convention of being the .z component of
+ * a vec4 with undefined .xyw components. We resolve it to a scalar, to
+ * match GLSL's gl_FragDepth and the expectations of most backends.
+ */
+ nir_alu_src alu_src = { NIR_SRC_INIT };
+ alu_src.src = nir_src_for_reg(c->output_regs[FRAG_RESULT_DEPTH]);
+ alu_src.swizzle[0] = SWIZZLE_Z;
+ store->src[0] = nir_src_for_ssa(nir_fmov_alu(b, alu_src, 1));
+ } else {
+ store->src[0].reg.reg = c->output_regs[var->data.location];
+ }
nir_instr_insert_after_cf_list(c->build.cf_node_list, &store->instr);
}
}
@@ -1022,7 +1033,10 @@ setup_registers_and_variables(struct ptn_compile *c)
reg->num_components = 4;
nir_variable *var = rzalloc(shader, nir_variable);
- var->type = glsl_vec4_type();
+ if (c->prog->Target == GL_FRAGMENT_PROGRAM_ARB && i == FRAG_RESULT_DEPTH)
+ var->type = glsl_float_type();
+ else
+ var->type = glsl_vec4_type();
var->data.mode = nir_var_shader_out;
var->name = ralloc_asprintf(var, "out_%d", i);
@@ -1057,13 +1071,11 @@ setup_registers_and_variables(struct ptn_compile *c)
}
reg->num_components = 1;
c->addr_reg = reg;
-
- /* Set the number of uniforms */
- shader->num_uniforms = 4 * c->prog->Parameters->NumParameters;
}
struct nir_shader *
-prog_to_nir(const struct gl_program *prog, const nir_shader_compiler_options *options)
+prog_to_nir(const struct gl_program *prog,
+ const nir_shader_compiler_options *options)
{
struct ptn_compile *c;
struct nir_shader *s;
@@ -1076,6 +1088,14 @@ prog_to_nir(const struct gl_program *prog, const nir_shader_compiler_options *op
goto fail;
c->prog = prog;
+ c->parameters = rzalloc(s, nir_variable);
+ c->parameters->type = glsl_array_type(glsl_vec4_type(),
+ prog->Parameters->NumParameters);
+ c->parameters->name = "parameters";
+ c->parameters->data.read_only = true;
+ c->parameters->data.mode = nir_var_uniform;
+ exec_list_push_tail(&s->uniforms, &c->parameters->node);
+
nir_function *func = nir_function_create(s, "main");
nir_function_overload *overload = nir_function_overload_create(func);
nir_function_impl *impl = nir_function_impl_create(overload);
diff --git a/mesalib/src/mesa/program/program.c b/mesalib/src/mesa/program/program.c
index fb61f4d36..c13e61b16 100644
--- a/mesalib/src/mesa/program/program.c
+++ b/mesalib/src/mesa/program/program.c
@@ -97,13 +97,6 @@ _mesa_init_program(struct gl_context *ctx)
assert(ctx->FragmentProgram.Current);
ctx->FragmentProgram.Cache = _mesa_new_program_cache();
- ctx->GeometryProgram.Enabled = GL_FALSE;
- /* right now by default we don't have a geometry program */
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current,
- NULL);
-
- _mesa_reference_compprog(ctx, &ctx->ComputeProgram.Current, NULL);
-
/* XXX probably move this stuff */
ctx->ATIFragmentShader.Enabled = GL_FALSE;
ctx->ATIFragmentShader.Current = ctx->Shared->DefaultFragmentShader;
@@ -122,8 +115,6 @@ _mesa_free_program_data(struct gl_context *ctx)
_mesa_delete_program_cache(ctx, ctx->VertexProgram.Cache);
_mesa_reference_fragprog(ctx, &ctx->FragmentProgram.Current, NULL);
_mesa_delete_shader_cache(ctx, ctx->FragmentProgram.Cache);
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current, NULL);
- _mesa_reference_compprog(ctx, &ctx->ComputeProgram.Current, NULL);
/* XXX probably move this stuff */
if (ctx->ATIFragmentShader.Current) {
@@ -153,9 +144,6 @@ _mesa_update_default_objects_program(struct gl_context *ctx)
ctx->Shared->DefaultFragmentProgram);
assert(ctx->FragmentProgram.Current);
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current,
- ctx->Shared->DefaultGeometryProgram);
-
/* XXX probably move this stuff */
if (ctx->ATIFragmentShader.Current) {
ctx->ATIFragmentShader.Current->RefCount--;
@@ -340,7 +328,7 @@ _mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id)
CALLOC_STRUCT(gl_fragment_program),
target, id );
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
prog = _mesa_init_geometry_program(ctx,
CALLOC_STRUCT(gl_geometry_program),
target, id);
@@ -426,8 +414,8 @@ _mesa_reference_program_(struct gl_context *ctx,
else if ((*ptr)->Target == GL_FRAGMENT_PROGRAM_ARB)
assert(prog->Target == GL_FRAGMENT_PROGRAM_ARB ||
prog->Target == GL_FRAGMENT_PROGRAM_NV);
- else if ((*ptr)->Target == MESA_GEOMETRY_PROGRAM)
- assert(prog->Target == MESA_GEOMETRY_PROGRAM);
+ else if ((*ptr)->Target == GL_GEOMETRY_PROGRAM_NV)
+ assert(prog->Target == GL_GEOMETRY_PROGRAM_NV);
}
#endif
@@ -439,7 +427,7 @@ _mesa_reference_program_(struct gl_context *ctx,
printf("Program %p ID=%u Target=%s Refcount-- to %d\n",
*ptr, (*ptr)->Id,
((*ptr)->Target == GL_VERTEX_PROGRAM_ARB ? "VP" :
- ((*ptr)->Target == MESA_GEOMETRY_PROGRAM ? "GP" : "FP")),
+ ((*ptr)->Target == GL_GEOMETRY_PROGRAM_NV ? "GP" : "FP")),
(*ptr)->RefCount - 1);
#endif
assert((*ptr)->RefCount > 0);
@@ -464,7 +452,7 @@ _mesa_reference_program_(struct gl_context *ctx,
printf("Program %p ID=%u Target=%s Refcount++ to %d\n",
prog, prog->Id,
(prog->Target == GL_VERTEX_PROGRAM_ARB ? "VP" :
- (prog->Target == MESA_GEOMETRY_PROGRAM ? "GP" : "FP")),
+ (prog->Target == GL_GEOMETRY_PROGRAM_NV ? "GP" : "FP")),
prog->RefCount);
#endif
/*mtx_unlock(&prog->Mutex);*/
@@ -554,7 +542,7 @@ _mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog)
fpc->PixelCenterInteger = fp->PixelCenterInteger;
}
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
{
const struct gl_geometry_program *gp = gl_geometry_program_const(prog);
struct gl_geometry_program *gpc = gl_geometry_program(clone);
diff --git a/mesalib/src/mesa/program/program_parse.y b/mesalib/src/mesa/program/program_parse.y
index 716b83d2d..635f5d09d 100644
--- a/mesalib/src/mesa/program/program_parse.y
+++ b/mesalib/src/mesa/program/program_parse.y
@@ -84,7 +84,7 @@ static void asm_instruction_set_operands(struct asm_instruction *inst,
const struct prog_dst_register *dst, const struct asm_src_register *src0,
const struct asm_src_register *src1, const struct asm_src_register *src2);
-static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
+static struct asm_instruction *asm_instruction_ctor(enum prog_opcode op,
const struct prog_dst_register *dst, const struct asm_src_register *src0,
const struct asm_src_register *src1, const struct asm_src_register *src2);
@@ -139,7 +139,7 @@ static struct asm_instruction *asm_instruction_copy_ctor(
gl_state_index state[STATE_LENGTH];
int negate;
struct asm_vector vector;
- gl_inst_opcode opcode;
+ enum prog_opcode opcode;
struct {
unsigned swz;
@@ -2275,7 +2275,7 @@ asm_instruction_set_operands(struct asm_instruction *inst,
struct asm_instruction *
-asm_instruction_ctor(gl_inst_opcode op,
+asm_instruction_ctor(enum prog_opcode op,
const struct prog_dst_register *dst,
const struct asm_src_register *src0,
const struct asm_src_register *src1,
@@ -2308,7 +2308,7 @@ asm_instruction_copy_ctor(const struct prog_instruction *base,
inst->Base.Opcode = base->Opcode;
inst->Base.CondUpdate = base->CondUpdate;
inst->Base.CondDst = base->CondDst;
- inst->Base.SaturateMode = base->SaturateMode;
+ inst->Base.Saturate = base->Saturate;
inst->Base.Precision = base->Precision;
asm_instruction_set_operands(inst, dst, src0, src1, src2);
diff --git a/mesalib/src/mesa/program/program_parse_extra.c b/mesalib/src/mesa/program/program_parse_extra.c
index a9e364045..32b54afc5 100644
--- a/mesalib/src/mesa/program/program_parse_extra.c
+++ b/mesalib/src/mesa/program/program_parse_extra.c
@@ -40,7 +40,7 @@ _mesa_parse_instruction_suffix(const struct asm_parser_state *state,
{
inst->CondUpdate = 0;
inst->CondDst = 0;
- inst->SaturateMode = SATURATE_OFF;
+ inst->Saturate = GL_FALSE;
inst->Precision = FLOAT32;
@@ -82,7 +82,7 @@ _mesa_parse_instruction_suffix(const struct asm_parser_state *state,
*/
if (state->mode == ARB_fragment) {
if (strcmp(suffix, "_SAT") == 0) {
- inst->SaturateMode = SATURATE_ZERO_ONE;
+ inst->Saturate = GL_TRUE;
suffix += 4;
}
}
diff --git a/mesalib/src/mesa/program/programopt.c b/mesalib/src/mesa/program/programopt.c
index e82c68a53..af78150d5 100644
--- a/mesalib/src/mesa/program/programopt.c
+++ b/mesalib/src/mesa/program/programopt.c
@@ -305,7 +305,7 @@ _mesa_append_fog_code(struct gl_context *ctx,
/* change the instruction to write to colorTemp w/ clamping */
inst->DstReg.File = PROGRAM_TEMPORARY;
inst->DstReg.Index = colorTemp;
- inst->SaturateMode = saturate;
+ inst->Saturate = saturate;
/* don't break (may be several writes to result.color) */
}
inst++;
@@ -331,7 +331,7 @@ _mesa_append_fog_code(struct gl_context *ctx,
inst->SrcReg[2].File = PROGRAM_STATE_VAR;
inst->SrcReg[2].Index = fogPRefOpt;
inst->SrcReg[2].Swizzle = SWIZZLE_YYYY;
- inst->SaturateMode = SATURATE_ZERO_ONE;
+ inst->Saturate = GL_TRUE;
inst++;
}
else {
@@ -374,7 +374,7 @@ _mesa_append_fog_code(struct gl_context *ctx,
inst->SrcReg[0].Index = fogFactorTemp;
inst->SrcReg[0].Negate = NEGATE_XYZW;
inst->SrcReg[0].Swizzle = SWIZZLE_XXXX;
- inst->SaturateMode = SATURATE_ZERO_ONE;
+ inst->Saturate = GL_TRUE;
inst++;
}
/* LRP result.color.xyz, fogFactorTemp.xxxx, colorTemp, fogColorRef; */
diff --git a/mesalib/src/mesa/state_tracker/st_atom_shader.c b/mesalib/src/mesa/state_tracker/st_atom_shader.c
index 629f54f25..ad8d2624f 100644
--- a/mesalib/src/mesa/state_tracker/st_atom_shader.c
+++ b/mesalib/src/mesa/state_tracker/st_atom_shader.c
@@ -189,7 +189,7 @@ update_gp( struct st_context *st )
}
stgp = st_geometry_program(st->ctx->GeometryProgram._Current);
- assert(stgp->Base.Base.Target == MESA_GEOMETRY_PROGRAM);
+ assert(stgp->Base.Base.Target == GL_GEOMETRY_PROGRAM_NV);
memset(&key, 0, sizeof(key));
key.st = st;
diff --git a/mesalib/src/mesa/state_tracker/st_cb_bitmap.c b/mesalib/src/mesa/state_tracker/st_cb_bitmap.c
index 2107ab167..c881e194f 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_bitmap.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_bitmap.c
@@ -452,6 +452,8 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_save_fragment_shader(cso);
cso_save_stream_outputs(cso);
cso_save_vertex_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_geometry_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -466,7 +468,9 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
/* vertex shader state: position + texcoord pass-through */
cso_set_vertex_shader_handle(cso, st->bitmap.vs);
- /* geometry shader state: disabled */
+ /* disable other shaders */
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
/* user samplers, plus our bitmap sampler */
@@ -536,6 +540,8 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_restore_viewport(cso);
cso_restore_fragment_shader(cso);
cso_restore_vertex_shader(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_elements(cso);
cso_restore_aux_vertex_buffer_slot(cso);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_blit.c b/mesalib/src/mesa/state_tracker/st_cb_blit.c
index bbaedd108..6d9371852 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_blit.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_blit.c
@@ -36,6 +36,7 @@
#include "st_context.h"
#include "st_texture.h"
+#include "st_cb_bitmap.h"
#include "st_cb_blit.h"
#include "st_cb_fbo.h"
#include "st_atom.h"
@@ -93,6 +94,9 @@ st_BlitFramebuffer(struct gl_context *ctx,
st_validate_state(st);
+ /* Make sure bitmap rendering has landed in the framebuffers */
+ st_flush_bitmap_cache(st);
+
clip.srcX0 = srcX0;
clip.srcY0 = srcY0;
clip.srcX1 = srcX1;
diff --git a/mesalib/src/mesa/state_tracker/st_cb_clear.c b/mesalib/src/mesa/state_tracker/st_cb_clear.c
index f10e9063a..137fac8a9 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_clear.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_clear.c
@@ -265,6 +265,8 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
cso_save_fragment_shader(st->cso_context);
cso_save_stream_outputs(st->cso_context);
cso_save_vertex_shader(st->cso_context);
+ cso_save_tessctrl_shader(st->cso_context);
+ cso_save_tesseval_shader(st->cso_context);
cso_save_geometry_shader(st->cso_context);
cso_save_vertex_elements(st->cso_context);
cso_save_aux_vertex_buffer_slot(st->cso_context);
@@ -347,6 +349,8 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
}
set_fragment_shader(st);
+ cso_set_tessctrl_shader_handle(st->cso_context, NULL);
+ cso_set_tesseval_shader_handle(st->cso_context, NULL);
if (num_layers > 1)
set_vertex_shader_layered(st);
@@ -371,6 +375,8 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
cso_restore_viewport(st->cso_context);
cso_restore_fragment_shader(st->cso_context);
cso_restore_vertex_shader(st->cso_context);
+ cso_restore_tessctrl_shader(st->cso_context);
+ cso_restore_tesseval_shader(st->cso_context);
cso_restore_geometry_shader(st->cso_context);
cso_restore_vertex_elements(st->cso_context);
cso_restore_aux_vertex_buffer_slot(st->cso_context);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
index 3edf31bad..a6a98c83a 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -693,6 +693,8 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_save_fragment_shader(cso);
cso_save_stream_outputs(cso);
cso_save_vertex_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_geometry_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -746,7 +748,9 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
/* vertex shader state: position + texcoord pass-through */
cso_set_vertex_shader_handle(cso, driver_vp);
- /* geometry shader state: disabled */
+ /* disable other shaders */
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
/* texture sampling state: */
@@ -816,6 +820,8 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_restore_sampler_views(cso, PIPE_SHADER_FRAGMENT);
cso_restore_fragment_shader(cso);
cso_restore_vertex_shader(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_elements(cso);
cso_restore_aux_vertex_buffer_slot(cso);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_drawtex.c b/mesalib/src/mesa/state_tracker/st_cb_drawtex.c
index 1420b96e5..2af4f6d4c 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_drawtex.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_drawtex.c
@@ -229,6 +229,8 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
cso_save_viewport(cso);
cso_save_stream_outputs(cso);
cso_save_vertex_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_geometry_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -238,6 +240,8 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
semantic_names, semantic_indexes);
cso_set_vertex_shader_handle(cso, vs);
}
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
for (i = 0; i < numAttribs; i++) {
@@ -279,6 +283,8 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
/* restore state */
cso_restore_viewport(cso);
cso_restore_vertex_shader(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_elements(cso);
cso_restore_aux_vertex_buffer_slot(cso);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_program.c b/mesalib/src/mesa/state_tracker/st_cb_program.c
index c382d7d2c..6aa7d5796 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_program.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_program.c
@@ -65,7 +65,7 @@ st_bind_program(struct gl_context *ctx, GLenum target, struct gl_program *prog)
case GL_FRAGMENT_PROGRAM_ARB:
st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM;
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
st->dirty.st |= ST_NEW_GEOMETRY_PROGRAM;
break;
}
@@ -105,7 +105,7 @@ st_new_program(struct gl_context *ctx, GLenum target, GLuint id)
return _mesa_init_fragment_program(ctx, &prog->Base, target, id);
}
- case MESA_GEOMETRY_PROGRAM: {
+ case GL_GEOMETRY_PROGRAM_NV: {
struct st_geometry_program *prog = ST_CALLOC_STRUCT(st_geometry_program);
return _mesa_init_geometry_program(ctx, &prog->Base, target, id);
}
@@ -135,7 +135,7 @@ st_delete_program(struct gl_context *ctx, struct gl_program *prog)
free_glsl_to_tgsi_visitor(stvp->glsl_to_tgsi);
}
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
{
struct st_geometry_program *stgp =
(struct st_geometry_program *) prog;
@@ -198,7 +198,7 @@ st_program_string_notify( struct gl_context *ctx,
if (st->fp == stfp)
st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM;
}
- else if (target == MESA_GEOMETRY_PROGRAM) {
+ else if (target == GL_GEOMETRY_PROGRAM_NV) {
struct st_geometry_program *stgp = (struct st_geometry_program *) prog;
st_release_gp_variants(st, stgp);
diff --git a/mesalib/src/mesa/state_tracker/st_context.c b/mesalib/src/mesa/state_tracker/st_context.c
index 69e0f929d..ed9ed0f1b 100644
--- a/mesalib/src/mesa/state_tracker/st_context.c
+++ b/mesalib/src/mesa/state_tracker/st_context.c
@@ -376,12 +376,6 @@ void st_destroy_context( struct st_context *st )
}
pipe_surface_reference(&st->state.framebuffer.zsbuf, NULL);
- pipe->set_index_buffer(pipe, NULL);
-
- for (i = 0; i < PIPE_SHADER_TYPES; i++) {
- pipe->set_constant_buffer(pipe, i, 0, NULL);
- }
-
_mesa_delete_program_cache(st->ctx, st->pixel_xfer.cache);
_vbo_DestroyContext(st->ctx);
diff --git a/mesalib/src/mesa/state_tracker/st_draw.c b/mesalib/src/mesa/state_tracker/st_draw.c
index 488f6ead2..8b43582c1 100644
--- a/mesalib/src/mesa/state_tracker/st_draw.c
+++ b/mesalib/src/mesa/state_tracker/st_draw.c
@@ -141,7 +141,7 @@ check_uniforms(struct gl_context *ctx)
if (shProg[j] == NULL || !shProg[j]->LinkStatus)
continue;
- for (i = 0; i < shProg[j]->NumUserUniformStorage; i++) {
+ for (i = 0; i < shProg[j]->NumUniformStorage; i++) {
const struct gl_uniform_storage *u = &shProg[j]->UniformStorage[i];
if (!u->initialized) {
_mesa_warning(ctx,
diff --git a/mesalib/src/mesa/state_tracker/st_extensions.c b/mesalib/src/mesa/state_tracker/st_extensions.c
index 23a45883d..b1057f3ea 100644
--- a/mesalib/src/mesa/state_tracker/st_extensions.c
+++ b/mesalib/src/mesa/state_tracker/st_extensions.c
@@ -650,12 +650,6 @@ void st_init_extensions(struct pipe_screen *screen,
ARRAY_SIZE(vertex_mapping), PIPE_BUFFER,
PIPE_BIND_VERTEX_BUFFER);
- /* ARB_direct_state_access requires OpenGL 2.0. Assume that all drivers
- * that support NPOT textures are able to support GL 2.0.
- */
- if (extensions->ARB_texture_non_power_of_two)
- extensions->ARB_direct_state_access = GL_TRUE;
-
if (extensions->ARB_stencil_texturing)
extensions->ARB_texture_stencil8 = GL_TRUE;
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index f0f2a77d0..03834b69a 100644
--- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -57,11 +57,6 @@
(1 << PROGRAM_CONSTANT) | \
(1 << PROGRAM_UNIFORM))
-/**
- * Maximum number of arrays
- */
-#define MAX_ARRAYS 256
-
#define MAX_GLSL_TEXTURE_OFFSET 4
class st_src_reg;
@@ -89,6 +84,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
st_src_reg(gl_register_file file, int index, int type)
@@ -103,6 +99,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
st_src_reg(gl_register_file file, int index, int type, int index2D)
@@ -117,6 +114,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
st_src_reg()
@@ -131,6 +129,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
explicit st_src_reg(st_dst_reg reg);
@@ -150,6 +149,7 @@ public:
* currently used for input mapping only.
*/
bool double_reg2;
+ unsigned array_id;
};
class st_dst_reg {
@@ -162,6 +162,7 @@ public:
this->cond_mask = COND_TR;
this->reladdr = NULL;
this->type = type;
+ this->array_id = 0;
}
st_dst_reg(gl_register_file file, int writemask, int type)
@@ -172,6 +173,7 @@ public:
this->cond_mask = COND_TR;
this->reladdr = NULL;
this->type = type;
+ this->array_id = 0;
}
st_dst_reg()
@@ -182,6 +184,7 @@ public:
this->writemask = 0;
this->cond_mask = COND_TR;
this->reladdr = NULL;
+ this->array_id = 0;
}
explicit st_dst_reg(st_src_reg reg);
@@ -193,6 +196,7 @@ public:
int type; /** GLSL_TYPE_* from GLSL IR (enum glsl_base_type) */
/** Register index should be offset by the integer in this reg. */
st_src_reg *reladdr;
+ unsigned array_id;
};
st_src_reg::st_src_reg(st_dst_reg reg)
@@ -207,6 +211,7 @@ st_src_reg::st_src_reg(st_dst_reg reg)
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = reg.array_id;
}
st_dst_reg::st_dst_reg(st_src_reg reg)
@@ -217,6 +222,7 @@ st_dst_reg::st_dst_reg(st_src_reg reg)
this->writemask = WRITEMASK_XYZW;
this->cond_mask = COND_TR;
this->reladdr = reg.reladdr;
+ this->array_id = reg.array_id;
}
class glsl_to_tgsi_instruction : public exec_node {
@@ -244,8 +250,9 @@ public:
class variable_storage : public exec_node {
public:
- variable_storage(ir_variable *var, gl_register_file file, int index)
- : file(file), index(index), var(var)
+ variable_storage(ir_variable *var, gl_register_file file, int index,
+ unsigned array_id = 0)
+ : file(file), index(index), var(var), array_id(array_id)
{
/* empty */
}
@@ -253,6 +260,7 @@ public:
gl_register_file file;
int index;
ir_variable *var; /* variable that maps to this, if any */
+ unsigned array_id;
};
class immediate_storage : public exec_node {
@@ -302,6 +310,15 @@ public:
st_src_reg return_reg;
};
+static st_src_reg undef_src = st_src_reg(PROGRAM_UNDEFINED, 0, GLSL_TYPE_ERROR);
+static st_dst_reg undef_dst = st_dst_reg(PROGRAM_UNDEFINED, SWIZZLE_NOOP, GLSL_TYPE_ERROR);
+
+struct array_decl {
+ unsigned mesa_index;
+ unsigned array_id;
+ unsigned array_size;
+};
+
struct glsl_to_tgsi_visitor : public ir_visitor {
public:
glsl_to_tgsi_visitor();
@@ -317,9 +334,15 @@ public:
int next_temp;
- unsigned array_sizes[MAX_ARRAYS];
+ unsigned *array_sizes;
+ unsigned max_num_arrays;
unsigned next_array;
+ struct array_decl input_arrays[PIPE_MAX_SHADER_INPUTS];
+ unsigned num_input_arrays;
+ struct array_decl output_arrays[PIPE_MAX_SHADER_OUTPUTS];
+ unsigned num_output_arrays;
+
int num_address_regs;
int samplers_used;
bool indirect_addr_consts;
@@ -372,6 +395,7 @@ public:
virtual void visit(ir_if *);
virtual void visit(ir_emit_vertex *);
virtual void visit(ir_end_primitive *);
+ virtual void visit(ir_barrier *);
/*@}*/
st_src_reg result;
@@ -390,31 +414,19 @@ public:
/** List of glsl_to_tgsi_instruction */
exec_list instructions;
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0);
+ glsl_to_tgsi_instruction *emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst = undef_dst,
+ st_src_reg src0 = undef_src,
+ st_src_reg src1 = undef_src,
+ st_src_reg src2 = undef_src,
+ st_src_reg src3 = undef_src);
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1,
- st_src_reg src0);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0, st_src_reg src1);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst,
- st_src_reg src0, st_src_reg src1, st_src_reg src2);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3);
+ glsl_to_tgsi_instruction *emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst, st_dst_reg dst1,
+ st_src_reg src0 = undef_src,
+ st_src_reg src1 = undef_src,
+ st_src_reg src2 = undef_src,
+ st_src_reg src3 = undef_src);
unsigned get_opcode(ir_instruction *ir, unsigned op,
st_dst_reg dst,
@@ -468,10 +480,6 @@ public:
void *mem_ctx;
};
-static st_src_reg undef_src = st_src_reg(PROGRAM_UNDEFINED, 0, GLSL_TYPE_ERROR);
-
-static st_dst_reg undef_dst = st_dst_reg(PROGRAM_UNDEFINED, SWIZZLE_NOOP, GLSL_TYPE_ERROR);
-
static st_dst_reg address_reg = st_dst_reg(PROGRAM_ADDRESS, WRITEMASK_X, GLSL_TYPE_FLOAT, 0);
static st_dst_reg address_reg2 = st_dst_reg(PROGRAM_ADDRESS, WRITEMASK_X, GLSL_TYPE_FLOAT, 1);
static st_dst_reg sampler_reladdr = st_dst_reg(PROGRAM_ADDRESS, WRITEMASK_X, GLSL_TYPE_FLOAT, 2);
@@ -526,10 +534,10 @@ num_inst_src_regs(unsigned opcode)
}
glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3)
+glsl_to_tgsi_visitor::emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst, st_dst_reg dst1,
+ st_src_reg src0, st_src_reg src1,
+ st_src_reg src2, st_src_reg src3)
{
glsl_to_tgsi_instruction *inst = new(mem_ctx) glsl_to_tgsi_instruction();
int num_reladdr = 0, i, j;
@@ -716,48 +724,12 @@ glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
}
glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3)
-{
- return emit(ir, op, dst, undef_dst, src0, src1, src2, src3);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0,
- st_src_reg src1, st_src_reg src2)
-{
- return emit(ir, op, dst, undef_dst, src0, src1, src2, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0, st_src_reg src1)
-{
- return emit(ir, op, dst, undef_dst, src0, src1, undef_src, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0)
-{
- assert(dst.writemask != 0);
- return emit(ir, op, dst, undef_dst, src0, undef_src, undef_src, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1, st_src_reg src0)
-{
- return emit(ir, op, dst, dst1, src0, undef_src, undef_src, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op)
+glsl_to_tgsi_visitor::emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst,
+ st_src_reg src0, st_src_reg src1,
+ st_src_reg src2, st_src_reg src3)
{
- return emit(ir, op, undef_dst, undef_dst, undef_src, undef_src, undef_src, undef_src);
+ return emit_asm(ir, op, dst, undef_dst, src0, src1, src2, src3);
}
/**
@@ -879,7 +851,7 @@ glsl_to_tgsi_visitor::emit_dp(ir_instruction *ir,
TGSI_OPCODE_DP2, TGSI_OPCODE_DP3, TGSI_OPCODE_DP4
};
- return emit(ir, dot_opcodes[elements - 2], dst, src0, src1);
+ return emit_asm(ir, dot_opcodes[elements - 2], dst, src0, src1);
}
/**
@@ -929,7 +901,7 @@ glsl_to_tgsi_visitor::emit_scalar(ir_instruction *ir, unsigned op,
src1_swiz, src1_swiz);
dst.writemask = this_mask;
- emit(ir, op, dst, src0, src1);
+ emit_asm(ir, op, dst, src0, src1);
done_mask |= this_mask;
}
}
@@ -958,7 +930,7 @@ glsl_to_tgsi_visitor::emit_arl(ir_instruction *ir,
if (dst.index >= this->num_address_regs)
this->num_address_regs = dst.index + 1;
- emit(NULL, op, dst, src0);
+ emit_asm(NULL, op, dst, src0);
}
int
@@ -1142,6 +1114,12 @@ glsl_to_tgsi_visitor::get_temp(const glsl_type *type)
if (!options->EmitNoIndirectTemp &&
(type->is_array() || type->is_matrix())) {
+ if (next_array >= max_num_arrays) {
+ max_num_arrays += 32;
+ array_sizes = (unsigned*)
+ realloc(array_sizes, sizeof(array_sizes[0]) * max_num_arrays);
+ }
+
src.file = PROGRAM_ARRAY;
src.index = next_array << 16 | 0x8000;
array_sizes[next_array] = type_size(type);
@@ -1242,7 +1220,7 @@ glsl_to_tgsi_visitor::visit(ir_variable *ir)
*/
st_src_reg src(PROGRAM_STATE_VAR, index, GLSL_TYPE_FLOAT);
src.swizzle = slots[i].swizzle;
- emit(ir, TGSI_OPCODE_MOV, dst, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, dst, src);
/* even a float takes up a whole vec4 reg in a struct/array. */
dst.index++;
}
@@ -1261,11 +1239,11 @@ glsl_to_tgsi_visitor::visit(ir_variable *ir)
void
glsl_to_tgsi_visitor::visit(ir_loop *ir)
{
- emit(NULL, TGSI_OPCODE_BGNLOOP);
+ emit_asm(NULL, TGSI_OPCODE_BGNLOOP);
visit_exec_list(&ir->body_instructions, this);
- emit(NULL, TGSI_OPCODE_ENDLOOP);
+ emit_asm(NULL, TGSI_OPCODE_ENDLOOP);
}
void
@@ -1273,10 +1251,10 @@ glsl_to_tgsi_visitor::visit(ir_loop_jump *ir)
{
switch (ir->mode) {
case ir_loop_jump::jump_break:
- emit(NULL, TGSI_OPCODE_BRK);
+ emit_asm(NULL, TGSI_OPCODE_BRK);
break;
case ir_loop_jump::jump_continue:
- emit(NULL, TGSI_OPCODE_CONT);
+ emit_asm(NULL, TGSI_OPCODE_CONT);
break;
}
}
@@ -1330,7 +1308,7 @@ glsl_to_tgsi_visitor::try_emit_mad(ir_expression *ir, int mul_operand)
this->result = get_temp(ir->type);
result_dst = st_dst_reg(this->result);
result_dst.writemask = (1 << ir->type->vector_elements) - 1;
- emit(ir, TGSI_OPCODE_MAD, result_dst, a, b, c);
+ emit_asm(ir, TGSI_OPCODE_MAD, result_dst, a, b, c);
return true;
}
@@ -1370,7 +1348,7 @@ glsl_to_tgsi_visitor::try_emit_mad_for_and_not(ir_expression *ir, int try_operan
b.negate = ~b.negate;
this->result = get_temp(ir->type);
- emit(ir, TGSI_OPCODE_MAD, st_dst_reg(this->result), a, b, a);
+ emit_asm(ir, TGSI_OPCODE_MAD, st_dst_reg(this->result), a, b, a);
return true;
}
@@ -1388,7 +1366,7 @@ glsl_to_tgsi_visitor::reladdr_to_temp(ir_instruction *ir,
if (*num_reladdr != 1) {
st_src_reg temp = get_temp(glsl_type::vec4_type);
- emit(ir, TGSI_OPCODE_MOV, st_dst_reg(temp), *reg);
+ emit_asm(ir, TGSI_OPCODE_MOV, st_dst_reg(temp), *reg);
*reg = temp;
}
@@ -1464,7 +1442,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
switch (ir->operation) {
case ir_unop_logic_not:
if (result_dst.type != GLSL_TYPE_FLOAT)
- emit(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
else {
/* Previously 'SEQ dst, src, 0.0' was used for this. However, many
* older GPUs implement SEQ using multiple instructions (i915 uses two
@@ -1472,24 +1450,24 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* 0.0 and 1.0, 1-x also implements !x.
*/
op[0].negate = ~op[0].negate;
- emit(ir, TGSI_OPCODE_ADD, result_dst, op[0], st_src_reg_for_float(1.0));
+ emit_asm(ir, TGSI_OPCODE_ADD, result_dst, op[0], st_src_reg_for_float(1.0));
}
break;
case ir_unop_neg:
if (result_dst.type == GLSL_TYPE_INT || result_dst.type == GLSL_TYPE_UINT)
- emit(ir, TGSI_OPCODE_INEG, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_INEG, result_dst, op[0]);
else if (result_dst.type == GLSL_TYPE_DOUBLE)
- emit(ir, TGSI_OPCODE_DNEG, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DNEG, result_dst, op[0]);
else {
op[0].negate = ~op[0].negate;
result_src = op[0];
}
break;
case ir_unop_abs:
- emit(ir, TGSI_OPCODE_ABS, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_ABS, result_dst, op[0]);
break;
case ir_unop_sign:
- emit(ir, TGSI_OPCODE_SSG, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_SSG, result_dst, op[0]);
break;
case ir_unop_rcp:
emit_scalar(ir, TGSI_OPCODE_RCP, result_dst, op[0]);
@@ -1513,17 +1491,17 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
break;
case ir_unop_saturate: {
glsl_to_tgsi_instruction *inst;
- inst = emit(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
+ inst = emit_asm(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
inst->saturate = true;
break;
}
case ir_unop_dFdx:
case ir_unop_dFdx_coarse:
- emit(ir, TGSI_OPCODE_DDX, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DDX, result_dst, op[0]);
break;
case ir_unop_dFdx_fine:
- emit(ir, TGSI_OPCODE_DDX_FINE, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DDX_FINE, result_dst, op[0]);
break;
case ir_unop_dFdy:
case ir_unop_dFdy_coarse:
@@ -1547,18 +1525,18 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
st_src_reg temp = get_temp(glsl_type::vec4_type);
- emit(ir, TGSI_OPCODE_MUL, st_dst_reg(temp), transform_y, op[0]);
- emit(ir, ir->operation == ir_unop_dFdy_fine ?
+ emit_asm(ir, TGSI_OPCODE_MUL, st_dst_reg(temp), transform_y, op[0]);
+ emit_asm(ir, ir->operation == ir_unop_dFdy_fine ?
TGSI_OPCODE_DDY_FINE : TGSI_OPCODE_DDY, result_dst, temp);
break;
}
case ir_unop_frexp_sig:
- emit(ir, TGSI_OPCODE_DFRACEXP, result_dst, undef_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DFRACEXP, result_dst, undef_dst, op[0]);
break;
case ir_unop_frexp_exp:
- emit(ir, TGSI_OPCODE_DFRACEXP, undef_dst, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DFRACEXP, undef_dst, result_dst, op[0]);
break;
case ir_unop_noise: {
@@ -1568,50 +1546,50 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* place to do this is in the GL state tracker, not the poor
* driver.
*/
- emit(ir, TGSI_OPCODE_MOV, result_dst, st_src_reg_for_float(0.5));
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, st_src_reg_for_float(0.5));
break;
}
case ir_binop_add:
- emit(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
break;
case ir_binop_sub:
- emit(ir, TGSI_OPCODE_SUB, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SUB, result_dst, op[0], op[1]);
break;
case ir_binop_mul:
- emit(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
break;
case ir_binop_div:
if (result_dst.type == GLSL_TYPE_FLOAT || result_dst.type == GLSL_TYPE_DOUBLE)
assert(!"not reached: should be handled by ir_div_to_mul_rcp");
else
- emit(ir, TGSI_OPCODE_DIV, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_DIV, result_dst, op[0], op[1]);
break;
case ir_binop_mod:
if (result_dst.type == GLSL_TYPE_FLOAT)
assert(!"ir_binop_mod should have been converted to b * fract(a/b)");
else
- emit(ir, TGSI_OPCODE_MOD, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MOD, result_dst, op[0], op[1]);
break;
case ir_binop_less:
- emit(ir, TGSI_OPCODE_SLT, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, op[0], op[1]);
break;
case ir_binop_greater:
- emit(ir, TGSI_OPCODE_SLT, result_dst, op[1], op[0]);
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, op[1], op[0]);
break;
case ir_binop_lequal:
- emit(ir, TGSI_OPCODE_SGE, result_dst, op[1], op[0]);
+ emit_asm(ir, TGSI_OPCODE_SGE, result_dst, op[1], op[0]);
break;
case ir_binop_gequal:
- emit(ir, TGSI_OPCODE_SGE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SGE, result_dst, op[0], op[1]);
break;
case ir_binop_equal:
- emit(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
break;
case ir_binop_nequal:
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
break;
case ir_binop_all_equal:
/* "==" operator producing a scalar boolean. */
@@ -1625,7 +1603,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
st_dst_reg temp_dst = st_dst_reg(temp);
st_src_reg temp1 = st_src_reg(temp), temp2 = st_src_reg(temp);
- emit(ir, TGSI_OPCODE_SEQ, st_dst_reg(temp), op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SEQ, st_dst_reg(temp), op[0], op[1]);
/* Emit 1-3 AND operations to combine the SEQ results. */
switch (ir->operands[0]->type->vector_elements) {
@@ -1635,24 +1613,24 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_YYYY;
temp2.swizzle = SWIZZLE_ZZZZ;
- emit(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
break;
case 4:
temp_dst.writemask = WRITEMASK_X;
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_ZZZZ;
temp2.swizzle = SWIZZLE_WWWW;
- emit(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
}
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_AND, result_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, temp1, temp2);
} else {
- emit(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
/* After the dot-product, the value will be an integer on the
* range [0,4]. Zero becomes 1.0, and positive values become zero.
@@ -1665,10 +1643,10 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg sge_src = result_src;
sge_src.negate = ~sge_src.negate;
- emit(ir, TGSI_OPCODE_SGE, result_dst, sge_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SGE, result_dst, sge_src, st_src_reg_for_float(0.0));
}
} else {
- emit(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
}
break;
case ir_binop_any_nequal:
@@ -1678,7 +1656,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
st_src_reg temp = get_temp(native_integers ?
glsl_type::uvec4_type :
glsl_type::vec4_type);
- emit(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
if (native_integers) {
st_dst_reg temp_dst = st_dst_reg(temp);
@@ -1692,22 +1670,22 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_YYYY;
temp2.swizzle = SWIZZLE_ZZZZ;
- emit(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
break;
case 4:
temp_dst.writemask = WRITEMASK_X;
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_ZZZZ;
temp2.swizzle = SWIZZLE_WWWW;
- emit(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
}
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_OR, result_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, temp1, temp2);
} else {
/* After the dot-product, the value will be an integer on the
* range [0,4]. Zero stays zero, and positive values become 1.0.
@@ -1726,11 +1704,11 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg slt_src = result_src;
slt_src.negate = ~slt_src.negate;
- emit(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
}
}
} else {
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
}
break;
@@ -1763,7 +1741,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
GET_SWZ(op0_swizzle, 3),
GET_SWZ(op0_swizzle, 3),
GET_SWZ(op0_swizzle, 3));
- emit(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
accum = st_src_reg(result_dst);
accum.swizzle = dst_swizzle;
/* fallthrough */
@@ -1772,7 +1750,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
GET_SWZ(op0_swizzle, 2),
GET_SWZ(op0_swizzle, 2),
GET_SWZ(op0_swizzle, 2));
- emit(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
accum = st_src_reg(result_dst);
accum.swizzle = dst_swizzle;
/* fallthrough */
@@ -1781,7 +1759,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
GET_SWZ(op0_swizzle, 1),
GET_SWZ(op0_swizzle, 1),
GET_SWZ(op0_swizzle, 1));
- emit(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
break;
default:
assert(!"Unexpected vector size");
@@ -1807,11 +1785,11 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg slt_src = result_src;
slt_src.negate = ~slt_src.negate;
- emit(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
}
else {
/* Use SNE 0 if integers are being used as boolean values. */
- emit(ir, TGSI_OPCODE_SNE, result_dst, result_src, st_src_reg_for_int(0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, result_src, st_src_reg_for_int(0));
}
}
break;
@@ -1819,9 +1797,9 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
case ir_binop_logic_xor:
if (native_integers)
- emit(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
else
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
break;
case ir_binop_logic_or: {
@@ -1830,13 +1808,13 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* instruction.
*/
assert(native_integers);
- emit(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
} else {
/* After the addition, the value will be an integer on the
* range [0,2]. Zero stays zero, and positive values become 1.0.
*/
glsl_to_tgsi_instruction *add =
- emit(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
if (this->prog->Target == GL_FRAGMENT_PROGRAM_ARB) {
/* The clamping to [0,1] can be done for free in the fragment
* shader with a saturate if floats are being used as boolean values.
@@ -1849,7 +1827,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg slt_src = result_src;
slt_src.negate = ~slt_src.negate;
- emit(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
}
}
break;
@@ -1861,9 +1839,9 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* actual AND opcode.
*/
if (native_integers)
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
else
- emit(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
break;
case ir_binop_dot:
@@ -1879,10 +1857,10 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
} else {
/* sqrt(x) = x * rsq(x). */
emit_scalar(ir, TGSI_OPCODE_RSQ, result_dst, op[0]);
- emit(ir, TGSI_OPCODE_MUL, result_dst, result_src, op[0]);
+ emit_asm(ir, TGSI_OPCODE_MUL, result_dst, result_src, op[0]);
/* For incoming channels <= 0, set the result to 0. */
op[0].negate = ~op[0].negate;
- emit(ir, TGSI_OPCODE_CMP, result_dst,
+ emit_asm(ir, TGSI_OPCODE_CMP, result_dst,
op[0], result_src, st_src_reg_for_float(0.0));
}
break;
@@ -1891,13 +1869,13 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
break;
case ir_unop_i2f:
if (native_integers) {
- emit(ir, TGSI_OPCODE_I2F, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_I2F, result_dst, op[0]);
break;
}
/* fallthrough to next case otherwise */
case ir_unop_b2f:
if (native_integers) {
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_float(1.0));
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_float(1.0));
break;
}
/* fallthrough to next case otherwise */
@@ -1912,7 +1890,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* GLSL requires that int(bool) return 1 for true and 0 for false.
* This conversion is done with AND, but it could be done with NEG.
*/
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_int(1));
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_int(1));
} else {
/* Booleans and integers are both stored as floats when native
* integers are disabled.
@@ -1922,15 +1900,15 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
break;
case ir_unop_f2i:
if (native_integers)
- emit(ir, TGSI_OPCODE_F2I, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_F2I, result_dst, op[0]);
else
- emit(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
break;
case ir_unop_f2u:
if (native_integers)
- emit(ir, TGSI_OPCODE_F2U, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_F2U, result_dst, op[0]);
else
- emit(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
break;
case ir_unop_bitcast_f2i:
result_src = op[0];
@@ -1946,38 +1924,38 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
result_src.type = GLSL_TYPE_FLOAT;
break;
case ir_unop_f2b:
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
break;
case ir_unop_d2b:
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_double(0.0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_double(0.0));
break;
case ir_unop_i2b:
if (native_integers)
- emit(ir, TGSI_OPCODE_USNE, result_dst, op[0], st_src_reg_for_int(0));
+ emit_asm(ir, TGSI_OPCODE_USNE, result_dst, op[0], st_src_reg_for_int(0));
else
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
break;
case ir_unop_trunc:
- emit(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
break;
case ir_unop_ceil:
- emit(ir, TGSI_OPCODE_CEIL, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_CEIL, result_dst, op[0]);
break;
case ir_unop_floor:
- emit(ir, TGSI_OPCODE_FLR, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_FLR, result_dst, op[0]);
break;
case ir_unop_round_even:
- emit(ir, TGSI_OPCODE_ROUND, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_ROUND, result_dst, op[0]);
break;
case ir_unop_fract:
- emit(ir, TGSI_OPCODE_FRC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_FRC, result_dst, op[0]);
break;
case ir_binop_min:
- emit(ir, TGSI_OPCODE_MIN, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MIN, result_dst, op[0], op[1]);
break;
case ir_binop_max:
- emit(ir, TGSI_OPCODE_MAX, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MAX, result_dst, op[0], op[1]);
break;
case ir_binop_pow:
emit_scalar(ir, TGSI_OPCODE_POW, result_dst, op[0], op[1]);
@@ -1985,37 +1963,37 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
case ir_unop_bit_not:
if (native_integers) {
- emit(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
break;
}
case ir_unop_u2f:
if (native_integers) {
- emit(ir, TGSI_OPCODE_U2F, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_U2F, result_dst, op[0]);
break;
}
case ir_binop_lshift:
if (native_integers) {
- emit(ir, TGSI_OPCODE_SHL, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SHL, result_dst, op[0], op[1]);
break;
}
case ir_binop_rshift:
if (native_integers) {
- emit(ir, TGSI_OPCODE_ISHR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_ISHR, result_dst, op[0], op[1]);
break;
}
case ir_binop_bit_and:
if (native_integers) {
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
break;
}
case ir_binop_bit_xor:
if (native_integers) {
- emit(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
break;
}
case ir_binop_bit_or:
if (native_integers) {
- emit(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
break;
}
@@ -2045,7 +2023,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
}
else {
/* Relative/variable index into constant buffer */
- emit(ir, TGSI_OPCODE_USHR, st_dst_reg(index_reg), op[1],
+ emit_asm(ir, TGSI_OPCODE_USHR, st_dst_reg(index_reg), op[1],
st_src_reg_for_int(4));
cbuf.reladdr = ralloc(mem_ctx, st_src_reg);
memcpy(cbuf.reladdr, &index_reg, sizeof(index_reg));
@@ -2078,88 +2056,88 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
const_offset % 16 / 4);
if (ir->type->base_type == GLSL_TYPE_BOOL) {
- emit(ir, TGSI_OPCODE_USNE, result_dst, cbuf, st_src_reg_for_int(0));
+ emit_asm(ir, TGSI_OPCODE_USNE, result_dst, cbuf, st_src_reg_for_int(0));
} else {
- emit(ir, TGSI_OPCODE_MOV, result_dst, cbuf);
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, cbuf);
}
break;
}
case ir_triop_lrp:
/* note: we have to reorder the three args here */
- emit(ir, TGSI_OPCODE_LRP, result_dst, op[2], op[1], op[0]);
+ emit_asm(ir, TGSI_OPCODE_LRP, result_dst, op[2], op[1], op[0]);
break;
case ir_triop_csel:
if (this->ctx->Const.NativeIntegers)
- emit(ir, TGSI_OPCODE_UCMP, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_UCMP, result_dst, op[0], op[1], op[2]);
else {
op[0].negate = ~op[0].negate;
- emit(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]);
}
break;
case ir_triop_bitfield_extract:
- emit(ir, TGSI_OPCODE_IBFE, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_IBFE, result_dst, op[0], op[1], op[2]);
break;
case ir_quadop_bitfield_insert:
- emit(ir, TGSI_OPCODE_BFI, result_dst, op[0], op[1], op[2], op[3]);
+ emit_asm(ir, TGSI_OPCODE_BFI, result_dst, op[0], op[1], op[2], op[3]);
break;
case ir_unop_bitfield_reverse:
- emit(ir, TGSI_OPCODE_BREV, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_BREV, result_dst, op[0]);
break;
case ir_unop_bit_count:
- emit(ir, TGSI_OPCODE_POPC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_POPC, result_dst, op[0]);
break;
case ir_unop_find_msb:
- emit(ir, TGSI_OPCODE_IMSB, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_IMSB, result_dst, op[0]);
break;
case ir_unop_find_lsb:
- emit(ir, TGSI_OPCODE_LSB, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_LSB, result_dst, op[0]);
break;
case ir_binop_imul_high:
- emit(ir, TGSI_OPCODE_IMUL_HI, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_IMUL_HI, result_dst, op[0], op[1]);
break;
case ir_triop_fma:
/* In theory, MAD is incorrect here. */
if (have_fma)
- emit(ir, TGSI_OPCODE_FMA, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_FMA, result_dst, op[0], op[1], op[2]);
else
- emit(ir, TGSI_OPCODE_MAD, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_MAD, result_dst, op[0], op[1], op[2]);
break;
case ir_unop_interpolate_at_centroid:
- emit(ir, TGSI_OPCODE_INTERP_CENTROID, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_INTERP_CENTROID, result_dst, op[0]);
break;
case ir_binop_interpolate_at_offset:
- emit(ir, TGSI_OPCODE_INTERP_OFFSET, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_INTERP_OFFSET, result_dst, op[0], op[1]);
break;
case ir_binop_interpolate_at_sample:
- emit(ir, TGSI_OPCODE_INTERP_SAMPLE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_INTERP_SAMPLE, result_dst, op[0], op[1]);
break;
case ir_unop_d2f:
- emit(ir, TGSI_OPCODE_D2F, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_D2F, result_dst, op[0]);
break;
case ir_unop_f2d:
- emit(ir, TGSI_OPCODE_F2D, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_F2D, result_dst, op[0]);
break;
case ir_unop_d2i:
- emit(ir, TGSI_OPCODE_D2I, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_D2I, result_dst, op[0]);
break;
case ir_unop_i2d:
- emit(ir, TGSI_OPCODE_I2D, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_I2D, result_dst, op[0]);
break;
case ir_unop_d2u:
- emit(ir, TGSI_OPCODE_D2U, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_D2U, result_dst, op[0]);
break;
case ir_unop_u2d:
- emit(ir, TGSI_OPCODE_U2D, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_U2D, result_dst, op[0]);
break;
case ir_unop_unpack_double_2x32:
case ir_unop_pack_double_2x32:
- emit(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
break;
case ir_binop_ldexp:
if (ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE) {
- emit(ir, TGSI_OPCODE_DLDEXP, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_DLDEXP, result_dst, op[0], op[1]);
} else {
assert(!"Invalid ldexp for non-double opcode in glsl_to_tgsi_visitor::visit()");
}
@@ -2243,11 +2221,38 @@ glsl_to_tgsi_visitor::visit(ir_swizzle *ir)
this->result = src;
}
+/* Test if the variable is an array. Note that geometry and
+ * tessellation shader inputs are outputs are always arrays (except
+ * for patch inputs), so only the array element type is considered.
+ */
+static bool
+is_inout_array(unsigned stage, ir_variable *var, bool *is_2d)
+{
+ const glsl_type *type = var->type;
+
+ if ((stage == MESA_SHADER_VERTEX && var->data.mode == ir_var_shader_in) ||
+ (stage == MESA_SHADER_FRAGMENT && var->data.mode == ir_var_shader_out))
+ return false;
+
+ *is_2d = false;
+
+ if (stage == MESA_SHADER_GEOMETRY && var->data.mode == ir_var_shader_in) {
+ if (!var->type->is_array())
+ return false; /* a system value probably */
+
+ type = var->type->fields.array;
+ *is_2d = true;
+ }
+
+ return type->is_array() || type->is_matrix();
+}
+
void
glsl_to_tgsi_visitor::visit(ir_dereference_variable *ir)
{
variable_storage *entry = find_variable_storage(ir->var);
ir_variable *var = ir->var;
+ bool is_2d;
if (!entry) {
switch (var->data.mode) {
@@ -2263,16 +2268,56 @@ glsl_to_tgsi_visitor::visit(ir_dereference_variable *ir)
* user-defined varyings.
*/
assert(var->data.location != -1);
- entry = new(mem_ctx) variable_storage(var,
- PROGRAM_INPUT,
- var->data.location);
+
+ if (is_inout_array(shader->Stage, var, &is_2d)) {
+ struct array_decl *decl = &input_arrays[num_input_arrays];
+
+ decl->mesa_index = var->data.location;
+ decl->array_id = num_input_arrays + 1;
+ if (is_2d)
+ decl->array_size = type_size(var->type->fields.array);
+ else
+ decl->array_size = type_size(var->type);
+ num_input_arrays++;
+
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_INPUT,
+ var->data.location,
+ decl->array_id);
+ }
+ else {
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_INPUT,
+ var->data.location);
+ }
+ this->variables.push_tail(entry);
break;
case ir_var_shader_out:
assert(var->data.location != -1);
- entry = new(mem_ctx) variable_storage(var,
- PROGRAM_OUTPUT,
- var->data.location
- + var->data.index);
+
+ if (is_inout_array(shader->Stage, var, &is_2d)) {
+ struct array_decl *decl = &output_arrays[num_output_arrays];
+
+ decl->mesa_index = var->data.location;
+ decl->array_id = num_output_arrays + 1;
+ if (is_2d)
+ decl->array_size = type_size(var->type->fields.array);
+ else
+ decl->array_size = type_size(var->type);
+ num_output_arrays++;
+
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_OUTPUT,
+ var->data.location,
+ decl->array_id);
+ }
+ else {
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_OUTPUT,
+ var->data.location
+ + var->data.index);
+ }
+ this->variables.push_tail(entry);
break;
case ir_var_system_value:
entry = new(mem_ctx) variable_storage(var,
@@ -2296,10 +2341,43 @@ glsl_to_tgsi_visitor::visit(ir_dereference_variable *ir)
}
this->result = st_src_reg(entry->file, entry->index, var->type);
+ this->result.array_id = entry->array_id;
if (!native_integers)
this->result.type = GLSL_TYPE_FLOAT;
}
+static void
+shrink_array_declarations(struct array_decl *arrays, unsigned count,
+ GLbitfield64 usage_mask)
+{
+ unsigned i, j;
+
+ /* Fix array declarations by removing unused array elements at both ends
+ * of the arrays. For example, mat4[3] where only mat[1] is used.
+ */
+ for (i = 0; i < count; i++) {
+ struct array_decl *decl = &arrays[i];
+
+ /* Shrink the beginning. */
+ for (j = 0; j < decl->array_size; j++) {
+ if (usage_mask & BITFIELD64_BIT(decl->mesa_index+j))
+ break;
+
+ decl->mesa_index++;
+ decl->array_size--;
+ j--;
+ }
+
+ /* Shrink the end. */
+ for (j = decl->array_size-1; j >= 0; j--) {
+ if (usage_mask & BITFIELD64_BIT(decl->mesa_index+j))
+ break;
+
+ decl->array_size--;
+ }
+ }
+}
+
void
glsl_to_tgsi_visitor::visit(ir_dereference_array *ir)
{
@@ -2341,7 +2419,7 @@ glsl_to_tgsi_visitor::visit(ir_dereference_array *ir)
index_reg = get_temp(native_integers ?
glsl_type::int_type : glsl_type::float_type);
- emit(ir, TGSI_OPCODE_MUL, st_dst_reg(index_reg),
+ emit_asm(ir, TGSI_OPCODE_MUL, st_dst_reg(index_reg),
this->result, st_src_reg_for_type(index_reg.type, element_size));
}
@@ -2352,7 +2430,7 @@ glsl_to_tgsi_visitor::visit(ir_dereference_array *ir)
st_src_reg accum_reg = get_temp(native_integers ?
glsl_type::int_type : glsl_type::float_type);
- emit(ir, TGSI_OPCODE_ADD, st_dst_reg(accum_reg),
+ emit_asm(ir, TGSI_OPCODE_ADD, st_dst_reg(accum_reg),
index_reg, *src.reladdr);
index_reg = accum_reg;
@@ -2589,16 +2667,16 @@ glsl_to_tgsi_visitor::emit_block_mov(ir_assignment *ir, const struct glsl_type *
l_src.swizzle = swizzle_for_size(type->vector_elements);
if (native_integers) {
- emit(ir, TGSI_OPCODE_UCMP, *l, *cond,
+ emit_asm(ir, TGSI_OPCODE_UCMP, *l, *cond,
cond_swap ? l_src : *r,
cond_swap ? *r : l_src);
} else {
- emit(ir, TGSI_OPCODE_CMP, *l, *cond,
+ emit_asm(ir, TGSI_OPCODE_CMP, *l, *cond,
cond_swap ? l_src : *r,
cond_swap ? *r : l_src);
}
} else {
- emit(ir, TGSI_OPCODE_MOV, *l, *r);
+ emit_asm(ir, TGSI_OPCODE_MOV, *l, *r);
}
l->index++;
r->index++;
@@ -2679,7 +2757,7 @@ glsl_to_tgsi_visitor::visit(ir_assignment *ir)
*/
glsl_to_tgsi_instruction *inst, *new_inst;
inst = (glsl_to_tgsi_instruction *)this->instructions.get_tail();
- new_inst = emit(ir, inst->op, l, inst->src[0], inst->src[1], inst->src[2]);
+ new_inst = emit_asm(ir, inst->op, l, inst->src[0], inst->src[1], inst->src[2]);
new_inst->saturate = inst->saturate;
inst->dead_mask = inst->dst[0].writemask;
} else {
@@ -2717,7 +2795,7 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir)
src = this->result;
for (i = 0; i < (unsigned int)size; i++) {
- emit(ir, TGSI_OPCODE_MOV, temp, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, temp, src);
src.index++;
temp.index++;
@@ -2739,7 +2817,7 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir)
ir->array_elements[i]->accept(this);
src = this->result;
for (int j = 0; j < size; j++) {
- emit(ir, TGSI_OPCODE_MOV, temp, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, temp, src);
src.index++;
temp.index++;
@@ -2764,7 +2842,7 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir)
ir->type->vector_elements,
GL_FLOAT,
&src.swizzle);
- emit(ir, TGSI_OPCODE_MOV, mat_column, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, mat_column, src);
mat_column.index++;
}
@@ -2889,7 +2967,7 @@ glsl_to_tgsi_visitor::visit(ir_call *ir)
l.cond_mask = COND_TR;
for (i = 0; i < type_size(param->type); i++) {
- emit(ir, TGSI_OPCODE_MOV, l, r);
+ emit_asm(ir, TGSI_OPCODE_MOV, l, r);
l.index++;
r.index++;
}
@@ -2897,7 +2975,7 @@ glsl_to_tgsi_visitor::visit(ir_call *ir)
}
/* Emit call instruction */
- call_inst = emit(ir, TGSI_OPCODE_CAL);
+ call_inst = emit_asm(ir, TGSI_OPCODE_CAL);
call_inst->function = entry;
/* Process out parameters. */
@@ -2922,7 +3000,7 @@ glsl_to_tgsi_visitor::visit(ir_call *ir)
st_dst_reg l = st_dst_reg(this->result);
for (i = 0; i < type_size(param->type); i++) {
- emit(ir, TGSI_OPCODE_MOV, l, r);
+ emit_asm(ir, TGSI_OPCODE_MOV, l, r);
l.index++;
r.index++;
}
@@ -2965,7 +3043,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
coord = get_temp(glsl_type::vec4_type);
coord_dst = st_dst_reg(coord);
coord_dst.writemask = (1 << ir->coordinate->type->vector_elements) - 1;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
}
if (ir->projector) {
@@ -3074,7 +3152,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
if (opcode == TGSI_OPCODE_TEX) {
/* Slot the projector in as the last component of the coord. */
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, projector);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, projector);
coord_dst.writemask = WRITEMASK_XYZW;
opcode = TGSI_OPCODE_TXP;
} else {
@@ -3086,7 +3164,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
* projective divide now.
*/
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_RCP, coord_dst, projector);
+ emit_asm(ir, TGSI_OPCODE_RCP, coord_dst, projector);
/* In the case where we have to project the coordinates "by hand,"
* the shadow comparator value must also be projected.
@@ -3105,14 +3183,14 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
assert(!sampler_type->sampler_array);
tmp_dst.writemask = WRITEMASK_Z;
- emit(ir, TGSI_OPCODE_MOV, tmp_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, tmp_dst, this->result);
tmp_dst.writemask = WRITEMASK_XY;
- emit(ir, TGSI_OPCODE_MOV, tmp_dst, coord);
+ emit_asm(ir, TGSI_OPCODE_MOV, tmp_dst, coord);
}
coord_dst.writemask = WRITEMASK_XYZ;
- emit(ir, TGSI_OPCODE_MUL, coord_dst, tmp_src, coord_w);
+ emit_asm(ir, TGSI_OPCODE_MUL, coord_dst, tmp_src, coord_w);
coord_dst.writemask = WRITEMASK_XYZW;
coord.swizzle = SWIZZLE_XYZW;
@@ -3133,7 +3211,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
cube_sc = get_temp(glsl_type::float_type);
cube_sc_dst = st_dst_reg(cube_sc);
cube_sc_dst.writemask = WRITEMASK_X;
- emit(ir, TGSI_OPCODE_MOV, cube_sc_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, cube_sc_dst, this->result);
cube_sc_dst.writemask = WRITEMASK_X;
}
else {
@@ -3144,20 +3222,20 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
} else {
coord_dst.writemask = WRITEMASK_Z;
}
- emit(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
coord_dst.writemask = WRITEMASK_XYZW;
}
}
if (ir->op == ir_txf_ms) {
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, sample_index);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, sample_index);
coord_dst.writemask = WRITEMASK_XYZW;
} else if (opcode == TGSI_OPCODE_TXL || opcode == TGSI_OPCODE_TXB ||
opcode == TGSI_OPCODE_TXF) {
/* TGSI stores LOD or LOD bias in the last channel of the coords. */
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, lod_info);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, lod_info);
coord_dst.writemask = WRITEMASK_XYZW;
}
@@ -3167,30 +3245,30 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
}
if (opcode == TGSI_OPCODE_TXD)
- inst = emit(ir, opcode, result_dst, coord, dx, dy);
+ inst = emit_asm(ir, opcode, result_dst, coord, dx, dy);
else if (opcode == TGSI_OPCODE_TXQ) {
if (ir->op == ir_query_levels) {
/* the level is stored in W */
- inst = emit(ir, opcode, st_dst_reg(levels_src), lod_info);
+ inst = emit_asm(ir, opcode, st_dst_reg(levels_src), lod_info);
result_dst.writemask = WRITEMASK_X;
levels_src.swizzle = SWIZZLE_WWWW;
- emit(ir, TGSI_OPCODE_MOV, result_dst, levels_src);
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, levels_src);
} else
- inst = emit(ir, opcode, result_dst, lod_info);
+ inst = emit_asm(ir, opcode, result_dst, lod_info);
} else if (opcode == TGSI_OPCODE_TXF) {
- inst = emit(ir, opcode, result_dst, coord);
+ inst = emit_asm(ir, opcode, result_dst, coord);
} else if (opcode == TGSI_OPCODE_TXL2 || opcode == TGSI_OPCODE_TXB2) {
- inst = emit(ir, opcode, result_dst, coord, lod_info);
+ inst = emit_asm(ir, opcode, result_dst, coord, lod_info);
} else if (opcode == TGSI_OPCODE_TEX2) {
- inst = emit(ir, opcode, result_dst, coord, cube_sc);
+ inst = emit_asm(ir, opcode, result_dst, coord, cube_sc);
} else if (opcode == TGSI_OPCODE_TG4) {
if (is_cube_array && ir->shadow_comparitor) {
- inst = emit(ir, opcode, result_dst, coord, cube_sc);
+ inst = emit_asm(ir, opcode, result_dst, coord, cube_sc);
} else {
- inst = emit(ir, opcode, result_dst, coord, component);
+ inst = emit_asm(ir, opcode, result_dst, coord, component);
}
} else
- inst = emit(ir, opcode, result_dst, coord);
+ inst = emit_asm(ir, opcode, result_dst, coord);
if (ir->shadow_comparitor)
inst->tex_shadow = GL_TRUE;
@@ -3264,13 +3342,13 @@ glsl_to_tgsi_visitor::visit(ir_return *ir)
l = st_dst_reg(current_function->return_reg);
for (i = 0; i < type_size(current_function->sig->return_type); i++) {
- emit(ir, TGSI_OPCODE_MOV, l, r);
+ emit_asm(ir, TGSI_OPCODE_MOV, l, r);
l.index++;
r.index++;
}
}
- emit(ir, TGSI_OPCODE_RET);
+ emit_asm(ir, TGSI_OPCODE_RET);
}
void
@@ -3283,16 +3361,16 @@ glsl_to_tgsi_visitor::visit(ir_discard *ir)
/* Convert the bool condition to a float so we can negate. */
if (native_integers) {
st_src_reg temp = get_temp(ir->condition->type);
- emit(ir, TGSI_OPCODE_AND, st_dst_reg(temp),
+ emit_asm(ir, TGSI_OPCODE_AND, st_dst_reg(temp),
condition, st_src_reg_for_float(1.0));
condition = temp;
}
condition.negate = ~condition.negate;
- emit(ir, TGSI_OPCODE_KILL_IF, undef_dst, condition);
+ emit_asm(ir, TGSI_OPCODE_KILL_IF, undef_dst, condition);
} else {
/* unconditional kil */
- emit(ir, TGSI_OPCODE_KILL);
+ emit_asm(ir, TGSI_OPCODE_KILL);
}
}
@@ -3307,18 +3385,18 @@ glsl_to_tgsi_visitor::visit(ir_if *ir)
if_opcode = native_integers ? TGSI_OPCODE_UIF : TGSI_OPCODE_IF;
- if_inst = emit(ir->condition, if_opcode, undef_dst, this->result);
+ if_inst = emit_asm(ir->condition, if_opcode, undef_dst, this->result);
this->instructions.push_tail(if_inst);
visit_exec_list(&ir->then_instructions, this);
if (!ir->else_instructions.is_empty()) {
- emit(ir->condition, TGSI_OPCODE_ELSE);
+ emit_asm(ir->condition, TGSI_OPCODE_ELSE);
visit_exec_list(&ir->else_instructions, this);
}
- if_inst = emit(ir->condition, TGSI_OPCODE_ENDIF);
+ if_inst = emit_asm(ir->condition, TGSI_OPCODE_ENDIF);
}
@@ -3328,7 +3406,7 @@ glsl_to_tgsi_visitor::visit(ir_emit_vertex *ir)
assert(this->prog->Target == GL_GEOMETRY_PROGRAM_NV);
ir->stream->accept(this);
- emit(ir, TGSI_OPCODE_EMIT, undef_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_EMIT, undef_dst, this->result);
}
void
@@ -3337,14 +3415,24 @@ glsl_to_tgsi_visitor::visit(ir_end_primitive *ir)
assert(this->prog->Target == GL_GEOMETRY_PROGRAM_NV);
ir->stream->accept(this);
- emit(ir, TGSI_OPCODE_ENDPRIM, undef_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_ENDPRIM, undef_dst, this->result);
+}
+
+void
+glsl_to_tgsi_visitor::visit(ir_barrier *ir)
+{
+ unreachable("Not implemented!");
}
glsl_to_tgsi_visitor::glsl_to_tgsi_visitor()
{
result.file = PROGRAM_UNDEFINED;
next_temp = 1;
+ array_sizes = NULL;
+ max_num_arrays = 0;
next_array = 0;
+ num_input_arrays = 0;
+ num_output_arrays = 0;
next_signature_id = 1;
num_immediates = 0;
current_function = NULL;
@@ -3366,6 +3454,7 @@ glsl_to_tgsi_visitor::glsl_to_tgsi_visitor()
glsl_to_tgsi_visitor::~glsl_to_tgsi_visitor()
{
+ free(array_sizes);
ralloc_free(mem_ctx);
}
@@ -3734,6 +3823,7 @@ glsl_to_tgsi_visitor::copy_propagate(void)
inst->src[r].index2D = first->src[0].index2D;
inst->src[r].has_index2 = first->src[0].has_index2;
inst->src[r].double_reg2 = first->src[0].double_reg2;
+ inst->src[r].array_id = first->src[0].array_id;
int swizzle = 0;
for (int i = 0; i < 4; i++) {
@@ -4177,7 +4267,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
coord = st_src_reg(PROGRAM_INPUT, VARYING_SLOT_TEX0, glsl_type::vec2_type);
src0 = v->get_temp(glsl_type::vec4_type);
dst0 = st_dst_reg(src0);
- inst = v->emit(NULL, TGSI_OPCODE_TEX, dst0, coord);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, dst0, coord);
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4201,7 +4291,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
/* MAD colorTemp, colorTemp, scale, bias; */
scale = st_src_reg(PROGRAM_STATE_VAR, scale_p, GLSL_TYPE_FLOAT);
bias = st_src_reg(PROGRAM_STATE_VAR, bias_p, GLSL_TYPE_FLOAT);
- inst = v->emit(NULL, TGSI_OPCODE_MAD, dst0, src0, scale, bias);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_MAD, dst0, src0, scale, bias);
}
if (pixel_maps) {
@@ -4209,6 +4299,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
st_dst_reg temp_dst = st_dst_reg(temp);
assert(st->pixel_xfer.pixelmap_texture);
+ (void) st;
/* With a little effort, we can do four pixel map look-ups with
* two TEX instructions:
@@ -4216,7 +4307,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
/* TEX temp.rg, colorTemp.rgba, texture[1], 2D; */
temp_dst.writemask = WRITEMASK_XY; /* write R,G */
- inst = v->emit(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
inst->sampler.index = 1;
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4224,7 +4315,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
/* TEX temp.ba, colorTemp.baba, texture[1], 2D; */
src0.swizzle = MAKE_SWIZZLE4(SWIZZLE_Z, SWIZZLE_W, SWIZZLE_Z, SWIZZLE_W);
temp_dst.writemask = WRITEMASK_ZW; /* write B,A */
- inst = v->emit(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
inst->sampler.index = 1;
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4233,7 +4324,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
v->samplers_used |= (1 << 1);
/* MOV colorTemp, temp; */
- inst = v->emit(NULL, TGSI_OPCODE_MOV, dst0, temp);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_MOV, dst0, temp);
}
/* Now copy the instructions from the original glsl_to_tgsi_visitor into the
@@ -4256,7 +4347,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index);
}
- newinst = v->emit(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
+ newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
newinst->tex_target = inst->tex_target;
newinst->sampler_array_size = inst->sampler_array_size;
}
@@ -4306,7 +4397,7 @@ get_bitmap_visitor(struct st_fragment_program *fp,
coord = st_src_reg(PROGRAM_INPUT, VARYING_SLOT_TEX0, glsl_type::vec2_type);
src0 = v->get_temp(glsl_type::vec4_type);
dst0 = st_dst_reg(src0);
- inst = v->emit(NULL, TGSI_OPCODE_TEX, dst0, coord);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, dst0, coord);
inst->sampler.index = samplerIndex;
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4319,7 +4410,7 @@ get_bitmap_visitor(struct st_fragment_program *fp,
src0.negate = NEGATE_XYZW;
if (st->bitmap.tex_format == PIPE_FORMAT_L8_UNORM)
src0.swizzle = SWIZZLE_XXXX;
- inst = v->emit(NULL, TGSI_OPCODE_KILL_IF, undef_dst, src0);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_KILL_IF, undef_dst, src0);
/* Now copy the instructions from the original glsl_to_tgsi_visitor into the
* new visitor. */
@@ -4336,7 +4427,7 @@ get_bitmap_visitor(struct st_fragment_program *fp,
prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index);
}
- newinst = v->emit(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
+ newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
newinst->tex_target = inst->tex_target;
newinst->sampler_array_size = inst->sampler_array_size;
}
@@ -4362,7 +4453,8 @@ struct st_translate {
unsigned temps_size;
struct ureg_dst *temps;
- struct ureg_dst arrays[MAX_ARRAYS];
+ struct ureg_dst *arrays;
+ unsigned num_temp_arrays;
struct ureg_src *constants;
int num_constants;
struct ureg_src *immediates;
@@ -4373,7 +4465,9 @@ struct st_translate {
struct ureg_src samplers[PIPE_MAX_SAMPLERS];
struct ureg_src systemValues[SYSTEM_VALUE_MAX];
struct tgsi_texture_offset tex_offsets[MAX_GLSL_TEXTURE_OFFSET];
- unsigned array_sizes[MAX_ARRAYS];
+ unsigned *array_sizes;
+ struct array_decl *input_arrays;
+ struct array_decl *output_arrays;
const GLuint *inputMapping;
const GLuint *outputMapping;
@@ -4497,9 +4591,8 @@ emit_immediate(struct st_translate *t,
* Map a glsl_to_tgsi dst register to a TGSI ureg_dst register.
*/
static struct ureg_dst
-dst_register(struct st_translate *t,
- gl_register_file file,
- GLuint index)
+dst_register(struct st_translate *t, gl_register_file file, unsigned index,
+ unsigned array_id)
{
unsigned array;
@@ -4530,7 +4623,7 @@ dst_register(struct st_translate *t,
case PROGRAM_ARRAY:
array = index >> 16;
- assert(array < ARRAY_SIZE(t->arrays));
+ assert(array < t->num_temp_arrays);
if (ureg_dst_is_undef(t->arrays[array]))
t->arrays[array] = ureg_DECL_array_temporary(
@@ -4540,16 +4633,25 @@ dst_register(struct st_translate *t,
(int)(index & 0xFFFF) - 0x8000);
case PROGRAM_OUTPUT:
- if (t->procType == TGSI_PROCESSOR_VERTEX)
- assert(index < VARYING_SLOT_MAX);
- else if (t->procType == TGSI_PROCESSOR_FRAGMENT)
- assert(index < FRAG_RESULT_MAX);
- else
- assert(index < VARYING_SLOT_MAX);
+ if (!array_id) {
+ if (t->procType == TGSI_PROCESSOR_FRAGMENT)
+ assert(index < FRAG_RESULT_MAX);
+ else
+ assert(index < VARYING_SLOT_MAX);
- assert(t->outputMapping[index] < ARRAY_SIZE(t->outputs));
+ assert(t->outputMapping[index] < ARRAY_SIZE(t->outputs));
+ assert(t->outputs[t->outputMapping[index]].File != TGSI_FILE_NULL);
+ return t->outputs[t->outputMapping[index]];
+ }
+ else {
+ struct array_decl *decl = &t->output_arrays[array_id-1];
+ unsigned mesa_index = decl->mesa_index;
+ int slot = t->outputMapping[mesa_index];
- return t->outputs[t->outputMapping[index]];
+ assert(slot != -1 && t->outputs[slot].File == TGSI_FILE_OUTPUT);
+ assert(t->outputs[slot].ArrayID == array_id);
+ return ureg_dst_array_offset(t->outputs[slot], index - mesa_index);
+ }
case PROGRAM_ADDRESS:
return t->address[index];
@@ -4575,7 +4677,8 @@ src_register(struct st_translate *t, const st_src_reg *reg)
case PROGRAM_TEMPORARY:
case PROGRAM_ARRAY:
- return ureg_src(dst_register(t, reg->file, reg->index));
+ case PROGRAM_OUTPUT:
+ return ureg_src(dst_register(t, reg->file, reg->index, reg->array_id));
case PROGRAM_UNIFORM:
assert(reg->index >= 0);
@@ -4598,12 +4701,20 @@ src_register(struct st_translate *t, const st_src_reg *reg)
* map back to the original index and add the offset after
* mapping. */
index -= double_reg2;
- assert(t->inputMapping[index] < ARRAY_SIZE(t->inputs));
- return t->inputs[t->inputMapping[index] + double_reg2];
+ if (!reg->array_id) {
+ assert(t->inputMapping[index] < ARRAY_SIZE(t->inputs));
+ assert(t->inputs[t->inputMapping[index]].File != TGSI_FILE_NULL);
+ return t->inputs[t->inputMapping[index]];
+ }
+ else {
+ struct array_decl *decl = &t->input_arrays[reg->array_id-1];
+ unsigned mesa_index = decl->mesa_index;
+ int slot = t->inputMapping[mesa_index];
- case PROGRAM_OUTPUT:
- assert(t->outputMapping[reg->index] < ARRAY_SIZE(t->outputs));
- return ureg_src(t->outputs[t->outputMapping[reg->index]]); /* not needed? */
+ assert(slot != -1 && t->inputs[slot].File == TGSI_FILE_INPUT);
+ assert(t->inputs[slot].ArrayID == reg->array_id);
+ return ureg_src_array_offset(t->inputs[slot], index - mesa_index);
+ }
case PROGRAM_ADDRESS:
return ureg_src(t->address[reg->index]);
@@ -4626,9 +4737,8 @@ translate_dst(struct st_translate *t,
const st_dst_reg *dst_reg,
bool saturate, bool clamp_color)
{
- struct ureg_dst dst = dst_register(t,
- dst_reg->file,
- dst_reg->index);
+ struct ureg_dst dst = dst_register(t, dst_reg->file, dst_reg->index,
+ dst_reg->array_id);
if (dst.File == TGSI_FILE_NULL)
return dst;
@@ -4738,7 +4848,7 @@ translate_tex_offset(struct st_translate *t,
array = in_offset->index >> 16;
assert(array >= 0);
- assert(array < (int) ARRAY_SIZE(t->arrays));
+ assert(array < (int)t->num_temp_arrays);
dst = t->arrays[array];
offset.File = dst.File;
@@ -5060,6 +5170,25 @@ emit_edgeflags(struct st_translate *t)
ureg_MOV(ureg, edge_dst, edge_src);
}
+static bool
+find_array(unsigned attr, struct array_decl *arrays, unsigned count,
+ unsigned *array_id, unsigned *array_size)
+{
+ unsigned i;
+
+ for (i = 0; i < count; i++) {
+ struct array_decl *decl = &arrays[i];
+
+ if (attr == decl->mesa_index) {
+ *array_id = decl->array_id;
+ *array_size = decl->array_size;
+ assert(*array_size);
+ return true;
+ }
+ }
+ return false;
+}
+
/**
* Translate intermediate IR (glsl_to_tgsi_instruction) to TGSI format.
* \param program the program to translate
@@ -5089,12 +5218,14 @@ st_translate_program(
const struct gl_program *proginfo,
GLuint numInputs,
const GLuint inputMapping[],
+ const GLuint inputSlotToAttr[],
const ubyte inputSemanticName[],
const ubyte inputSemanticIndex[],
const GLuint interpMode[],
const GLuint interpLocation[],
GLuint numOutputs,
const GLuint outputMapping[],
+ const GLuint outputSlotToAttr[],
const ubyte outputSemanticName[],
const ubyte outputSemanticIndex[],
boolean passthrough_edgeflags,
@@ -5132,25 +5263,101 @@ st_translate_program(
goto out;
}
- memset(t, 0, sizeof *t);
-
t->procType = procType;
t->inputMapping = inputMapping;
t->outputMapping = outputMapping;
t->ureg = ureg;
+ t->num_temp_arrays = program->next_array;
+ if (t->num_temp_arrays)
+ t->arrays = (struct ureg_dst*)
+ calloc(1, sizeof(t->arrays[0]) * t->num_temp_arrays);
/*
* Declare input attributes.
*/
- if (procType == TGSI_PROCESSOR_FRAGMENT) {
+ switch (procType) {
+ case TGSI_PROCESSOR_FRAGMENT:
for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_fs_input_cyl_centroid(ureg,
- inputSemanticName[i],
- inputSemanticIndex[i],
- interpMode[i], 0,
- interpLocation[i]);
+ unsigned array_id = 0;
+ unsigned array_size;
+
+ if (find_array(inputSlotToAttr[i], program->input_arrays,
+ program->num_input_arrays, &array_id, &array_size)) {
+ /* We've found an array. Declare it so. */
+ t->inputs[i] = ureg_DECL_fs_input_cyl_centroid(ureg,
+ inputSemanticName[i], inputSemanticIndex[i],
+ interpMode[i], 0, interpLocation[i],
+ array_id, array_size);
+ i += array_size - 1;
+ }
+ else {
+ t->inputs[i] = ureg_DECL_fs_input_cyl_centroid(ureg,
+ inputSemanticName[i], inputSemanticIndex[i],
+ interpMode[i], 0, interpLocation[i], 0, 1);
+ }
}
+ break;
+ case TGSI_PROCESSOR_GEOMETRY:
+ for (i = 0; i < numInputs; i++) {
+ unsigned array_id = 0;
+ unsigned array_size;
+
+ if (find_array(inputSlotToAttr[i], program->input_arrays,
+ program->num_input_arrays, &array_id, &array_size)) {
+ /* We've found an array. Declare it so. */
+ t->inputs[i] = ureg_DECL_input(ureg, inputSemanticName[i],
+ inputSemanticIndex[i],
+ array_id, array_size);
+ i += array_size - 1;
+ }
+ else {
+ t->inputs[i] = ureg_DECL_input(ureg, inputSemanticName[i],
+ inputSemanticIndex[i], 0, 1);
+ }
+ }
+ break;
+ case TGSI_PROCESSOR_VERTEX:
+ for (i = 0; i < numInputs; i++) {
+ t->inputs[i] = ureg_DECL_vs_input(ureg, i);
+ }
+ break;
+ default:
+ assert(0);
+ }
+ /*
+ * Declare output attributes.
+ */
+ switch (procType) {
+ case TGSI_PROCESSOR_FRAGMENT:
+ break;
+ case TGSI_PROCESSOR_GEOMETRY:
+ case TGSI_PROCESSOR_VERTEX:
+ for (i = 0; i < numOutputs; i++) {
+ unsigned array_id = 0;
+ unsigned array_size;
+
+ if (find_array(outputSlotToAttr[i], program->output_arrays,
+ program->num_output_arrays, &array_id, &array_size)) {
+ /* We've found an array. Declare it so. */
+ t->outputs[i] = ureg_DECL_output_array(ureg,
+ outputSemanticName[i],
+ outputSemanticIndex[i],
+ array_id, array_size);
+ i += array_size - 1;
+ }
+ else {
+ t->outputs[i] = ureg_DECL_output(ureg,
+ outputSemanticName[i],
+ outputSemanticIndex[i]);
+ }
+ }
+ break;
+ default:
+ assert(0);
+ }
+
+ if (procType == TGSI_PROCESSOR_FRAGMENT) {
if (proginfo->InputsRead & VARYING_BIT_POS) {
/* Must do this after setting up t->inputs. */
emit_wpos(st_context(ctx), t, proginfo, ureg,
@@ -5160,9 +5367,6 @@ st_translate_program(
if (proginfo->InputsRead & VARYING_BIT_FACE)
emit_face_var(ctx, t);
- /*
- * Declare output attributes.
- */
for (i = 0; i < numOutputs; i++) {
switch (outputSemanticName[i]) {
case TGSI_SEMANTIC_POSITION:
@@ -5198,31 +5402,8 @@ st_translate_program(
}
}
}
- else if (procType == TGSI_PROCESSOR_GEOMETRY) {
- for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_gs_input(ureg,
- i,
- inputSemanticName[i],
- inputSemanticIndex[i]);
- }
-
+ else if (procType == TGSI_PROCESSOR_VERTEX) {
for (i = 0; i < numOutputs; i++) {
- t->outputs[i] = ureg_DECL_output(ureg,
- outputSemanticName[i],
- outputSemanticIndex[i]);
- }
- }
- else {
- assert(procType == TGSI_PROCESSOR_VERTEX);
-
- for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_vs_input(ureg, i);
- }
-
- for (i = 0; i < numOutputs; i++) {
- t->outputs[i] = ureg_DECL_output(ureg,
- outputSemanticName[i],
- outputSemanticIndex[i]);
if (outputSemanticName[i] == TGSI_SEMANTIC_FOG) {
/* force register to contain a fog coordinate in the form (F, 0, 0, 1). */
ureg_MOV(ureg,
@@ -5277,9 +5458,9 @@ st_translate_program(
}
}
- /* Copy over array sizes
- */
- memcpy(t->array_sizes, program->array_sizes, sizeof(unsigned) * program->next_array);
+ t->array_sizes = program->array_sizes;
+ t->input_arrays = program->input_arrays;
+ t->output_arrays = program->output_arrays;
/* Emit constants and uniforms. TGSI uses a single index space for these,
* so we put all the translated regs in t->constants.
@@ -5375,6 +5556,7 @@ st_translate_program(
out:
if (t) {
+ free(t->arrays);
free(t->temps);
free(t->insn);
free(t->labels);
@@ -5470,7 +5652,7 @@ get_mesa_program(struct gl_context *ctx,
if (!entry->bgn_inst) {
v->current_function = entry;
- entry->bgn_inst = v->emit(NULL, TGSI_OPCODE_BGNSUB);
+ entry->bgn_inst = v->emit_asm(NULL, TGSI_OPCODE_BGNSUB);
entry->bgn_inst->function = entry;
visit_exec_list(&entry->sig->body, v);
@@ -5478,10 +5660,10 @@ get_mesa_program(struct gl_context *ctx,
glsl_to_tgsi_instruction *last;
last = (glsl_to_tgsi_instruction *)v->instructions.get_tail();
if (last->op != TGSI_OPCODE_RET)
- v->emit(NULL, TGSI_OPCODE_RET);
+ v->emit_asm(NULL, TGSI_OPCODE_RET);
glsl_to_tgsi_instruction *end;
- end = v->emit(NULL, TGSI_OPCODE_ENDSUB);
+ end = v->emit_asm(NULL, TGSI_OPCODE_ENDSUB);
end->function = entry;
progress = GL_TRUE;
@@ -5513,7 +5695,7 @@ get_mesa_program(struct gl_context *ctx,
v->renumber_registers();
/* Write the END instruction. */
- v->emit(NULL, TGSI_OPCODE_END);
+ v->emit_asm(NULL, TGSI_OPCODE_END);
if (ctx->_Shader->Flags & GLSL_DUMP) {
_mesa_log("\n");
@@ -5528,6 +5710,10 @@ get_mesa_program(struct gl_context *ctx,
prog->NumInstructions = 0;
do_set_program_inouts(shader->ir, prog, shader->Stage);
+ shrink_array_declarations(v->input_arrays, v->num_input_arrays,
+ prog->InputsRead);
+ shrink_array_declarations(v->output_arrays, v->num_output_arrays,
+ prog->OutputsWritten);
count_resources(v, prog);
/* This must be done before the uniform storage is associated. */
@@ -5549,6 +5735,7 @@ get_mesa_program(struct gl_context *ctx,
*/
_mesa_associate_uniform_storage(ctx, shader_program, prog->Parameters);
if (!shader_program->LinkStatus) {
+ free_glsl_to_tgsi_visitor(v);
return NULL;
}
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h
index 2cb80bcf9..4af747fa9 100644
--- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h
+++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h
@@ -43,12 +43,14 @@ enum pipe_error st_translate_program(
const struct gl_program *proginfo,
GLuint numInputs,
const GLuint inputMapping[],
+ const GLuint inputSlotToAttr[],
const ubyte inputSemanticName[],
const ubyte inputSemanticIndex[],
const GLuint interpMode[],
const GLuint interpLocation[],
GLuint numOutputs,
const GLuint outputMapping[],
+ const GLuint outputSlotToAttr[],
const ubyte outputSemanticName[],
const ubyte outputSemanticIndex[],
boolean passthrough_edgeflags,
diff --git a/mesalib/src/mesa/state_tracker/st_manager.c b/mesalib/src/mesa/state_tracker/st_manager.c
index 0376954f7..a2dee6298 100644
--- a/mesalib/src/mesa/state_tracker/st_manager.c
+++ b/mesalib/src/mesa/state_tracker/st_manager.c
@@ -924,8 +924,7 @@ static unsigned get_version(struct pipe_screen *screen,
struct gl_extensions extensions = {0};
GLuint version;
- if ((api == API_OPENGL_COMPAT || api == API_OPENGL_CORE) &&
- _mesa_override_gl_version_contextless(&consts, &api, &version)) {
+ if (_mesa_override_gl_version_contextless(&consts, &api, &version)) {
return version;
}
diff --git a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c
index 98d525c86..896e239ee 100644
--- a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -665,7 +665,7 @@ compile_instruction(
if (num_dst)
dst[0] = translate_dst( t,
&inst->DstReg,
- inst->SaturateMode,
+ inst->Saturate,
clamp_dst_color_output);
for (i = 0; i < num_src; i++)
@@ -1095,10 +1095,9 @@ st_translate_mesa_program(
}
else if (procType == TGSI_PROCESSOR_GEOMETRY) {
for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_gs_input(ureg,
- i,
- inputSemanticName[i],
- inputSemanticIndex[i]);
+ t->inputs[i] = ureg_DECL_input(ureg,
+ inputSemanticName[i],
+ inputSemanticIndex[i], 0, 1);
}
for (i = 0; i < numOutputs; i++) {
diff --git a/mesalib/src/mesa/state_tracker/st_program.c b/mesalib/src/mesa/state_tracker/st_program.c
index a9110d3c6..d5a124f21 100644
--- a/mesalib/src/mesa/state_tracker/st_program.c
+++ b/mesalib/src/mesa/state_tracker/st_program.c
@@ -215,6 +215,7 @@ st_prepare_vertex_program(struct gl_context *ctx,
unsigned slot = stvp->num_outputs++;
stvp->result_to_output[attr] = slot;
+ stvp->output_slot_to_attr[slot] = attr;
switch (attr) {
case VARYING_SLOT_POS:
@@ -321,7 +322,7 @@ st_translate_vertex_program(struct st_context *st,
_mesa_remove_output_reads(&stvp->Base.Base, PROGRAM_OUTPUT);
}
- ureg = ureg_create( TGSI_PROCESSOR_VERTEX );
+ ureg = ureg_create_with_screen(TGSI_PROCESSOR_VERTEX, st->pipe->screen);
if (ureg == NULL) {
free(vpv);
return NULL;
@@ -351,6 +352,7 @@ st_translate_vertex_program(struct st_context *st,
/* inputs */
vpv->num_inputs,
stvp->input_to_index,
+ NULL, /* inputSlotToAttr */
NULL, /* input semantic name */
NULL, /* input semantic index */
NULL, /* interp mode */
@@ -358,6 +360,7 @@ st_translate_vertex_program(struct st_context *st,
/* outputs */
num_outputs,
stvp->result_to_output,
+ stvp->output_slot_to_attr,
stvp->output_semantic_name,
stvp->output_semantic_index,
key->passthrough_edgeflags,
@@ -482,6 +485,7 @@ st_translate_fragment_program(struct st_context *st,
GLuint outputMapping[FRAG_RESULT_MAX];
GLuint inputMapping[VARYING_SLOT_MAX];
+ GLuint inputSlotToAttr[VARYING_SLOT_MAX];
GLuint interpMode[PIPE_MAX_SHADER_INPUTS]; /* XXX size? */
GLuint interpLocation[PIPE_MAX_SHADER_INPUTS];
GLuint attr;
@@ -502,6 +506,7 @@ st_translate_fragment_program(struct st_context *st,
return NULL;
assert(!(key->bitmap && key->drawpixels));
+ memset(inputSlotToAttr, ~0, sizeof(inputSlotToAttr));
if (key->bitmap) {
/* glBitmap drawing */
@@ -543,6 +548,7 @@ st_translate_fragment_program(struct st_context *st,
const GLuint slot = fs_num_inputs++;
inputMapping[attr] = slot;
+ inputSlotToAttr[slot] = attr;
if (stfp->Base.IsCentroid & BITFIELD64_BIT(attr))
interpLocation[slot] = TGSI_INTERPOLATE_LOC_CENTROID;
else if (stfp->Base.IsSample & BITFIELD64_BIT(attr))
@@ -732,7 +738,7 @@ st_translate_fragment_program(struct st_context *st,
}
}
- ureg = ureg_create( TGSI_PROCESSOR_FRAGMENT );
+ ureg = ureg_create_with_screen(TGSI_PROCESSOR_FRAGMENT, st->pipe->screen);
if (ureg == NULL) {
free(variant);
return NULL;
@@ -778,6 +784,7 @@ st_translate_fragment_program(struct st_context *st,
/* inputs */
fs_num_inputs,
inputMapping,
+ inputSlotToAttr,
input_semantic_name,
input_semantic_index,
interpMode,
@@ -785,6 +792,7 @@ st_translate_fragment_program(struct st_context *st,
/* outputs */
fs_num_outputs,
outputMapping,
+ NULL,
fs_output_semantic_name,
fs_output_semantic_index, FALSE,
key->clamp_color );
@@ -867,7 +875,9 @@ st_translate_geometry_program(struct st_context *st,
struct st_geometry_program *stgp,
const struct st_gp_variant_key *key)
{
+ GLuint inputSlotToAttr[VARYING_SLOT_MAX];
GLuint inputMapping[VARYING_SLOT_MAX];
+ GLuint outputSlotToAttr[VARYING_SLOT_MAX];
GLuint outputMapping[VARYING_SLOT_MAX];
struct pipe_context *pipe = st->pipe;
GLuint attr;
@@ -890,13 +900,15 @@ st_translate_geometry_program(struct st_context *st,
if (!gpv)
return NULL;
- ureg = ureg_create(TGSI_PROCESSOR_GEOMETRY);
+ ureg = ureg_create_with_screen(TGSI_PROCESSOR_GEOMETRY, st->pipe->screen);
if (ureg == NULL) {
free(gpv);
return NULL;
}
+ memset(inputSlotToAttr, 0, sizeof(inputSlotToAttr));
memset(inputMapping, 0, sizeof(inputMapping));
+ memset(outputSlotToAttr, 0, sizeof(outputSlotToAttr));
memset(outputMapping, 0, sizeof(outputMapping));
/*
@@ -907,6 +919,7 @@ st_translate_geometry_program(struct st_context *st,
const GLuint slot = gs_num_inputs++;
inputMapping[attr] = slot;
+ inputSlotToAttr[slot] = attr;
switch (attr) {
case VARYING_SLOT_PRIMITIVE_ID:
@@ -985,6 +998,7 @@ st_translate_geometry_program(struct st_context *st,
GLuint slot = gs_num_outputs++;
outputMapping[attr] = slot;
+ outputSlotToAttr[slot] = attr;
switch (attr) {
case VARYING_SLOT_POS:
@@ -1080,6 +1094,7 @@ st_translate_geometry_program(struct st_context *st,
/* inputs */
gs_num_inputs,
inputMapping,
+ inputSlotToAttr,
input_semantic_name,
input_semantic_index,
NULL,
@@ -1087,6 +1102,7 @@ st_translate_geometry_program(struct st_context *st,
/* outputs */
gs_num_outputs,
outputMapping,
+ outputSlotToAttr,
gs_output_semantic_name,
gs_output_semantic_index,
FALSE,
@@ -1201,7 +1217,7 @@ destroy_program_variants(struct st_context *st, struct gl_program *program)
}
}
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
{
struct st_geometry_program *stgp =
(struct st_geometry_program *) program;
diff --git a/mesalib/src/mesa/state_tracker/st_program.h b/mesalib/src/mesa/state_tracker/st_program.h
index a2c56062d..bb77eb6ed 100644
--- a/mesalib/src/mesa/state_tracker/st_program.h
+++ b/mesalib/src/mesa/state_tracker/st_program.h
@@ -163,6 +163,7 @@ struct st_vertex_program
/** Maps VARYING_SLOT_x to slot */
GLuint result_to_output[VARYING_SLOT_MAX];
+ GLuint output_slot_to_attr[VARYING_SLOT_MAX];
ubyte output_semantic_name[VARYING_SLOT_MAX];
ubyte output_semantic_index[VARYING_SLOT_MAX];
GLuint num_outputs;
diff --git a/mesalib/src/mesa/tnl/t_context.c b/mesalib/src/mesa/tnl/t_context.c
index 5b9dd54d7..bc77ba8bf 100644
--- a/mesalib/src/mesa/tnl/t_context.c
+++ b/mesalib/src/mesa/tnl/t_context.c
@@ -36,6 +36,7 @@
#include "math/m_xform.h"
#include "main/state.h"
#include "main/viewport.h"
+#include "util/simple_list.h"
#include "tnl.h"
#include "t_context.h"
diff --git a/mesalib/src/mesa/vbo/vbo_exec_array.c b/mesalib/src/mesa/vbo/vbo_exec_array.c
index 3ea775c0e..72b8206ec 100644
--- a/mesalib/src/mesa/vbo/vbo_exec_array.c
+++ b/mesalib/src/mesa/vbo/vbo_exec_array.c
@@ -1817,9 +1817,12 @@ vbo_initialize_exec_dispatch(const struct gl_context *ctx,
SET_DrawElementsInstancedBaseVertexBaseInstance(exec, vbo_exec_DrawElementsInstancedBaseVertexBaseInstance);
}
- if (ctx->API == API_OPENGL_CORE) {
+ if (ctx->API == API_OPENGL_CORE || _mesa_is_gles31(ctx)) {
SET_DrawArraysIndirect(exec, vbo_exec_DrawArraysIndirect);
SET_DrawElementsIndirect(exec, vbo_exec_DrawElementsIndirect);
+ }
+
+ if (ctx->API == API_OPENGL_CORE) {
SET_MultiDrawArraysIndirect(exec, vbo_exec_MultiDrawArraysIndirect);
SET_MultiDrawElementsIndirect(exec, vbo_exec_MultiDrawElementsIndirect);
}
diff --git a/pixman/pixman/pixman-arm-common.h b/pixman/pixman/pixman-arm-common.h
index 3a7cb2bef..953768830 100644
--- a/pixman/pixman/pixman-arm-common.h
+++ b/pixman/pixman/pixman-arm-common.h
@@ -266,13 +266,6 @@ FAST_NEAREST_MAINLOOP (cputype##_##name##_normal_##op, \
scaled_nearest_scanline_##cputype##_##name##_##op, \
src_type, dst_type, NORMAL)
-/* Provide entries for the fast path table */
-#define PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH(op,s,d,func) \
- SIMPLE_NEAREST_FAST_PATH_COVER (op,s,d,func), \
- SIMPLE_NEAREST_FAST_PATH_NONE (op,s,d,func), \
- SIMPLE_NEAREST_FAST_PATH_PAD (op,s,d,func), \
- SIMPLE_NEAREST_FAST_PATH_NORMAL (op,s,d,func)
-
#define PIXMAN_ARM_BIND_SCALED_NEAREST_SRC_A8_DST(flags, cputype, name, op, \
src_type, dst_type) \
void \
@@ -318,9 +311,7 @@ FAST_NEAREST_MAINLOOP_COMMON (cputype##_##name##_normal_##op, \
/* Provide entries for the fast path table */
#define PIXMAN_ARM_SIMPLE_NEAREST_A8_MASK_FAST_PATH(op,s,d,func) \
- SIMPLE_NEAREST_A8_MASK_FAST_PATH_COVER (op,s,d,func), \
- SIMPLE_NEAREST_A8_MASK_FAST_PATH_NONE (op,s,d,func), \
- SIMPLE_NEAREST_A8_MASK_FAST_PATH_PAD (op,s,d,func), \
+ SIMPLE_NEAREST_A8_MASK_FAST_PATH (op,s,d,func), \
SIMPLE_NEAREST_A8_MASK_FAST_PATH_NORMAL (op,s,d,func)
/*****************************************************************************/
diff --git a/pixman/pixman/pixman-arm-neon.c b/pixman/pixman/pixman-arm-neon.c
index 60e9c78d2..be761c965 100644
--- a/pixman/pixman/pixman-arm-neon.c
+++ b/pixman/pixman/pixman-arm-neon.c
@@ -362,21 +362,21 @@ static const pixman_fast_path_t arm_neon_fast_paths[] =
PIXMAN_STD_FAST_PATH (OUT_REVERSE, a8, null, a8r8g8b8, neon_composite_out_reverse_8_8888),
PIXMAN_STD_FAST_PATH (OUT_REVERSE, a8, null, a8b8g8r8, neon_composite_out_reverse_8_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, neon_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, neon_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, neon_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, neon_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, neon_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, neon_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, neon_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, neon_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, r5g6b5, neon_8888_0565),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, b5g6r5, neon_8888_0565),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, r5g6b5, neon_8888_0565),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, b5g6r5, neon_8888_0565),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, r5g6b5, neon_8888_0565),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, r5g6b5, neon_8888_0565),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, b5g6r5, neon_8888_0565),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, b5g6r5, neon_8888_0565),
+ SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, r5g6b5, neon_8888_0565),
+ SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, r5g6b5, neon_8888_0565),
+ SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, b5g6r5, neon_8888_0565),
+ SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, b5g6r5, neon_8888_0565),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, x8b8g8r8, neon_0565_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, x8r8g8b8, neon_0565_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, x8b8g8r8, neon_0565_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, x8r8g8b8, neon_0565_8888),
/* Note: NONE repeat is not supported yet */
SIMPLE_NEAREST_FAST_PATH_COVER (SRC, r5g6b5, a8r8g8b8, neon_0565_8888),
SIMPLE_NEAREST_FAST_PATH_COVER (SRC, b5g6r5, a8b8g8r8, neon_0565_8888),
diff --git a/pixman/pixman/pixman-arm-simd.c b/pixman/pixman/pixman-arm-simd.c
index fa1ab5cce..f40ff36fe 100644
--- a/pixman/pixman/pixman-arm-simd.c
+++ b/pixman/pixman/pixman-arm-simd.c
@@ -260,15 +260,15 @@ static const pixman_fast_path_t arm_simd_fast_paths[] =
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, a8b8g8r8, armv6_composite_over_n_8888_8888_ca),
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, x8b8g8r8, armv6_composite_over_n_8888_8888_ca),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, r5g6b5, armv6_0565_0565),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, b5g6r5, armv6_0565_0565),
-
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, armv6_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, armv6_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, armv6_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, a8b8g8r8, armv6_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, x8b8g8r8, armv6_8888_8888),
- PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, x8b8g8r8, armv6_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, r5g6b5, armv6_0565_0565),
+ SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, b5g6r5, armv6_0565_0565),
+
+ SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, armv6_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, armv6_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, armv6_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, a8b8g8r8, armv6_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, x8b8g8r8, armv6_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, x8b8g8r8, armv6_8888_8888),
{ PIXMAN_OP_NONE },
};
diff --git a/pixman/pixman/pixman-inlines.h b/pixman/pixman/pixman-inlines.h
index dd1c2f17f..1c8441d6d 100644
--- a/pixman/pixman/pixman-inlines.h
+++ b/pixman/pixman/pixman-inlines.h
@@ -747,7 +747,8 @@ fast_composite_scaled_nearest ## scale_func_name (pixman_implementation_t *imp,
#define SIMPLE_NEAREST_SOLID_MASK_FAST_PATH(op,s,d,func) \
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_COVER (op,s,d,func), \
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NONE (op,s,d,func), \
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_PAD (op,s,d,func)
+ SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_PAD (op,s,d,func), \
+ SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (op,s,d,func)
/*****************************************************************************/
diff --git a/pixman/pixman/pixman-mips-dspr2.c b/pixman/pixman/pixman-mips-dspr2.c
index e10c9df0a..122d9dca3 100644
--- a/pixman/pixman/pixman-mips-dspr2.c
+++ b/pixman/pixman/pixman-mips-dspr2.c
@@ -388,11 +388,11 @@ static const pixman_fast_path_t mips_dspr2_fast_paths[] =
SIMPLE_NEAREST_FAST_PATH_PAD (SRC, r5g6b5, a8r8g8b8, mips_0565_8888),
SIMPLE_NEAREST_FAST_PATH_PAD (SRC, b5g6r5, a8b8g8r8, mips_0565_8888),
- PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8r8g8b8, r5g6b5, mips_8888_8_0565),
- PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8b8g8r8, b5g6r5, mips_8888_8_0565),
+ SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8r8g8b8, r5g6b5, mips_8888_8_0565),
+ SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8b8g8r8, b5g6r5, mips_8888_8_0565),
- PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, r5g6b5, r5g6b5, mips_0565_8_0565),
- PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, b5g6r5, b5g6r5, mips_0565_8_0565),
+ SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, r5g6b5, r5g6b5, mips_0565_8_0565),
+ SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, b5g6r5, b5g6r5, mips_0565_8_0565),
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, mips_8888_8888),
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, mips_8888_8888),
diff --git a/pixman/pixman/pixman-mips-dspr2.h b/pixman/pixman/pixman-mips-dspr2.h
index 955ed70b8..b9e0684ec 100644
--- a/pixman/pixman/pixman-mips-dspr2.h
+++ b/pixman/pixman/pixman-mips-dspr2.h
@@ -328,12 +328,6 @@ FAST_NEAREST_MAINLOOP_COMMON (mips_##name##_pad_##op, \
scaled_nearest_scanline_mips_##name##_##op, \
src_type, uint8_t, dst_type, PAD, TRUE, FALSE)
-/* Provide entries for the fast path table */
-#define PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH(op,s,d,func) \
- SIMPLE_NEAREST_A8_MASK_FAST_PATH_COVER (op,s,d,func), \
- SIMPLE_NEAREST_A8_MASK_FAST_PATH_NONE (op,s,d,func), \
- SIMPLE_NEAREST_A8_MASK_FAST_PATH_PAD (op,s,d,func)
-
/****************************************************************************/
#define PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST(flags, name, op, \
diff --git a/pixman/pixman/pixman-mmx.c b/pixman/pixman/pixman-mmx.c
index 42826d94d..05c48a4fe 100644
--- a/pixman/pixman/pixman-mmx.c
+++ b/pixman/pixman/pixman-mmx.c
@@ -4094,31 +4094,15 @@ static const pixman_fast_path_t mmx_fast_paths[] =
PIXMAN_STD_FAST_PATH (IN, a8, null, a8, mmx_composite_in_8_8 ),
PIXMAN_STD_FAST_PATH (IN, solid, a8, a8, mmx_composite_in_n_8_8 ),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_8888 ),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_8888 ),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_8888 ),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_8888 ),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_8888 ),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_8888 ),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_n_8888 ),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_n_8888 ),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_n_8888 ),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_n_8888 ),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_n_8888 ),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_n_8888 ),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_n_8888 ),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_n_8888 ),
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, mmx_8888_8888 ),
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, mmx_8888_8888 ),
diff --git a/pixman/pixman/pixman-sse2.c b/pixman/pixman/pixman-sse2.c
index a6e780815..895510372 100644
--- a/pixman/pixman/pixman-sse2.c
+++ b/pixman/pixman/pixman-sse2.c
@@ -6274,31 +6274,15 @@ static const pixman_fast_path_t sse2_fast_paths[] =
PIXMAN_STD_FAST_PATH (IN, solid, a8, a8, sse2_composite_in_n_8_8),
PIXMAN_STD_FAST_PATH (IN, solid, null, a8, sse2_composite_in_n_8),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
- SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
+ SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_n_8888),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_n_8888),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_n_8888),
SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_n_8888),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_n_8888),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_n_8888),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_n_8888),
- SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_n_8888),
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
diff --git a/pixman/test/solid-test.c b/pixman/test/solid-test.c
index 7be546678..c6ea39770 100644
--- a/pixman/test/solid-test.c
+++ b/pixman/test/solid-test.c
@@ -237,7 +237,7 @@ create_solid_image (const pixman_format_code_t *allowed_formats,
pixman_image_unref (dummy_img);
/* Now set the bitmap contents to a random value */
- *buffer = prng_rand ();
+ prng_randmemset (buffer, 4, 0);
image_endian_swap (img);
if (used_fmt)
@@ -251,7 +251,10 @@ create_solid_image (const pixman_format_code_t *allowed_formats,
pixman_color_t color;
pixman_image_t *img;
- prng_randmemset (&color, sizeof color, 0);
+ color.alpha = prng_rand_n (UINT16_MAX + 1);
+ color.red = prng_rand_n (UINT16_MAX + 1);
+ color.green = prng_rand_n (UINT16_MAX + 1);
+ color.blue = prng_rand_n (UINT16_MAX + 1);
img = pixman_image_create_solid_fill (&color);
if (used_fmt)
@@ -345,6 +348,6 @@ main (int argc, const char *argv[])
}
return fuzzer_test_main ("solid", 500000,
- 0x1B6DFF8D,
+ 0xC30FD380,
test_solid, argc, argv);
}
diff --git a/xorg-server/config/10-evdev.conf b/xorg-server/config/10-evdev.conf
deleted file mode 100644
index cc83ab232..000000000
--- a/xorg-server/config/10-evdev.conf
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Catch-all evdev loader for udev-based systems
-# We don't simply match on any device since that also adds accelerometers
-# and other devices that we don't really want to use. The list below
-# matches everything but joysticks.
-
-Section "InputClass"
- Identifier "evdev pointer catchall"
- MatchIsPointer "on"
- MatchDevicePath "/dev/input/event*"
- Driver "evdev"
-EndSection
-
-Section "InputClass"
- Identifier "evdev keyboard catchall"
- MatchIsKeyboard "on"
- MatchDevicePath "/dev/input/event*"
- Driver "evdev"
-EndSection
-
-Section "InputClass"
- Identifier "evdev touchpad catchall"
- MatchIsTouchpad "on"
- MatchDevicePath "/dev/input/event*"
- Driver "evdev"
-EndSection
-
-Section "InputClass"
- Identifier "evdev tablet catchall"
- MatchIsTablet "on"
- MatchDevicePath "/dev/input/event*"
- Driver "evdev"
-EndSection
-
-Section "InputClass"
- Identifier "evdev touchscreen catchall"
- MatchIsTouchscreen "on"
- MatchDevicePath "/dev/input/event*"
- Driver "evdev"
-EndSection
diff --git a/xorg-server/config/Makefile.am b/xorg-server/config/Makefile.am
index 0e20e8b3d..51aae473e 100644
--- a/xorg-server/config/Makefile.am
+++ b/xorg-server/config/Makefile.am
@@ -18,7 +18,7 @@ libconfig_la_LIBADD += $(UDEV_LIBS)
if XORG
xorgconfddir = $(datadir)/X11/$(XF86CONFIGDIR)
-xorgconfd_DATA = 10-evdev.conf 10-quirks.conf
+xorgconfd_DATA = 10-quirks.conf
endif
else
@@ -38,4 +38,4 @@ endif # !CONFIG_HAL
endif # !CONFIG_UDEV
-EXTRA_DIST = x11-input.fdi 10-evdev.conf fdi2iclass.py 10-quirks.conf
+EXTRA_DIST = x11-input.fdi fdi2iclass.py 10-quirks.conf
diff --git a/xorg-server/dix/devices.c b/xorg-server/dix/devices.c
index 1f8dabddd..9b0c7d296 100644
--- a/xorg-server/dix/devices.c
+++ b/xorg-server/dix/devices.c
@@ -177,8 +177,8 @@ DeviceSetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop,
if (!isfinite(f[i]))
return BadValue;
- if (!dev->valuator)
- return BadMatch;
+ if (!dev->valuator)
+ return BadMatch;
if (!checkonly)
DeviceSetTransform(dev, f);
diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c
index d0a87f7b1..fa5890eec 100644
--- a/xorg-server/dix/getevents.c
+++ b/xorg-server/dix/getevents.c
@@ -208,14 +208,25 @@ init_raw(DeviceIntPtr dev, RawDeviceEvent *event, Time ms, int type, int detail)
}
static void
-set_raw_valuators(RawDeviceEvent *event, ValuatorMask *mask, double *data)
+set_raw_valuators(RawDeviceEvent *event, ValuatorMask *mask,
+ BOOL use_unaccel, double *data)
{
int i;
+ use_unaccel = use_unaccel && valuator_mask_has_unaccelerated(mask);
+
for (i = 0; i < valuator_mask_size(mask); i++) {
if (valuator_mask_isset(mask, i)) {
+ double v;
+
SetBit(event->valuators.mask, i);
- data[i] = valuator_mask_get_double(mask, i);
+
+ if (use_unaccel)
+ v = valuator_mask_get_unaccelerated(mask, i);
+ else
+ v = valuator_mask_get_double(mask, i);
+
+ data[i] = v;
}
}
}
@@ -1388,9 +1399,11 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
num_events++;
init_raw(pDev, raw, ms, type, buttons);
- set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+ set_raw_valuators(raw, &mask, TRUE, raw->valuators.data_raw);
}
+ valuator_mask_drop_unaccelerated(&mask);
+
/* valuators are in driver-native format (rel or abs) */
if (flags & POINTER_ABSOLUTE) {
@@ -1403,7 +1416,7 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
transformAbsolute(pDev, &mask);
clipAbsolute(pDev, &mask);
if ((flags & POINTER_NORAW) == 0 && raw)
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ set_raw_valuators(raw, &mask, FALSE, raw->valuators.data);
}
else {
transformRelative(pDev, &mask);
@@ -1411,7 +1424,7 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
if (flags & POINTER_ACCELERATE)
accelPointer(pDev, &mask, ms);
if ((flags & POINTER_NORAW) == 0 && raw)
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ set_raw_valuators(raw, &mask, FALSE, raw->valuators.data);
moveRelative(pDev, flags, &mask);
}
@@ -1916,7 +1929,7 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
events++;
num_events++;
init_raw(dev, raw, ms, type, client_id);
- set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+ set_raw_valuators(raw, &mask, TRUE, raw->valuators.data_raw);
}
event = &events->device_event;
@@ -1978,7 +1991,7 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
screeny = dev->spriteInfo->sprite->hotPhys.y;
}
if (need_rawevent)
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ set_raw_valuators(raw, &mask, FALSE, raw->valuators.data);
/* Indirect device touch coordinates are not used for cursor positioning.
* They are merely informational, and are provided in device coordinates.
diff --git a/xorg-server/dix/inpututils.c b/xorg-server/dix/inpututils.c
index 5c2a32d1c..136398842 100644
--- a/xorg-server/dix/inpututils.c
+++ b/xorg-server/dix/inpututils.c
@@ -505,15 +505,23 @@ valuator_mask_isset(const ValuatorMask *mask, int valuator)
return mask->last_bit >= valuator && BitIsOn(mask->mask, valuator);
}
+static inline void
+_valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
+{
+ mask->last_bit = max(valuator, mask->last_bit);
+ SetBit(mask->mask, valuator);
+ mask->valuators[valuator] = data;
+}
+
/**
* Set the valuator to the given floating-point data.
*/
void
valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
{
- mask->last_bit = max(valuator, mask->last_bit);
- SetBit(mask->mask, valuator);
- mask->valuators[valuator] = data;
+ BUG_WARN_MSG(mask->has_unaccelerated,
+ "Do not mix valuator types, zero mask first\n");
+ _valuator_mask_set_double(mask, valuator, data);
}
/**
@@ -594,11 +602,15 @@ valuator_mask_unset(ValuatorMask *mask, int valuator)
ClearBit(mask->mask, valuator);
mask->valuators[valuator] = 0.0;
+ mask->unaccelerated[valuator] = 0.0;
for (i = 0; i <= mask->last_bit; i++)
if (valuator_mask_isset(mask, i))
lastbit = max(lastbit, i);
mask->last_bit = lastbit;
+
+ if (mask->last_bit == -1)
+ mask->has_unaccelerated = FALSE;
}
}
@@ -611,6 +623,66 @@ valuator_mask_copy(ValuatorMask *dest, const ValuatorMask *src)
valuator_mask_zero(dest);
}
+Bool
+valuator_mask_has_unaccelerated(const ValuatorMask *mask)
+{
+ return mask->has_unaccelerated;
+}
+
+void
+valuator_mask_drop_unaccelerated(ValuatorMask *mask)
+{
+ memset(mask->unaccelerated, 0, sizeof(mask->unaccelerated));
+ mask->has_unaccelerated = FALSE;
+}
+
+/**
+ * Set both accelerated and unaccelerated value for this mask.
+ */
+void
+valuator_mask_set_unaccelerated(ValuatorMask *mask,
+ int valuator,
+ double accel,
+ double unaccel)
+{
+ BUG_WARN_MSG(mask->last_bit != -1 && !mask->has_unaccelerated,
+ "Do not mix valuator types, zero mask first\n");
+ _valuator_mask_set_double(mask, valuator, accel);
+ mask->has_unaccelerated = TRUE;
+ mask->unaccelerated[valuator] = unaccel;
+}
+
+double
+valuator_mask_get_accelerated(const ValuatorMask *mask,
+ int valuator)
+{
+ return valuator_mask_get_double(mask, valuator);
+}
+
+double
+valuator_mask_get_unaccelerated(const ValuatorMask *mask,
+ int valuator)
+{
+ return mask->unaccelerated[valuator];
+}
+
+Bool
+valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,
+ int valuator,
+ double *accel,
+ double *unaccel)
+{
+ if (valuator_mask_isset(mask, valuator)) {
+ if (accel)
+ *accel = valuator_mask_get_accelerated(mask, valuator);
+ if (unaccel)
+ *unaccel = valuator_mask_get_unaccelerated(mask, valuator);
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
int
CountBits(const uint8_t * mask, int len)
{
diff --git a/xorg-server/glamor/glamor_largepixmap.c b/xorg-server/glamor/glamor_largepixmap.c
index 391f376e9..da3fb6150 100644
--- a/xorg-server/glamor/glamor_largepixmap.c
+++ b/xorg-server/glamor/glamor_largepixmap.c
@@ -1055,6 +1055,15 @@ glamor_composite_largepixmap_region(CARD8 op,
int source_repeat_type = 0, mask_repeat_type = 0;
int ok = TRUE;
+ if (source_pixmap == dest_pixmap) {
+ glamor_fallback("source and dest pixmaps are the same\n");
+ return FALSE;
+ }
+ if (mask_pixmap == dest_pixmap) {
+ glamor_fallback("mask and dest pixmaps are the same\n");
+ return FALSE;
+ }
+
if (source->repeat)
source_repeat_type = source->repeatType;
else
diff --git a/xorg-server/glamor/glamor_render.c b/xorg-server/glamor/glamor_render.c
index efca36744..05eee913e 100644
--- a/xorg-server/glamor/glamor_render.c
+++ b/xorg-server/glamor/glamor_render.c
@@ -1481,7 +1481,14 @@ glamor_composite_clipped_region(CARD8 op,
}
}
- /*XXXXX, self copy? */
+ if (temp_src_pixmap == dest_pixmap) {
+ glamor_fallback("source and dest pixmaps are the same\n");
+ goto out;
+ }
+ if (temp_mask_pixmap == dest_pixmap) {
+ glamor_fallback("mask and dest pixmaps are the same\n");
+ goto out;
+ }
x_dest += dest->pDrawable->x;
y_dest += dest->pDrawable->y;
diff --git a/xorg-server/hw/xfree86/common/xf86Module.h b/xorg-server/hw/xfree86/common/xf86Module.h
index 25a8869b0..66c2bb5a9 100644
--- a/xorg-server/hw/xfree86/common/xf86Module.h
+++ b/xorg-server/hw/xfree86/common/xf86Module.h
@@ -81,7 +81,7 @@ typedef enum {
*/
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0)
-#define ABI_XINPUT_VERSION SET_ABI_VERSION(22, 0)
+#define ABI_XINPUT_VERSION SET_ABI_VERSION(22, 1)
#define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0)
#define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
diff --git a/xorg-server/hw/xfree86/common/xf86Xinput.c b/xorg-server/hw/xfree86/common/xf86Xinput.c
index 55bf2bbe4..a5b056881 100644
--- a/xorg-server/hw/xfree86/common/xf86Xinput.c
+++ b/xorg-server/hw/xfree86/common/xf86Xinput.c
@@ -1138,12 +1138,16 @@ xf86CheckMotionEvent4DGA(DeviceIntPtr device, int is_absolute,
dx = valuator_mask_get(mask, 0);
if (is_absolute)
dx -= device->last.valuators[0];
+ else if (valuator_mask_has_unaccelerated(mask))
+ dx = valuator_mask_get_unaccelerated(mask, 0);
}
if (valuator_mask_isset(mask, 1)) {
dy = valuator_mask_get(mask, 1);
if (is_absolute)
dy -= device->last.valuators[1];
+ else if (valuator_mask_has_unaccelerated(mask))
+ dy = valuator_mask_get_unaccelerated(mask, 1);
}
if (DGAStealMotionEvent(device, idx, dx, dy))
diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_init.c b/xorg-server/hw/xfree86/os-support/linux/lnx_init.c
index 94853070d..a0e6782b0 100644
--- a/xorg-server/hw/xfree86/os-support/linux/lnx_init.c
+++ b/xorg-server/hw/xfree86/os-support/linux/lnx_init.c
@@ -190,18 +190,6 @@ xf86OpenConsole(void)
else
activeVT = vts.v_active;
-#if 0
- if (!KeepTty) {
- /*
- * Detach from the controlling tty to avoid char loss
- */
- if ((i = open("/dev/tty", O_RDWR)) >= 0) {
- SYSCALL(ioctl(i, TIOCNOTTY, 0));
- close(i);
- }
- }
-#endif
-
if (!xf86Info.ShareVTs) {
struct termios nTty;
diff --git a/xorg-server/hw/xwayland/xwayland-cursor.c b/xorg-server/hw/xwayland/xwayland-cursor.c
index 5a9d1fe70..c137e1ec0 100644
--- a/xorg-server/hw/xwayland/xwayland-cursor.c
+++ b/xorg-server/hw/xwayland/xwayland-cursor.c
@@ -82,6 +82,23 @@ xwl_unrealize_cursor(DeviceIntPtr device, ScreenPtr screen, CursorPtr cursor)
return xwl_shm_destroy_pixmap(pixmap);
}
+static void
+frame_callback(void *data,
+ struct wl_callback *callback,
+ uint32_t time)
+{
+ struct xwl_seat *xwl_seat = data;
+ xwl_seat->cursor_frame_cb = NULL;
+ if (xwl_seat->cursor_needs_update) {
+ xwl_seat->cursor_needs_update = FALSE;
+ xwl_seat_set_cursor(xwl_seat);
+ }
+}
+
+static const struct wl_callback_listener frame_listener = {
+ frame_callback
+};
+
void
xwl_seat_set_cursor(struct xwl_seat *xwl_seat)
{
@@ -98,6 +115,11 @@ xwl_seat_set_cursor(struct xwl_seat *xwl_seat)
return;
}
+ if (xwl_seat->cursor_frame_cb) {
+ xwl_seat->cursor_needs_update = TRUE;
+ return;
+ }
+
cursor = xwl_seat->x_cursor;
pixmap = dixGetPrivate(&cursor->devPrivates, &xwl_cursor_private_key);
stride = cursor->bits->width * 4;
@@ -117,6 +139,10 @@ xwl_seat_set_cursor(struct xwl_seat *xwl_seat)
wl_surface_damage(xwl_seat->cursor, 0, 0,
xwl_seat->x_cursor->bits->width,
xwl_seat->x_cursor->bits->height);
+
+ xwl_seat->cursor_frame_cb = wl_surface_frame(xwl_seat->cursor);
+ wl_callback_add_listener(xwl_seat->cursor_frame_cb, &frame_listener, xwl_seat);
+
wl_surface_commit(xwl_seat->cursor);
}
diff --git a/xorg-server/hw/xwayland/xwayland-input.c b/xorg-server/hw/xwayland/xwayland-input.c
index 78d9702ac..a6fbab5bb 100644
--- a/xorg-server/hw/xwayland/xwayland-input.c
+++ b/xorg-server/hw/xwayland/xwayland-input.c
@@ -563,6 +563,8 @@ xwl_seat_destroy(struct xwl_seat *xwl_seat)
RemoveDevice(xwl_seat->keyboard, FALSE);
wl_seat_destroy(xwl_seat->seat);
wl_surface_destroy(xwl_seat->cursor);
+ if (xwl_seat->cursor_frame_cb)
+ wl_callback_destroy(xwl_seat->cursor_frame_cb);
wl_array_release(&xwl_seat->keys);
free(xwl_seat);
}
diff --git a/xorg-server/hw/xwayland/xwayland.c b/xorg-server/hw/xwayland/xwayland.c
index 7e8d667d6..bc92beb38 100644
--- a/xorg-server/hw/xwayland/xwayland.c
+++ b/xorg-server/hw/xwayland/xwayland.c
@@ -483,7 +483,7 @@ listen_on_fds(struct xwl_screen *xwl_screen)
int i;
for (i = 0; i < xwl_screen->listen_fd_count; i++)
- ListenOnOpenFD(xwl_screen->listen_fds[i], TRUE);
+ ListenOnOpenFD(xwl_screen->listen_fds[i], FALSE);
}
static void
@@ -702,4 +702,6 @@ InitOutput(ScreenInfo * screen_info, int argc, char **argv)
if (AddScreen(xwl_screen_init, argc, argv) == -1) {
FatalError("Couldn't add screen\n");
}
+
+ LocalAccessScopeUser();
}
diff --git a/xorg-server/hw/xwayland/xwayland.h b/xorg-server/hw/xwayland/xwayland.h
index cfb343d36..28b0c995e 100644
--- a/xorg-server/hw/xwayland/xwayland.h
+++ b/xorg-server/hw/xwayland/xwayland.h
@@ -115,12 +115,14 @@ struct xwl_seat {
struct wl_pointer *wl_pointer;
struct wl_keyboard *wl_keyboard;
struct wl_array keys;
- struct wl_surface *cursor;
struct xwl_window *focus_window;
uint32_t id;
uint32_t pointer_enter_serial;
struct xorg_list link;
CursorPtr x_cursor;
+ struct wl_surface *cursor;
+ struct wl_callback *cursor_frame_cb;
+ Bool cursor_needs_update;
size_t keymap_size;
char *keymap;
diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h
index 00a9cbd6d..d8bd9c602 100644
--- a/xorg-server/include/input.h
+++ b/xorg-server/include/input.h
@@ -673,6 +673,21 @@ extern _X_EXPORT Bool valuator_mask_fetch(const ValuatorMask *mask,
extern _X_EXPORT Bool valuator_mask_fetch_double(const ValuatorMask *mask,
int valnum, double *val);
+extern _X_EXPORT Bool valuator_mask_has_unaccelerated(const ValuatorMask *mask);
+extern _X_EXPORT void valuator_mask_set_unaccelerated(ValuatorMask *mask,
+ int valuator,
+ double accel,
+ double unaccel);
+extern _X_EXPORT double valuator_mask_get_accelerated(const ValuatorMask *mask,
+ int valuator);
+extern _X_EXPORT double valuator_mask_get_unaccelerated(const ValuatorMask *mask,
+ int valuator);
+extern _X_EXPORT Bool valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,
+ int valuator,
+ double *accel,
+ double *unaccel);
+extern _X_HIDDEN void valuator_mask_drop_unaccelerated(ValuatorMask *mask);
+
/* InputOption handling interface */
extern _X_EXPORT InputOption *input_option_new(InputOption *list,
const char *key,
diff --git a/xorg-server/include/inpututils.h b/xorg-server/include/inpututils.h
index 53c96ba1c..4e9081563 100644
--- a/xorg-server/include/inpututils.h
+++ b/xorg-server/include/inpututils.h
@@ -36,8 +36,10 @@ extern Mask event_filters[MAXDEVICES][MAXEVENTS];
struct _ValuatorMask {
int8_t last_bit; /* highest bit set in mask */
+ int8_t has_unaccelerated;
uint8_t mask[(MAX_VALUATORS + 7) / 8];
double valuators[MAX_VALUATORS]; /* valuator data */
+ double unaccelerated[MAX_VALUATORS]; /* valuator data */
};
extern void verify_internal_event(const InternalEvent *ev);
diff --git a/xorg-server/include/os.h b/xorg-server/include/os.h
index 6638c8443..b2b96c863 100644
--- a/xorg-server/include/os.h
+++ b/xorg-server/include/os.h
@@ -431,11 +431,28 @@ extern _X_EXPORT void
ResetHosts(const char *display);
extern _X_EXPORT void
+EnableLocalAccess(void);
+
+extern _X_EXPORT void
+DisableLocalAccess(void);
+
+extern _X_EXPORT void
EnableLocalHost(void);
extern _X_EXPORT void
DisableLocalHost(void);
+#ifndef NO_LOCAL_CLIENT_CRED
+extern _X_EXPORT void
+EnableLocalUser(void);
+
+extern _X_EXPORT void
+DisableLocalUser(void);
+
+extern _X_EXPORT void
+LocalAccessScopeUser(void);
+#endif
+
extern _X_EXPORT void
AccessUsingXdmcp(void);
diff --git a/xorg-server/os/access.c b/xorg-server/os/access.c
index 8fa028eb4..75e7a6983 100644
--- a/xorg-server/os/access.c
+++ b/xorg-server/os/access.c
@@ -102,6 +102,10 @@ SOFTWARE.
#include <sys/ioctl.h>
#include <ctype.h>
+#ifndef NO_LOCAL_CLIENT_CRED
+#include <pwd.h>
+#endif
+
#if defined(TCPCONN) || defined(STREAMSCONN)
#include <netinet/in.h>
#endif /* TCPCONN || STREAMSCONN */
@@ -225,6 +229,13 @@ static int LocalHostEnabled = FALSE;
static int LocalHostRequested = FALSE;
static int UsingXdmcp = FALSE;
+static enum {
+ LOCAL_ACCESS_SCOPE_HOST = 0,
+#ifndef NO_LOCAL_CLIENT_CRED
+ LOCAL_ACCESS_SCOPE_USER,
+#endif
+} LocalAccessScope;
+
/* FamilyServerInterpreted implementation */
static Bool siAddrMatch(int family, void *addr, int len, HOST * host,
ClientPtr client);
@@ -237,6 +248,21 @@ static void siTypesInitialize(void);
*/
void
+EnableLocalAccess(void)
+{
+ switch (LocalAccessScope) {
+ case LOCAL_ACCESS_SCOPE_HOST:
+ EnableLocalHost();
+ break;
+#ifndef NO_LOCAL_CLIENT_CRED
+ case LOCAL_ACCESS_SCOPE_USER:
+ EnableLocalUser();
+ break;
+#endif
+ }
+}
+
+void
EnableLocalHost(void)
{
if (!UsingXdmcp) {
@@ -249,6 +275,21 @@ EnableLocalHost(void)
* called when authorization is enabled to keep us secure
*/
void
+DisableLocalAccess(void)
+{
+ switch (LocalAccessScope) {
+ case LOCAL_ACCESS_SCOPE_HOST:
+ DisableLocalHost();
+ break;
+#ifndef NO_LOCAL_CLIENT_CRED
+ case LOCAL_ACCESS_SCOPE_USER:
+ DisableLocalUser();
+ break;
+#endif
+ }
+}
+
+void
DisableLocalHost(void)
{
HOST *self;
@@ -262,6 +303,74 @@ DisableLocalHost(void)
}
}
+#ifndef NO_LOCAL_CLIENT_CRED
+static int GetLocalUserAddr(char **addr)
+{
+ static const char *type = "localuser";
+ static const char delimiter = '\0';
+ static const char *value;
+ struct passwd *pw;
+ int length = -1;
+
+ pw = getpwuid(getuid());
+
+ if (pw == NULL || pw->pw_name == NULL)
+ goto out;
+
+ value = pw->pw_name;
+
+ length = asprintf(addr, "%s%c%s", type, delimiter, value);
+
+ if (length == -1) {
+ goto out;
+ }
+
+ /* Trailing NUL */
+ length++;
+
+out:
+ return length;
+}
+
+void
+EnableLocalUser(void)
+{
+ char *addr = NULL;
+ int length = -1;
+
+ length = GetLocalUserAddr(&addr);
+
+ if (length == -1)
+ return;
+
+ NewHost(FamilyServerInterpreted, addr, length, TRUE);
+
+ free(addr);
+}
+
+void
+DisableLocalUser(void)
+{
+ char *addr = NULL;
+ int length = -1;
+
+ length = GetLocalUserAddr(&addr);
+
+ if (length == -1)
+ return;
+
+ RemoveHost(NULL, FamilyServerInterpreted, length, addr);
+
+ free(addr);
+}
+
+void
+LocalAccessScopeUser(void)
+{
+ LocalAccessScope = LOCAL_ACCESS_SCOPE_USER;
+}
+#endif
+
/*
* called at init time when XDMCP will be used; xdmcp always
* adds local hosts manually when needed
diff --git a/xorg-server/os/auth.c b/xorg-server/os/auth.c
index 5fcb538c4..7da6fc6ed 100644
--- a/xorg-server/os/auth.c
+++ b/xorg-server/os/auth.c
@@ -181,11 +181,11 @@ CheckAuthorization(unsigned int name_length,
/*
* If the authorization file has at least one entry for this server,
- * disable local host access. (loadauth > 0)
+ * disable local access. (loadauth > 0)
*
* If there are zero entries (either initially or when the
* authorization file is later reloaded), or if a valid
- * authorization file was never loaded, enable local host access.
+ * authorization file was never loaded, enable local access.
* (loadauth == 0 || !loaded)
*
* If the authorization file was loaded initially (with valid
@@ -194,11 +194,11 @@ CheckAuthorization(unsigned int name_length,
*/
if (loadauth > 0) {
- DisableLocalHost(); /* got at least one */
+ DisableLocalAccess(); /* got at least one */
loaded = TRUE;
}
else if (loadauth == 0 || !loaded)
- EnableLocalHost();
+ EnableLocalAccess();
}
if (name_length) {
for (i = 0; i < NUM_AUTHORIZATION; i++) {
diff --git a/xorg-server/os/backtrace.c b/xorg-server/os/backtrace.c
index 3d1195b86..fd129ef21 100644
--- a/xorg-server/os/backtrace.c
+++ b/xorg-server/os/backtrace.c
@@ -87,7 +87,7 @@ xorg_backtrace(void)
procname[1] = 0;
}
- if (dladdr((void *)(pip.start_ip + off), &dlinfo) && dlinfo.dli_fname &&
+ if (dladdr((void *)(uintptr_t)(pip.start_ip + off), &dlinfo) && dlinfo.dli_fname &&
*dlinfo.dli_fname)
filename = dlinfo.dli_fname;
else
@@ -95,7 +95,7 @@ xorg_backtrace(void)
ErrorFSigSafe("%u: %s (%s%s+0x%x) [%p]\n", i++, filename, procname,
ret == -UNW_ENOMEM ? "..." : "", (int)off,
- (void *)(pip.start_ip + off));
+ (void *)(uintptr_t)(pip.start_ip + off));
ret = unw_step(&cursor);
if (ret < 0)
diff --git a/xorg-server/present/present.c b/xorg-server/present/present.c
index 2a705a968..a6346015e 100644
--- a/xorg-server/present/present.c
+++ b/xorg-server/present/present.c
@@ -409,20 +409,20 @@ static void
present_unflip(ScreenPtr screen)
{
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
+ PixmapPtr pixmap = (*screen->GetScreenPixmap)(screen);
assert (!screen_priv->unflip_event_id);
assert (!screen_priv->flip_pending);
if (screen_priv->flip_window)
- present_set_tree_pixmap(screen_priv->flip_window,
- (*screen->GetScreenPixmap)(screen));
+ present_set_tree_pixmap(screen_priv->flip_window, pixmap);
- present_set_tree_pixmap(screen->root, (*screen->GetScreenPixmap)(screen));
+ present_set_tree_pixmap(screen->root, pixmap);
/* Update the screen pixmap with the current flip pixmap contents
*/
if (screen_priv->flip_pixmap && screen_priv->flip_window) {
- present_copy_region(&screen_priv->flip_window->drawable,
+ present_copy_region(&pixmap->drawable,
screen_priv->flip_pixmap,
NULL, 0, 0);
}
diff --git a/xorg-server/test/input.c b/xorg-server/test/input.c
index a4615c9c9..91ee43c46 100644
--- a/xorg-server/test/input.c
+++ b/xorg-server/test/input.c
@@ -1358,6 +1358,68 @@ dix_valuator_mode(void)
}
static void
+dix_input_valuator_masks_unaccel(void)
+{
+ ValuatorMask *mask = NULL;
+ double x, ux;
+
+ /* set mask normally */
+ mask = valuator_mask_new(MAX_VALUATORS);
+ assert(!valuator_mask_has_unaccelerated(mask));
+ valuator_mask_set_double(mask, 0, 1.0);
+ assert(!valuator_mask_has_unaccelerated(mask));
+ valuator_mask_unset(mask, 0);
+ assert(!valuator_mask_has_unaccelerated(mask));
+
+ /* all unset, now set accel mask */
+ valuator_mask_set_unaccelerated(mask, 0, 1.0, 2.0);
+ assert(valuator_mask_has_unaccelerated(mask));
+ assert(valuator_mask_isset(mask, 0));
+ assert(!valuator_mask_isset(mask, 1));
+ assert(valuator_mask_get_accelerated(mask, 0) == 1.0);
+ assert(valuator_mask_get_unaccelerated(mask, 0) == 2.0);
+ assert(valuator_mask_fetch_unaccelerated(mask, 0, &x, &ux));
+ assert(x == 1.0);
+ assert(ux == 2.0);
+ x = 0xff;
+ ux = 0xfe;
+ assert(!valuator_mask_fetch_unaccelerated(mask, 1, &x, &ux));
+ assert(x == 0xff);
+ assert(ux == 0xfe);
+
+ /* all unset, now set normally again */
+ valuator_mask_unset(mask, 0);
+ assert(!valuator_mask_has_unaccelerated(mask));
+ assert(!valuator_mask_isset(mask, 0));
+ valuator_mask_set_double(mask, 0, 1.0);
+ assert(!valuator_mask_has_unaccelerated(mask));
+ valuator_mask_unset(mask, 0);
+ assert(!valuator_mask_has_unaccelerated(mask));
+
+ valuator_mask_zero(mask);
+ assert(!valuator_mask_has_unaccelerated(mask));
+
+ valuator_mask_set_unaccelerated(mask, 0, 1.0, 2.0);
+ valuator_mask_set_unaccelerated(mask, 1, 3.0, 4.5);
+ assert(valuator_mask_isset(mask, 0));
+ assert(valuator_mask_isset(mask, 1));
+ assert(!valuator_mask_isset(mask, 2));
+ assert(valuator_mask_has_unaccelerated(mask));
+ assert(valuator_mask_get_accelerated(mask, 0) == 1.0);
+ assert(valuator_mask_get_accelerated(mask, 1) == 3.0);
+ assert(valuator_mask_get_unaccelerated(mask, 0) == 2.0);
+ assert(valuator_mask_get_unaccelerated(mask, 1) == 4.5);
+ assert(valuator_mask_fetch_unaccelerated(mask, 0, &x, &ux));
+ assert(x == 1.0);
+ assert(ux == 2.0);
+ assert(valuator_mask_fetch_unaccelerated(mask, 1, &x, &ux));
+ assert(x == 3.0);
+ assert(ux == 4.5);
+
+ valuator_mask_free(&mask);
+}
+
+static void
include_bit_test_macros(void)
{
uint8_t mask[9] = { 0 };
@@ -1847,6 +1909,7 @@ main(int argc, char **argv)
dix_enqueue_events();
dix_double_fp_conversion();
dix_input_valuator_masks();
+ dix_input_valuator_masks_unaccel();
dix_input_attributes();
dix_init_valuators();
dix_event_to_core_conversion();
diff --git a/xorg-server/xkeyboard-config/NEWS b/xorg-server/xkeyboard-config/NEWS
index cef7453d2..0919ab1d0 100644
--- a/xorg-server/xkeyboard-config/NEWS
+++ b/xorg-server/xkeyboard-config/NEWS
@@ -1,3 +1,5 @@
+2.15 7 bugs fixed
+ Translations updated
2.14 9 bugs fixed
Translations updated
2.13 7 bugs fixed
diff --git a/xorg-server/xkeyboard-config/configure.ac b/xorg-server/xkeyboard-config/configure.ac
index 28ac1703f..4315e5c31 100644
--- a/xorg-server/xkeyboard-config/configure.ac
+++ b/xorg-server/xkeyboard-config/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(xkeyboard-config, 2.14)
+AC_INIT(xkeyboard-config, 2.15)
AC_CONFIG_SRCDIR(rules/base.xml.in)
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
diff --git a/xorg-server/xkeyboard-config/po/ca.po b/xorg-server/xkeyboard-config/po/ca.po
index af91f987e..6efb4af85 100644
--- a/xorg-server/xkeyboard-config/po/ca.po
+++ b/xorg-server/xkeyboard-config/po/ca.po
@@ -5,17 +5,17 @@
# Josep Ma. Ferrer <txemaq@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-2.13.99\n"
+"Project-Id-Version: xkeyboard-config-2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-17 19:26+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-14 22:45+0200\n"
"Last-Translator: Josep Ma. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Lokalize 1.5\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: ../rules/base.xml.in.h:1
@@ -921,3088 +921,3100 @@ msgstr "Àrab (qwerty/dígits)"
msgid "Arabic (Buckwalter)"
msgstr "Àrab (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Àrab (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albanès"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albanès (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armeni"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armeni (fonètic)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armeni (fonètic alternatiu)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armeni (oriental)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armeni (occidental)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armeni (oriental alternatiu)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Alemany (Àustria)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Alemany (Àustria, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Alemany (Àustria, tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Alemany (Àustria, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Àzeri"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Àzeri (ciríl·lic)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Bielorús"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Bielorús (antic)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Bielorús (llatí)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belga"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belga (alternatiu)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belga (alternatiu, només llatí-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belga (alternatiu, tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belga (alternatiu ISO)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belga (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belga (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belga (Wang model 724 azerty)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengalí"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengalí (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indi"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengalí (Índia)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengalí (Índia, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengalí (Índia, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengalí (Índia, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengalí (Índia, Uni Gitanjali)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengalí (Índia, Inscript Baishakhi)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipuri (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gujarati"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Panjabi (Gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Panjabi (Gurmukhi Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (fonètic KaGaPa)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malaiàlam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malaiàlam (Lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malaiàlam (Inscript realçat, amb el signe de rupia)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Oriya"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tàmil (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tàmil (teclat amb nombres)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tàmil (tipus d'escriptura TAB)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tàmil (tipus d'escriptura TSCII)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tàmil"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (fonètic KaGaPa)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdú (fonètic)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdú (fonètic alternatiu)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdú (tecles Win)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (Bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (fonètic KaGaPa)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sànscrit (fonètic KaGaPa)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (fonètic KaGaPa)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Anglès (Índia, amb signe de rupia)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosnià"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosnià (amb cometes angulars per les cometes)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosnià (amb dígrafs bosnians)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosnià (teclat EUA amb dígrafs bosnians)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosnià (teclat EUA amb lletres bosnianes)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portuguès (Brasil)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portuguès (Brasil, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portuguès (Brasil, dvorak)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portuguès (Brasil, natiu)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portuguès (Brasil, natiu per als teclats EUA)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperanto (Portugal, natiu)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Búlgar"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Búlgar (fonètic tradicional)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Búlgar (fonètic nou)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Àrab (Marroc)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Francès (Marroc)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berber (Marroc, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Berber (Marroc, Tifinagh alternatiu)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berber (Marroc, Tifinagh fonètic alternatiu)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berber (Marroc, Tifinagh ampliat)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berber (Marroc, Tifinagh fonètic)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berber (Marroc, Tifinagh fonètic ampliat)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Anglès (Camerun)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Francès (Camerun)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Camerun multilingüe (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Camerun multilingüe (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Camerun multilingüe (dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Birmà"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Francès (Canadà)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Francès (Canadà, dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Francès (Canadà, antic)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Canadenc multilingüe"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Canadenc multilingüe (primera part)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Canadenc multilingüe (segona part)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Anglès (Canadà)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Francès (República Democràtica del Congo)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Xinès"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetà"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetà (amb nombres ASCII)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Uigur"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Croat"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Croat (amb cometes angulars per les cometes)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Croat (amb dígrafs croats)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Croat (teclat EUA amb dígrafs croats)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Croat (teclat EUA amb lletres croates)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Txec"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Txec (amb la tecla &lt;\\|&gt;)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Txec (qwerty)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Txec (qwerty, barra inversa ampliada)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Txec (disposició UCW, només lletres accentuades)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Txec (dvorak EUA que permet UCW CZ)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Danès"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Danès (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Danès (tecles Win)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Danès (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Danès (Macintosh, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Danès (dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Holandès"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Holandès (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Holandès (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Holandès (estàndard)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estonià"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estonià (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estonià (dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estonià (teclat EUA amb lletres estonianes)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Persa"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Persa (amb teclat persa)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurd (Iran, llatí Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurd (Iran, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurd (Iran, llatí Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurd (Iran, àrab-llatí)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Iraquià"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurd (Iraq, llatí Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurd (Iraq, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurd (Iraq, llatí Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurd (Iraq, àrab-llatí)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Feroès"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Feroès (elimina les tecles mortes)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finès"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finès (clàssic)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finès (clàssic, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finès (tecles Win)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Sami Nord (Finlàndia)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finès (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Francès"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Francès (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Francès (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Francès (alternatiu)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Francès (alternatiu, només llatí-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Francès (alternatiu, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Francès (alternatiu, tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Francès (antic, alternatiu)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Francès (antic, alternatiu, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Francès (antic, alternatiu, tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Francès (Bepo, ergonòmic, tipus dvorak)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Francès (Bepo, ergonòmic, tipus dvorak, només llatí-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Francès (dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Francès (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Francès (Bretó)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Occità"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Georgià (França, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Anglès (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Anglès (Ghana, multilingüe)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Haussa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Anglès (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Francès (Guinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Georgià"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Georgià (ergonòmic)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Georgià (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Rus (Geòrgia)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Osset (Geòrgia)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Alemany"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Alemany (accent mort)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Alemany (accent greu mort)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Alemany (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Alemany (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Romanès (Alemanya)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Romanès (Alemanya, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Alemany (dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Alemany (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Alemany (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Alemany (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Alemany (Macintosh, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Baix sòrab"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Baix sòrab (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Alemany (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turc (Alemanya)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Rus (alemany, fonètic)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Alemany (antic)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Grec"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Grec (senzill)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Grec (ampliat)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Grec (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Grec (politònic)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Hongarès"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Hongarès (estàndard)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Hongarès (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Hongarès (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Hongarès (101/qwertz/coma/tecles mortes)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Hongarès (101/qwertz/coma/elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Hongarès (101/qwertz/punt/tecles mortes)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Hongarès (101/qwertz/punt/elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Hongarès (101/qwerty/coma/tecles mortes)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Hongarès (101/qwerty/coma/elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Hongarès (101/qwerty/punt/tecles mortes)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Hongarès (101/qwerty/punt/elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Hongarès (102/qwertz/coma/tecles mortes)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Hongarès (102/qwertz/coma/elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Hongarès (102/qwertz/punt/tecles mortes)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Hongarès (102/qwertz/punt/elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Hongarès (102/qwerty/coma/tecles mortes)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Hongarès (102/qwerty/coma/elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Hongarès (102/qwerty/punt/tecles mortes)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Hongarès (102/qwerty/punt/elimina les tecles mortes)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Islandès"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Islandès (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Islandès (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Islandès (Macintosh, antic)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Islandès (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Islandès (dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebreu"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebreu (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebreu (fonètic)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebreu (bíblic, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italià"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italià (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italià (tecles Win)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italià (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italià (teclat EUA amb lletres italianes)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Georgià (Itàlia)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italià (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japonès"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japonès (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japonès (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japonès (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japonès (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japonès (dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirguís"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirguís (fonètic)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmer (Cambotja)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazakh"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Rus (Kazakhstan amb Kazakh)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazakh (amb rus)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Laosià"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Laosià (disposició estàndard proposada per STEA)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Espanyol (llatinoamericà)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Espanyol (llatinoamericà, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Espanyol (llatinoamericà, inclou la titlla morta)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Espanyol (llatinoamericà, tecles mortes de Sun)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Espanyol (llatinoamericà, dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Lituà"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Lituà (estàndard)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Lituà (teclat EUA amb lletres lituanes)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Lituà (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Lituà (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Lituà (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Letó"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Letó (variant amb apòstrof)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Letó (variant titlla)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Letó (variant F)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Letó (modern)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Letó (ergonòmic, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Letó (adaptat)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maori"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Montenegrí"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Montenegrí (ciríl·lic)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Montenegrí (ciríl·lic, ZE i ZHE intercanviades)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Montenegrí (llatí Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Montenegrí (llatí qwerty)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Montenegrí (llatí Unicode qwerty)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Montenegrí (ciríl·lic amb cometes angulars)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Montenegrí (llatí amb cometes angulars)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Macedoni"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Macedoni (elimina les tecles mortes)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltès"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltès (amb disposició EUA)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongol"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Noruec"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Noruec (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Noruec (tecles Win)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Noruec (dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Sami Nord (Noruega)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Sami Nord (Noruega, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Noruec (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Noruec (Macintosh, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Noruec (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polonès"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polonès (antic)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polonès (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polonès (dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polonès (dvorak, cometes poloneses a la tecla cometes)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polonès (dvorak, cometes poloneses a la tecla 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Caixubi"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Silesià"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Rus (Polònia, fonètic dvorak)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polonès (dvorak de programador)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portuguès"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portuguès (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portuguès (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portuguès (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portuguès (Macintosh, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portuguès (Macintosh, tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portuguès (natiu)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portuguès (natiu per als teclats EUA)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugal, natiu)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Romanès"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Romanès (ce trencada)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Romanès (estàndard)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Romanès (ce trencada estàndard)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Romanès (tecles Win)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Rus"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Rus (fonètic)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Rus (fonètic tecles Win)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Rus (màquina d'escriure)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Rus (antic)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Rus (màquina d'escriure, antic)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tàtar"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Osset (antic)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Osset (tecles Win)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Chuvash (llatí)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Iacut"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Calmuc"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Rus (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Rus (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbi (Rússia)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Baixkir"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Rus (fonètic azerty)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Rus (fonètic francès)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbi"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbi (ciríl·lic, ZE i ZHE intercanviades)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbi (llatí)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbi (llatí Unicode)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbi (llatí qwerty)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbi (llatí Unicode qwerty)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Serbi (ciríl·lic amb cometes angulars)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbi (llatí amb cometes angulars)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Rutè Pannònic"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Eslovè"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Eslovè (amb cometes angulars per les cometes)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Eslovè (teclat EUA amb lletres eslovenes)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Eslovac"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Eslovac (barra inversa ampliada)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Eslovac (qwerty)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Eslovac (qwerty, barra inversa ampliada)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Espanyol"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Espanyol (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Espanyol (tecles Win)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Espanyol (inclou la titlla morta)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Espanyol (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Espanyol (dvorak)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturià (Espanya, amb H punt baix i L amb punt baix)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Català (Espanya, L amb punt volat)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Espanyol (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Suec"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Suec (elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Suec (dvorak)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Rus (Suècia, fonètic)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Rus (Suècia, fonètic, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Sami del nord (Suècia)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Suec (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Suec (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Idioma de signes suec"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Alemany (Suïssa)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Alemany (Suïssa, antic)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Alemany (Suïssa, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Alemany (Suïssa, tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Francès (Suïssa)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Francès (Suïssa, elimina les tecles mortes)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Francès (Suïssa, tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Francès (Suïssa, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Alemany (Suïssa, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Àrab (Síria)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Siri"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Siríac (fonètic)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurd (Síria, llatí Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurd (Síria, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurd (Síria, llatí Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tadjik"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tadjik (antic)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Singalès (fonètic)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tàmil (Sri Lanka, Unicode)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tàmil (Sri Lanka, tipus d'escriptura TAB)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Singalès (teclat EUA amb lletres singaleses)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Tai"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Tai (TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Tai (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turc"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turc (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turc (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turc (tecles mortes de Sun)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurd (Turquia, llatí Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurd (Turquia, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurd (Turquia, llatí Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turc (internacional amb tecles mortes)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Tàtar de Crimea (Turc Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Tàtar de Crimea (Turc F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Tàtar de Crimea (Turc Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taiwanès"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taiwanès (indígena)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taiwan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ucraïnès"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ucraïnès (fonètic)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ucraïnès (màquina d'escriure)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ucraïnès (tecles Win)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ucraïnès (antic)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ucraïnès (estàndard RSTU)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Rus (Ucraïna, estàndard RSTU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ucraïnès (homofònic)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Anglès (RU)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Anglès (RU, tecles Win ampliades)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Anglès (RU, internacional amb tecles mortes)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Anglès (RU, dvorak)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Anglès (RU, dvorak amb puntuació RU)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Anglès (RU, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Anglès (RU, Macintosh internacional)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Anglès (RU, Colemak)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Usbec"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Usbec (llatí)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamita"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Coreà"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Coreà (compatible de 101/104 tecles)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japonès (sèries PC-98xx)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irlandès"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irlandès (UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogham (IS434)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdú (Pakistan)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdú (Pakistan, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdú (Pakistan, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Àrab (Pakistan)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Diveí"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Anglès (Sud-àfrica)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Esperanto (punt i coma i cometa desplaçats, obsolet)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalès"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Anglès (Nigèria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Ioruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amhàric"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braille (ma esquerra)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braille (ma dretà)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turcman"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turcman (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Francès (Mali, alternatiu)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Anglès (Mali, Macintosh EUA)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Anglès (Mali, internacional EUA)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Suahili (Tanzània)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Suahili (Kenya)"
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipí"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipí (QWERTY Baybayin)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipí (Capewell-dvorak llatí)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipí (Capewell-dvorak Baybayin)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipí (Capewell-QWERF 2006 llatí)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipí (Capewell-QWERF 2006 Baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipí (Colemak llatí)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipí (Colemak Baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipí (dvorak llatí)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipí (dvorak Baybayin)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldau"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldau (Gagauz)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Canvi a una altra disposició"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Alt dreta (mentre està premuda)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Alt esquerra (mentre està premuda)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Win esquerra (mentre està premuda)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Win dreta (mentre està premuda)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Qualsevol tecla Win (mentre estan premudes)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Bloq Maj (mentre està premuda), Alt+Bloq Maj efectua l'acció de Bloq Maj original"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl dreta (mentre està premuda)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Alt dreta"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Alt esquerra"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Bloq Majús"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Maj+Bloq Maj"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Bloq Maj (a la primera disposició), Maj+Bloq Maj (a la darrera disposició)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Win esquerra (a la primera disposició), Win/Menú dreta (a la darrera disposició)"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Ctrl esquerra (a la primera disposició), Ctrl dreta (a la darrera disposició)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Bloq Maj"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Les dues tecles Maj juntes"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Les dues tecles Alt juntes"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Les dues tecles Ctrl juntes"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Maj"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl esquerra+Maj esquerra"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Ctrl dreta+Maj dreta"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Maj"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Alt esquerra+Maj esquerra"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Espai"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menú"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Win esquerra"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Tecla Win+Espai"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Win dreta"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Maj esquerra"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Maj dreta"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Ctrl esquerra"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Ctrl dreta"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Bloq Despl"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Ctrl esquerra+Win esquerra (a la primera disposició), Ctrl dreta+Menú (a la segona disposició)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Tecla per a seleccionar el 3r nivell"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Qualsevol tecla Win"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Qualsevol tecla Alt"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Alt dreta, Maj+Alt dreta és la «Compose»"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "La tecla Alt dreta mai selecciona el 3r nivell"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Retorn en el teclat numèric"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Barra inversa"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Més petit/Més gran&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Bloq Maj selecciona el nivell 3r, bloqueja un cop en prémer conjuntament amb un altre selector de nivell 3r"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Barra inversa selecciona el nivell 3r, bloqueja un cop en prémer conjuntament amb un altre selector de 3r nivell"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Més petit/Més gran&gt; selecciona el nivell 3r, bloqueja un cop en prémer conjuntament amb un altre selector de nivell 3r"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Posició de la tecla Ctrl"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Bloq Majús com a Ctrl"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Ctrl esquerra com a Meta"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Intercanvia Ctrl i Bloq Maj"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "A l'esquerra d'«A»"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "A baix esquerra"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl dreta com a Alt dreta"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menú com a Ctrl dreta"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Alt dreta com a Ctrl dreta"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Intercanvia la tecla Alt esquerra per la tecla Ctrl esquerra"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Intercanvia la tecla Win esquerra per la tecla Ctrl esquerra"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Intercanvia la tecla Win dreta per la tecla Ctrl dreta"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Alt esquerra com a Ctrl, Ctrl esquerra com a Win, Win esquerra com a Alt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
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:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Bloq Núm"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Disposició del teclat numèric"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Antic"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Addicions Unicode (fletxes i operadors matemàtics)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
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 per defecte)"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Wang 724 antic"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
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:965
+#: ../rules/base.xml.in.h:968
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:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadecimal"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "Estil ATM/telèfon"
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Comportament de la tecla de supressió del teclat numèric"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Tecla antiga amb punt"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Tecla antiga amb coma"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Tecla de quatre nivells amb punt"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Tecla de quatre nivells amb punt, només llatí-9"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Tecla de quatre nivells amb coma"
# Què collons és momayyez? jm
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Tecla de quatre nivells amb momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Tecla de quatre nivells amb separadors abstractes"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Punt i coma al tercer nivell"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Comportament de la tecla Bloq Maj"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Bloq Maj usa internament les majúscules; Maj «pausa» Bloq Maj"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Bloq Maj usa internament les majúscules; Maj no afecta a Bloq Maj"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Bloq Maj actua com a Maj amb bloqueig; Maj «pausa» Bloq Maj"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Bloq Maj actua com a Maj amb bloqueig; Maj no afecta a Bloq Maj"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Bloq Maj commuta les majúscules normals dels caràcters alfabètics"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Converteix Bloq Maj en un Bloq Núm addicional"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Intercanvia Esc i Bloq Maj"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Converteix Bloq Maj en un Esc addicional"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Converteix Bloq Maj en un Retrocés addicional"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Converteix Bloq Maj en un Super addicional"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Converteix Bloq Maj en un Hyper addicional"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Bloq Maj commuta Maj (afecta a totes les tecles)"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Bloq Maj està deshabilitat"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Converteix Bloq Maj en un Ctrl addicional"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Comportament de la tecla Alt/Win"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Afegeix el comportament estàndard a la tecla Menú"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt i Meta són a les tecles Alt"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt s'assigna a les tecles Win (i a les tecles Alt habituals)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl s'assigna a les tecles Win (i a les tecles Ctrl habituals)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl s'assigna a les tecles Alt, Alt s'assigna a les tecles Win"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta s'assigna a les tecles Win"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta s'assigna a la tecla Win esquerra"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper s'assigna a les tecles Win"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt s'assigna a la tecla Win dreta i Super a Menú"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt està intercanviada amb la tecla Win"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Posició de la tecla «Compose»"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "3r nivell de Win esquerra"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "3r nivell de Win dreta"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "3r nivell de Menú"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "3r nivell de Ctrl esquerra"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "3r nivell de Ctrl dreta"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "3r nivell de Bloq Maj"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "3r nivell de &lt;Més petit/Més gran&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pausa"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "ImprPant"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Opcions de compatibilitat diverses"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Tecles del teclat numèric per defecte"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Les tecles del teclat numèric sempre introdueixen dígits (com en el Mac OS)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "BloqNúm actiu: dígits, Maj commuta a les tecles de cursor, BloqNúm inactiu: sempre les tecles de cursor (com en el MS Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Maj no cancel·la Bloq Núm, en el seu lloc selecciona el 3r nivell"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
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:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Teclat Apple Aluminium: emula les tecles del PC (Impr, Bloq Despl, Pausa, Bloq Núm)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Maj cancel·la Bloq Maj"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Habilita els caràcters tipogràfics extres"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Les dues tecles Maj juntes commuten Bloq Maj"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Les dues tecles Maj juntes commuten Bloq Maj, una tecla Maj ho desactiva"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Les dues tecles Maj juntes commuten Bloq Maj"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Maj + BloqNúm commuta les tecles de cursor"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Permetre trencar la captura amb accions del teclat (avís: risc de seguretat)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Permetre l'enregistrament de captura i de l'arbre de finestres"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "S'afegeix el signe de moneda a certes tecles"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro en la E "
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro en el 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro en el 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro en el 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupia en el 4"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Tecla per a seleccionar el 5è nivell"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Més petit/Més gran&gt; selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Alt dreta selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Win esquerra selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Win dreta selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
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:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Espai normal en qualsevol nivell"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
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:1045
+#: ../rules/base.xml.in.h:1048
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:1046
+#: ../rules/base.xml.in.h:1049
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:1047
+#: ../rules/base.xml.in.h:1050
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:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Caràcter d'espai sense salt al nivell quart"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
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:1050
+#: ../rules/base.xml.in.h:1053
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:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Caràcter separador d'amplada zero al nivell segon"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Caràcter separador d'amplada zero al nivell segon, un caràcter d'enllaç d'amplada zero al nivell tercer"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Caràcter separador d'amplada zero al nivell segon, un caràcter d'enllaç d'amplada zero al nivell tercer, i un caràcter d'espai sense salt al nivell quart"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Caràcter separador d'amplada zero al nivell segon, i un caràcter d'espai sense salt al nivell tercer"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Caràcter separador d'amplada zero al nivell segon, un caràcter d'espai sense salt al nivell tercer, i res al nivell quart"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Caràcter separador d'amplada zero al nivell segon, un caràcter d'espai sense salt al nivell tercer, i un enllaç d'amplada zero al nivell quart"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Caràcter separador d'amplada zero al nivell segon, 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:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Caràcter separador d'amplada zero al nivell tercer, un enllaç d'amplada zero al nivell quart"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Opcions del teclat japonès"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "La tecla de bloqueig Kana està blocant"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Retrocés estil NICOLA-F"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Converteix Zenkaku Hankaku en un Esc addicional"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Coreà tecles Hangul/Hanja"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Tecles Hangul/Hanja de maquinari"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Alt dreta com a Hangul, Ctrl dreta com a Hanja"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Ctrl dreta com a Hangul, Alt dreta com a Hanja"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "S'afegeix les lletres amb diacrític l'esperanto"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "A la tecla corresponent en una disposició qwerty"
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "A la tecla corresponent en una disposició dvorak"
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "A la tecla corresponent en una disposició Coleman"
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Manté la compatibilitat de tecles amb els codis de tecla antics de Solaris"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Compatibilitat amb les tecles Sun"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Seqüència de tecles per a matar el servidor X"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Retrocés"
@@ -4342,690 +4354,3 @@ msgstr "EurKEY (teclat de disposició EUA amb lletres europees)"
#: ../rules/base.extras.xml.in.h:152
msgid "Mmuock"
msgstr "Mmuock"
-
-#~ msgid "Shift with numeric keypad keys works as in MS Windows"
-#~ msgstr "Maj amb el teclat numèric funciona com al MS Windows"
-
-#~ msgid "Bengali"
-#~ msgstr "Bengalí"
-
-#~ msgid "Portuguese (Brazil, nativo for Esperanto)"
-#~ msgstr "Portuguès (Brasil, natiu per a l'esperanto)"
-
-#~ msgid "English (layout toggle on multiply/divide key)"
-#~ msgstr "Anglès (commutació de disposició en la tecla de multiplicació/divisió)"
-
-#~ msgid "Key(s) to change layout"
-#~ msgstr "Tecla(es) per a canviar la disposició"
-
-#~ msgid "Numeric keypad layout selection"
-#~ msgstr "Selecció de la disposició del teclat numèric"
-
-#~ msgid "Make Caps Lock an additional Control but keep the Caps_Lock keysym"
-#~ msgstr "Converteix Bloq Maj en un Bloq Núm addicional però manté el «keysym» «Caps_Lock»"
-
-#~ msgid "Compose key position"
-#~ msgstr "Posició de la tecla Compose"
-
-#~ msgid "Toggle PointerKeys with Shift + NumLock."
-#~ msgstr "Commuta les tecles de cursor amb Maj + BloqNum."
-
-#~ msgid ">German (Switzerland)"
-#~ msgstr ">Alemany (Suïssa)"
-
-#~ msgid "ca"
-#~ msgstr "ca"
-
-#~ msgid "Catalan"
-#~ msgstr "Català"
-
-#~ msgid "Serbian (Cyrillic)"
-#~ msgstr "Serbi (ciríl·lic)"
-
-#~ msgid "Gagauz"
-#~ msgstr "Gagaús"
-
-#~ msgid "Hebrew (Biblical SIL)"
-#~ msgstr "Hebreu (bíblic SIL)"
-
-#~ msgid "&lt;Less/Greater&gt; chooses 5th level and activates level5-Lock when pressed together with another 5th-level-chooser, one press releases the lock"
-#~ msgstr "&lt;Més petit/Més gran&gt; selecciona el nivell 5è i activa el bloqueig del nivell 5è en prémer conjuntament amb un altre selector de nivell 5è, una pulsació allibera el bloqueig"
-
-#~ msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock"
-#~ msgstr "&lt;Més petit/Més gran&gt; selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è, una pulsació allibera el bloqueig"
-
-#~ msgid "English (Cameroon Dvorak)"
-#~ msgstr "Anglès (dvorak del Camerun)"
-
-#~ msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock"
-#~ msgstr "Win esquerra selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è, una pulsació allibera el bloqueig"
-
-#~ msgid "Right Alt chooses 5th level and activates level5-Lock when pressed together with another 5th-level-chooser, one press releases the lock"
-#~ msgstr "Alt dreta selecciona el nivell 5è i activa el bloqueig de nivell 5è en prémer conjuntament amb un altre selector de nivell 5è, una pulsació allibera el bloqueig"
-
-#~ msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock"
-#~ msgstr "Alt dreta selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è, una pulsació allibera el bloqueig"
-
-#~ msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock"
-#~ msgstr "Win dreta selecciona el nivell 5è, bloqueja en prémer conjuntament amb un altre selector de nivell 5è, una pulsació allibera el bloqueig"
-
-#~ msgid "Serbian (Z and ZHE swapped)"
-#~ msgstr "Serbi (Z i ZHE intercanviades)"
-
-#~ msgid "Serbian (with guillemets)"
-#~ msgstr "Serbi (llatí amb cometes angulars)"
-
-#~ msgid "English (Cameroon qwerty)"
-#~ msgstr "Anglès (qwerty del Camerun)"
-
-#~ msgid "French (Cameroon azerty)"
-#~ msgstr "Francès (azerty del Camerun)"
-
-#~ msgid "Right Ctrl is mapped to Menu"
-#~ msgstr "Ctrl dreta s'assigna a Menú"
-
-#~ msgid "Sinhala"
-#~ msgstr "Singalès"
-
-#~ msgid "Afg"
-#~ msgstr "Afg"
-
-#~ msgid "Chinese (Tibetan)"
-#~ msgstr "Xinès (Tibetà)"
-
-#~ msgid "Chinese (Uyghur)"
-#~ msgstr "Xinès (Uigur)"
-
-#~ msgid "Danish (Mac)"
-#~ msgstr "Danès (Mac)"
-
-#~ msgid "Finnish (Mac)"
-#~ msgstr "Finès (Mac)"
-
-#~ msgid "Finnish (northern Saami)"
-#~ msgstr "Finès (Sami del nord)"
-
-#~ msgid "French (Occitan)"
-#~ msgstr "Francès (Occità)"
-
-#~ msgid "GBr"
-#~ msgstr "GBr"
-
-#~ msgid "German (Romanian keyboard with German letters, eliminate dead keys)"
-#~ msgstr "Alemany (teclat romanès amb lletres alemanyes, elimina les tecles mortes)"
-
-#~ msgid "Irish (Ogham)"
-#~ msgstr "Irlandès (Ogham)"
-
-#~ msgid "Italian (Georgian)"
-#~ msgstr "Italià (Georgià)"
-
-#~ msgid "Kurdish (Iran, latin alt-Q)"
-#~ msgstr "Kurd (Iran, llatí Alt-Q)"
-
-#~ msgid "Māori"
-#~ msgstr "Maori"
-
-#~ msgid "Norwegian (Northern Saami"
-#~ msgstr "Noruec (Sami del nord)"
-
-#~ msgid "Philippines - Dvorak (Baybayin)"
-#~ msgstr "Filipines - Dvorak (Baybayin)"
-
-#~ msgid "Portuguese (Nativo for Esperanto)"
-#~ msgstr "Portuguès (natiu per a l'esperanto)"
-
-#~ msgid "Romanian (Crimean Tatar Dobruca-2 Q)"
-#~ msgstr "Romanès (Tàtar de Crimea Dobruca-2 Q)"
-
-#~ msgid "Romanian (Crimean Tatar Turkish Alt-Q)"
-#~ msgstr "Romanès (Tàtar de Crimea Turc Alt-Q)"
-
-#~ msgid "Romanian (Crimean Tatar Turkish F)"
-#~ msgstr "Romanès (Tàtar de Crimea Turc F)"
-
-#~ msgid "Russian (Chuvash)"
-#~ msgstr "Rus (Chuvash)"
-
-#~ msgid "Russian (Kalmyk)"
-#~ msgstr "Rus (Calmuc)"
-
-#~ msgid "Russian (Komi)"
-#~ msgstr "Rus (Komi)"
-
-#~ msgid "Russian (Mari)"
-#~ msgstr "Rus (Mari)"
-
-#~ msgid "Russian (Ossetian, legacy)"
-#~ msgstr "Rus (Osset, antic)"
-
-#~ msgid "Russian (Serbian)"
-#~ msgstr "Rus (Sèrbia)"
-
-#~ msgid "Russian (Tatar)"
-#~ msgstr "Rus (Tàtar)"
-
-#~ msgid "Russian (Udmurt)"
-#~ msgstr "Rus (Udmurt)"
-
-#~ msgid "Russian (Yakut)"
-#~ msgstr "Rus (Iacut)"
-
-#~ msgid "Spanish (Mac)"
-#~ msgstr "Espanyol (Mac)"
-
-#~ msgid "Swedish (northern Saami)"
-#~ msgstr "Suec (Sami del nord)"
-
-#~ msgid "Swiss"
-#~ msgstr "Suís"
-
-#~ msgid "Turkish (Crimean Tatar Turkish Alt-Q)"
-#~ msgstr "Turc (Tàtar de Crimea Turc Alt-Q)"
-
-#~ msgid "Turkish (Crimean Tatar Turkish F)"
-#~ msgstr "Turc (Tàtar de Crimea Turc F)"
-
-#~ msgid "Turkish (Crimean Tatar Turkish Q)"
-#~ msgstr "Turc (Tàtar de Crimea Turc Q)"
-
-#~ msgid "Ukrainian (Crimean Tatar Turkish Alt-Q)"
-#~ msgstr "Ucraïnès (Tàtar de Crimea Turc Alt-Q)"
-
-#~ msgid "Ukrainian (Crimean Tatar Turkish F)"
-#~ msgstr "Ucraïnès (Tàtar de Crimea Turc F)"
-
-#~ msgid "Ukrainian (Crimean Tatar Turkish Q)"
-#~ msgstr "Ucraïnès (Tàtar de Crimea Turc Q)"
-
-#~ msgid "Ukrainian (standard RSTU on Russian layout)"
-#~ msgstr "Ucraïnès (estàndard RSTU en una disposició russa)"
-
-#~ msgid "irq"
-#~ msgstr "irq"
-
-#~ msgid "srp"
-#~ msgstr "srp"
-
-#~ msgid "twn"
-#~ msgstr "twn"
-
-#~ msgid "APL"
-#~ msgstr "APL"
-
-#~ msgid "Iran"
-#~ msgstr "Iran"
-
-#~ msgid "Lithuania"
-#~ msgstr "Lituània"
-
-#~ msgid "Lithuania - Dvorak"
-#~ msgstr "Lituània - Dvorak"
-
-#~ msgid "Ltu"
-#~ msgstr "Ltu"
-
-#~ msgid "Romania"
-#~ msgstr "Romania"
-
-#~ msgid "Rou"
-#~ msgstr "Rou"
-
-#~ msgid "Rus"
-#~ msgstr "Rus"
-
-#~ msgid "Russia"
-#~ msgstr "Rússia"
-
-#~ msgid "Serbia"
-#~ msgstr "Sèrbia"
-
-#~ msgid "Srb"
-#~ msgstr "Srb"
-
-#~ msgid "USA"
-#~ msgstr "EUA"
-
-#~ msgid "(F)"
-#~ msgstr "(F)"
-
-#~ msgid "Alb"
-#~ msgstr "Alb"
-
-#~ msgid "Alt-Q"
-#~ msgstr "Alt-Q"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativa"
-
-#~ msgid "Alternative Phonetic"
-#~ msgstr "Fonètic alternativa"
-
-#~ msgid "Alternative international"
-#~ msgstr "Internacional alternativa"
-
-#~ msgid "And"
-#~ msgstr "And"
-
-#~ msgid "Andorra"
-#~ msgstr "Andorra"
-
-#~ msgid "Ara"
-#~ msgstr "Ara"
-
-#~ msgid "Arm"
-#~ msgstr "Arm"
-
-#~ msgid "Aut"
-#~ msgstr "Aut"
-
-#~ msgid "Aze"
-#~ msgstr "Aze"
-
-#~ msgid "Bel"
-#~ msgstr "Bel"
-
-#~ msgid "Bgd"
-#~ msgstr "Bgd"
-
-#~ msgid "Bhutan"
-#~ msgstr "Bhutan"
-
-#~ msgid "Bih"
-#~ msgstr "Bih"
-
-#~ msgid "Blr"
-#~ msgstr "Blr"
-
-#~ msgid "Bosnia and Herzegovina"
-#~ msgstr "Bòsnia i Hercegovina"
-
-#~ msgid "Bra"
-#~ msgstr "Bra"
-
-#~ msgid "Brazil"
-#~ msgstr "Brasil"
-
-#~ msgid "Breton"
-#~ msgstr "Bretó"
-
-#~ msgid "Bwa"
-#~ msgstr "Bwa"
-
-#~ msgid "COD"
-#~ msgstr "COD"
-
-#~ msgid "CRULP"
-#~ msgstr "CRULP"
-
-#~ msgid "Canada"
-#~ msgstr "Canadà"
-
-#~ msgid "Cedilla"
-#~ msgstr "Trencat"
-
-#~ msgid "Chn"
-#~ msgstr "Chn"
-
-#~ msgid "Classic"
-#~ msgstr "Clàssic"
-
-#~ msgid "Colemak"
-#~ msgstr "Colemak"
-
-#~ msgid "Cyrillic"
-#~ msgstr "Ciríl·lic"
-
-#~ msgid "Cze"
-#~ msgstr "Cze"
-
-#~ msgid "DOS"
-#~ msgstr "DOS"
-
-#~ msgid "Dead acute"
-#~ msgstr "Accent mort"
-
-#~ msgid "Denmark"
-#~ msgstr "Dinamarca"
-
-#~ msgid "Dnk"
-#~ msgstr "Dnk"
-
-#~ msgid "Dvorak"
-#~ msgstr "Dvorak"
-
-#~ msgid "Eastern"
-#~ msgstr "Oriental"
-
-#~ msgid "Epo"
-#~ msgstr "Epo"
-
-#~ msgid "Ergonomic"
-#~ msgstr "Ergonòmic"
-
-#~ msgid "Est"
-#~ msgstr "Est"
-
-#~ msgid "Ethiopia"
-#~ msgstr "Etiòpia"
-
-#~ msgid "Extended"
-#~ msgstr "Ampliat"
-
-#~ msgid "Finland"
-#~ msgstr "Finlàndia"
-
-#~ msgid "Fra"
-#~ msgstr "Fra"
-
-#~ msgid "France"
-#~ msgstr "França"
-
-#~ msgid "GILLBT"
-#~ msgstr "GILLBT"
-
-#~ msgid "Georgia"
-#~ msgstr "Geòrgia"
-
-#~ msgid "Ghana"
-#~ msgstr "Ghana"
-
-#~ msgid "Gin"
-#~ msgstr "Gin"
-
-#~ msgid "Grc"
-#~ msgstr "Grc"
-
-#~ msgid "Guinea"
-#~ msgstr "Guinea"
-
-#~ msgid "Homophonic"
-#~ msgstr "Homofònic"
-
-#~ msgid "Hrv"
-#~ msgstr "Hrv"
-
-#~ msgid "Hun"
-#~ msgstr "Hun"
-
-#~ msgid "Ind"
-#~ msgstr "Ind"
-
-#~ msgid "Ireland"
-#~ msgstr "Irlanda"
-
-#~ msgid "Irl"
-#~ msgstr "Irl"
-
-#~ msgid "Irn"
-#~ msgstr "Irn"
-
-#~ msgid "Israel"
-#~ msgstr "Israel"
-
-#~ msgid "Jpn"
-#~ msgstr "Jpn"
-
-#~ msgid "Kana"
-#~ msgstr "Kana"
-
-#~ msgid "Kana 86"
-#~ msgstr "Kana 86"
-
-#~ msgid "Kenya"
-#~ msgstr "Kenya"
-
-#~ msgid "Kgz"
-#~ msgstr "Kgz"
-
-#~ msgid "Khm"
-#~ msgstr "Khm"
-
-#~ msgid "Korea, Republic of"
-#~ msgstr "Corea, República de"
-
-#~ msgid "Ktunaxa"
-#~ msgstr "Kutenai (Ktunaxa)"
-
-#~ msgid "LEKP"
-#~ msgstr "LEKP"
-
-#~ msgid "LEKPa"
-#~ msgstr "LEKPa"
-
-#~ msgid "Laos"
-#~ msgstr "Laos"
-
-#~ msgid "Latin"
-#~ msgstr "Llatí"
-
-#~ msgid "Left hand"
-#~ msgstr "Esquerrà"
-
-#~ msgid "Lva"
-#~ msgstr "Lva"
-
-#~ msgid "MESS"
-#~ msgstr "MESS"
-
-#~ msgid "MNE"
-#~ msgstr "MNE"
-
-#~ msgid "Macintosh (International)"
-#~ msgstr "Macintosh (Internacional)"
-
-#~ msgid "Maldives"
-#~ msgstr "Maldives"
-
-#~ msgid "Mali"
-#~ msgstr "Mali"
-
-#~ msgid "Mao"
-#~ msgstr "Mao"
-
-#~ msgid "Mkd"
-#~ msgstr "Mkd"
-
-#~ msgid "Mli"
-#~ msgstr "Mli"
-
-#~ msgid "Mng"
-#~ msgstr "Mng"
-
-#~ msgid "Myanmar"
-#~ msgstr "Myanmar"
-
-#~ msgid "NLA"
-#~ msgstr "NLA"
-
-#~ msgid "Nativo"
-#~ msgstr "Nativo"
-
-#~ msgid "Neo 2"
-#~ msgstr "Neo 2"
-
-#~ msgid "Netherlands"
-#~ msgstr "Països Baixos"
-
-#~ msgid "Nigeria"
-#~ msgstr "Nigèria"
-
-#~ msgid "Nld"
-#~ msgstr "Nld"
-
-#~ msgid "Nor"
-#~ msgstr "Nor"
-
-#~ msgid "Norway"
-#~ msgstr "Noruega"
-
-#~ msgid "OLPC Dari"
-#~ msgstr "OLPC Dari"
-
-#~ msgid "OLPC Pashto"
-#~ msgstr "OLPC Paixtu"
-
-#~ msgid "OLPC Southern Uzbek"
-#~ msgstr "OLPC Uzbek del sud"
-
-#~ msgid "Ossetian"
-#~ msgstr "Osset"
-
-#~ msgid "Phonetic"
-#~ msgstr "Fonètic"
-
-#~ msgid "Phonetic Winkeys"
-#~ msgstr "Tecles Win fonètiques"
-
-#~ msgid "Pol"
-#~ msgstr "Pol"
-
-#~ msgid "Poland"
-#~ msgstr "Polònia"
-
-#~ msgid "Probhat"
-#~ msgstr "Probhat"
-
-#~ msgid "Prt"
-#~ msgstr "Prt"
-
-#~ msgid "SRB"
-#~ msgstr "SRB"
-
-#~ msgid "Sen"
-#~ msgstr "Sen"
-
-#~ msgid "Senegal"
-#~ msgstr "Senegal"
-
-#~ msgid "Simple"
-#~ msgstr "Senzill"
-
-#~ msgid "Southern Uzbek"
-#~ msgstr "Uzbek del sud"
-
-#~ msgid "Spain"
-#~ msgstr "Espanya"
-
-#~ msgid "Sri Lanka"
-#~ msgstr "Sri Lanka"
-
-#~ msgid "Standard"
-#~ msgstr "Estàndard"
-
-#~ msgid "Svk"
-#~ msgstr "Svk"
-
-#~ msgid "Svn"
-#~ msgstr "Svn"
-
-#~ msgid "Swe"
-#~ msgstr "Swe"
-
-#~ msgid "Syria"
-#~ msgstr "Síria"
-
-#~ msgid "Tha"
-#~ msgstr "Tha"
-
-#~ msgid "Tifinagh"
-#~ msgstr "Tifinagh"
-
-#~ msgid "Tjk"
-#~ msgstr "Tjk"
-
-#~ msgid "Typewriter"
-#~ msgstr "Màquina d'escriure"
-
-#~ msgid "Tza"
-#~ msgstr "Tza"
-
-#~ msgid "Ukr"
-#~ msgstr "Ukr"
-
-#~ msgid "United Kingdom"
-#~ msgstr "Regne Unit"
-
-#~ msgid "Uzb"
-#~ msgstr "Uzb"
-
-#~ msgid "Vnm"
-#~ msgstr "Vnm"
-
-#~ msgid "Western"
-#~ msgstr "Occidental"
-
-#~ msgid "With EuroSign on 5"
-#~ msgstr "Amb el signe de l'euro al 5"
-
-#~ msgid "With guillemets"
-#~ msgstr "Amb cometes angulars"
-
-#~ msgid "Zaf"
-#~ msgstr "Zaf"
-
-#~ msgid "azerty"
-#~ msgstr "azerty"
-
-#~ msgid "digits"
-#~ msgstr "dígits"
-
-#~ msgid "lyx"
-#~ msgstr "lyx"
-
-#~ msgid "qwertz"
-#~ msgstr "qwertz"
-
-#~ msgid "2"
-#~ msgstr "2"
-
-#~ msgid "4"
-#~ msgstr "4"
-
-#~ msgid "5"
-#~ msgstr "5"
-
-#~ msgid "E"
-#~ msgstr "E"
-
-#~ msgid "LAm"
-#~ msgstr "LAm"
-
-#~ msgid "CapsLock"
-#~ msgstr "BloqMaj"
-
-#~ msgid "ScrollLock"
-#~ msgstr "BloqDespl"
-
-#~ msgid "ACPI Standard"
-#~ msgstr "ACPI estàndard"
-
-#~ msgid "DRC"
-#~ msgstr "DRC"
-
-#~ msgid "Dvorak international"
-#~ msgstr "Dvorak internacional"
-
-#~ msgid "Evdev-managed keyboard"
-#~ msgstr "Teclat gestionat per «evdev»"
-
-#~ msgid "Gre"
-#~ msgstr "Gre"
-
-#~ msgid "Gui"
-#~ msgstr "Gui"
-
-#~ msgid "Lav"
-#~ msgstr "Lav"
-
-#~ msgid "Nep"
-#~ msgstr "Nep"
-
-#~ msgid "SrL"
-#~ msgstr "SrL"
-
-#~ msgid "Baltic+"
-#~ msgstr "Baltic+"
-
-#~ msgid "IBM ThinkPad 560Z/600/600E/A22E, Intl"
-#~ msgstr "IBM ThinkPad 560Z/600/600E/A22E, Intl"
diff --git a/xorg-server/xkeyboard-config/po/cs.po b/xorg-server/xkeyboard-config/po/cs.po
index a5bb116ec..1185d62b6 100644
--- a/xorg-server/xkeyboard-config/po/cs.po
+++ b/xorg-server/xkeyboard-config/po/cs.po
@@ -21,10 +21,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 2.13.99\n"
+"Project-Id-Version: xkeyboard-config 2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-15 21:14+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-14 21:57+0200\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\n"
@@ -936,3087 +936,3099 @@ msgstr "Arabské (QWERTY/číslice)"
msgid "Arabic (Buckwalter)"
msgstr "Arabské (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Arabské (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albánské"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albánské (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Arménské"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Arménské (fonetické)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Arménské (alternativní fonetické)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Arménské (východní)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Arménské (západní)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Arménské (alternativní východní)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Německé (Rakousko)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Německé (Rakousko, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Německé (Rakousko, mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Německé (Rakousko, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Ázerbájdžánské"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Ázerbájdžánské (cyrilice)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Běloruské"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Běloruské (zděděné)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Běloruské (latinka)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belgické"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belgické (alternativní)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belgické (alternativní, pouze Latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belgické (alternativní, mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belgické (ISO alternativní)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belgické (vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belgické (mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belgické (Wang, model 724 AZERTY)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengálské"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengálské (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indické"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengálské (Indie)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengálské (Indie, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengálské (Indie, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengálské (Indie, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengálské (Indie, Uni Gitanjali)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengálské (Indie, Baishakhi Inscript)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipurské (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gudžarátské"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Paňdžábské (Gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Paňdžábské (Gurmukhi Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannadské"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannadské (fonetické KaGaPa)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malajálamské"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malajálamské (Lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malajálamské (rozšířený inscript se znakem rupie)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Urijské"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamilské (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamilské (klávesnice s číslicemi)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamilské (psací stroj TAB)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamilské (psací stroj TSCII)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamilské"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugské"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugské (fonetické KaGaPa)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdské (fonetické)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdské (alternativní fonetické)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdské (klávesy Win)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindské (Bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindské (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindské (fonetické KaGaPa)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sanskrtské (fonetické KaGaPa)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Maráthské (fonetické KaGaPa)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Anglické (Indie, se symbolem rupie)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosenské"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosenské (s francouzskými uvozovkami)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosenské (s bosenskými spřežkami)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosenské (americká klávesnice s bosenskými spřežkami)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosenské (americká klávesnice s bosenskými písmeny)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugalské (Brazílie)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugalské (Brazílie, bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugalské (Brazílie, Dvorak)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugalské (Brazílie, nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugalské (Brazílie, nativo pro americké klávesnice)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperantské (Brazílie, nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Bulharské"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Bulharské (tradiční fonetické)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Bulharské (nové fonetické)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Arabské (Maroko)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Francouzské (Maroko)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berberské (Maroko, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Berberské (Maroko, Tifinagh alternativní)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berberské (Maroko, Tifinagh alternativní fonetické)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berberské (Maroko, Tifinagh rozšířené)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berberské (Maroko, Tifinagh fonetické)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berberské (Maroko, Tifinagh rozšířené fonetické)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Anglické (Kamerun)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Francouzské (Kamerun)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Kamerunské vícejazyčné (QWERTY)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Kamerunské vícejazyčné (AZERTY)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Kamerunské vícejazyčné (Dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Barmské"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Francouzské (Kanada)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Francouzské (Kanada, Dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Francouzské (Kanada, zděděné)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Kanadské vícejazyčné"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Kanadské vícejazyčné (první část)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Kanadské vícejazyčné (druhá část)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitutské"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Anglické (Kanada)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Francouzské (Konžská demokratická republika)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Čínské"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetské"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetské (s číslicemi ASCII)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Ujgurské"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Chorvatské"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Chorvatské (s francouzskými uvozovkami)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Chorvatské (s chorvatskými spřežkami)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Chorvatské (americká klávesnice s chorvatskými spřežkami)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Chorvatské (americká klávesnice s chorvatskými písmeny)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "České"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "České (s klávesou &lt;\\|&gt;)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "České (QWERTY)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "České (QWERTY, rozšířená klávesa zpětného lomítka)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "České (rozložení UCW, pouze znaky s diakritikou)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "České (americké Dvorak s podporou CZ UCW)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Dánské"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Dánské (vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Dánské (klávesy Win)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Dánské (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Dánské (Macintosh, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Dánské (Dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Nizozemské"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Nizozemské (s mrtvými klávesami Sun)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Nizozemské (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Nizozemské (standardní)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkä"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estonské"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estonské (bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estonské (Dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estonské (americká klávesnice s estonskými písmeny)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Perské"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Perské (s perskou numerickou klávesnicí)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurdské (Írán, latinské Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurdské (Írán, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurdské (Írán, latinské Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurdské (Írán, arabsko-latinské)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Irácké"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurdské (Irák, latinské Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurdské (Irák, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurdské (Irák, latinské Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurdské (Irák, arabsko-latinské)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Faerské"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Faerské (bez mrtvých kláves)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finské"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finské (klasické)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finské (klasické, bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finské (klávesy Win)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Severosámské (Finsko)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finské (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Francouzské"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Francouzské (vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Francouzské (mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Francouzské (alternativní)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Francouzské (alternativní, pouze Latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Francouzské (alternativní, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Francouzské (alternativní, mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Francouzské (zděděné, alternativní)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Francouzské (zděděné, alternativní, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Francouzské (zděděné, alternativní, mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Francouzské (Bepo, ergonomické, typ Dvorak)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Francouzské (Bepo, ergonomické, typ Dvorak, pouze Latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Francouzské (Dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Francouzské (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Francouzské (bretonština)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Okcitánské"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Gruzínské (Francie, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Anglické (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Anglické (Ghana, vícejazyčné)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "GA"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Anglické (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Francouzské (Guinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Gruzínské"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Gruzínské (ergonomické)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Gruzínské (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Ruské (Gruzie)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Osetské (Gruzie)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Německé"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Německé (mrtvá čárka)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Německé (mrtvá opačná čárka - gravis)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Německé (vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Německé (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Rumunské (Německo)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Rumunské (Německo, bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Německé (Dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Německé (mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Německé (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Německé (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Německé (Macintosh, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Dolnolužické"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Dolnolužické (QWERTZ)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Německé (QWERTY)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turecké (Německo)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Ruské (Německo, fonetické)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Německé (zděděné)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Řecké"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Řecké (jednoduché)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Řecké (rozšířené)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Řecké (bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Řecké (polytónické)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Maďarské"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Maďarské (standardní)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Maďarské (vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Maďarské (QWERTY)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Maďarské (101/QWERTZ/čárka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Maďarské (101/QWERTZ/čárka/vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Maďarské (101/QWERTZ/tečka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Maďarské (101/QWERTZ/tečka/vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Maďarské (101/QWERTY/čárka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Maďarské (101/QWERTY/čárka/vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Maďarské (101/QWERTY/tečka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Maďarské (101/QWERTY/tečka/vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Maďarské (102/QWERTZ/čárka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Maďarské (102/QWERTZ/čárka/vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Maďarské (102/QWERTZ/tečka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Maďarské (102/QWERTZ/tečka/vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Maďarské (102/QWERTY/čárka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Maďarské (102/QWERTY/čárka/vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Maďarské (102/QWERTY/tečka/mrtvé klávesy)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Maďarské (102/QWERTY/tečka/vyloučit mrtvé klávesy)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Islandské"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Islandské (mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Islandské (bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Islandské (Macintosh, zděděné)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Islandské (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Islandské (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebrejské"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebrejské (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebrejské (fonetické)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebrejské (biblické, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italské"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italské (vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italské (klávesy Win)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italské (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italské (americká klávesnice s italskými znaky)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Gruzínské (Itálie)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italské (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japonské"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japonské (kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japonské (kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japonské (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japonské (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japonské (Dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kyrgyzské"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kyrgyzské (fonetické)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmérština (Kambodža)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazašské"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Ruské (Kazachstán, s kazaštinou)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazašské (s ruštinou)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Laoské"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Laoské (návrh standardního rozložení STEA)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Španělské (latinskoamerické)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Španělské (latinskoamerické, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Španělské (latinskoamerické, zahrnout mrtvou klávesu vlnovky)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Španělské (latinskoamerické, mrtvé klávesy Sun)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Španělské (latinskoamerické, Dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Litevské"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Litevské (standardní)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Litevské (americká klávesnice s litevskými písmeny)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Litevské (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Litevské (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Litevské (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Lotyšské"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Lotyšské (varianta s apostrofem)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Lotyšské (varianta s vlnovkou)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Lotyšské (varianta s F)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Lotyšské (moderní)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Lotyšské (ergonomické, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Lotyšské (přizpůsobené)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maorské"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Černohorské"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Černohorské (cyrilice)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Černohorské (cyrilice, prohozené З a Ж)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Černohorské (latinský Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Černohorské (latinské QWERTY)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Černohorské (latinské unicodové QWERTY)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Černohorské (cyrilice s francouzskými uvozovkami)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Černohorské (latinské s francouzskými uvozovkami)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Makedonské"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Makedonské (bez mrtvých kláves)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltézské"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltézské (s americkým rozložením)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongolské"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Norské"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Norské (bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Norské (klávesy Win)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Norské (Dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Severosámské (Norsko)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Severosámské (Norsko, bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Norské (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Norské (Macintosh, bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Norské (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polské"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polské (zděděné)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polské (QWERTZ)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polské (Dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polské (Dvorak, polské uvozovky na klávese uvozovky)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polské (Dvorak, polské uvozovky na klávese 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Kašubské"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Slezské"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Ruské (Polsko, fonetické Dvorak)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polské (programátorské Dvorak)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugalské"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugalské (bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugalské (s mrtvými klávesami Sun)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugalské (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugalské (Macintosh, bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugalské (Macintosh, s mrtvými klávesami Sun)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugalské (nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugalské (nativo pro americké klávesnice)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperantské (Portugalsko, nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Rumunské"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Rumunské (se cedillou)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Rumunské (standardní)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Rumunské (standardní se cedillou)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Rumunské (s klávesami Win)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Ruské"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Ruské (fonetické)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Ruské (fonetické klávesy Win)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Ruské (psací stroj)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Ruské (zděděné)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Ruské (psací stroj, zděděné)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatarské"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Osetské (zděděné)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Osetské (s klávesami Win)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Čuvašské"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Čuvašské (latinské)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurtské"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "jakutské"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Kalmycké"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Ruské (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Ruské (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Srbské (Rusko)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Baškirské"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Marijské"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Ruské (fonetické AZERTY)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Ruské (fonetické francouzské)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Srbské"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Srbské (cyrilice, prohozené З a Ж)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Srbské (latinka)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Srbské (latinka Unicode)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Srbské (latinka QWERTY)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Srbské (latinka Unicode QWERTY)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Srbské (cyrilice s francouzskými uvozovkami)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Srbské (latinka s francouzskými uvozovkami)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Panonsko-rusínské"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Slovinské"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Slovinské (s francouzskými uvozovkami)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Slovinské (americká klávesnice se slovinskými písmeny)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Slovenské"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Slovenské (rozšířená klávesa zpětného lomítka)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Slovenské (QWERTY)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Slovenské (QWERTY, rozšířená klávesa zpětného lomítka)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Španělské"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Španělské (vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Španělské (klávesy Win)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Španělské (zahrnout mrtvou klávesu vlnovky)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Španělské (mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Španělské (Dvorak)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturské (Španělsko, s H s tečkou pod a L s tečkou pod)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Katalánské (Španělsko, s Ŀ)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Španělské (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Švédské"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Švédské (bez mrtvých kláves)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Švédské (Dvorak)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Ruské (Švédsko, fonetické)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Ruské (Švédsko, fonetické, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Severosámské (Švédsko)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Švédské (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Švédské (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Švédský znakový jazyk"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Německé (Švýcarsko)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Německé (Švýcarsko, zděděné)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Německé (Švýcarsko, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Německé (Švýcarsko, mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Francouzské (Švýcarsko)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Francouzské (Švýcarsko, vyloučit mrtvé klávesy)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Francouzské (Švýcarsko, mrtvé klávesy Sun)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Francouzské (Švýcarsko, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Německé (Švýcarsko, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Arabské (Sýrie)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Syrské"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Syrské (fonetické)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurdské (Sýrie, latinské Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurdské (Sýrie, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurdské (Sýrie, latinské Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tádžické"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tádžické (zděděné)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
-msgstr "Synhálské (fonetické)"
+msgstr "Sinhálské (fonetické)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamilské (Šrí Lanka, Unicode)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamilské (Šrí Lanka, psací stroj TAB)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Sinhálské (americká klávesnice se sinhálskými znaky)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Thajské"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Thajské (TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Thajské (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turecké"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turecké (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turecké (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turecké (s mrtvými klávesami Sun)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurdské (Turecko, latinské Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurdské (Turecko, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurdské (Turecko, latinské Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turecké (mezinárodní s mrtvými klávesami)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krymskotatarské (turecké Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Krymskotatarské (turecké F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krymskotatarské (turecké Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Tchajwanské"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Tchajwanské (domorodé)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyatské (Tchaj-wan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ukrajinské"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ukrajinské (fonetické)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ukrajinské (psací stroj)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ukrajinské (klávesy Win)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ukrajinské (zděděné)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ukrajinské (standardní RSTU)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Ruské (Ukrajina, standardní RSTU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ukrajinské (stejně znějící)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Anglické (Británie)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Anglické (Británie, rozšířené - klávesy Win)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Anglické (Británie, mezinárodní s mrtvými klávesami)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Anglické (Británie, Dvorak)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Anglické (Británie, Dvorak s britskou interpunkcí)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Anglické (Británie, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Anglické (Británie, mezinárodní Macintosh)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Anglické (Británie, Colemak)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Uzbecké"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Uzbecké (latinka)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamské"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Korejské"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Korejské (kompatibilní se 101/104klávesovou klávesnicí)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japonské (řada PC-98xx)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irské"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "Gaelská latinka"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irské (UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogam"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogam (IS434)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdské (Pákistán)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdské (Pákistán, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdské (Pákistán, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Arabské (Pákistán)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhské"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Divehi"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Anglické (Jižní Afrika)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Esperanto (posunutý středník a uvozovka, zastaralé)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepálské"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Anglické (Nigérie)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Jorubské"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharské"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braillovo písmo"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braillovo písmo (levoruké)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braillovo písmo (pravoruké)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkménské"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkménské (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambarské"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Francouzské (Mali, alternativní)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Anglické (Mali, americké Macintosh)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Anglické (Mali, americké mezinárodní)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Svahilské (Tanzanie)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Svahilské (Keňa)"
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikujské"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Setswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipínské"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipínské (baybayinské QWERTY)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipínské (latinské Capewell-Dvorak)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipínské (baybayinské Capewell-Dvorak)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipínské (latinské Capewell-QWERF 2006)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipínské (baybayinské Capewell-QWERF 2006)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipínské (latinské Colemak)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipínské (baybayinské Colemak)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipínské (latinské Dvorak)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipínské (baybayinské Dvorak)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldavské"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldavské (Gagauzské)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Přepínající do jiného rozložení"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Pravá klávesa Alt (při stisknutí)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Levá klávesa Alt (při stisknutí)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Levá klávesa Win (při stisknutí)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Pravá klávesa Win (při stisknutí)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Libovolná klávesa Win (při stisknutí)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock 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:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Pravá klávesa Ctrl (při stisknutí)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Pravá klávesa Alt"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Levá klávesa Alt"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Shift+Caps Lock"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Caps Lock (na první rozložení), Shift+Caps Lock (na poslední rozložení)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
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:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Levá klávesa Ctrl (na první rozložení), pravá klávesa Ctrl (na poslední rozložení)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Caps Lock"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Obě klávesy Shift dohromady"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Obě klávesy Alt dohromady"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Obě klávesy Ctrl dohromady"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Levá klávesa Ctrl + levá klávesa Shift"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Pravá klávesa Ctrl + pravá klávesa Shift"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Levý Alt + levý Shift"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Mezerník"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Levá klávesa Win"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Klávesa Win + Mezerník"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Pravá klávesa Win"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Levá klávesa Shift"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Pravá klávesa Shift"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Levá klávesa Ctrl"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Pravá klávesa Ctrl"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Levý Ctrl + Levý Win (na první rozložení), pravý Ctrl + Menu (na druhém rozložení)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Klávesa umožňující výběr 3. úrovně"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Libovolná klávesa Win"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Libovolná klávesa Alt"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Pravý Alt, Shift a pravá klávesa Alt je Compose"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
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:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Enter na numerické klávesnici"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Zpětné lomítko"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Menší než/větší než&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Caps Lock vybírá 3. úroveň, jednorázově uzamyká při stisknutí společně s jinou výběrovou klávesou 3. úrovně"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Zpětné lomítko vybírá 3. úroveň, jednorázově uzamyká při stisknutí společně s jinou výběrovou klávesou 3. úrovně"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Menší než/Větší než&gt; vybírá 3. úroveň, jednorázově uzamyká při stisknutí společně s jinou výběrovou klávesou 3. úrovně"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Umístění klávesy Ctrl"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Caps Lock jako Ctrl"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Levý Ctrl jako Meta"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Zaměnit Ctrl a Caps Lock"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Nalevo od „A“"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "Vlevo dole"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Pravá klávesa Ctrl funguje jako pravá klávesa Alt"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menu jako pravý Ctrl"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Pravý Alt jako pravý Ctrl"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Levá klávesa Alt je prohozena s levou klávesou Ctrl"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Levá klávesa Win je prohozena s levou klávesou Ctrl"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Pravá klávesa Win je prohozena s pravou klávesou Ctrl"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Levý Alt jako Ctrl, Levý Ctrl jako Win, levý Win jako Alt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
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:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Num Lock"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Rozložení numerické klávesnice"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Zděděné"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Doplňky Unicode (šipky a matematické operátory)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
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:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Zděděná Wang 724"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
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:965
+#: ../rules/base.xml.in.h:968
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:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadecimální"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "ATM/telefonní typ"
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Chování klávesy Delete na numerické klávesnici"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Zděděná klávesa s tečkou"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Zděděná klávesa s čárkou"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Klávesa čtvrté úrovně s tečkou"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Klávesa čtvrté úrovně s tečkou, pouze Latin-9"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Klávesa čtvrté úrovně s čárkou"
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Klávesa čtvrté úrovně se znakem momajjez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Klávesa čtvrté úrovně s abstraktními oddělovači"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Středník na třetí úrovni"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Chování klávesy Caps Lock"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock používá vnitřní převod na verzálky, Shift přerušuje Caps Lock"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Caps Lock používá vnitřní převod na verzálky, Shift neovlivňuje Caps Lock"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock funguje jako Shift s uzamčením, Shift přerušuje Caps Lock"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Caps Lock funguje jako Shift s uzamčením, Shift neovlivňuje Caps Lock"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock 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:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Vytvořit z klávesy Caps Lock další Num Lock"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Zaměnit Esc a Caps Lock"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Vytvořit z klávesy Caps Lock další Esc"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Vytvořit z klávesy Caps Lock další Backspace"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Vytvořit z klávesy Caps Lock další Super"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Vytvořit z klávesy Caps Lock další Hyper"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Caps Lock přepne ShiftLock (ovlivňuje všechny klávesy)"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Klávesa Caps Lock je vypnuta"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Vytvořit z klávesy Caps Lock další Ctrl"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Chování klávesy Alt/Win"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Přidá standardní chování ke klávese Menu"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt a Meta na klávesách Alt"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt je přiřazen ke klávesám Win (a obvyklým klávesám Alt)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl je přiřazen ke klávesám Win (a obvyklým klávesám Ctrl)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl je přiřazen ke klávesám Alt, Alt je přiřazen ke klávesám Win"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta je přiřazena ke klávesám Win"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta je přiřazena k levé klávese Win"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper je přiřazena ke klávesám Win"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt je přiřazena k pravé klávese Win a Super k Menu"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt je prohozen s klávesou Win"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Umístění klávesy Compose"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "3. úroveň levého Win"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "3. úroveň pravého Win"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "3. úroveň Menu"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "3. úroveň levého Ctrl"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "3. úroveň pravého Ctrl"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "3. úroveň klávesy Caps Lock"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "3. úroveň &lt;Menší než/větší než&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause (Pauza)"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Dodatečné volby kompatibility"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Výchozí numerická klávesnice"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Klávesy numerické klávesnice vždy vrací číslice (jako u Mac OS)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "Zapnutý Num Lock: číslice, Shift přepíná na šipky, vypnutý Num Lock: vždy šipky (jako v MS Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Shift neruší Num Lock, namísto toho vybírá 3. úroveň"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
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:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Apple Aluminium Keyboard: emulovat klávesy PC (Print, Scroll Lock, Pause, Num Lock)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Shift ruší Caps Lock"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Povolit přídavné znaky hladké sazby"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Obě klávesy Shift dohromady přepnou Caps Lock"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Obě klávesy Shift dohromady zapnou Caps Lock, jediná klávesa Shift jej vypne"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Obě klávesy Shift dohromady přepnou ShiftLock"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Shift + Num Lock přepne PointerKeys (ovládání ukazatele)"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Umožní porušit uzamčení vstupů pomocí akcí klávesnice (pozor: bezpečnostní riziko)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Umožní protokolování uzamčení vstupů a stromu oken"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Přidává znaky měny k určitým klávesám"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro na E"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro na 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro na 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro na 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupie na 4"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Klávesa umožňující výběr 5. úrovně"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Menší než/Větší než&gt; vybírá 5. úroveň, uzamyká při stisknutí společně s jinou výběrovou klávesou 5. úrovně"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Pravá klávesa Alt vybírá 5. úroveň, uzamyká při stisknutí společně s jinou výběrovou klávesou 5. úrovně"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Levá klávesa Win vybírá 5. úroveň, uzamyká při stisknutí společně s jinou výběrovou klávesou 5. úrovně"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Pravá klávesa Win vybírá 5. úroveň, uzamyká při stisknutí společně s jinou výběrovou klávesou 5. úrovně"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
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:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Na jakékoliv úrovni znak běžné mezery"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Na druhé úrovni znak nedělitelné mezery"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Na třetí úrovni znak nedělitelné mezery"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
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:1047
+#: ../rules/base.xml.in.h:1050
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:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Na čtvrté úrovni znak nedělitelné mezery"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
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:1050
+#: ../rules/base.xml.in.h:1053
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:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Na druhé úrovni znak nespojovače nulové šířky"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Na druhé úrovni znak nespojovače nulové šířky, znak spojovače nulové šířky na třetí úrovni"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Na druhé úrovni znak nespojovače nulové šířky, znak spojovače nulové šířky na třetí úrovni, nedělitelná mezera na čtvrté úrovni"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Na druhé úrovni znak nespojovače nulové šířky, nedělitelná mezera na třetí úrovni"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Na druhé úrovni znak nespojovače nulové šířky, na třetí úrovni nedělitelná mezera, nic na úrovni čtvrté"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Na druhé úrovni znak nespojovače nulové šířky, nedělitelná mezera na třetí úrovni, spojovač nulové šířky na úrovni čtvrté"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Na druhé úrovni znak nespojovače nulové šířky, nedělitelná mezera na třetí úrovni, tenká nedělitelná mezera na čtvrté úrovni"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Na třetí úrovni znak nespojovače nulové šířky, znak spojovače nulové šířky na úrovni čtvrté"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Volby japonské klávesnice"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Klávesa Kana Lock uzamyká"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Backspace typu NICOLA-F"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Vytvoří z klávesy Zenkaku/Hankaku další Esc"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Korejský hangul/klávesy handža"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Hardwarový hangul/klávesy handža"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Pravý Alt jako Hangul, pravý Ctrl jako Handža"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Pravá klávesa Ctrl jako Hangul, pravý Alt jako Handža"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Přidává diakritiku jazyka esperanto"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "K odpovídající klávese na rozložení QWERTY"
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "K odpovídající klávese na rozložení Dvorak"
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "K odpovídající klávese na rozložení Colemak"
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Udržovat kompatibilitu kláves se starými kódy kláves Solarisu"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Kompatibilita se Sun Key"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Pořadí kláves zabíjející server X"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Backspace"
diff --git a/xorg-server/xkeyboard-config/po/da.po b/xorg-server/xkeyboard-config/po/da.po
index d0d212891..d6ea2a7cc 100644
--- a/xorg-server/xkeyboard-config/po/da.po
+++ b/xorg-server/xkeyboard-config/po/da.po
@@ -1,8 +1,8 @@
# Danish translation of xkeyboard-config.
-# Copyright (C) 2014 Free Software Foundation, Inc.
+# Copyright (C) 2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the xkeyboard-config package.
# Ole Laursen <olau@hardworking.dk>, 2003.
-# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
+# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015.
# Korrekturlæsning "Lars Christian Jensen" <larschrjensen@gmail.com>, 2010.
# Korrekturlæsning "Ask Hjorth Larsen" <asklarsen@gmail.com>, 2011.
#
@@ -31,10 +31,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-2.12.99\n"
+"Project-Id-Version: xkeyboard-config-2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2014-09-18 23:46+0100\n"
-"PO-Revision-Date: 2014-10-04 23:06+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-14 23:06+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@@ -780,11 +780,11 @@ msgid "Htc Dream phone"
msgstr "Htc Dream-telefon"
#. Keyboard indicator for English layouts
-#: ../rules/base.xml.in.h:186 ../rules/base.extras.xml.in.h:46
+#: ../rules/base.xml.in.h:186 ../rules/base.extras.xml.in.h:47
msgid "en"
msgstr "en"
-#: ../rules/base.xml.in.h:187 ../rules/base.extras.xml.in.h:47
+#: ../rules/base.xml.in.h:187 ../rules/base.extras.xml.in.h:48
msgid "English (US)"
msgstr "Engelsk (US)"
@@ -842,7 +842,7 @@ msgid "English (programmer Dvorak)"
msgstr "Engelsk (programmørdvorak)"
#. Keyboard indicator for Russian layouts
-#: ../rules/base.xml.in.h:203 ../rules/base.extras.xml.in.h:69
+#: ../rules/base.xml.in.h:203 ../rules/base.extras.xml.in.h:70
msgid "ru"
msgstr "ru"
@@ -875,7 +875,7 @@ msgid "English (Workman, international with dead keys)"
msgstr "Engelsk (Workman, international med døde taster)"
#. Keyboard indicator for Persian layouts
-#: ../rules/base.xml.in.h:212 ../rules/base.extras.xml.in.h:28
+#: ../rules/base.xml.in.h:212 ../rules/base.extras.xml.in.h:29
msgid "fa"
msgstr "fa"
@@ -914,11 +914,11 @@ msgid "Uzbek (Afghanistan, OLPC)"
msgstr "Usbekisk (Afghanistan, OLPC)"
#. Keyboard indicator for Arabic layouts
-#: ../rules/base.xml.in.h:224 ../rules/base.extras.xml.in.h:80
+#: ../rules/base.xml.in.h:224 ../rules/base.extras.xml.in.h:81
msgid "ar"
msgstr "ar"
-#: ../rules/base.xml.in.h:225 ../rules/base.extras.xml.in.h:81
+#: ../rules/base.xml.in.h:225 ../rules/base.extras.xml.in.h:82
msgid "Arabic"
msgstr "Arabisk"
@@ -946,1787 +946,1803 @@ msgstr "Arabisk (qwerty/cifre)"
msgid "Arabic (Buckwalter)"
msgstr "Arabisk (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Arabisk (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albansk"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albansk (plisi d1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:74
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armensk"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armensk (fonetisk)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armensk (alternativ fonetisk)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armensk (østlig)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armensk (vestlig)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armensk (alternativ østlig)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Tysk (Østrig)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Tysk (Østrig, slå døde taster fra)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Tysk (Østrig, Sun døde taster)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Tysk (Østrig, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Aserbajdsjansk"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Aserbajdsjansk (kyrillisk)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Hviderussisk"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Hviderussisk (forældet)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Hviderussisk (latin)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:83
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belgisk"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belgisk (alternativ)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belgisk (alternativ, kun latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belgisk (alternativ, Sun døde taster)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belgisk (ISO-alternativ)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belgisk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belgisk (Sun døde taster)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belgisk (Wang model 724 azerty)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengali"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengali (probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indisk"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengali (Indien)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengali (Indien, probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengali (Indien, baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengali (Indien, bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengali (Indien, uni gitanjali)"
# http://en.wikipedia.org/wiki/InScript_keyboard
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengali (Indien, baishakhi inscript)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipuri (eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gujarati"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Punjabi (Gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Punjabi (Gurmukhi Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (KaGaPa fonetisk)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malayalamsk (Lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malayalamsk (udvidet inscript med rupeetegn)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Oriya"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamilsk (unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamilsk (tastatur med numre)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamilsk (TAB-skrivemaskine)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamilsk (TSCII-skrivemaskine)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamilsk"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (KaGaPa fonetisk)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdu (fonetisk)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdu (alternativ fonetisk)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdu (Win-taster)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (KaGaPa fonetisk)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sanskrit (KaGaPa fonetisk)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (KaGaPa fonetisk)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Engelsk (Indien, med rupeetegn)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosnisk"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosnisk (med »« som anførelsestegn)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosnisk (med bosniske digrafer)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosnisk (US-tastatur med bosniske digrafer)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosnisk (US-tastatur med bosniske bogstaver)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:86
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugisisk (brasiliansk)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugisisk (brasiliansk, slå døde taster fra)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugisisk (brasiliansk, dvorak)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugisisk (brasiliansk, nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugisisk (brasiliansk, nativo for USA-tastaturer)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperanto (brasiliansk, nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Bulgarsk"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Bulgarsk (traditionel fonetisk)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Bulgarsk (ny fonetisk)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Arabisk (Marokko)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Fransk (Marokko)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berbisk (Marokko, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Berbisk (Marokko, Tifinagh alternativ)"
# http://retskrivningsordbogen.dk/ro/ro.htm?q=berb
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berbisk (Marokko, tifinagh alternativ fonetisk)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berbisk (Marokko, Tifinagh udvidet)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berbisk (Marokko, Tifinagh fonetisk)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berbisk (Marokko, Tifinagh udvidet fonetisk)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:149
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Engelsk (camerounsk)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Fransk (camerounsk)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Camerounsk flersproget (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Camerounsk flersproget (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Camerounsk flersproget (dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Burmesisk"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Fransk (Canada)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Fransk (Canada, dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Fransk (Canada, forældet)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Canadisk flersproget"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Canadisk flersproget (første del)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Canadisk flersproget (anden del)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Engelsk (Canada)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Fransk (Congo, Den Demokratiske Republik)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Kinesisk"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetansk"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetansk (med ASCII-numre)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Uyghur"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Kroatisk"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Kroatisk (med »« som anførelsestegn)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Kroatisk (med kroatiske digrafer)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Kroatisk (US-tastatur med kroatiske digrafer)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Kroatisk (US-tastatur med kroatiske bogstaver)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:89
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Tjekkisk"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Tjekkisk (med &lt;\\|&gt;-tast)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Tjekkisk (qwerty)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Tjekkisk (qwerty, udvidet omvendt skråstreg)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Tjekkisk (UCW-layout, kun bogstaver med accent)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Tjekkisk (US Dvorak med CZ UCW-understøttelse)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:92
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Dansk"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Dansk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Dansk (Wintaster)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Dansk (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Dansk (Macintosh, slå døde taster fra)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Dansk (dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:95
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Hollandsk"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Hollandsk (Sun døde taster)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Hollandsk (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Hollandsk (standard)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:98
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estisk"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estisk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estisk (dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estisk (US-tastatur med estiske bogstaver)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:29
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Persisk"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Persisk (med persisk numerisk tastatur)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurdisk (Iran, latin Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurdisk (Iran, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurdisk (Iran, latin Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurdisk (Iran, arabisk-latin)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Irakisk"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurdisk (Irak, latin Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurdisk (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurdisk (Irak, latin Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurdisk (Irak, arabisk-latin)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Færøsk"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Færøsk (slå døde taster fra)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:101
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finsk"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finsk (klassisk)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finsk (klassisk, slå døde taster fra)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finsk (Wintaster)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Nordligt samisk (Finland)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finsk (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:104
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Fransk"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Fransk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Fransk (Sun døde taster)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Fransk (alternativ)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Fransk (alternativ, kun latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Fransk (alternativ, slå døde taster fra)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Fransk (alternativ, Sun døde taster)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Fransk (forældet, alternativ)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Fransk (forældet, alternativ, slå døde taster fra)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Fransk (forældet, alternativ, Sun døde taster)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Fransk (Bepo, ergonomisk, dvorakmåde)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Fransk (Bepo, ergonomisk, dvorakmåde, kun latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Fransk (dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Fransk (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Fransk (bretonsk)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Occitansk"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Geogrisk (Frankrig, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Engelsk (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Engelsk (Ghana, flersproget)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
# The Avatime are an Akan people who live in Volta region of Ghana. History has it
# that they are Ahanta people who migrated to the Volta region.
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Engelsk (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Fransk (Guinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Georgisk"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Georgisk (ergonomisk)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Georgisk (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Russisk (georgisk)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Occitansk (Georgien)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Tysk"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Tysk (død accent)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Tysk (død accent grave)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Tysk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Tysk (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Rumænsk (Tyskland)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Rumænsk (Tyskland, slå døde taster fra)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Tysk (dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Tysk (Sun døde taster)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Tysk (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Tysk (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Tysk (Macintosh, slå døde taster fra)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Nedersorbisk"
# nedersorbisk, tror jeg
# (el. nedre Lausitz)
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Nedersorbisk (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Tysk (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Tyrkisk (Tyskland)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Russisk (Tyskland, fonetisk)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Tysk (forældet)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:106
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Græsk"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Græsk (simpel)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Græsk (udvidet)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Græsk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Græsk (polytonisk)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Ungarsk"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Ungarsk (standard)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Ungarsk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Ungarsk (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Ungarsk (101/qwertz/komma/døde taster)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Ungarsk (101/qwertz/komma/slå døde taster fra)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Ungarsk (101/qwertz/punktum/døde taster)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Ungarsk (101/qwertz/punktum/slå døde taster fra)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Ungarsk (101/qwerty/komma/døde taster)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Ungarsk (101/qwerty/komma/slå døde taster fra)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Ungarsk (101/qwerty/punktum/døde taster)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Ungarsk (101/qwerty/punktum/slå døde taster fra)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Ungarsk (102/qwertz/komma/døde taster)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Ungarsk (102/qwertz/komma/slå døde taster fra)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Ungarsk (102/qwertz/punktum/døde taster)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Ungarsk (102/qwertz/punktum/slå døde taster fra)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Ungarsk (102/qwerty/komma/døde taster)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Ungarsk (102/qwerty/komma/slå døde taster fra)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Ungarsk (102/qwerty/punktum/døde taster)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Ungarsk (102/qwerty/punktum/slå døde taster fra)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Islandsk"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Islandsk (Sun døde taster)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Islandsk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Islandsk (Macintosh, forældet)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Islandsk (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Islandsk (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:77
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebraisk"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebraisk (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebraisk (fonetisk)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebraisk (bibelsk, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:109
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italiensk"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italiensk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italiensk (Wintaster)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italiensk (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italiensk (US-tastatur med italienske bogstaver)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Georgisk (Italien)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italiensk (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:112
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japansk"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japansk (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japansk (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japansk (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japansk (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japansk (dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirgisisk"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirgisisk (fonetisk)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmerisk (Cambodja)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kasakhisk"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Russisk (Kasakhstan, med kazakhisk)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kasakhisk (med russisk)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Lao (STEA-foreslået standardlayout)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:125
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Spansk (latinamerikansk)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Spansk (latinamerikansk, slå døde taster fra)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Spansk (latinamerikansk, inkluder død tilde)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Spansk (latinamerikansk, Sun døde taster)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Spansk (latinamerikansk, dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:31
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Litauisk"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Litauisk (standard)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Litauisk (US-tastatur med litauiske bogstaver)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Litauisk (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Litauisk (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Litauisk (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:35
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Lettisk"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Lettisk (apostrofvariant)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Lettisk (tildevariant)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Lettisk (F-variant)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Lettisk (moderne)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Lettisk (ergonomisk, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Lettisk (adapteret)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maori"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:66
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Montenegrinsk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Montenegrinsk (kyrillisk)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Montenegrinsk (kyrillisk, ZE og ZHE ombyttet)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Montenegrinsk (latin Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Montenegrinsk (latin qwerty)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Montenegrinsk (latin Unicode qwerty)"
# guillemets er dem her: »«
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Montenegrinsk (kyrillisk med anførelsestegnene »«)"
# guillemets er dem her: »«
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Montenegrinsk (latin med anførelsestegnene »«)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Makedonsk"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Makedonsk (slå døde taster fra)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltesisk"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltesisk (med US-layout)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongolsk"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:117
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Norsk"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Norsk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Norsk (Wintaster)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Norsk (dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Nordligt samisk (Norge)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Nordligt samisk (Norge, slå døde taster fra)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Norsk (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Norsk (Macintosh, slå døde taster fra)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Norsk (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:55
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polsk"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polsk (forældet)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polsk (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polsk (dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polsk (dvorak, polske anførelsestegn på anførelsestast)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polsk (dvorak, polske anførelsestegn på tast 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Kashubian"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Schlesisk"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Russisk (Polen, fonetisk dvorak)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polsk (programmørdvorak)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:120
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugisisk"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugisisk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugisisk (Sun døde taster)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugisisk (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugisisk (Macintosh, slå døde taster fra)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugisisk (Macintosh, Sun døde taster)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugisisk (nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugisisk (nativo for USA-tastaturer)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugal, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:60
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Rumænsk"
# http://da.wikipedia.org/wiki/%C3%87
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Rumænsk (cedille)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Rumænsk (standard)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Rumænsk (standardcedille)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Rumænsk (Wintaster)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:70
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Russisk"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Russisk (fonetisk)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Russisk (fonetisk Wintaster)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Russisk (skrivemaskine)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Russisk (forældet)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Russisk (skrivemaskine, forældet)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Occitansk (forældet)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Occitansk (Wintaster)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Chuvash (latin)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Yakut"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Russisk (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Russisk (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbisk (Rusland)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Bashkirisk"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:701
+msgid "Russian (phonetic azerty)"
+msgstr "Russisk (fonetisk azerty)"
+
+#: ../rules/base.xml.in.h:702
+msgid "Russian (phonetic French)"
+msgstr "Russisk (fonetisk fransk)"
+
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbisk"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbisk (kyrillisk, ZE og ZHE ombyttet)"
-#: ../rules/base.xml.in.h:701
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbisk (latin)"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbisk (latin unicode)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbisk (latin qwerty)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbisk (latin unicode qwerty)"
# guillemets er dem her: »«
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Serbisk (kyrillisk med anførelsestegnene »«)"
# guillemets er dem her: »«
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbisk (latin med anførelsestegnene »«)"
# Pannonian Rusyn or simply Rusyn (Ruthenian) is a Slavic language or dialect spoken
# in north-western Serbia and eastern Croatia
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Pannonisk rusyn"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:710
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Slovensk"
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Slovensk (med »« som anførelsestegn)"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Slovensk (US-tastatur med slovenske bogstaver)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:714 ../rules/base.extras.xml.in.h:122
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:715 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Slovakisk"
-#: ../rules/base.xml.in.h:716
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Slovakisk (udvidet omvendt skråstreg)"
-#: ../rules/base.xml.in.h:717
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Slovakisk (qwerty)"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Slovakisk (qwerty, udvidet omvendt skråstreg)"
-#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Spansk"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Spansk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:721
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Spansk (Wintaster)"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Spansk (inkluder død tilde)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Spansk (Sun døde taster)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Spansk (dvorak)"
@@ -2734,1147 +2750,1151 @@ msgstr "Spansk (dvorak)"
# language of the West Iberian group, Astur-Leonese
# Subgroup, spoken in the Spanish province of Asturias
# by the Asturian people.
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturisk (Spanien, med bundpunktum H og bundpunktum L)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Catalansk (Spanien, med midterpunktum L)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Spansk (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:729 ../rules/base.extras.xml.in.h:128
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:730 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Svensk"
-#: ../rules/base.xml.in.h:731
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Svensk (slå døde taster fra)"
-#: ../rules/base.xml.in.h:732
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Svensk (dvorak)"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Russisk (Sverige, fonetisk)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Russisk (Sverige, fonetisk, slå døde taster fra)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Nordligt samisk (Sverige)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Svensk (Macintosh)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Svensk (svdvorak)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Svensk tegnsprog"
-#: ../rules/base.xml.in.h:739 ../rules/base.extras.xml.in.h:132
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Tysk (Schweiz)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Tysk (Schweiz, forældet)"
-#: ../rules/base.xml.in.h:741
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Tysk (Schweiz, slå døde taster fra)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Tysk (Schweiz, Sun døde taster)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Fransk (Schweiz)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Fransk (Schweiz, slå døde taster fra)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Fransk (Schweiz, Sun døde taster)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Fransk (Schweiz, Macintosh)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Tysk (Schweiz, Macintosh)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Arabisk (Syrien)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:751
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Syrisk"
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Syrisk (fonetisk)"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurdisk (Syrien, latin Q)"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurdisk (Syrien, F)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurdisk (Syrien, latin Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:758
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tadsjikisk"
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tadsjikisk (forældet)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:762
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Singalesisk (fonetisk)"
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamilsk (Sri Lanka, unicode)"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamilsk (Sri Lanka, TAB-skrivemaskine)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Singhala (US-tastatur med singhala bogstaver)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:767
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Thai"
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Thai (TIS-820.2538)"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Thai (pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:771 ../rules/base.extras.xml.in.h:135
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:772 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Tyrkisk"
-#: ../rules/base.xml.in.h:773
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Tyrkisk (F)"
-#: ../rules/base.xml.in.h:774
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Tyrkisk (Alt-Q)"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Tyrkisk (Sun døde taster)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurdisk (Tyrkiet, latin Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurdisk (Tyrkiet, F)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurdisk (Tyrkiet, latin Alt-Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Tyrkisk (international med døde taster)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:781 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:782
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krimtatarsk (tyrkisk Q)"
-#: ../rules/base.xml.in.h:783
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Krimtatarsk (tyrkisk F)"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krimtatarsk (tyrkisk Alt-Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taiwanesisk"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taiwanesisk (indfødte)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:789
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taiwan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:791 ../rules/base.extras.xml.in.h:138
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:792 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ukrainsk"
-#: ../rules/base.xml.in.h:793
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ukrainsk (fonetisk)"
-#: ../rules/base.xml.in.h:794
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ukrainsk (skrivemaskine)"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ukrainsk (Wintaster)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ukrainsk (forældet)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ukrainsk (standard RSTU)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Russisk (Ukraine, standard RSTU)"
# Pannonian Rusyn or simply Rusyn (Ruthenian) is a Slavic language or dialect spoken
# in north-western Serbia and eastern Croatia
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ukrainsk (homofonisk)"
-#: ../rules/base.xml.in.h:800 ../rules/base.extras.xml.in.h:141
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Engelsk (UK)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Engelsk (UK, udvidede Wintaster)"
-#: ../rules/base.xml.in.h:802
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Engelsk (UK, international med døde taster)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Engelsk (UK, Dvorak)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Engelsk (UK, Dvorak med UK-tegnsætning)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Engelsk (UK, Macintosh)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Engelsk (UK, Macintosh international)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Engelsk (UK, Colemak)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Usbekisk"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Usbekisk (latin)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:812
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamesisk"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:814 ../rules/base.extras.xml.in.h:143
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:815 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Koreansk"
-#: ../rules/base.xml.in.h:816
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Koreansk (101/104 tastkompatibel)"
-#: ../rules/base.xml.in.h:817
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japansk (pc-98xx-serie)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:820
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irsk"
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irsk (UnicodeExpert)"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogham (IS434)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdu (Pakistan)"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdu (Pakistan, CRULP)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdu (Pakistan, NLA)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Arabisk (Pakistan)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:831
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:834
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Dhivehi"
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Engelsk (Sydafrika)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:838
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Esperanto (forkert placeret semikolon og anførelsestegn, forældet)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:842
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalesisk"
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Engelsk (Nigeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:846
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:849
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Yoruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
# http://da.wikipedia.org/wiki/Amharisk
-#: ../rules/base.xml.in.h:852
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharisk"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:855
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:858
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Blindeskrift"
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Blindeskrift (venstre hånd)"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Blindeskrift (højre hånd)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:863
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmensk"
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmensk (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:867
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Fransk (Mali, alternativ)"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Engelsk (Mali, US Macintosh)"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Engelsk (Mali, US international)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:873
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Swahili (Tanzania)"
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Swahili (Kenya)"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:878
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:881
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filippinsk"
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filippinsk (QWERTY baybayin)"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filippinsk (Capewell-dvorak latin)"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filippinsk (Capewell-dvorak baybayin)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filippinsk (Capewell-QWERF 2006 latin)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filippinsk (Capewell-QWERF 2006 baybayin)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filippinsk (Colemak latin)"
# http://en.wikipedia.org/wiki/Baybayin
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filippinsk (Colemak baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filippinsk (Dvorak latin)"
# http://en.wikipedia.org/wiki/Baybayin
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filippinsk (Dvorak baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldavisk"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
# http://www.denstoredanske.dk/Sprog,_religion_og_filosofi/Sprog/Alle_lande_-_sprogoversigt/Altaiske_sprog/gagausisk
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldavisk (gagausisk)"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Skifter til et andet layout"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Højre Alt (mens trykket ned)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Venstre Alt (mens trykket ned)"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Venstre Win-tast (mens trykket ned)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Højre Win-tast (mens trykket ned)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Enhver Win-tast (mens trykket ned)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Caps Lock (mens presset ned), Alt+Caps Lock udfører den oprindleige capslockhandling"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Højre Ctrl-tast (mens trykket ned)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Højre Alt"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Venstre Alt"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Skift+Caps Lock"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Caps Lock (skifter til første layout), Skift+Caps Lock (skifter til sidste layout)"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:913
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:909
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Venstre Ctrl (skifter til første layout), Højre Ctrl (skifter til sidste layout)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Caps Lock"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Begge skift-taster sammen"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Begge Alt-taster sammen"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Begge Ctrl-taster sammen"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Skift"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Venstre Ctrl+Venstre Skift"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Højre Ctrl+Højre Skift"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Skift"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Venstre Alt+Venstre Skift"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Mellemrum"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Venstre Win"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Wintast+mellemrum"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Højre Win"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Venstre Skift"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Højre Skift"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Venstre Ctrl"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Højre Ctrl"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Venstre Ctrl+Venstre Win (til første layout), Højre Ctrl+Menu (til andet layout)"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Tast for at vælge tredje niveau"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Enhver Win-tast"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Enhver Alt-tast"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Højre Alt-tast, Skift+højre Alt-tast er sammensat (compose)"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "Højre Alt-tast vælger aldrig tredje niveau"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Retur på numerisk tastatur"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Omvendt skråstreg"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Mindre end/Større end&gt;"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Caps Lock vælger tredje niveau, låser når trykket ned sammen med en anden tredje niveauvælger"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Omvendt skråstreg vælger tredje niveau, låser når trykket ned sammen med en anden tredje niveauvælger"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Mindre end/Større end&gt; (vælger tredje niveau, låser når trykket ned sammen med en anden tredje niveauvælger"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Ctrl-tast placering"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Caps Lock som Ctrl"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Venstre Ctrl som Meta"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Ombyt Ctrl og Caps Lock"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Til venstre for 'A'"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "Nederst til venstre"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Højre Ctrl-tast virker som højre Alt"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menu som højre Ctrl"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Højre Alt-tast virker som højre Ctrl"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Byt venstre Alt-tast om med venstre Ctrl-tast"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Byt venstre Win-tast om med venstre Ctrl-tast"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Byt højre Win-tast om med højre Ctrl-tast"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Venstre Alt som Ctrl, venstre Ctrl som Win, venstre Win som Alt"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Brug tastatur-LED til at vise alternativ layout"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Num Lock"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Layout for numerisk tastatur"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Forældet"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode tilføjelser (pile og matematiske tegn)"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:965
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:961
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Forældet Wang 724"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:967
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:963
+#: ../rules/base.xml.in.h:968
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:964
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Sekstentals"
# ATM = hæveautomat, måske skal det oversættes.
-#: ../rules/base.xml.in.h:965
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "ATM/telefonstil"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Numerisk tastatur slettetast opførsel"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Forældet tast med punktum"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Forældet tast med komma"
-#: ../rules/base.xml.in.h:970
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Niveau fire tast med punktum"
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Niveau fire tast med punktum, latin-9 begrænsning"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Niveau fire tast med komma"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Niveau fire tast med momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:976
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Niveau fire tast med abstrakt adskillelser"
-#: ../rules/base.xml.in.h:977
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Semikolon på tredje niveau"
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Opførsel for Caps Lock-tast"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock bruger intern forstørrelse af bogstaver. Skift sætter Caps Lock »på hold«"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Caps Lock bruger intern forstørrelse af bogstaver. Skift påvirker ikke Caps Lock"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock agerer som skiftetasten med lås. Skift »pauser« Caps Lock"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Caps Lock agerer som skiftetasten med lås. Skift påvirker ikke Caps Lock"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Caps Lock slår små/store bogstaver til/fra"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Gør Caps Lock til en ekstra NumLock"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Ombyt ESC og Caps Lock"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Gør Caps Lock til en ekstra Esc"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Gør Caps Lock til en ekstra rettelsestast"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Gør Caps Lock til en ekstra Super"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Gør Caps Lock til en ekstra Hyper"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Caps Lock ændrer SkiftLock (påvirker alle taster)"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Caps Lock er slået fra"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Gør Caps Lock til en ekstra Ctrl"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Alt/Win-tasteopførsel"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Tilføj standardopførslen til menutasten"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt og Meta er på Alt-tasterne"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt ligger på Win-tasterne (og de normale Alt-taster)"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl ligger på Win-tasterne (og de normale Ctrl-taster)"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl ligger på Alt-tasterne, Alt ligger på Win-tasterne"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta ligger på Win-tasterne"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta ligger på venstre Win-tast"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper ligger på Win-tasterne"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt ligger på den højre Win-tast og Super på Menu"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt-tast ombyttes med Win-tast"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Position for sammensat (compose) tast"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "Tredje niveau for venstre Win"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "Tredje niveau for højre Win"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "Tredje niveau for Menu"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "Tredje niveau for venstre Ctrl"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "Tredje niveau for højre Ctrl"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "Tredje niveau for Caps Lock (lås skift)"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "Tredje niveau for &lt;Mindre end/Større end&gt;"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "Prtsc"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Diverse kompatibilitetsvalg"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Standard numerisk tastatur taster"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Numerisk tastatur indtaster altid tal (som på Mac OS)"
-#: ../rules/base.xml.in.h:1017
-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:1022
+msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
+msgstr "NumLock aktiveret: tal, skift skifter til piletaster, NumLock deaktiveret: piletaster aktiveret (som i MS Windows)"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Skift afbryder ikke Num Lock, vælger tredje niveau i steden for"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1024
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:1020
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Apples aluminiumstastatur: Emuler PC-taster (Udskriv, Scroll Lock, Pause, NumLock)"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Skift afbryder Caps Lock"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Slå ekstra typografiske karakterer til"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Begge skift-taster sammen skifter Caps Lock"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Begge skift-taster sammen aktiverer Caps Lock, en Skift-tast deaktiverer"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Begge skift-taster sammen skifter SkiftLock"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Skift + NumLock skifter PointerKeys"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Tillader afbrydelsesgreb med tastaturhandlinger (advarsel: sikkerhedsrisiko)"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Tillader afbrydelsesgreb med vinduestrælogning"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Tilføjelse af valutategn til bestemte taster"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro på E"
@@ -3883,75 +3903,75 @@ msgstr "Euro på E"
# på to" mere beskrivende, selv om strengen isoleret set stadig kan være
# forvirrende. Når teksten står i en sammenhæng, er det nok ikke så
# vigtigt om det er det ene eller det andet.
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro på 2"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro på 4"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro på 5"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupee på 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Tast for at vælge femte niveau"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Mindre end/Større end&gt; vælger femte niveau, låser når trykket ned sammen med en anden femte niveauvælger"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Højre Alt vælge femte niveau, låser når trykket ned sammen med en anden femte niveauvælger"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Venstre Win-tast vælger femte niveau, låser når trykket ned sammen med en anden femte niveauvælger"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Højre Win-tast vælger femte niveau, låser når trykket ned sammen med en anden femte niveauvælger"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Brug mellemrum for at indtaste ubrydelig mellemrumskarakter"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Normal mellemrum på alle niveauer"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Ubrydelig mellemrumskarakter på andet niveau"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Ubrydelig mellemrumskarakter på tredje niveau"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1049
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:1045
+#: ../rules/base.xml.in.h:1050
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:1046
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Ubrydelig mellemrumskarakter på fjerde niveau"
-#: ../rules/base.xml.in.h:1047
+#: ../rules/base.xml.in.h:1052
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:1048
+#: ../rules/base.xml.in.h:1053
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)"
@@ -3963,84 +3983,100 @@ msgstr "Ubrydelig mellemrumskarakter på fjerde niveau, tynd ubrydelige mellemru
# is desirable to keep the words closer together. The ZWNJ is represented in Unicode
# is U+200C, and can be represented in HTML as &#x200C;, &#8204; or &zwnj;. Kilde eng.
# wikipedia 12. maj 2010
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på andet niveau"
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på andet niveau, ombrydeligt mellemrumstegn på tredje niveau"
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på andet niveau, ombrydeligt mellemrumstegn på tredje niveau, ubrydeligt mellemrumsteng på fjerde niveau"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på andet niveau, ubrydeligt mellemrumstegn på tredje niveau"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på andet niveau, ubrydeligt på mellemrum på tredje niveau"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på andet niveau, ubrydeligt mellemrumstegn på tredje niveau, ubrydeligt mellemrumstegn (ZWNJ) på fjerde niveau"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på andet niveau, ubrydeligt mellemrumstegn på tredje niveau"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Ubrydeligt mellemrumstegn (ZWNJ) på tredje niveau, ombrydeligt mellemrumstegn på fjerde niveau"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Japanske tastaturvalg"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Kana låsetast låser"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F-stil rettelsestast"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Gør Zenkaku Hankaku til en ekstra Esc"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1066
+msgid "Korean Hangul/Hanja keys"
+msgstr "Koreanske hangul/hanja-taster"
+
+#: ../rules/base.xml.in.h:1067
+msgid "Hardware Hangul/Hanja keys"
+msgstr "Udstyrs hangul/hanja-taster"
+
+#: ../rules/base.xml.in.h:1068
+msgid "Right Alt as Hangul, right Ctrl as Hanja"
+msgstr "Højre Alt-tast som hangul, højre Ctrl som hanga"
+
+#: ../rules/base.xml.in.h:1069
+msgid "Right Ctrl as Hangul, right Alt as Hanja"
+msgstr "Højre Ctrl-tast som hangul, højre Alt som hanja"
+
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Tilføjelse af esperanto supersigned bogstaver"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "Til den tilsvarende tast på et Qwertytastatur"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "Til den tilsvarende tast i et Dvoraktastatur"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "Til den tilsvarende tast i et Colemaktastatur"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Vedligehold tastkompatibilitet med gamle tastkoder for Solaris"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Kompatibilitet med Suntast"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Tastsekvens for at slå X-serveren ned"
# Backspace kunne også være Slet tilbage
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Rettelsestast"
@@ -4129,255 +4165,262 @@ msgid "German (with Hungarian letters and no dead keys)"
msgstr "Tysk (med ungarske bogstaver og ingen døde taster)"
#: ../rules/base.extras.xml.in.h:26
+msgid "Polish (Germany, eliminate dead keys)"
+msgstr "Polsk (Tyskland, slå døde taster fra)"
+
+#: ../rules/base.extras.xml.in.h:27
msgid "German (Sun Type 6/7)"
msgstr "Tysk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:27
+#: ../rules/base.extras.xml.in.h:28
msgid "German (Aus der Neo-Welt)"
msgstr "Tysk (Aus der Neo-Welt)"
# Avestisk er et uddødt iransk sprog
-#: ../rules/base.extras.xml.in.h:30
+#: ../rules/base.extras.xml.in.h:31
msgid "Avestan"
msgstr "Avestisk"
-#: ../rules/base.extras.xml.in.h:33
+#: ../rules/base.extras.xml.in.h:34
msgid "Lithuanian (US Dvorak with Lithuanian letters)"
msgstr "Litauisk (US dvorak med litauiske bogstaver)"
-#: ../rules/base.extras.xml.in.h:34
+#: ../rules/base.extras.xml.in.h:35
msgid "Lithuanian (Sun Type 6/7)"
msgstr "Litauisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:37
+#: ../rules/base.extras.xml.in.h:38
msgid "Latvian (US Dvorak)"
msgstr "Lettisk (US dvorak)"
-#: ../rules/base.extras.xml.in.h:38
+#: ../rules/base.extras.xml.in.h:39
msgid "Latvian (US Dvorak, Y variant)"
msgstr "Lettisk (US dvorak, Y-variant)"
-#: ../rules/base.extras.xml.in.h:39
+#: ../rules/base.extras.xml.in.h:40
msgid "Latvian (US Dvorak, minus variant)"
msgstr "Lettisk (US dvorak, minus variant)"
-#: ../rules/base.extras.xml.in.h:40
+#: ../rules/base.extras.xml.in.h:41
msgid "Latvian (programmer US Dvorak)"
msgstr "Lettisk (programmør US dvorak)"
-#: ../rules/base.extras.xml.in.h:41
+#: ../rules/base.extras.xml.in.h:42
msgid "Latvian (programmer US Dvorak, Y variant)"
msgstr "Lettisk (programmør US dvorak, Y-variant)"
-#: ../rules/base.extras.xml.in.h:42
+#: ../rules/base.extras.xml.in.h:43
msgid "Latvian (programmer US Dvorak, minus variant)"
msgstr "Lettisk (programmør US dvorak, minus variant)"
-#: ../rules/base.extras.xml.in.h:43
+#: ../rules/base.extras.xml.in.h:44
msgid "Latvian (US Colemak)"
msgstr "Lettisk (US Colemak)"
-#: ../rules/base.extras.xml.in.h:44
+#: ../rules/base.extras.xml.in.h:45
msgid "Latvian (US Colemak, apostrophe variant)"
msgstr "Lettisk (US Colemak, apostrofvariant)"
-#: ../rules/base.extras.xml.in.h:45
+#: ../rules/base.extras.xml.in.h:46
msgid "Latvian (Sun Type 6/7)"
msgstr "Lettisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:48
+#: ../rules/base.extras.xml.in.h:49
msgid "English (US, international AltGr Unicode combining)"
msgstr "Engelsk (US, international AltGr Unicode-sammensætning)"
-#: ../rules/base.extras.xml.in.h:49
+#: ../rules/base.extras.xml.in.h:50
msgid "English (US, international AltGr Unicode combining, alternative)"
msgstr "Engelsk (US, international AltGr Unicode-sammensætning, alternativ)"
-#: ../rules/base.extras.xml.in.h:50
+#: ../rules/base.extras.xml.in.h:51
msgid "Atsina"
msgstr "Atsina"
# http://en.wikipedia.org/wiki/Interior_Salish_languages
-#: ../rules/base.extras.xml.in.h:51
+#: ../rules/base.extras.xml.in.h:52
msgid "Coeur d'Alene Salish"
msgstr "Couer d'alene Salish"
-#: ../rules/base.extras.xml.in.h:52
+#: ../rules/base.extras.xml.in.h:53
msgid "Czech Slovak and German (US)"
msgstr "Tjekkisk slovakisk og tysk (US)"
-#: ../rules/base.extras.xml.in.h:53
+#: ../rules/base.extras.xml.in.h:54
msgid "English (US, Sun Type 6/7)"
msgstr "Engelsk (US, Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:54
+#: ../rules/base.extras.xml.in.h:55
msgid "English (Norman)"
msgstr "Engelsk (norman)"
-#: ../rules/base.extras.xml.in.h:57
+#: ../rules/base.extras.xml.in.h:58
msgid "Polish (international with dead keys)"
msgstr "Polsk (international med døde taster)"
-#: ../rules/base.extras.xml.in.h:58
+#: ../rules/base.extras.xml.in.h:59
msgid "Polish (Colemak)"
msgstr "Polsk (Colemak)"
-#: ../rules/base.extras.xml.in.h:59
+#: ../rules/base.extras.xml.in.h:60
msgid "Polish (Sun Type 6/7)"
msgstr "Polsk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:63
+#: ../rules/base.extras.xml.in.h:64
msgid "Crimean Tatar (Dobruja Q)"
msgstr "Krimtatarsk (Dobruja Q)"
# touchtype = blindskrift (altså at skrive uden at kigge)
-#: ../rules/base.extras.xml.in.h:64
+#: ../rules/base.extras.xml.in.h:65
msgid "Romanian (ergonomic Touchtype)"
msgstr "Rumænsk (ergonomisk maskinskrivning)"
-#: ../rules/base.extras.xml.in.h:65
+#: ../rules/base.extras.xml.in.h:66
msgid "Romanian (Sun Type 6/7)"
msgstr "Rumænsk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:68
+#: ../rules/base.extras.xml.in.h:69
msgid "Serbian (combining accents instead of dead keys)"
msgstr "Serbisk (sammensætte accenter frem for døde taster)"
-#: ../rules/base.extras.xml.in.h:71
+#: ../rules/base.extras.xml.in.h:72
msgid "Church Slavonic"
msgstr "Kirkeslavisk"
-#: ../rules/base.extras.xml.in.h:72
+#: ../rules/base.extras.xml.in.h:73
msgid "Russian (with Ukrainian-Belorussian layout)"
msgstr "Russisk (med ukrainsk-hviderussisk layout)"
-#: ../rules/base.extras.xml.in.h:73
+#: ../rules/base.extras.xml.in.h:74
msgid "Russian (Sun Type 6/7)"
msgstr "Russisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:76
+#: ../rules/base.extras.xml.in.h:77
msgid "Armenian (OLPC phonetic)"
msgstr "Armensk (OLPC-fonetisk)"
# Er lidt usikker på betydningen af SIL, men antager at det drejer sig om:
# http://www.sil.org/sil/
-#: ../rules/base.extras.xml.in.h:79
+#: ../rules/base.extras.xml.in.h:80
msgid "Hebrew (Biblical, SIL phonetic)"
msgstr "Hebraisk (bibelsk, SIL-fonetik)"
-#: ../rules/base.extras.xml.in.h:82
+#: ../rules/base.extras.xml.in.h:83
msgid "Arabic (Sun Type 6/7)"
msgstr "Arabisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:85
+#: ../rules/base.extras.xml.in.h:86
msgid "Belgian (Sun Type 6/7)"
msgstr "Belgisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:88
+#: ../rules/base.extras.xml.in.h:89
msgid "Portuguese (Brazil, Sun Type 6/7)"
msgstr "Portugisisk (brasiliansk, Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:91
+#: ../rules/base.extras.xml.in.h:92
msgid "Czech (Sun Type 6/7)"
msgstr "Tjekkisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:94
+#: ../rules/base.extras.xml.in.h:95
msgid "Danish (Sun Type 6/7)"
msgstr "Dansk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:97
+#: ../rules/base.extras.xml.in.h:98
msgid "Dutch (Sun Type 6/7)"
msgstr "Hollandsk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:100
+#: ../rules/base.extras.xml.in.h:101
msgid "Estonian (Sun Type 6/7)"
msgstr "Estisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:103
+#: ../rules/base.extras.xml.in.h:104
msgid "Finnish (Sun Type 6/7)"
msgstr "Finsk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:105
+#: ../rules/base.extras.xml.in.h:106
msgid "French (Sun Type 6/7)"
msgstr "Fransk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:108
+#: ../rules/base.extras.xml.in.h:109
msgid "Greek (Sun Type 6/7)"
msgstr "Græsk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:111
+#: ../rules/base.extras.xml.in.h:112
msgid "Italian (Sun Type 6/7)"
msgstr "Italiensk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:114
+#: ../rules/base.extras.xml.in.h:115
msgid "Japanese (Sun Type 6)"
msgstr "Japansk (Sun type 6)"
-#: ../rules/base.extras.xml.in.h:115
+#: ../rules/base.extras.xml.in.h:116
msgid "Japanese (Sun Type 7 - pc compatible)"
msgstr "Japansk (Sun type 7 - pc-kompatibel)"
-#: ../rules/base.extras.xml.in.h:116
+#: ../rules/base.extras.xml.in.h:117
msgid "Japanese (Sun Type 7 - sun compatible)"
msgstr "Japansk (Sun type 7 - sun-kompatibel)"
-#: ../rules/base.extras.xml.in.h:119
+#: ../rules/base.extras.xml.in.h:120
msgid "Norwegian (Sun Type 6/7)"
msgstr "Norsk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:121
+#: ../rules/base.extras.xml.in.h:122
msgid "Portuguese (Sun Type 6/7)"
msgstr "Portugisisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:124
+#: ../rules/base.extras.xml.in.h:125
msgid "Slovak (Sun Type 6/7)"
msgstr "Slovakisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:127
+#: ../rules/base.extras.xml.in.h:128
msgid "Spanish (Sun Type 6/7)"
msgstr "Spansk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:130
+#: ../rules/base.extras.xml.in.h:131
msgid "Swedish (Dvorak A5)"
msgstr "Svensk (dvorak A5)"
-#: ../rules/base.extras.xml.in.h:131
+#: ../rules/base.extras.xml.in.h:132
msgid "Swedish (Sun Type 6/7)"
msgstr "Svensk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:133
+#: ../rules/base.extras.xml.in.h:134
msgid "German (Switzerland, Sun Type 6/7)"
msgstr "Tysk (Schweiz, Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:134
+#: ../rules/base.extras.xml.in.h:135
msgid "French (Switzerland, Sun Type 6/7)"
msgstr "Fransk (Schweiz, Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:137
+#: ../rules/base.extras.xml.in.h:138
msgid "Turkish (Sun Type 6/7)"
msgstr "Tyrkisk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:140
+#: ../rules/base.extras.xml.in.h:141
msgid "Ukrainian (Sun Type 6/7)"
msgstr "Ukrainsk (Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:142
+#: ../rules/base.extras.xml.in.h:143
msgid "English (UK, Sun Type 6/7)"
msgstr "Engelsk (UK, Sun type 6/7)"
-#: ../rules/base.extras.xml.in.h:145
+#: ../rules/base.extras.xml.in.h:146
msgid "Korean (Sun Type 6/7)"
msgstr "Koreansk (Sun type 6/7)"
#. Keyboard indicator for European layouts
-#: ../rules/base.extras.xml.in.h:147
+#: ../rules/base.extras.xml.in.h:148
msgid "eu"
msgstr "eu"
-#: ../rules/base.extras.xml.in.h:148
+#: ../rules/base.extras.xml.in.h:149
msgid "EurKEY (US based layout with european letters)"
msgstr "EurKEY (US-baseret tastatur med europæiske bogstaver)"
-#: ../rules/base.extras.xml.in.h:151
+#: ../rules/base.extras.xml.in.h:152
msgid "Mmuock"
msgstr "Mmuock"
+
+#~ msgid "Shift with numeric keypad keys works as in MS Windows"
+#~ msgstr "Skift med numeriske taster virker som i MS Windows"
diff --git a/xorg-server/xkeyboard-config/po/de.po b/xorg-server/xkeyboard-config/po/de.po
index 1225c965c..a29fe729f 100644
--- a/xorg-server/xkeyboard-config/po/de.po
+++ b/xorg-server/xkeyboard-config/po/de.po
@@ -5,17 +5,17 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-2.13.99\n"
+"Project-Id-Version: xkeyboard-config-2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-15 20:23+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-14 22:58+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.7.3\n"
+"X-Generator: Poedit 1.7.6\n"
#: ../rules/base.xml.in.h:1
msgid "Generic 101-key PC"
@@ -920,3088 +920,3100 @@ msgstr "Arabisch (qwerty/Ziffern)"
msgid "Arabic (Buckwalter)"
msgstr "Arabisch (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Arabisch (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albanisch"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albanisch (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armenisch"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armenisch (phonetisch)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armenisch (alternativ, phonetisch)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armenisch (östlich)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armenisch (westlich)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armenisch (alternativ, östlich)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Deutsch (Österreich)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Deutsch (Österreich, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Deutsch (Österreich, Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Deutsch (Österreich, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Aserbaidschanisch"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Aserbaidschanisch (kyrillisch)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Weißrussisch"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Weißrussisch (veraltet)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Weißrussisch (Lateinisch)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belgisch"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belgisch (Alternative)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belgisch (Alternative, nur latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belgisch (Alternative, Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belgisch (ISO-Alternative)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belgisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belgisch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belgisch (Wang Modell 724, azerty)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bangla"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengalisch (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indisch"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengalisch (Indien)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengalisch (Indien, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengalisch (Indien, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengalisch (Indien, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengalisch (Indien, Uni Gitanjali)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengalisch (Indien, Baishakhi Inscript)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipuri (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gujarati"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Punjabi (Gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Punjabi (Gurmukhi Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (KaGaPa phonetisch)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malayalam (Lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malayalam (verbessertes Inscript mit Rupie-Symbol)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Oriya"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamilisch (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamilisch (Tastatur mit Ziffern)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamilisch (TAB Schreibmaschine)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamilisch (TSCII Schreibmaschine)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamilisch"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (KaGaPa phonetisch)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdu (phonetisch)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdu (Alternative, phonetisch)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdu (Windows-Tasten)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (Bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (KaGaPa phonetisch)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sanskrit (KaGaPa phonetisch)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (KaGaPa phonetisch)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Englisch (Indien, mit Rupie-Symbol)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosnisch"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosnisch (mit Anführungszeichen für Zitate)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosnisch (mit bosnischen Digraphen)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosnisch (US-Tastatur mit bosnischen Digraphen)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosnisch (US-Tastatur mit bosnischen Buchstaben)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugiesisch (Brasilien)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugiesisch (Brasilien, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugiesisch (Brasilien, Dvorak)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugiesisch (Brasilien, nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugiesisch (Brasilien, Nativo für US-Tastaturen)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Portugiesisch (Brasilien, Nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Bulgarisch"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Bulgarisch (traditionell phonetisch)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Bulgarisch (neu phonetisch)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Arabisch (Marokko)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Französisch (Marokko)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berber (Marokko, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "TBerber (Marokko, Tifinagh alternativ)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berber (Marokko, Tifinagh alternativ, phonetisch)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berber (Marokko, Tifinagh erweitert)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berber (Marokko, Tifinagh phonetisch)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berber (Marokko, Tifinagh erweitert, phonetisch)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Englisch (Kamerun)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Französisch (Kamerun)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Kamerunisch, mehrsprachig (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Kamerunisch, mehrsprachig (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Kamerunisch, mehrsprachig (Dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Burmesisch"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Französisch (Kanada)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Französisch (Kanada, Dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Französisch (Kanada, veraltet)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Kanadisch, mehrsprachig"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Kanadisch, mehrsprachig (erster Teil)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Kanadisch, mehrsprachig (zweiter Teil)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Englisch (Kanada)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Französisch (Demokratische Republik Kongo)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Chinesisch"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetanisch"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetanisch (mit ASCII-Ziffern)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Uigurisch"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Kroatisch"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Kroatisch (mit Anführungszeichen für Zitate)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Kroatisch (mit kroatischen Digraphen)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Kroatisch (US-Tastatur mit kroatischen Digraphen)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Kroatisch (US-Tastatur mit kroatischen Buchstaben)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Tschechisch"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Tschechisch (mit &lt;\\|&gt;-Taste)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Tschechisch (qwerty)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Tschechisch (qwerty, erweiterter Backslash)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Tschechisch (UCW-Belegung, nur akzentuierte Buchstaben)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Tschechisch (US Dvorak mit CZ-UCW-Unterstützung)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Dänisch"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Dänisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Dänisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Dänisch (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Dänisch (Macintosh, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Dänisch (Dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Niederländisch"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Niederländisch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Niederländisch (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Niederländisch (Standard)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estnisch"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estnisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estnisch (Dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estnisch (US-Tastatur mit estnischen Buchstaben)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Persisch"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Persisch (mit persischem Nummernblock)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurdisch (Iran, Lateinisches Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurdisch (Iran, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurdisch (Iran, Lateinisches Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurdisch (Iran, Arabisch-Lateinisch)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Irakisch"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurdisch (Irak, lateinisches Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurdisch (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurdisch (Irak, Lateinisches Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurdisch (Irak, Arabisch-Lateinisch)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Färöisch"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Färöisch (ohne Akzenttasten)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finnisch"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finnisch (klassisch)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finnisch (klassisch, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finnisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Nördliches Saami (Finnland)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finnisch (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Französisch"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Französisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Französisch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Französisch (alternativ)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Französisch (Alternative, nur latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Französisch (Alternative, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Französisch (Alternative, Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Französisch (Alternative, veraltet)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Französisch (Alternative, veraltet, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Französisch (Alternative, veraltet, Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Französich (Bepo, ergonomisch, Dvorak-ähnlich)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Französisch (Bepo, ergonomisch, Dvorak-ähnlich, nur latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Französisch (Dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Französisch (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Französisch (Bretonisch)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Okzitanisch"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Georgisch (Frankreich, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Englisch (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Englisch (Ghana, mehrsprachig)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Haussa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Englisch (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Französisch (Guinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Georgisch"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Georgisch (ergonomisch)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Georgisch (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Russisch (Georgien)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Ossetisch (Georgien)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Deutsch"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Deutsch (Nur Acute-(')Akzentzeichen)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Deutsch (Nur Grave-(`) und Acute-(')Akzentzeichen)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Deutsch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Deutsch (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Rumänisch (Deutschland)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Rumänisch (Deutschland, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Deutsch (Dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Deutsch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Deutsch (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Deutsch (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Deutsch (Macintosh, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Niedersorbisch"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Niedersorbisch (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Deutsch (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Türkisch (Deutschland)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Russisch (Deutschland, phonetisch)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Deutsch (veraltet)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Griechisch"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Griechisch (vereinfacht)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Griechisch (erweitert)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Griechisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Griechisch (polytonisch)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Ungarisch"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Ungarisch (Standard)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Ungarisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Ungarisch (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Ungarisch (101/qwertz/Komma/Akzenttasten)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Ungarisch (101/qwertz/Komma/ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Ungarisch (101/qwertz/Punkt/Akzenttasten)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Ungarisch (101/qwertz/Punkt/ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Ungarisch (101/qwerty/Komma/Akzenttasten)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Ungarisch (101/qwerty/Komma/ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Ungarisch (101/qwerty/Punkt/Akzenttasten)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Ungarisch (101/qwerty/Punkt/ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Ungarisch (102/qwertz/Komma/Akzenttasten)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Ungarisch (102/qwertz/Komma/ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Ungarisch (102/qwertz/Punkt/Akzenttasten)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Ungarisch (102/qwertz/Punkt/ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Ungarisch (102/qwerty/Komma/Akzenttasten)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Ungarisch (102/qwerty/Komma/ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Ungarisch (102/qwerty/Punkt/Akzenttasten)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Ungarisch (102/qwerty/Punkt/ohne Akzenttasten)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Isländisch"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Isländisch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Isländisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Isländisch (Macintosh, veraltet)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Isländisch (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Isländisch (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebräisch"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebräisch (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebräisch (phonetisch)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebräisch (Biblisch, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italienisch"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italienisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italienisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italienisch (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italienisch (US-Tastatur mit italienischen Buchstaben)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Georgisch (Italien)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italienisch (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japanisch"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japanisch (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japanisch (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japanisch (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japanisch (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japanisch (Dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirgisisch"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirgisisch (phonetisch)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmer (Kambodscha)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kasachisch"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Russisch (Kasachstan, mit Kasachisch)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kasachisch (mit russischer Belegung)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Laotisch (durch STEA vorgeschlagene Standardbelegung)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Spanisch (Lateinamerikanisch)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Spanisch (Lateinamerikanisch, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Spanisch (Lateinamerikanisch, Akzent-Tilde einschließen)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Spanisch (Lateinamerikanisch, Sun-Akzenttasten)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Spanisch (Lateinamerikanisch, Dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Litauisch"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Litauisch (Standard)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Litauisch (US-Tastatur mit litauischen Buchstaben)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Litauisch (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Litauisch (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Litauisch (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Lettisch"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Lettisch, (Apostroph-Variante)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Lettisch (Tilde-Variante)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Lettisch (F-Variante)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Lettisch (modern)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Georgisch (ergonomisch, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Lettisch (angepasst)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maori"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Montenegrinisch"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Montenegrinisch (kyrillisch)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Montenegrinisch (Kyrillisch, »З« und »Ж« vertauscht)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Montenegrinisch (lateinisch, Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Montenegrinisch (lateinische qwerty-Tastatur)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Montenegrinisch (lateinische qwerty-Tastatur, Unicode)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Montenegrinisch (Kyrillisch mit Anführungszeichen)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Montenegrinisch (lateinisch mit Anführungszeichen)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Mazedonisch"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Mazedonisch (ohne Akzenttasten)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltesisch"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltesisch (mit US-Belegung)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongolisch"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Norwegisch"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Norwegisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Norwegisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Norwegisch (Dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Nördliches Saami (Norwegen)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Nördliches Saami (Norwegen, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Norwegisch (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Norwegisch (Macintosh, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Norwegisch (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polnisch"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polnisch (veraltet)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polnisch (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polnisch (Dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polnisch (Dvorak, polnische Anführungszeichen auf Taste mit Zitatzeichen)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polnisch (Dvorak, polnische Anführungszeichen auf Taste 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Kaschubisch"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Schlesisch"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Russisch (Polen, phonetisch, Dvorak)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polnisch (Dvorak für Programmierer)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugiesisch"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugiesisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugiesisch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugiesisch (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugiesisch (Macintosh, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugiesisch (Macintosh, Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugiesisch (Nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugiesisch (Nativo für US-Tastaturen)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugal, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Rumänisch"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Rumänisch (Cedilla)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Rumänisch (Standard)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Rumänisch (Standard Cedilla)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Rumänisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Russisch"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Russisch (phonetisch)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Russisch (phonetisch mit Windows-Tasten)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Russisch (Schreibmaschine)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Russisch (veraltet)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Russisch (Schreibmaschine, veraltet)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatarisch"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Ossetisch (veraltet)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Ossetisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Tschuwaschisch"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Tschuwaschisch (lateinische Schrift)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurtisch"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Jakutisch"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Kalmykisch"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Russisch (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Russisch (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbisch (Russland)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Baschkirisch"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Russisch (AZERTY, phonetisch)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Russisch (Französisch, phonetisch)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbisch"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbisch (Kyrillisch, »З« und »Ж« vertauscht)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbisch (Lateinisch)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbisch (Lateinisch Unicode)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbisch (Lateinische qwerty-Tastatur)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbisch (lateinische qwerty-Tastatur, Unicode)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Serbisch (Kyrillisch mit Anführungszeichen)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbisch (Lateinisch mit Anführungszeichen)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Pannonisches Russinisch"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Slowenisch"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Slowenisch (mit Anführungszeichen für Zitate)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Slowenisch (US-Tastatur mit slowenischen Buchstaben)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Slowakisch"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Slowakisch (erweiterter Backslash)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Slowakisch (qwerty)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Slowakisch (qwerty, erweiterter Backslash)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Spanisch"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Spanisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Spanisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Spanisch (Akzent-Tilde einschließen)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Spanisch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Spanisch (Dvorak)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturisch (Spanien, mit unterpunktetem L und H)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Katalanisch (Spanische Variante mit mittelpunktiertem L)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Spanisch (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Schwedisch"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Schwedisch (ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Schwedisch (Dvorak)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Russisch (Schweden, phonetisch)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Russisch (Schweden, phonetisch, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Nördliches Saami (Schweden)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Schwedisch (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Schwedisch (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Schwedische Gebärdensprache"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Deutsch (Schweiz)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Deutsch (Schweiz, veraltet)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Deutsch (Schweiz, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Deutsch (Schweiz, Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Französisch (Schweiz)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Französisch (Schweiz, ohne Akzenttasten)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Französisch (Schweiz, Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Französisch (Schweiz, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Deutsch (Schweiz, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Arabisch (Syrien)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Syrisch"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Syrisch (phonetisch)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurdisch (Syrien, lateinisches Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurdisch (Syrien, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurdisch (Syrien, lateinisches Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tadschikisch"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tadschikisch (veraltet)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Sinhala (phonetisch)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamilisch (Sri Lanka, Unicode)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamilisch (Sri Lanka, TAB Schreibmaschine)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Singhalesisch (US-Tastatur mit singhalesischen Buchstaben)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Thailändisch"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Thailändisch (TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Thailändisch (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Türkisch"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Türkisch, (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Türkisch (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Türkisch (Sun-Akzenttasten)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurdisch (Türkei, lateinisches Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurdisch (Türkei, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurdisch (Türkei, lateinisches Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Türkisch (International, mit Akzenttasten)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krimtatarisch (Türkisch Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Krimtatarisch (Türkisch F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krimtatarisch (Türkisch Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taiwanesisch"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taiwanesisch (indigen)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taiwan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ukrainisch"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ukrainisch (phonetisch)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ukrainisch (Schreibmaschine)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ukrainisch (Windows-Tasten)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ukrainisch (veraltet)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ukrainisch (Standard-RSTU)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Russisch (Ukraine, Standard-RSTU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ukrainisch (homophon)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Englisch (Britisch)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Englisch (Britisch erweitert, Windows-Tasten)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Englisch (Britisch international, mit Akzenttasten)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Englisch (Britisch, Dvorak)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Englisch (Dvorak mit britischer Punktierung)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Englisch (Britisch, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Englisch (Britisch, Macintosh international)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "English (Britisch, Colemak)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Usbekisch"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Usbekisch (lateinische Schrift)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamesisch"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Koreanisch"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Koreanisch (101/104-Tasten kompatibel)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japanisch (PC-98xx-Serie)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irisch"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irisch (UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogham (IS434)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdu (Pakistan)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdu (Pakistan, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdu (Pakistan, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Arabisch (Pakistan)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Dhivehi"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Englisch (Südafrika)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Esperanto (falsch platziertes Semikolon und Anführungszeichen, veraltet)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalesisch"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Englisch (Nigeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Joruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharisch"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braille (linkshändig)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braille (rechtshändig)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmenisch"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmenisch (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Französisch (Mali, Alternative)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Englisch (Mali, USA Macintosh)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Englisch (Mali, USA International)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Swahili (Tansania)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Swahili (Kenia)"
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Philippinisch"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Philippinisch (QWERTY, Baybayin)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Philippinisch (Capewell-Dvorak, Lateinisch)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Philippinisch (Capewell-Dvorak, Baybayin)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Philippinisch (Capewell-QWERF 2006, lateinisch)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Philippinisch (Capewell-QWERF 2006, Baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Philippinisch (Colemak, lateinisch)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Philippinisch (Colemak, Baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Philippinisch (Dvorak, lateinisch)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Philippinisch (Dvorak, Baybayin)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldawisch"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldauisch (Gagauz)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Wechseln in eine andere Belegung"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Rechte Alt-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Linke Alt-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Linke Windows-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Rechte Windows-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Beliebige Windows-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Feststelltaste (gedrückt halten), Alt+Feststelltaste führen die normale Feststelltasten-Aktion aus"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Rechte Strg-Taste (gedrückt halten)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Rechte Alt-Taste"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Linke Alt-Taste"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Feststelltaste"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Umschalt-+Feststelltaste"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Feststelltaste (zur ersten Belegung), Umschalttaste+Feststelltaste (zur letzten Belegung)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
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:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Linke Strg-Taste (zur ersten Belegung), rechte Strg-Taste (zur letzten Belegung)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Feststelltaste"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Beide Umschalttasten gleichzeitig"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Beide Alt-Tasten gleichzeitig"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Beide Steuerungstasten gleichzeitig"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Strg+Umschalttaste"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Linke Strg-Taste+Linke Umschalttaste"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Rechte Strg-Taste und rechte Umschalttaste"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Strg"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Umschalttaste"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Linke Alt-Taste+Linke Umschalttaste"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Leertaste"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menü"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Linke Windows-Taste"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Windows-Taste + Leertaste"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Rechte Windows-Taste"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Linke Umschalttaste"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Rechte Umschalttaste"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Linke Strg-Taste"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Rechte Strg-Taste"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Rollen"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Linke Strg-Taste und linke Windows-Taste (zur ersten Belegung), rechte Strg-Taste und Menütaste (zur zweiten Belegung)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Taste zum Wechsel in die dritte Tastaturebene"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Beliebige Windows-Taste"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Beliebige Alt-Taste"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Rechte Alt-Taste, Umschalttaste + rechte Alt-Taste ist Compose-Taste"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "Rechte Alt-Taste wählt niemals die dritte Tastaturebene."
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Eingabetaste im Nummernblock"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Backslash"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Kleiner als/größer als&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Feststelltaste wählt die dritte Ebene, sperrt einmalig wenn gedrückt, zusammen mit einer anderen Taste zum Wählen der dritten Ebene"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Backslash wählt die dritte Ebene, sperrt einmalig wenn gedrückt, zusammen mit einer anderen Taste zum Wählen der dritten Ebene"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Kleiner als/Größer als&gt; wählt die dritte Ebene, sperrt einmalig wenn gedrückt, zusammen mit einer anderen Taste zum Wählen der dritten Ebene"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Position der Strg-Taste"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Feststelltaste als Strg-Taste"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Linke Strg-Taste als Meta"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Strg-Taste und Feststelltaste vertauschen"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Links von »A«"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "Unten links"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Rechte Strg-Taste wie rechte Alt-Taste"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menü als rechte Strg-Taste"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Rechte Alt-Taste als rechte Strg-Taste"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Linke Alt-Taste und linke Strg-Taste vertauschen"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Linke Win-Taste und linke Strg-Taste vertauschen"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Rechte Win-Taste und rechte Strg-Taste vertauschen"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Linke Alt als Strg, linke Strg als Win, linke Win als Alt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Tastatur-LED zur Anzeige der alternativen Belegung verwenden"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Belegung des Nummernblocks"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Veraltet"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode-Ergänzungen (Pfeile und mathematische Operatoren)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
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:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Wang 724 (veraltet)"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
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:965
+#: ../rules/base.xml.in.h:968
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:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadezimal"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "ATM/Telefonstil"
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Verhalten der Löschtaste des Nummernblocks"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Veraltete Taste mit Punkt"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Veraltete Taste mit Komma"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Taste der vierten Ebene mit Punkt"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Taste der vierten Ebene mit Punkt, Latin-9-Einschränkung"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Taste der vierten Ebene mit Komma"
# momayyez? Was ist das?
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Taste der vierten Ebene mit »momayyez«"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Taste der vierten Ebene mit abstrakten Trennern"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Semikolon in der dritten Tastaturebene"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Verhalten der Feststelltaste"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Feststelltaste verwendet interne Großschreibung. Umschalttaste »unterbricht« Feststelltaste"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Feststelltaste verwendet interne Großschreibung. Umschalttaste beeinflusst Feststelltaste nicht"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Feststelltaste arbeitet als Umschalttaste mit Sperrung. Umschalttaste »unterbricht« Feststelltaste"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Feststelltaste arbeitet als Umschalttaste mit Sperrung. Umschalttaste beeinflusst Feststelltaste nicht"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Feststelltaste kehrt die normale Großschreibung alphabetischer Zeichen um"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Feststelltaste als zusätzliche NumLock-Taste verwenden"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Esc und Feststelltaste vertauschen"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Feststelltaste als zusätzliche Esc-Taste verwenden"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Feststelltaste als zusätzliche Löschtaste verwenden"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Feststelltaste als zusätzliche Super-Taste verwenden"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Feststelltaste als zusätzliche Hyper-Taste verwenden"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Feststelltaste kehrt Umschalttaste um, so dass alle Tasten beeinflusst werden"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Feststelltaste ist deaktiviert"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Feststelltaste als zusätzliche Strg-Taste verwenden"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Verhalten der Alt/Windows-Tasten"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Standardverhalten zur Menütaste hinzufügen"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt und Meta befinden sich auf den Alt-Tasten."
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt ist den Windows-Tasten zugeordnet (und den üblichen Alt-Tasten)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Strg ist den Windows-Tasten zugeordnet (und den üblichen Strg-Tasten)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl 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:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta ist den Windows-Tasten zugeordnet"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta ist der linken Windows-Taste zugeordnet"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper ist den Windows-Tasten zugeordnet"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt ist der rechten Windows-Taste zugeordnet und Super der Menü-Taste."
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt-Taste ist gegen Windows-Taste vertauscht"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Position der Compose-Taste"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "Dritte Ebene der linken Windows-Taste"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "Dritte Ebene der rechten Windows-Taste"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "Dritte Ebene der Menü-Taste"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "Dritte Ebene der linken Strg-Taste"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "Dritte Ebene der rechten Strg-Taste"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "Dritte Ebene der Feststelltaste"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "Dritte Ebene von &lt;Kleiner als/größer als&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "Druck"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Verschiedene Optionen zur Kompatibilität"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Vorgegebene Nummernblocktasten"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Tasten des Nummernblocks geben immer Ziffern ein (wie bei Mac)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "NumLock an: Ziffern, Umschalttaste wechselt zu Pfeiltasten, Numlock aus: immer Pfeiltasten (wie in MS Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Umschalttaste deaktiviert NumLock nicht, wechselt stattdessen in die dritte Tastaturebene"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
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:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Apple Aluminium Keyboard: PC-Tasten emulieren (Druck, Scroll_Lock, Pause, NumLock)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Umschalttaste deaktiviert Feststelltaste"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Typographische Sonderzeichen aktivieren"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Beide Umschalttasten gleichzeitig schalten CapsLock ein und aus"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Beide Umschalttasten gleichzeitig schalten CapsLock ein, eine Umschalttaste deaktiviert"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Beide Umschalttasten gleichzeitig schalten ShiftLock ein und aus"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Umschalttaste + NumLock schaltet Tastaturmaus ein und aus"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Erlauben, Grabs mit Tastaturaktionen abzubrechen (Achtung: Sicherheitsrisiko)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Protokollieren von Grabs und Baumansichtsaktionen erlauben"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Währungssymbole zu verschiedenen Tasten hinzufügen"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro auf E"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro auf 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro auf 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro auf 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupie-Symbol auf 4"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Taste zum Wechsel in die fünfte Tastaturebene"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Kleiner als/Größer als&gt; wählt die fünfte Ebene, sperrt wenn gedrückt, zusammen mit einer anderen Taste zum Wählen der fünften Ebene"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Rechte Alt-Taste wählt die fünfte Ebene, sperrt wenn gedrückt, zusammen mit einer anderen Taste zum Wählen der fünften Ebene"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Linke Windows-Taste wählt die fünfte Ebene, sperrt wenn gedrückt, zusammen mit einer anderen Taste zum Wählen der fünften Ebene"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Rechte Windows-Taste wählt die fünfte Ebene, sperrt wenn gedrückt, zusammen mit einer anderen Taste zum Wählen der fünften Ebene"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Leertaste zur Eingabe nicht umbrechbarer Zeichen verwenden"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Leertaste gibt in jeder Ebene stets Leerzeichen aus"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Nicht umbrechbares Leerzeichen in der zweiten Tastaturebene"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Nicht umbrechbares Leerzeichen in der dritten Tastaturebene"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
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:1047
+#: ../rules/base.xml.in.h:1050
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:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Nicht umbrechbares Leerzeichen in der vierten Tastaturebene"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
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:1050
+#: ../rules/base.xml.in.h:1053
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:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der zweiten Ebene"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der zweiten Ebene, verbindendes Zeichen der Breite Null in der dritten Ebene"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der zweiten Ebene, verbindendes Zeichen der Breite Null in der dritten Ebene, nicht umbrechbares Leerzeichen in der vierten Tastaturebene"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der zweiten Ebene, nicht umbrechbares Leerzeichen in der dritten Ebene"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der zweiten Ebene, nicht umbrechbares Leerzeichen in der dritten Tastaturebene, nichts in der vierten Ebene"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der zweiten Ebene, nicht umbrechbares Leerzeichen in der dritten Tastaturebene, verbindendes Zeichen der Breite Null in der vierten Ebene"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der zweiten Ebene, nicht umbrechbares Leerzeichen in der dritten Tastaturebene, schmales nicht umbrechbares Leerzeichen in der vierten Ebene"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Nicht verbindendes Zeichen der Breite Null in der dritten Ebene, verbindendes Zeichen der Breite Null in der vierten Ebene"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Japanische Tastaturoptionen"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Kana-Sperrtaste ist gesperrt"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Löschtaste wie NICOLA-F"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Zenkaku Hankaku als zusätzliche Esc-Taste verwenden"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Koreanische Hangul/Hanja-Tasten"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Hardware-Hangul/Hanja-Tasten"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Rechte Alt-Taste als Hangul, rechte Strg-Taste als Hanja"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Rechte Strg-Taste als Hangul, rechte Alt-Taste als Hanja"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Zeichen mit Esperanto-Circumflex hinzufügen"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "Zur entsprechenden Taste einer Qwerty-Belegung."
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "Zur entsprechenden Taste einer Dvorak-Belegung."
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "Zur entsprechenden Taste einer Colemak-Belegung."
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Tastenkompatibilität mit veralteten Solaris-Tastencodes sicher stellen"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Sun-Tastenkompatibilität"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Tastenkombination zum erzwungenen Beenden des X-Servers"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Strg + Alt + Löschtaste"
diff --git a/xorg-server/xkeyboard-config/po/es.po b/xorg-server/xkeyboard-config/po/es.po
index 25a45d4d3..163e6962d 100644
--- a/xorg-server/xkeyboard-config/po/es.po
+++ b/xorg-server/xkeyboard-config/po/es.po
@@ -1,17 +1,16 @@
-# translation of xkeyboard-config-2.11.99.po to Spanish
+# translation of xkeyboard-config-2.14.99.po to Spanish
# This file is distributed under the same license as the xkeyboard-config package.
# Copyright (C) 2006 The free software foundation
# Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2006.
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
-# Facundo Dario Illanes <fdillanes@gmail.com>, 2013, 2014.
-# Facundo Dario Illanes <fdillanes@gmail.com>, 2014.
+# Facundo Dario Illanes <fdillanes@gmail.com>, 2013, 2014, 2015.
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-2.12.99\n"
+"Project-Id-Version: xkeyboard-config-2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2014-09-18 23:46+0100\n"
-"PO-Revision-Date: 2014-09-19 16:54-0300\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-21 18:12-0300\n"
"Last-Translator: Facundo Dario Illanes <fdillanes@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
@@ -758,11 +757,11 @@ msgid "Htc Dream phone"
msgstr "Teléfono HTC Dream"
#. Keyboard indicator for English layouts
-#: ../rules/base.xml.in.h:186 ../rules/base.extras.xml.in.h:46
+#: ../rules/base.xml.in.h:186 ../rules/base.extras.xml.in.h:47
msgid "en"
msgstr "en"
-#: ../rules/base.xml.in.h:187 ../rules/base.extras.xml.in.h:47
+#: ../rules/base.xml.in.h:187 ../rules/base.extras.xml.in.h:48
msgid "English (US)"
msgstr "Inglés (EE. UU.)"
@@ -820,7 +819,7 @@ msgid "English (programmer Dvorak)"
msgstr "Inglés (Dvorak de programador)"
#. Keyboard indicator for Russian layouts
-#: ../rules/base.xml.in.h:203 ../rules/base.extras.xml.in.h:69
+#: ../rules/base.xml.in.h:203 ../rules/base.extras.xml.in.h:70
msgid "ru"
msgstr "ru"
@@ -853,7 +852,7 @@ msgid "English (Workman, international with dead keys)"
msgstr "Inglés (Workman, internacional con teclas muertas)"
#. Keyboard indicator for Persian layouts
-#: ../rules/base.xml.in.h:212 ../rules/base.extras.xml.in.h:28
+#: ../rules/base.xml.in.h:212 ../rules/base.extras.xml.in.h:29
msgid "fa"
msgstr "fa"
@@ -892,11 +891,11 @@ msgid "Uzbek (Afghanistan, OLPC)"
msgstr "Uzbeco (Afganistán, OLPC)"
#. Keyboard indicator for Arabic layouts
-#: ../rules/base.xml.in.h:224 ../rules/base.extras.xml.in.h:80
+#: ../rules/base.xml.in.h:224 ../rules/base.extras.xml.in.h:81
msgid "ar"
msgstr "ar"
-#: ../rules/base.xml.in.h:225 ../rules/base.extras.xml.in.h:81
+#: ../rules/base.xml.in.h:225 ../rules/base.extras.xml.in.h:82
msgid "Arabic"
msgstr "Árabe"
@@ -924,3065 +923,3101 @@ msgstr "Árabe (qwerty/dígitos)"
msgid "Arabic (Buckwalter)"
msgstr "Árabe (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Árabe (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albanés"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albanés (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:74
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armenio"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armenio (fonético)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armenio (alternativo fonético)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armenio (oriental)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armenio (occidental)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armenio (alternativo oriental)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Alemán (Austria)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Alemán (Austria, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Alemán (Austria, teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Alemán (Austria, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Azerbaijaní"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Azerbajaní (cirílico)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Bielorruso"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Bielorruso (arcaico)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Bielorruso (latino)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:83
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belga"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belga (alternativo)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belga (alternativo, sólo latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belga (alternativo, teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belga (alternativo ISO)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belga (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belga (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belga (modelo azerty 724 de Wang)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bangladesh"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengalí (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indio"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengalí (India)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengalí (India, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengalí (India, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengalí (India, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengalí (India, Uni Gitanjali)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengalí (India, Inscript Baishakhi)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipuri (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gujarati"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Panyabí (gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Panyabí (gurmukhi jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Canarés (fonético KaGaPa)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malayalam (lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malayalam (Inscript mejorado con signo de rupia)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Oriya"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamil (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamil (teclado con números)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamil (máquina de escribir TAB)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamil (máquina de escribir TSCII)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamil"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (fonético KaPaGa)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdu (fonético)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdu (fonético alternativo)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdu (teclas Windows)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (fonético KaGaPa)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sánscrito (fonético KaGaPa)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Maratí (fonético KaGaPa)"
# no entiendo por que este mensaje aparece como difuso
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Inglés (India, con signo de rupia)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosnio"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosnio (usar guillemots para comillas)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosnio (con dígrafos bosnios)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosnio (teclado de EE. UU. con dígrafos bosnios)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosnio (teclado de EE. UU. con letras bosnias)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:86
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugués (Brasil)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugués (Brasil, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugués (Brasil, Dvorak)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugués (Brasil, Nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugués (Brasil, Nativo para teclados de EE. UU.)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperanto (Brasil, Nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Búlgaro"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Búlgaro (fonética tradicional)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Búlgaro (fonética nueva)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Árabbe (Marruecos)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Francés (Marruecos)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Bereber (Marruecos, tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Bereber (Marruecos, alternativo tifinagh)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Bereber (Marruecos, alternativo fonético tifinagh)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Bereber (Marruecos, tifinagh extendido)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Bereber (Marruecos, tifinagh fonético)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Bereber (Marruecos, tifinagh fonético extendido)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:149
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Inglés (Camerún)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Francés (Camerún)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Camerunés multilingüe (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Camerunés multilingüe (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Camerunés multilingüe (Dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Burmese"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Francés (Canadá)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Francés (Canadá, Dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Francés (Canadá, arcaico)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Canadiense multilingüe"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Canadiense multilingüe (primera parte)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Canadiense multilingüe (segunda parte)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Inglés (Canadá)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Francés (República Democrática del Congo)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Chino"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetano"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetano (con numerales ASCII)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Uigur"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Croata"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Croata (usar guillemots para comillas)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Croata (con dígrafos croatas)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Croata (teclado de EE. UU. con dígrafos croatas)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Croata (teclado de EE. UU. con letras croatas)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:89
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Checo"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Checo (con tecla «\\|»)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Checo (qwery)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Checo (qwerty, contrabarra extendida)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Checo (distribución UCW, sólo teclas con tilde)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Checo (teclado Dvorak EE. UU. con soporte para UCW checo)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:92
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Danés"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Danés (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Danés (teclas Windows)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Danés (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Danés (Macintosh, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Danés (Dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:95
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Holandés"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Holandés (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Holandés (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Holandés (estándar)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:98
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estonio"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estonio (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estonio (Dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estonio (teclado EE. UU. con letras estonias)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:29
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Persa"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Persa (con teclado numérico persa)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurdo (Irán latino Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurdo (Irán, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurdo (Irán, latino Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurdo (Irán, arábigolatino)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Iraquí"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurdo (Irak, latino Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurdo (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurdo (Irak, latino Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurdo (Irak, arábigolatino)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Faroés"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Faroés (eliminar teclas muertas)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:101
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finlandés"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finlandés (clásico)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finlandés (clásico, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finlandés (teclas Windows)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Lapón del norte (Finlandia)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finlandés (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:104
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Francés"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Francés (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Francés (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Francés (alternativo)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Francés (alternativo, sólo latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Francés (alternativo, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Francés (alternativo, teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Francés (arcaico, alternativo)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Francés (arcaico, alternativo, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Francés (arcaico, alternativo, teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Francés (bepo, ergonómico, forma Dvorak)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Francés (bepo, ergonómico, forma Dvorak, sólo latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Francés (Dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Francés (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Francés (bretón)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Occitano"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Georgiano (Francia, AZERTY tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Inglés (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Inglés (Ghana, multilingüe)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Inglés (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Francés (Guinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Georgiano"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Georgiano (ergonómico)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Georgiano (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Ruso (Georgia)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Osetio (Georgia)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Alemán"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Alemán (acento muerto)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Alemán (acento grave muerto)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Alemán (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Alemán (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Rumano (Alemania)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Rumano (Alemania, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Alemán (Dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Alemán (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Alemán (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Alemán (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Alemán (Macintosh, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Bajo sorbio"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Bajo sorbio (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Alemán (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turco (Alemania)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Ruso (Alemania, fonético)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Alemán (arcaico)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:106
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Griego"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Griego (simple)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Griego (extendido)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Griego (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Griego (politónico)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Húngaro"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Húngaro (estándar)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Húngaro (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Húngaro (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Húngaro (101/qwertz/coma/teclas muertas)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Húngaro (101/qwertz/coma/eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Húngaro (101/qwertz/punto/teclas muertas)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Húngaro (101/qwertz/punto/eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Húngaro (101/qwerty/coma/teclas muertas)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Húngaro (101/qwerty/coma/eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Húngaro (101/qwerty/punto/teclas muertas)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Húngaro (101/qwerty/punto/eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Húngaro (102/qwertz/coma/teclas muertas)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Húngaro (102/qwertz/coma/eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Húngaro (102/qwertz/punto/teclas muertas)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Húngaro (102/qwertz/punto/eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Húngaro (102/qwerty/coma/teclas muertas)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Húngaro (102/qwerty/coma/eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Húngaro (102/qwerty/punto/teclas muertas)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Húngaro (102/qwerty/punto/eliminar teclas muertas)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Islandés"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Islandés (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Islandés (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Islandés (Macintosh, arcaico)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Islandés (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Islandés (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:77
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebreo"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebreo (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebreo (fonético)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebreo (bíblico, tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:109
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italiano"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italiano (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italiano (teclas Windows)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italiano (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italiano (teclado EE. UU. con letras italianas)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Georgiano (Italia)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italiano (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:112
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japones"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japonés (kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japonés (kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japonés (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japonés (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japonés (Dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirguí"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirguí (fonético)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmer (Camboya)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazajo"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Ruso (Kazajstán, con kazajo)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazajo (con ruso)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Lao (distribución propuesta STEA estándar)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:125
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Español (latinoamericano)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Español (latinoamericano, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Español (latinoamericano, incluir tilde muerta)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Español (latinoamericano, teclas muertas de Sun)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Español (latinoamericano, Dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:31
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Lituano"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Lituano (estándar)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Lituano (teclado de EE. UU. con letras lituanas)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Lituano (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Lituano (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Lituano (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:35
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Letón"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Letón (variante con apóstrofo)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Letón (variante virgulilla)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Letón (variante de letra F)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Letón (moderno)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Letón (ergonómico, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Letón (adaptado)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maorí"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:66
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Montenegrino"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Montenegrino (cirílico)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Montenegrino (cirílico, ZE y ZHE intercambiados)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Montenegrino (latino Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Montenegrino (latino qwerty)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Montenegrino (latino Unicode qwerty)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Montenegrino (cirílico con guillemots)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Montenegrino (latino con guillemots)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Macedonio"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Macedonio (eliminar teclas muertas)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltés"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltés (con distribución para EE. UU.)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongol"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:117
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Noruego"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Noruego (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Noruego (teclas Windows)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Noruego (Dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Lapón del norte (Noruega)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Lapón del norte (Noruego, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Noruego (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Noruego (Macintosh, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Noruego (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:55
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polaco"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polaco (arcaico)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polaco (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polaco (Dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polaco (Dvorak, comillas polacas en la tecla de comillas)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polaco (Dvorak, comillas polacas en la tecla 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Casubio"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Silesiano"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Ruso (Polonia, Dvorak fonético)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polaco (Dvorak de programador)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:120
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugués"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugués (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugués (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugués (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugués (Macintosh, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugués (Macintosh, teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugués (Nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugués (Nativo para teclados de EE. UU.)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugal, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:60
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Rumano"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Rumano (cedilla)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Rumano (estándar)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Rumano (cedilla estándar)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Rumano (teclas Windows)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:70
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Ruso"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Ruso (fonético)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Ruso (fonético con teclas Windows)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Ruso (máquina de escribir)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Ruso (arcaico)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Ruso (máquina de escribir, arcaico)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Osetio (arcaico)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Osetio (teclas Windows)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Cuvash (latino)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurto"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Yakuto"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Calmuco"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Ruso (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Ruso (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbio (Rusia)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Bashkiriano"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:701
+msgid "Russian (phonetic azerty)"
+msgstr "Ruso (fonético azerty)"
+
+#: ../rules/base.xml.in.h:702
+msgid "Russian (phonetic French)"
+msgstr "Ruso (fonético francés)"
+
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbio"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbio (cirílico, ZE y ZHE intercambiados)"
-#: ../rules/base.xml.in.h:701
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbio (latino)"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbio (latino Unicode)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbio (latino qwerty)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbio (latino Unicode qwerty)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Serbio (cirílico con guillemots)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbio (latino con guillemots)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Rusino de Panonia"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:710
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Esloveno"
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Esloveno (con guillemots para comillas)"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Esloveno (teclado EE. UU. con letras eslovenas)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:714 ../rules/base.extras.xml.in.h:122
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:715 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Eslovaco"
-#: ../rules/base.xml.in.h:716
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Eslovaco (contrabarra extendida)"
-#: ../rules/base.xml.in.h:717
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Eslovaco (qwerty)"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Eslovaco (qwerty, contrabarra extendida)"
-#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Español"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Español (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:721
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Español (teclas Windows)"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Español (incluir tilde muerta)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Español (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Español (Dvorak)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturiano (España, con H y L con punto bajo)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Catalán (España, con L con punto medio)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Español (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:729 ../rules/base.extras.xml.in.h:128
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:730 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Sueco"
-#: ../rules/base.xml.in.h:731
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Sueco (eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:732
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Sueco (Dvorak)"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Ruso (sueco, fonético)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Ruso (sueco, fonético, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Lapón del norte (Suecia)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Sueco (Macintosh)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Sueco (Svdvorak)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Lenguaje de signos sueco"
-#: ../rules/base.xml.in.h:739 ../rules/base.extras.xml.in.h:132
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Alemán (Suiza)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Alemán (Suiza, arcaico)"
-#: ../rules/base.xml.in.h:741
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Alemán (Suiza, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Alemán (Suiza, teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Francés (Suiza)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Francés (Suiza, eliminar teclas muertas)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Francés (Suiza, teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Francés (Suiza, Macintosh)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Alemán (Suiza, Macintosh)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Árabe (Siria)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:751
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Sirio"
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Sirio (fonético)"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurdo (Siria, latino Q)"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurdo (Siria, F)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurdo (Siria, latino Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:758
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tajico"
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tajico (arcaico)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:762
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Cingalés (fonético)"
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamil (Sri Lanka, Unicode)"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamil (Sri Lanka, máquina de escribir TAB)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Cingalés (teclado EE. UU. con letras cingalesas)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:767
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Tailandés"
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Tailandés (TIS-820.2538)"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Tailandés (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:771 ../rules/base.extras.xml.in.h:135
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:772 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turco"
-#: ../rules/base.xml.in.h:773
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turco (F)"
-#: ../rules/base.xml.in.h:774
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turco (Alt-Q)"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turco (teclas muertas de Sun)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurdo (Turquía, latino Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurdo (Turquía, F)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurdo (Turquía, latino Alt-Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turco (internacional con teclas muertas)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:781 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:782
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Tártaro de Crimea (Q turca)"
-#: ../rules/base.xml.in.h:783
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Tártaro de Crimea (F turca)"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Tártaro de Crimea (Alt-Q turca)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taiwanés"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taiwanés (autóctono)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:789
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taiwán)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:791 ../rules/base.extras.xml.in.h:138
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:792 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ucraniano"
-#: ../rules/base.xml.in.h:793
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ucraniano (fonético)"
-#: ../rules/base.xml.in.h:794
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ucraniano (máquina de escribir)"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ucraniano (teclas Windows)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ucraniano (arcaico)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ucraniano (estándar RSTU)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Ruso (ucraniano estándar RSTU)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ucraniano (homofónico)"
-#: ../rules/base.xml.in.h:800 ../rules/base.extras.xml.in.h:141
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Inglés (RU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Inglés (RU, extendido con teclas Windows)"
-#: ../rules/base.xml.in.h:802
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Inglés (RU, internacional con teclas muertas)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Inglés (RU, Dvorak)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Inglés (RU, Dvorak con puntuación para RU)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Inglés (RU, Macintosh)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Inglés (RU, Macintosh internacional)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Inglés (RU, Colemak)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Uzbeco"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Uzbeco (latino)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:812
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamita"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:814 ../rules/base.extras.xml.in.h:143
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:815 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Coreano"
-#: ../rules/base.xml.in.h:816
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Coreano (101/104 teclas compatible)"
-#: ../rules/base.xml.in.h:817
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japonés (series PC-98xx)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:820
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irlandés"
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "Cló Gaelach"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irlandés (UnicodeExperto)"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogam (IS434)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdu (Pakistán)"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdu (Pakistán, CRULP)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdu (Pakistán, NLA)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Árabe (Pakistán)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:831
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:834
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Dhivehi"
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Inglés (Sudáfrica)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:838
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Estonio (punto y coma y comilla desplazadas, obsoleto)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:842
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalí"
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Inglés (Nigeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:846
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:849
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Yoruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:852
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharico"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:855
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:858
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braille (zurdo)"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braille (diestro)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:863
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmenistano"
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmenistano (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:867
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Francés (Malí, alternativo)"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Inglés (Malí, Macintosh de EE. UU.)"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Inglés (Malí, EE. UU. internacional)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:873
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Swahili (Tanzania)"
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Swahili (Kenia)"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:878
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:881
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipino"
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipino (QWERTY baybayin)"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipino (Capewell-Dvorak latino)"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipino (Capewell-Dvorak baybayin)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipino (Capewell-QWERF 2006 latino)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipino (Capewell-QWERF 2006 baybayin)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipino (Colemak latino)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipino (Colemak baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipino (Dvorak latino)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipino (Dvorak baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldavo"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldavo (Gagauzia)"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Cambiar a otra distribución"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Alt derecho (mientras está pulsado)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Alt izquierdo (mientras está pulsado)"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Tecla Windows izquierda (al pulsarla)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "La tecla Windows (mientras está pulsada)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Cualquier tecla Windows (al pulsarla)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Bloq Mayús (al pulsarse), Alt+Bloq Mayús realiza la acción original de bloqueo de mayúsculas"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl derecho (mientras está pulsado)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Alt derecho"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Alt izquierdo"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Bloqueo de mayúsculas"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Mayús+Bloq Mayús"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Bloq Mayús (a la primera distribución), Mayús+Bloq Mayús (a la última distribución)"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Win izquierdo (a la primera distribución), Win/Menu derecho (a la última distribución)"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Ctrl izquierdo (a la primera distribución), Ctrl derecho (a la última distribución)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Bloq Mayús"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Ambas teclas Mayús juntas"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Ambas teclas Alt juntas"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Ambas teclas Ctrl juntas"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Mayús"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl izquierdo + Mayús izquierdo"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Ctrl derecho + Mayús derecho"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Mayús"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Alt izquierdo + Mayús izquierdo"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Espacio"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Win izquierdo"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Tecla Windows + espaciadora"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Windows derecho"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Mayús izquierdo"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Mayús derecho"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Ctrl izquierdo"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Ctrl derecho"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Bloq Despl"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Ctrl izquierdo + Ctrl derecho (a la primera distribución), Ctrl derecho + Menú (a la segunda distribución)"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Tecla para seleccionar el tercer nivel"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Cualquier tecla Windows"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Cualquier tecla Alt"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "La tecla Alt derecho, Mayús+Alt derecho es tecla Componer"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "La tecla Alt derecho nunca elige el tercer nivel"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Intro en el teclado numérico"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Contrabarra"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Menor que/Mayor que&gt;"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Bloq Mayús elige el tercer nivel, actúa como un bloqueo de una sola vez al pulsarse junto con otro selector de tercer nivel"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Contrabarra elige el tercer nivel, bloquea solo una vez al pulsarse junto con otro selector de tercer nivel"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Menor que/Mayor que&gt; elige el 3º nivel, bloquea solo una vez al pulsarse junto con otro selector de 3º nivel"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Posición de la tecla Ctrl"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Bloq Mayús como Ctrl"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Ctrl izquierdo como Meta"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Intercambiar Ctrl y Bloq Mayús"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "A la izquierda de la «A»"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "En la parte inferior izquierda"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl derecho como Alt derecho"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menú como Ctrl derecho"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Alt derecho como Ctrl derecho"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Intercambiar tecla Alt Izquierda con tecla Ctrl Izquierda"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Intercambiar tecla Windows Izquierda con tecla Ctrl Izquierda"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Intercambiar tecla Windows Derecha con tecla Ctrl Derecha"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Tecla Alt como tecla Ctrl, Tecla Ctrl izquierda como tecla Windows, tecla Windows como tecla Alt"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Usar LED del teclado para mostrar la distribución alternativa"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Bloq Num"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Distribución del teclado numérico "
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Arcaico"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Adiciones Unicode (flechas y operadores matemáticos)"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:965
msgid "Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Adiciones Unicode (flechas y operadores matemáticos; operadores matemáticos en el nivel predeterminado)"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Wang 724 arcaico"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:967
msgid "Wang 724 keypad with Unicode additions (arrows and math operators)"
msgstr "Teclado numérico Wang 724 con adiciones Unicode (flechas y operadores matemáticos)"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:968
msgid "Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Teclado numérico Wang 724 con adiciones Unicode (flechas y operadores matemáticos; operadores matemáticos en el nivel predeterminado)"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadecimal"
-#: ../rules/base.xml.in.h:965
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "Estilo de cajero automático ó teléfono"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Comportamiento de la tecla Supr del teclado numérico"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Tecla arcaica con punto"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Tecla arcaica con coma"
-#: ../rules/base.xml.in.h:970
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Tecla de cuarto nivel con punto"
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Tecla de cuarto nivel con punto, restricción latin-9"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Tecla de cuarto nivel con coma"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Tecla de cuarto nivel con momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:976
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Tecla de cuarto nivel con separadores abstractos"
-#: ../rules/base.xml.in.h:977
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Punto y coma en tercer nivel"
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Comportamiento de Bloq Mayús"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Bloq Mayús usa la capitalización interna; Mayús «pausa» el Bloq Mayús"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Bloq Mayús usa la capitalización interna; Mayús no afecta a Bloq Mayús"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Bloq Mayús actúa como Mayús con bloqueo; Mayús «pausa» Bloq Mayús"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Bloq Mayús actúa como Mayús con bloqueo; Mayús no afecta a Bloq Mayús"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Bloq Mayús cambia la capitalización normal de los caracteres alfabéticos"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Hacer de Bloq Mayús un Bloq Num adicional"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Intercambiar ESC y Bloq Mayús"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Hacer de Bloq Mayús un Esc adicional"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Hacer de Bloq Mayús un Retroceso adicional"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Hacer de Bloq Mayús un Super adicional"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Hacer de Bloq Mayús un Hyper adicional"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Bloq Mayús cambia Mayús de forma que todas las teclas están afectadas"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Bloq Mayús está desactivado"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Hacer de Bloq Mayús un Ctrl adicional"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Comportamiento de la tecla Alt/Windows"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Añadir el comportamiento estándar a la tecla Menú."
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt y Meta están en las teclas Alt"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt está mapeada en las teclas Windows (y las teclas Alt usuales)"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Control está mapeada en las teclas Windows (y las teclas Ctrl usuales)"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Control está mapeada en las teclas Alt, Alt está mapeado en las teclas Windows"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta está mapeada a las teclas Windows"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta está mapeada a la tecla Windows izquierdo"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper está mapeada a las teclas Windows"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt está mapeada a la tecla Windows derecho y Super a la tecla Menú"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt está cambiado con la tecla Windows"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Posición de la tecla Componer"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "3er nivel de tecla windows izquierda"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "3er nivel de tecla windows derecha"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "3er nivel de tecla Menu"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "3er nivel de Ctrl izquierdo"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "3er nivel de Control derecho"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "3er nivel de tecla Bloq Mayús"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "3er nivel de &lt;Menor que/Mayor que&gt;"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pausa"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Opciones misceláneas de compatiblidad"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Teclas del teclado numérico predeterminado"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Las teclas del teclado numérico siempre introducen dígitos (como en Mac OS)"
-#: ../rules/base.xml.in.h:1017
-msgid "Shift with numeric keypad keys works as in MS Windows"
-msgstr "Mayús con las teclas del teclado numérico funcionan como en MS Windows"
+#: ../rules/base.xml.in.h:1022
+msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
+msgstr "Bloq Num encendido: dígitos, Mayús cambia a teclas con flecha, Block Num apagado: siempre teclas con flecha (como en MS Windows)"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Mayús no cancela Bloq Num, en su lugar elije el 3er nivel"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1024
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Teclas especiales (Ctrl+Alt+«tecla») manipuladas en un servidor"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Teclado de aluminio de Apple: emular teclas PC (Imprimir, Bloq Despl, Pausa, Bloq Num)"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Mayús cancela Bloq Mayús"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Activar caracteres tipográficos adicionales"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Ambas teclas Mayús juntas conmutan Bloq Mayús"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Ambas teclas Mayús juntas conmutan Bloq Mayús, una tecla Mayús lo desactiva"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Ambas teclas Mayús juntas conmutan Bloq Mayús"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Shift + Bloq Num cambia las teclas de flechas"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Permitir tomar interrupciones con el teclado (Peligro: riesgos de seguridad)"
# dice literalmente "árbol" he visto que se utiliza como sinónimo de servidor.
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Permitir tomar y loguearse al árbol windows"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Añadir símbolo de divisa a algunas teclas"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro en la E"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro en el 2"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro en el 4"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro en el 5"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupia en el 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Tecla para seleccionar el 5o nivel"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Menor que/Mayor que&gt; elige el 5º nivel, bloquea al pulsarse junto con otro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Alt derecho elige el 5º nivel, bloquea al pulsarse junto con otro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Win izquierdo elige el 5º nivel, bloquea al pulsarse junto con otro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Win derecho elige el 5º nivel, bloquea al pulsarse junto con otro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Usar la tecla espacio para introducir un carácter de espacio no separable"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Espacio usual en cualquier nivel"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Carácter de espacio no separable en el segundo nivel"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Carácter de espacio no separable en el tercer nivel"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1049
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Carácter de espacio no separable en el tercer nivel, nada en el cuarto nivel"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1050
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Carácter de espacio no separable en el tercer nivel, carácter de espacio estrecho no separable en el cuarto nivel"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Carácter de espacio no separable en el cuarto nivel"
-#: ../rules/base.xml.in.h:1047
+#: ../rules/base.xml.in.h:1052
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Carácter de espacio no separable en el cuarto nivel, carácter de espacio estrecho no separable en el sexto nivel"
-#: ../rules/base.xml.in.h:1048
+#: ../rules/base.xml.in.h:1053
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Carácter de espacio no separable en el cuarto nivel, carácter de espacio estrecho no separable en el sexto nivel (a través de Ctrl+Mayús)"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el segundo nivel"
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el segundo nivel, carácter de espacio de anchura cero rompible («ZWJ») en el tercer nivel"
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el segundo nivel, carácter de espacio de anchura cero rompible («ZWJ») en el tercer nivel, caracter de espacio no separable en el cuarto nivel"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el segundo nivel, carácter de espacio no separable en el tercer nivel"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el segundo nivel, carácter de espacio no separable en el tercer nivel, nada en el cuarto nivel"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el segundo nivel, carácter de espacio no separable en el tercer nivel, espacio de anchura cero rompible («ZWJ») en el cuarto nivel"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el segundo nivel, carácter de espacio no separable en el tercer nivel, espacio estrecho no separable en el cuarto nivel"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Carácer de espacio irrompible de anchura cero («ZWNJ») en el tercer nivel, carácter de anchura cero rompible («ZWJ») en el cuarto nivel"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Opciones de teclado japonés"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "La tecla Bloq Kana está bloqueando"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Retroceso estilo NICOLA-F"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Hacer de Zenkaku Hankaku un Esc adicional"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1066
+msgid "Korean Hangul/Hanja keys"
+msgstr "Hangul koreano/ teclas Hanja"
+
+#: ../rules/base.xml.in.h:1067
+msgid "Hardware Hangul/Hanja keys"
+msgstr "Hardware Hangul/ teclas Hanja"
+
+#: ../rules/base.xml.in.h:1068
+msgid "Right Alt as Hangul, right Ctrl as Hanja"
+msgstr "Alt derecho para Hangul, Ctrl derecho para Hanja"
+
+#: ../rules/base.xml.in.h:1069
+msgid "Right Ctrl as Hangul, right Alt as Hanja"
+msgstr "Ctrl derecho para Hangul, Alt derecho para Hanja"
+
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Añadir las tildes del esperanto"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "A la tecla correspondiente en un teclado Qwerty."
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "A la tecla correspondiente en un teclado Dvorak."
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "A la tecla correspondiente en un teclado Colemak."
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Mantener compatibilidad de teclas con los viejos códigos de Solaris"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Compatibilidad con tecla Sun"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Secuencia de teclas para matar el servidor X"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Control + Alt + Retroceso"
@@ -4071,256 +4106,263 @@ msgid "German (with Hungarian letters and no dead keys)"
msgstr "Alemán (con letras húngaras y sin teclas muertas)"
#: ../rules/base.extras.xml.in.h:26
+msgid "Polish (Germany, eliminate dead keys)"
+msgstr "Rumano (Alemán, teclas muertas eliminadas)"
+
+#: ../rules/base.extras.xml.in.h:27
msgid "German (Sun Type 6/7)"
msgstr "Alemán (Sun tipo 6/7)"
# literalmente: "Desde el nuevo mundo"
-#: ../rules/base.extras.xml.in.h:27
+#: ../rules/base.extras.xml.in.h:28
msgid "German (Aus der Neo-Welt)"
msgstr "Alemán (Aus der Neo-Welt)"
-#: ../rules/base.extras.xml.in.h:30
+#: ../rules/base.extras.xml.in.h:31
msgid "Avestan"
msgstr "Avéstico"
-#: ../rules/base.extras.xml.in.h:33
+#: ../rules/base.extras.xml.in.h:34
msgid "Lithuanian (US Dvorak with Lithuanian letters)"
msgstr "Lituano (Dvorak de EE. UU. con letras lituanas)"
-#: ../rules/base.extras.xml.in.h:34
+#: ../rules/base.extras.xml.in.h:35
msgid "Lithuanian (Sun Type 6/7)"
msgstr "Lituano (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:37
+#: ../rules/base.extras.xml.in.h:38
msgid "Latvian (US Dvorak)"
msgstr "Letón (Dvorak de EE. UU.)"
-#: ../rules/base.extras.xml.in.h:38
+#: ../rules/base.extras.xml.in.h:39
msgid "Latvian (US Dvorak, Y variant)"
msgstr "Letón (Dvorak de EE. UU., variante Y)"
-#: ../rules/base.extras.xml.in.h:39
+#: ../rules/base.extras.xml.in.h:40
msgid "Latvian (US Dvorak, minus variant)"
msgstr "Letón (Dvorak de EE. UU., variante menos)"
-#: ../rules/base.extras.xml.in.h:40
+#: ../rules/base.extras.xml.in.h:41
msgid "Latvian (programmer US Dvorak)"
msgstr "Letón (programador, Dvorak de EE. UU.)"
-#: ../rules/base.extras.xml.in.h:41
+#: ../rules/base.extras.xml.in.h:42
msgid "Latvian (programmer US Dvorak, Y variant)"
msgstr "Letón (programador, Dvorak de EE. UU., variante Y)"
-#: ../rules/base.extras.xml.in.h:42
+#: ../rules/base.extras.xml.in.h:43
msgid "Latvian (programmer US Dvorak, minus variant)"
msgstr "Letón (programador, Dvorak de EE. UU., variante menos)"
-#: ../rules/base.extras.xml.in.h:43
+#: ../rules/base.extras.xml.in.h:44
msgid "Latvian (US Colemak)"
msgstr "Letón (Colemak EE.UU.)"
-#: ../rules/base.extras.xml.in.h:44
+#: ../rules/base.extras.xml.in.h:45
msgid "Latvian (US Colemak, apostrophe variant)"
msgstr "Letón (Colemak EE.UU., variante con apóstrofo)"
-#: ../rules/base.extras.xml.in.h:45
+#: ../rules/base.extras.xml.in.h:46
msgid "Latvian (Sun Type 6/7)"
msgstr "Letón (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:48
+#: ../rules/base.extras.xml.in.h:49
msgid "English (US, international AltGr Unicode combining)"
msgstr "Inglés (EE. UU., internacional combinando Unicode por AltGr)"
-#: ../rules/base.extras.xml.in.h:49
+#: ../rules/base.extras.xml.in.h:50
msgid "English (US, international AltGr Unicode combining, alternative)"
msgstr "Inglés (EE. UU., internacional combinando Unicode por AltGr, alternativo)"
-#: ../rules/base.extras.xml.in.h:50
+#: ../rules/base.extras.xml.in.h:51
msgid "Atsina"
msgstr "Atsina"
-#: ../rules/base.extras.xml.in.h:51
+#: ../rules/base.extras.xml.in.h:52
msgid "Coeur d'Alene Salish"
msgstr "Cœur d’Alene Salish"
-#: ../rules/base.extras.xml.in.h:52
+#: ../rules/base.extras.xml.in.h:53
msgid "Czech Slovak and German (US)"
msgstr "Checo Eslovaco y Alemán (EE.UU)"
-#: ../rules/base.extras.xml.in.h:53
+#: ../rules/base.extras.xml.in.h:54
msgid "English (US, Sun Type 6/7)"
msgstr "Inglés (EE. UU, Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:54
+#: ../rules/base.extras.xml.in.h:55
msgid "English (Norman)"
msgstr "Inglés (Norman)"
-#: ../rules/base.extras.xml.in.h:57
+#: ../rules/base.extras.xml.in.h:58
msgid "Polish (international with dead keys)"
msgstr "Polaco (internacional con teclas muertas)"
-#: ../rules/base.extras.xml.in.h:58
+#: ../rules/base.extras.xml.in.h:59
msgid "Polish (Colemak)"
msgstr "Polaco (Colemak)"
-#: ../rules/base.extras.xml.in.h:59
+#: ../rules/base.extras.xml.in.h:60
msgid "Polish (Sun Type 6/7)"
msgstr "Polaco (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:63
+#: ../rules/base.extras.xml.in.h:64
msgid "Crimean Tatar (Dobruja Q)"
msgstr "Tártaro de Crimea (Dobruca Q)"
-#: ../rules/base.extras.xml.in.h:64
+#: ../rules/base.extras.xml.in.h:65
msgid "Romanian (ergonomic Touchtype)"
msgstr "Rumanía (tipo de pulsación ergonómica)"
-#: ../rules/base.extras.xml.in.h:65
+#: ../rules/base.extras.xml.in.h:66
msgid "Romanian (Sun Type 6/7)"
msgstr "Rumano (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:68
+#: ../rules/base.extras.xml.in.h:69
msgid "Serbian (combining accents instead of dead keys)"
msgstr "Serbio (combinar tildes en lugar de teclas muertas)"
-#: ../rules/base.extras.xml.in.h:71
+#: ../rules/base.extras.xml.in.h:72
msgid "Church Slavonic"
msgstr "Eslavo eclesiástico"
-#: ../rules/base.extras.xml.in.h:72
+#: ../rules/base.extras.xml.in.h:73
msgid "Russian (with Ukrainian-Belorussian layout)"
msgstr "Ruso (con distribución ucraniana y bielorrusa)"
-#: ../rules/base.extras.xml.in.h:73
+#: ../rules/base.extras.xml.in.h:74
msgid "Russian (Sun Type 6/7)"
msgstr "Ruso (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:76
+#: ../rules/base.extras.xml.in.h:77
msgid "Armenian (OLPC phonetic)"
msgstr "Armenio (OLPC fonético)"
-#: ../rules/base.extras.xml.in.h:79
+#: ../rules/base.extras.xml.in.h:80
msgid "Hebrew (Biblical, SIL phonetic)"
msgstr "Hebreo (bíblico, fonética SIL)"
-#: ../rules/base.extras.xml.in.h:82
+#: ../rules/base.extras.xml.in.h:83
msgid "Arabic (Sun Type 6/7)"
msgstr "Árabe (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:85
+#: ../rules/base.extras.xml.in.h:86
msgid "Belgian (Sun Type 6/7)"
msgstr "Belga (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:88
+#: ../rules/base.extras.xml.in.h:89
msgid "Portuguese (Brazil, Sun Type 6/7)"
msgstr "Portugués (Brasil, Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:91
+#: ../rules/base.extras.xml.in.h:92
msgid "Czech (Sun Type 6/7)"
msgstr "Checo (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:94
+#: ../rules/base.extras.xml.in.h:95
msgid "Danish (Sun Type 6/7)"
msgstr "Danés (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:97
+#: ../rules/base.extras.xml.in.h:98
msgid "Dutch (Sun Type 6/7)"
msgstr "Holandés (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:100
+#: ../rules/base.extras.xml.in.h:101
msgid "Estonian (Sun Type 6/7)"
msgstr "Estonio (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:103
+#: ../rules/base.extras.xml.in.h:104
msgid "Finnish (Sun Type 6/7)"
msgstr "Finlandés (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:105
+#: ../rules/base.extras.xml.in.h:106
msgid "French (Sun Type 6/7)"
msgstr "Francés (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:108
+#: ../rules/base.extras.xml.in.h:109
msgid "Greek (Sun Type 6/7)"
msgstr "Griego (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:111
+#: ../rules/base.extras.xml.in.h:112
msgid "Italian (Sun Type 6/7)"
msgstr "Italiano (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:114
+#: ../rules/base.extras.xml.in.h:115
msgid "Japanese (Sun Type 6)"
msgstr "Japonés (Sun tipo 6)"
-#: ../rules/base.extras.xml.in.h:115
+#: ../rules/base.extras.xml.in.h:116
msgid "Japanese (Sun Type 7 - pc compatible)"
msgstr "Japonés (Sun tipo 7 - compatible con PC)"
-#: ../rules/base.extras.xml.in.h:116
+#: ../rules/base.extras.xml.in.h:117
msgid "Japanese (Sun Type 7 - sun compatible)"
msgstr "Japonés (Sun tipo 7 - compatible con Sun)"
-#: ../rules/base.extras.xml.in.h:119
+#: ../rules/base.extras.xml.in.h:120
msgid "Norwegian (Sun Type 6/7)"
msgstr "Noruego (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:121
+#: ../rules/base.extras.xml.in.h:122
msgid "Portuguese (Sun Type 6/7)"
msgstr "Portugués (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:124
+#: ../rules/base.extras.xml.in.h:125
msgid "Slovak (Sun Type 6/7)"
msgstr "Eslovaco (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:127
+#: ../rules/base.extras.xml.in.h:128
msgid "Spanish (Sun Type 6/7)"
msgstr "Español (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:130
+#: ../rules/base.extras.xml.in.h:131
msgid "Swedish (Dvorak A5)"
msgstr "Sueco (Dvorak A5)"
-#: ../rules/base.extras.xml.in.h:131
+#: ../rules/base.extras.xml.in.h:132
msgid "Swedish (Sun Type 6/7)"
msgstr "Sueco (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:133
+#: ../rules/base.extras.xml.in.h:134
msgid "German (Switzerland, Sun Type 6/7)"
msgstr "Alemán (Suiza, Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:134
+#: ../rules/base.extras.xml.in.h:135
msgid "French (Switzerland, Sun Type 6/7)"
msgstr "Francés (Suiza, Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:137
+#: ../rules/base.extras.xml.in.h:138
msgid "Turkish (Sun Type 6/7)"
msgstr "Turco (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:140
+#: ../rules/base.extras.xml.in.h:141
msgid "Ukrainian (Sun Type 6/7)"
msgstr "Ucraniano (Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:142
+#: ../rules/base.extras.xml.in.h:143
msgid "English (UK, Sun Type 6/7)"
msgstr "Inglés (UK, Sun tipo 6/7)"
-#: ../rules/base.extras.xml.in.h:145
+#: ../rules/base.extras.xml.in.h:146
msgid "Korean (Sun Type 6/7)"
msgstr "Coreano (Sun tipo 6/7)"
#. Keyboard indicator for European layouts
-#: ../rules/base.extras.xml.in.h:147
+#: ../rules/base.extras.xml.in.h:148
msgid "eu"
msgstr "eu"
-#: ../rules/base.extras.xml.in.h:148
+#: ../rules/base.extras.xml.in.h:149
msgid "EurKEY (US based layout with european letters)"
msgstr "EurKEY (teclado estadounidense con letras europeas)"
# raro dialecto africano en http://som.mmouck.org pueden conseguir un libro en inglés donde explican un poco más. Ni siquiera el nombre del idioma está suficientemente fijado
-#: ../rules/base.extras.xml.in.h:151
+#: ../rules/base.extras.xml.in.h:152
msgid "Mmuock"
msgstr "Mmuock"
+#~ msgid "Shift with numeric keypad keys works as in MS Windows"
+#~ msgstr "Mayús con las teclas del teclado numérico funcionan como en MS Windows"
+
#~ msgid "Bengali"
#~ msgstr "Bengalí"
diff --git a/xorg-server/xkeyboard-config/po/fr.po b/xorg-server/xkeyboard-config/po/fr.po
index 10345ee27..397a00b1e 100644
--- a/xorg-server/xkeyboard-config/po/fr.po
+++ b/xorg-server/xkeyboard-config/po/fr.po
@@ -9,10 +9,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 2.13.99\n"
+"Project-Id-Version: xkeyboard-config 2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-18 21:29+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-15 12:02+0200\n"
"Last-Translator: Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
@@ -934,3189 +934,3201 @@ msgstr "Arabe (qwerty/chiffres)"
msgid "Arabic (Buckwalter)"
msgstr "Arabe (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Arabe (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albanais"
# https://en.wikipedia.org/wiki/Albanian_keyboard_layout
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albanais (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Arménien"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Arménien (phonétique)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Arménien (variante, phonétique)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Arménien (orientale)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Arménien (occidentale)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Arménien (variante, orientale)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Allemand (Autriche)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Allemand (Autriche, sans touche morte)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Allemand (Autriche, touches mortes Sun)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Allemand (Autriche, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Azéri"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Azéri (cyrillique)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Biélorusse"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Biélorusse (obsolète)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Biélorusse (latin)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belge"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belge (variante)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belge (variante, Latin-9 uniquement)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belge (variante, touches mortes Sun)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belge (variante ISO)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belge (sans touche morte)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belge (touches mortes Sun)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belge (Wang modèle 724 azerty)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengali"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengali (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indien"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengali (Inde)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengali (Inde, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengali (Inde, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengali (Inde, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengali (Inde, Uni Gitanjali)"
# InScript = Indian Script
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengali (Inde, Inscript Baishakhi)"
# https://fr.wikipedia.org/wiki/Meitei
# http://tabish.freeshell.org/eeyek/
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Meitei (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Gujar%C3%A2t%C3%AE
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gujarâtî"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Penjabi (Gurmukhî)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Penjabi
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Penjabi (Gurmukhî, Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Kannada
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (phonétique KaGaPa)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Malay%C3%A2lam
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malayâlam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malayâlam (lalitha)"
# https://secure.wikimedia.org/wikipedia/en/wiki/InScript_keyboard
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malayâlam (Inscript amélioré avec le symbole monétaire Roupie)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Oriya"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamoul (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamoul (clavier avec chiffres)"
# TAB et TSCII sont des codages tamouls.
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamoul (machine à écrire, TAB)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamoul (machine à écrire, TSCII)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Tamoul
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamoul"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
# https://secure.wikimedia.org/wikipedia/fr/wiki/T%C3%A9lougou
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Télougou"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Télougou (phonétique KaGaPa)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Ourdou (phonétique)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Ourdou (variante, phonétique)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Ourdou (touches Windows)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Hindi
# http://indlinux.org/wiki/index.php/BolNagri
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (phonétique KaGaPa)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sanscrit (phonétique KaGaPa)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (phonétique KaGaPa)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Anglais (Inde, avec le symbole Roupie)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosniaque"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosniaque (guillemets typographiques à la place des guillemets simples)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosniaque (utilise les digraphes bosniaques)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosniaque (clavier US avec digraphes bosniaques)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosniaque (clavier US avec lettres bosniaques)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugais (Brésil)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugais (Brésil, sans touche morte)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugais (Brésil, Dvorak)"
# https://secure.wikimedia.org/wikipedia/en/wiki/Dvorak_Simplified_Keyboard#Other_languages
# http://tecladobrasileiro.com.br/images/stories/br-nativo/br-nativo-simples.svg
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugais (Brésil, Nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugais (Brésil, Nativo pour claviers US)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Espéranto (Brésil, Nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Bulgare"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Bulgare (phonétique, traditionnel)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Bulgare (phonétique, nouveau)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Arabe (Maroc)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Français (Maroc)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berbère (Maroc, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Berbère (Maroc, variante Tifinagh)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berbère (Maroc, variante Tifinagh phonétique)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berbère (Maroc, Tifinagh étendu)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berbère (Maroc, Tifinagh phonétique)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berbère (Maroc, Tifinagh étendu phonétique)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Cameroun
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Anglais (Cameroun)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Français (Cameroun)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Cameroun multilingue (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Cameroun multilingue (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Cameroun multilingue (Dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Birman"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Français (Canada)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Français (Canada, Dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Français (Canada, obsolète)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Canadien multilingue"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Canadien multilingue (première partie)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Canadien multilingue (seconde partie)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Inuktitut
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Anglais (Canada)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Français (République démocratique du Congo)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Chinois"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibétain"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibétain (avec chiffres ASCII)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Ou%C3%AFghour
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Ouïghour"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Croate"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Croate (guillemets typographiques au lieu des guillemets simples)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Croate (avec les digraphes croates)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Croate (clavier US avec digraphes croates)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Croate (clavier US avec lettres croates)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Tchèque"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Tchèque (avec la touche &lt;\\|&gt;)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Tchèque (qwerty)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Tchèque (qwerty, barre oblique inverse étendue)"
# http://repo.or.cz/w/ucwcs-xkb.git/blob_plain/HEAD:/README
# http://www.ucw.cz/
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Tchèque (disposition UCW, lettres accentuées seulement)"
# http://repo.or.cz/w/ucwcs-xkb.git/blob_plain/HEAD:/README
# http://www.ucw.cz/
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Tchèque (Dvorak US avec support UCW CZ)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Danois"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Danois (sans touche morte)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Danois (Touches Windows)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Danois (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Danois (Macintosh, sans touche morte)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Danois (Dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Néerlandais"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Néerlandais (touches mortes Sun)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Néerlandais (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Néerlandais (standard)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estonien"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estonien (sans touche morte)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estonien (Dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estonien (clavier US avec lettres estoniennes)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Persan
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Persan"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Persan (avec pavé numérique persan)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurde (Iran, Q latin)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurde (Iran, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurde (Iran, Alt-Q latin)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurde (Iran, arabe-latin)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Irakien"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurde (Irak, Q latin)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurde (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurde (Irak, Alt-Q latin)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurde (Irak, arabe-latin)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Féroïen"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Féroïen (sans touche morte)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finnois"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finnois (classique)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finnois (classique, sans touche morte)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finnois (Touches Windows)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Sami du Nord (Finlande)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finnois (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Français"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Français (sans touche morte)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Français (touches mortes Sun)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Français (variante)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Français (variante, Latin-9 uniquement)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Français (variante, sans touche morte)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Français (variante, touches mortes Sun)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Français (variante obsolète)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Français (variante obsolète, sans touche morte)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Français (variante obsolète, touches mortes Sun)"
# http://bepo.fr
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Français (Bépo, ergonomique, façon Dvorak)"
# http://bepo.fr
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Français (Bépo, ergonomique, façon Dvorak, Latin-9 uniquement)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Français (Dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Français (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Français (breton)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Occitan"
# As the name suggests, this layout is based on French AZERTY keyboard. The layout is based on the Georgian AZERTY layout model by Georgian language and localizaton expert Vasil "Tskapo" Kekelia.
#
# http://www.gakartuleba.org/layouts/index.php
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Géorgien (France, azerty Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Anglais (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Anglais (Ghana, multilingue)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Éwé"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
# https://secure.wikimedia.org/wikipedia/en/wiki/Fula_language
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Peul"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
# Langue du Ghana.
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Haoussa
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Haoussa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
# http://www.gillbt.org/
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Anglais (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Français (Guinée)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Géorgien"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Géorgien (ergonomique)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Géorgien (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Russe (Géorgie)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Ossète (Géorgie)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Allemand"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Allemand (accent aigu en touche morte)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Allemand (accents aigu et grave en touches mortes)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Allemand (sans touche morte)"
# https://de.wikipedia.org/wiki/ISO/IEC_9995
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Allemand (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Roumain (Allemagne)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Roumain (Allemagne, sans touche morte)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Allemand (Dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Allemand (touches mortes Sun)"
# https://secure.wikimedia.org/wikipedia/en/wiki/Keyboard_layout#Neo
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Allemand (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Allemand (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Allemand (Macintosh, sans touche morte)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Bas-sorabe"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Bas-sorabe
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Bas-sorabe (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Allemand (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turc (Allemagne)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Russe (Allemagne, phonétique)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Allemand (obsolète)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Grec"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Grec (simple)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Grec (étendu)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Grec (sans touche morte)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Diacritiques_de_l%27alphabet_grec
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Grec (polytonique)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Hongrois
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Hongrois"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Hongrois (standard)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Hongrois (sans touche morte)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Hongrois (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Hongrois (101, qwertz, virgule, touches mortes)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Hongrois (101, qwertz, virgule, touches mortes)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Hongrois (101, qwertz, point, touches mortes)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Hongrois (101, qwertz, point, sans touche morte)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Hongrois (101, qwerty, virgule, touches mortes)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Hongrois (101, qwerty, virgule, sans touche morte)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Hongrois (101, qwerty, point, touches mortes)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Hongrois (101, qwerty, point, sans touche morte)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Hongrois (102, qwertz, virgule, touches mortes)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Hongrois (102, qwertz, virgule, sans touche morte)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Hongrois (102, qwertz, point, touches mortes)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Hongrois (102, qwertz, point, sans touche morte)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Hongrois (102, qwerty, virgule, touches mortes)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Hongrois (102, qwerty, virgule, sans touche morte)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Hongrois (102, qwerty, point, touches mortes)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Hongrois (102, qwerty, point, sans touche morte)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Islandais
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Islandais"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Islandais (touches mortes Sun)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Islandais (sans touche morte)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Islandais (Macintosh, obsolète)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Islandais (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Islandais (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hébreu"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hébreu (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hébreu (phonétique)"
# http://wiki.jewishliturgy.org/Hebrew_Font_and_Keyboard_Layout_Setup
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hébreu (biblique, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italien"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italien (sans touche morte)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italien (touche Windows)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italien (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italien (clavier US avec lettres italiennes)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Oss%C3%A8te
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Géorgien (Italie)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italien (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japonais"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japonais (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japonais (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japonais (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japonais (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japonais (Dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Kirghize_%28langue%29
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirghize"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirghize (phonétique)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Khmer
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmer (Cambodge)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Kazakh
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazakh"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Kazakhstan
# https://secure.wikimedia.org/wikipedia/fr/wiki/Kazakh
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Russe (Kazakhstan, avec kazakh)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazakh (avec russe)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Lao_%28langue%29
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Lao"
# STEA = Agence pour la science, la technologie et l'environnement.
# http://www.clear-vu.com.hk/resources/lao_keyboard.asp
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Lao (disposition proposée par la STEA)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Espagnol (Amérique latine)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Espagnol (Amérique latine, sans touche morte)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Espagnol (Amérique latine, y compris la touche morte tilde)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Espagnol (Amérique latine, touches mortes Sun)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Espagnol (Amérique latine, Dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Lituanien
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Lituanien"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Lituanien (standard)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Lituanien (clavier US avec lettres lituaniennes)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Lituanien (IBM LST 1205-92)"
# http://lekp.info/LithuanianErgonomic
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Lituanien (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Lituanien (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Letton"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Letton (variante apostrophe)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Letton (variante tilde)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Letton (variante F)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Letton (moderne)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Letton (ergonomique, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Letton (adapté)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maori"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Mont%C3%A9n%C3%A9grin
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Monténégrin"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Monténégrin (cyrillique)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Monténégrin (cyrillique, ZE et ZHE intervertis)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Monténégrin (Unicode latin)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Monténégrin (qwerty latin)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Monténégrin (qwerty Unicode latin)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Monténégrin (cyrillique avec guillemets)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Monténégrin (latin avec guillemets)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Mac%C3%A9donien
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Macédonien"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Macédonien (sans touche morte)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Maltais
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltais"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltais (avec disposition US)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Mongol
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongol"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Norv%C3%A9gien
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Norvégien"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Norvégien (sans touche morte)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Norvégien (Touches Windows)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Norvégien (Dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Sami du Nord (Norvège)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Sami du Nord (Norvège, sans touche morte)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Norvégien (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Norvégien (Macintosh, sans touche morte)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Norvégien (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Polonais
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polonais"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polonais (obsolète)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polonais (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polonais (Dvorak)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Disposition_Dvorak
#
# Sur le clavier Dvorak, les guillemets sont sur une seule et même touche.
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polonais (Dvorak, guillemets polonais sur la touche guillemets)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polonais (Dvorak, guillemets polonais sur le « 1 »)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Cachoube
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Cachoube"
# https://fr.wikipedia.org/wiki/Sil%C3%A9sien_%28langue_slave%29
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Silésien"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Russe (Pologne, Dvorak phonétique)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polonais (Dvorak pour le programmeur)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugais"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugais (sans touche morte)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugais (touches mortes Sun)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugais (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugais (Macintosh, sans touche morte)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugais (Macintosh, touches mortes Sun)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugais (PT-Nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugais (Nativo pour claviers US)"
# http://tecladobrasileiro.com.br/index.php?option=com_content&task=view&id=20&Itemid=62
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Espéranto (Portugal, PT-Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Roumain
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Roumain"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Roumain (cédille)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Roumain (standard)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Roumain (standard, cédille)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Roumain (touche Windows)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Russe"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Russe (phonétique)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Russe (phonétique, touches Windows)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Russe (machine à écrire)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Russe (obsolète)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Russe (machine à écrire, obsolète)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Ossète (obsolète)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Oss%C3%A8te
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Ossète (touches Windows)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Chuvash"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Tchouvache
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Tchouvache (latin)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Oudmourte"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Komi_%28langue%29
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Iakoute
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Iakute"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Russe (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Russe (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbe (Russe)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Bachkir
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Bachkir"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Mari_%28langue%29
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Russe (azerty phonétique)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Russe (français phonétique)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbe"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbe (cyrillique, ZE et ZHE intervertis)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbe (Latin)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbe (latin, Unicode)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbe (latin, qwerty)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbe (latin, Unicode, qwerty)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Serbe (cyrillique avec guillemets)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbe (Latin avec guillemets)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Ruthène pannonien"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Slov%C3%A8ne
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Slovène"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Slovène (guillemets typographiques à la place des guillemets simples)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Slovène (clavier US avec lettres slovènes)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Slovaque
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Slovaque"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Slovaque (barre oblique inverse étendue)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Slovaque (qwerty)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Slovaque (qwerty, barre oblique inverse étendue)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Espagnol"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Espagnol (sans touche morte)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Espagnol (touches Windows)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Espagnol (y compris la touche morte tilde)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Espagnol (touches mortes Sun)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Espagnol (Dvorak)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturien (Espagne, avec H point bas et L point bas)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Catalan (Espagne, avec L point médian)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Espagnol (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Su%C3%A9dois
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Suédois"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Suédois (sans touche morte)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Suédois (Dvorak)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Russe (Suède, phonétique)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Russe (Suède, phonétique, sans touche morte)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Sami du Nord (Suède)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Suédois (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Suédois (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Langue des signes suédoise"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Allemand (Suisse)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Allemand (Suisse, obsolète)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Allemand (Suisse, sans touche morte)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Allemand (Suisse, touches mortes Sun)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Français (Suisse)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Français (Suisse, sans touche morte)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Français (Suisse, touches mortes Sun)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Français (Suisse, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Allemand (Suisse, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Arabe (Syrie)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Syriaque
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Syriaque"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Syriaque (phonétique)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurde (Syrie, Q latin)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurde (Syrie, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurde (Syrie, Alt-Q latin)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Tadjik
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tadjik"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tadjik (obsolète)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Cingalais (phonétique)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamoul (Sri Lanka, Unicode)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamoul (Sri Lanka, machine à écrire, TAB)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Cingalais (clavier US avec lettres cingalaises)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Tha%C3%AF_%28langue%29
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Thaï"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Thaï (TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Thaï (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Turc
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turc"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turc (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turc (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turc (touches mortes Sun)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurde (Turquie, Q latin)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurde (Turquie, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurde (Turquie, Alt-Q latin)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turc (international avec touches mortes)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Tatar de Crimée (Q turc)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Tatar de Crimée (F turc)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Tatar de Crimée (Alt-Q turc)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taïwanais"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taïwanais (indigène)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taïwan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Ukrainien
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ukrainien"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ukrainien (phonétique)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ukrainien (machine à écrire)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ukrainien (touches Windows)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ukrainien (obsolète)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ukrainien (RSTU standard)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Russe (Ukraine, RSTU standard)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ukrainien (homophonique)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Anglais (Royaume-Uni)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Anglais (Royaume-Uni, touche Windows étendue)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Anglais (Royaume-Uni, international, avec touches mortes)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Anglais (Royaume-Uni, Dvorak)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Anglais (Royaume-Uni, Dvorak, ponctuation britannique)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Anglais (Royaume-Uni, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Anglais (Royaume-Uni, Macintosh international)"
# http://colemak.com/
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Anglais (Royaume-Uni, Colemak)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Ouzbek
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Ouzbek"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Ouzbek (latin)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamien"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Coréen"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Coréen (compatible 101/104 touches)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japonais (PC-98xx)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irlandais"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "Cló Gaelach"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irlandais (UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogham (IS434)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Ourdou
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Ourdou (Pakistan)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Ourdou (Pakistan, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Ourdou (Pakistan, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Arabe (Pakistan)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Sindhi
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhî"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Divehi"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Anglais (Afrique du Sud)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Espéranto"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Espéranto (point-virgule et guillemets simples déplacés, obsolète)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
# https://secure.wikimedia.org/wikipedia/fr/wiki/N%C3%A9palais
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Népalais"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Anglais (Nigeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Igbo
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Yoruba
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Yoruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharique"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Wolof_%28langue%29
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braille (main gauche)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braille (main droite)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Turkm%C3%A8ne
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmène"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmène (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Français (Mali, variante)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Anglais (Mali, Macintosh US)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Anglais (Mali, US international)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Swahili (Tanzanie)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Swahili
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Swahili (Kenya)"
# Langue bantoue.
# https://secure.wikimedia.org/wikipedia/fr/wiki/Kikuyu_%28langue%29
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Tswana
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipino"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipino (baybayin, qwerty)"
# http://www.michaelcapewell.com/projects/keyboard/#The_Capewell-Dvorak_Layout
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipino (Capewell-Dvorak, latin)"
# http://www.michaelcapewell.com/projects/keyboard/#The_Capewell-Dvorak_Layout
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipino (Capewell-Dvorak, baybayin)"
# http://www.michaelcapewell.com/projects/keyboard/#The_QWERF_Layout
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipino (Capewell-QWERF 2006, latin)"
# http://www.michaelcapewell.com/projects/keyboard/#The_QWERF_Layout
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipino (Capewell-QWERF 2006, baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipino (Colemak, latin)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipino (Colemak, baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipino (Dvorak, latin)"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Baybayin
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipino (Dvorak, baybayin)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldave"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
# https://fr.wikipedia.org/wiki/Gagaouze
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldave (Gagaouze)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Passage à une autre disposition"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Alt droite (si enfoncé)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Alt gauche (si enfoncé)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Windows gauche (si enfoncé)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Windows droite (si enfoncé)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "N'importe quelle touche Windows (enfoncée)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Verr. maj. (si enfoncé), Alt+Verr. maj. joue le rôle original de Verr. maj."
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl droite (si enfoncé)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Alt droite"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Alt gauche"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Verr. maj."
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Maj.+ Verr. maj."
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Verr. maj. (première disposition), Maj.+Verr. maj. (dernière disposition)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Touche Windows gauche (première disposition), touche Windows droite (dernière disposition)"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Ctrl gauche (première disposition), Ctrl droit (dernière disposition)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Verr. maj."
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Les deux Maj. ensemble"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Les deux Alt ensemble"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Les deux Ctrl ensemble"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Maj."
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl gauche+Maj. gauche"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Ctrl droite + Maj. droite"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Maj."
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Alt gauche+Maj. gauche"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Espace"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Touche Windows gauche"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Windows+Espace"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Windows droite"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Maj. gauche"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Maj. droite"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Ctrl gauche"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Ctrl droite"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Arrêt défilement"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Ctrl gauche + Windows gauche (première disposition), Ctrl droit + Menu (seconde disposition)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Touche sélectionnant le niveau 3"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "N'importe quelle touche Windows"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "N'importe quelle touche Alt"
# https://secure.wikimedia.org/wikipedia/fr/wiki/Touche_compose
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Alt droite, Maj. + Alt droite est la touche compose"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "Alt droite ne sélectionne jamais le niveau 3"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Entrée sur le pavé numérique"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Barre oblique inverse"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Plus petit/Plus grand&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Verr. maj. sélectionne le niveau 3 ; avec un autre sélecteur de niveau 3, enclenche une fois ce niveau"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "La barre oblique inverse sélectionne le niveau 3 ; avec un autre sélecteur de niveau 3, enclenche une fois ce niveau"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Plus petit/Plus grand&gt; sélectionne le niveau 3 ; avec un autre sélecteur de niveau 3, enclenche une fois ce niveau"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Position de la touche Ctrl"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Verr. maj. comme Ctrl"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Ctrl gauche comme Méta"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Intervertir Ctrl et Verr. maj."
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "À gauche du « A »"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "En bas à gauche"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl droite comme Alt droite"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menu comme Ctrl droite"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Alt droite comme Ctrl droite"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Échange Alt. gauche et Ctrl gauche"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Échange Win gauche et Ctrl gauche"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Échange Win droite et Ctrl droite"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Alt. gauche pour Ctrl, Ctrl pour Win, Win gauche pour Alt."
# https://bugzilla.gnome.org/show_bug.cgi?id=518156
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Utiliser les voyants du clavier pour indiquer une disposition alternative"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Verr. Num."
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Disposition du pavé numérique"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Obsolète"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Ajouts Unicode (opérateurs mathématiques et flèches)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
msgid "Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Ajouts Unicode (opérateurs mathématiques et flèches ; opérateurs mathématiques au niveau par défaut)"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Wang 724 (clavier obsolète)"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
msgid "Wang 724 keypad with Unicode additions (arrows and math operators)"
msgstr "Wang 724 avec ajouts Unicode (opérateurs mathématiques et flèches)"
-#: ../rules/base.xml.in.h:965
+#: ../rules/base.xml.in.h:968
msgid "Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Wang 724 avec ajouts Unicode (opérateurs mathématiques et flèches ; opérateurs mathématiques au niveau par défaut)"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadécimal"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "Clavier de type téléphonique"
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Comportement de la touche de Suppr. du pavé numérique"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Touche obsolète avec point"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Touche obsolète avec virgule"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Touche à quatre niveaux avec point"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Touche à quatre niveaux avec point, Latin-9 uniquement"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Touche à quatre niveaux avec virgule"
# Le momayyez est le séparateur décimal perse.
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Touche à quatre niveaux avec le séparateur décimal momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Touche à quatre niveaux avec le séparateur décimal abstrait"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Point-virgule au niveau 3"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Comportement de la touche Verr. maj."
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Verr. maj. utilise la mise en majuscule interne ; Maj. annule temporairement Verr. maj."
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Verr. maj. utilise la mise en majuscule interne ; Maj. n'a pas d'effet sur Verr. maj."
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Verr. maj. agit comme un verrouillage de maj ; Maj. l'annule temporairement"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Verr. maj. agit comme Maj. quand il est verrouillé ; Maj. n'a pas d'effet sur verr. Maj."
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Verr. maj. active ou désactive la mise en majuscule usuelle des caractères alphabétiques"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Faire de Verr. maj. un Verr. Num. supplémentaire"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Intervertir Échap. et Verr. maj."
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Faire de Verr. maj. un Échap. supplémentaire."
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Faire de Verr. maj. un Effacement. arriière supplémentaire."
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Faire de Verr. maj. un Super supplémentaire."
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Faire de Verr. maj. un Hyper supplémentaire"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Verr. maj. bascule le blocage majuscule (affecte toutes les touches)"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Verr. maj. est désactivé"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Faire de Verr. maj. un Ctrl supplémentaire."
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Comportement des touches Alt et Windows"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Ajouter du comportement standard à la touche Menu"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt et Meta sont sur les touches Alt"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt est placé sur les touches Windows (et les touches Alt habituelles)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl est placé sur les touches Windows (et les touches Ctrl habituelles)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl est placé sur les touches Alt, Alt sur les touches Windows"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Méta est placé sur les touches Windows"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Méta est placé sur Windows gauche"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper est placé sur les touches Windows"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt est placé sur Windows droite, Super sur Menu"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt échangé avec Windows"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Position de la touche Compose"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "Niveau 3 de la touche Windows de gauche"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "Niveau 3 de la touche Windows de droite"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "Niveau 3 de menu"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "Niveau 3 de la touche Ctrl de gauche"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "Niveau 3 de la touche Ctrl de droite"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "Niveau 3 de Verr. Maj."
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "Niveau 3 de &lt;Plus petit/Plus grand&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "Impr. Écr."
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Diverses options de compatibilité"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Touches du pavé numérique par défaut"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Les touches du pavé numérique sont toujours numériques (comme sur Mac OS)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "Verr. maj. activé : chiffres ; maj. pour les flèches. Verr. maj. désactivé : flèches (comme Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Maj. n'annule pas Verr. maj., mais sélectionne le niveau 3"
# https://help.ubuntu.com/7.04/user-guide/C/prefs-hardware.html
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
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 le serveur X"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Clavier aluminium Apple : émulation des touches PC (Impr. écr. ; défil. ; pause ; Verr. Num.)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Maj. annule Verr. maj."
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Active des caractères typographiques supplémentaires"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Les deux touches Maj. activent ou désactivent Verr. maj."
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Les deux touches Maj. activent le verrouillage majuscule, une le désactive"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Les deux touches Maj. activent ou désactivent le blocage majuscule"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Maj. + VerrNum bascule le contrôle souris au clavier (PointerKeys) "
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Autorise des actions clavier à casser les captures (attention : faille de sécurité)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Autorise l'enregistrement des captures et arborescences de fenêtres"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Ajout des signes monétaires sur certaines touches"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro sur le E"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro sur le 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro sur le 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro sur le 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Roupie sur le 4"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Touche sélectionnant le niveau 5"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Plus petit/Plus grand&gt; sélectionne le niveau 5 ; se verrouille par un appui simultané avec un autre sélecteur de niveau 5"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Alt droite sélectionne le niveau 5 ; se verrouille par un appui simultané avec un autre sélecteur de niveau 5"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Windows gauche sélectionne le niveau 5 ; se verrouille par un appui simultané avec un autre sélecteur de niveau 5"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Windows droite sélectionne le niveau 5 ; se verrouille par un appui simultané avec un autre sélecteur du niveau 5"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Utiliser la barre d'espacement pour insérer une espace insécable"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "L'espace habituelle quelque-soit le niveau"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Espace insécable au niveau 2"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Espace insécable au niveau 3"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Espace insécable au niveau 3, rien au niveau 4"
-#: ../rules/base.xml.in.h:1047
+#: ../rules/base.xml.in.h:1050
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Espace insécable au niveau 3, espace fine insécable au niveau 4"
-#: ../rules/base.xml.in.h:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Espace insécable au niveau 4"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Espace insécable au niveau 4, espace fine insécable au niveau 6"
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1053
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Espace insécable au niveau 4, espace fine insécable au niveau 6 (via Ctrl+Maj.)"
# http://hapax.qc.ca/glossaire.htm
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Antiliant à chasse nulle au niveau 2"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Antiliant à chasse nulle au niveau 2, liant à chasse nulle au niveau 3"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Antiliant à chasse nulle au niveau 2, liant à chasse nulle au niveau 3, espace insécable au niveau 4"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Antiliant à chasse nulle au niveau 2. espace insécable au niveau 3"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Antiliant à chasse nulle au niveau 2. espace insécable au niveau 3, rien au niveau 4"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Antiliant à chasse nulle au niveau 2. espace insécable au niveau 3, liant à chasse nulle au niveau 4"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Antiliant à chasse nulle au niveau 2. espace insécable au niveau 3, espace fine insécable au niveau 4"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Antiliant à chasse nulle au niveau 3, liant à chasse nulle au niveau 4"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Options des claviers japonais"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "La touche « verrouillage Kana » verrouille"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Eff. Arr. du type NICOLA-F"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Faire du Zenkaku Hankaku un Échap. supplémentaire."
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Touches Hangeul/Hanja coréennes"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Touches Hangeul/Hanja matérielles"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Alt droite pour le Hangeul, Ctrl droite pour le Hanja"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Ctrl droite pour le Hangeul, Alt droite pour le Hanja"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Ajout des lettres accentuées Espéranto"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "Vers la touche correspondante sur une disposition Qwerty."
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "Vers la touche correspondante sur une disposition Dvorak."
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "Vers la touche correspondante sur une disposition Dvorak."
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Rester compatible avec les anciens code clavier Solaris"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Compatibilité avec les touches Sun"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Séquence de touches pour tuer le serveur X"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Eff. arrière"
diff --git a/xorg-server/xkeyboard-config/po/gl.po b/xorg-server/xkeyboard-config/po/gl.po
index a038779d2..38aeef537 100644
--- a/xorg-server/xkeyboard-config/po/gl.po
+++ b/xorg-server/xkeyboard-config/po/gl.po
@@ -7,11 +7,11 @@
# Marcos Lans <marcoslansgarza@gmail.com>, 2015.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 2.13.99\n"
+"Project-Id-Version: xkeyboard-config 2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-24 12:10+0100\n"
-"Last-Translator: Marcos Lans <marcoslansgarza@gmail.com>\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-15 16:54+0100\n"
+"Last-Translator: marcos <marcoslansgarza@gmail.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
@@ -924,3087 +924,3099 @@ msgstr "Árabe (qwerty/díxitos)"
msgid "Arabic (Buckwalter)"
msgstr "Árabe (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Árabe (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albanés"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albanés (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armenio"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armenio (fonético)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armenio (alternativa fonética)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armenio (oriental)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armenio (occidental)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armenio (alternativa oriental)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Alemán (Austria)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Alemán (Austria, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Alemán (Austria, teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Alemán (Austria, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Azerbaixaní"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Azerbaxaní (cirílico)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Bielorruso"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Bielorruso (herdado)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Bielorruso (latino)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belga"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belga (alternativa)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belga (alternativa, só latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belga (alternativa, teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belga (alternativa ISO)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belga (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belga (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belga (modelo azerti 724 de Wang)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengalí"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengalí (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indio"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengalí (India)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengalí (India, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengalí (India, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengalí (India, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengalí (India, Uni Gitanjali)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengalí (India, Inscript Baishakhi)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipuri (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Guxarati"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Panyabí (gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Panyabí (gurmukhi jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (KaGaPa fonético)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malayalam (lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malaio (Inscript mellorado con signo de rupia)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Orixa"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamil (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamil (teclado con números)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamil (máquina de escribir TAB)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamil (máquina de escribir TSCII)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamil"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (KaGaPa fonético)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdú (fonético)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdú (fonético alternativo)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdú (teclas Windows)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (KaGaPa fonético)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sánscrito (KaGaPa fonético)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (KaGaPa fonético)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Inglés (India, con signo de rupia)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosnio"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosnio (con comiñas para citas)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosnio (usar dígrafos bosnios)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosnio (teclado de EE. UU. con dígrafos bosnios)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosnio (teclado de EE. UU. con letras bosnias)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugués (Brasil)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugués (Brasil, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugués (Brasil, Dvorak)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugués (Brasil, nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugués (Brasil, nativo para teclados de EE. UU.)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperanto (Brasil, nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Búlgaro"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Búlgaro (fonética tradicional)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Búlgaro (fonética nova)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Árabbe (Marrocos)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Francés (Marrocos)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Bereber (Marrocos, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Bereber (Marrocos, alternativa tifinagh)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Bereber (Marrocos, alternativa fonética tifinagh)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Bereber (Marrocos, tifinagh estendido)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Bereber (Marrocos, tifinagh fonético)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Bereber (Marrocos, tifinagh fonético estendido)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Inglés (Camerún)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Francés (Camerún)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Camerunés multilingüe (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Camerunés multilingüe (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Camerunés multilingüe (azerty)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Burmese"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Francés (Canadá)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Francés (Canadá, Dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Francés (Canadá, herdado)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Canadiense multilingüe"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Canadiense multilingüe (primera parte)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Canadiense multilingüe (segunda parte)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Inglés (Canadá)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Francés (República Democrática do Congo)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Chinés"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetano"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetano (con numerais ASCII)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Uigur"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Croata"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Croata (con comiñas para citas)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Croata (usar dígrafos croatas)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Croata (teclado de EE. UU. con dígrafos croatas)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Croata (teclado de EE. UU. con letras croatas)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Checo"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Checo (con tecla «\\|»)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Checo (qwery)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Checo (qwerty, contrabarra estendida)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Checo (distribución UCW, só teclas con til)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Checo (teclado Dvorak EE. UU. con soporte para UCW checo)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Danés"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Danés (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Danés (Macintosh)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Danés (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Danés (Macintosh, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Danés (Dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Holandés"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Holandés (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Holandés (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Holandés (estándar)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estoniano"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estoniano (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estoniano (Dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estonio (teclado EE. UU. con letras estonianas)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Persa"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Persa (con teclado persa)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurdo (Irán latino Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurdo (Irán, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurdo (Irán, latino Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurdo (Irán, arábigolatino)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Iraquí"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurdo (Irak, latino Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurdo (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurdo (Irak, latino Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurdo (Irak, arábigolatino)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Faroés"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Faroés (eliminar teclas mortas)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finlandés"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finlandés (clásico)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finlandés (clásico, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finlandés (teclas Windows)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Lapón do norte (Finlandia)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finlandés (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Francés"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Francés (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Francés (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Francés (alternativa)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Francés (alternativa, só latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Francés (alternativa, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Francés (alternativa, teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Francés (herdado, alternativa)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Francés (herdado, alternativa, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Francés (herdado, alternativa, teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Francés (bepo, ergonómico, forma Dvorak)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Francés (bepo, ergonómico, forma Dvorak, só latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Francés (Dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Francés (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Francés (bretón)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Occitano"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Georgiano (Francia, AZERTY tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Inglés (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Inglés (Ghana, multilingüe)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Inglés (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Francés (Guinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Xeorxiano"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Georgiano (ergonómico)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Georgiano (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Ruso (Xeorxia)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Osetio (Xeorxia)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Alemán"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Alemán (acento morto)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Alemán (acento grave morto)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Alemán (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Alemán (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Rumano (Alemania)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Rumano (Alemania, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Alemán (Dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Alemán (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Alemán (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Alemán (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Alemán (Macintosh, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Baixo sorbio"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Baixo sorbio (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Alemán (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turco (Alemaña)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Ruso (Alemania, fonético)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Alemán (herdado)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Grego"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Grego (simple)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Grego (estendido)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Grego (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Grego (politónico)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Húngaro"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Húngaro (estándar)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Húngaro (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Húngaro (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Húngaro (101/qwertz/coma/teclas mortas)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Húngaro (101/qwertz/coma/eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Húngaro (101/qwertz/punto/teclas mortas)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Húngaro (101/qwertz/punto/eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Húngaro (101/qwerty/coma/teclas mortas)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Húngaro (101/qwerty/coma/eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Húngaro (101/qwerty/punto/teclas mortas)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Húngaro (101/qwerty/punto/eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Húngaro (102/qwertz/coma/teclas mortas)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Húngaro (102/qwertz/coma/eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Húngaro (102/qwertz/punto/teclas mortas)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Húngaro (102/qwertz/punto/eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Húngaro (102/qwerty/coma/teclas mortas)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Húngaro (102/qwerty/coma/eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Húngaro (102/qwerty/punto/teclas mortas)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Húngaro (102/qwerty/punto/eliminar teclas mortas)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Islandés"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Islandés (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Islandés (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Islandés (Macintosh, herdado)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Islandés (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Islandés (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebreo"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebreo (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebreo (fonético)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebreo (bíblico, tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italiano"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italiano (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italiano (teclas Windows)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italiano (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italiano (teclado EE. UU. con letras italianas)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Georgiano (Italia)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italiano (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Xaponés"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Xaponés (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Xaponés (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Xaponés (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Xaponés (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Xaponés (Dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirguí"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirguí (fonético)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmer (Camboia)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazajo"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Ruso (Kazajstán, con kazajo)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazajo (con ruso)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Lao (distribución proposta STEA estándar)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Español (latinoamericano)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Español (latinoamericano, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Español (latinoamericano, incluír til morta)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Español (latinoamericano, teclas mortas de Sun)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Español (latinoamericano, Dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Lituano"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Lituano (estándar)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Lituano (teclado de EE. UU. con letras lituanas)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Lituano (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Lituano (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Lituano (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Letón"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Letón (variante con apóstrofo)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Letón (variante virguliña)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Letón (variante de letra F)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Letón (moderno)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Letón (ergonómico, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Letón (adaptado)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maorí"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Montenegrino"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Montenegrino (cirílico)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Montenegrino (cirílico, Z e ZHE trocados)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Montenegrino (latino Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Montenegrino (latino qwerty)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Montenegrino (latino Unicode qwerty)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Montenegrino (cirílico con guillemots)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Montenegrino (latino con guillemots)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Macedonio"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Macedonio (eliminar teclas mortas)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltés"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltés (con distribución para EE. UU.)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongol"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Noruego"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Noruego (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Noruegués (teclas Windows)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Noruego (Dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Lapón do norte (Noruega)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Lapón do norte (Noruego, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Noruego (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Noruego (Macintosh, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Noruegués (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polaco"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polaco (herdado)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polaco (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polaco (Dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polaco (Dvorak, comillas polacas na tecla de comillas)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polaco (Dvorak, comillas polacas na tecla 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Casubio"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Silesio"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Ruso (Polonia, Dvorak fonético)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polaco (Dvorak de programador)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugués"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugués (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugués (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugués (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugués (Macintosh, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugués (Macintosh, teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugués (nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugués (nativo para teclados de EE. UU.)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugal, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Rumano"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Rumano (cedilla)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Rumano (estándar)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Rumano (cedilla estándar)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Rumano (teclas Windows)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Ruso"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Ruso (fonético)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Ruso (fonético con teclas Windows)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Ruso (máquina de escribir)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Ruso (herdado)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Ruso (máquina de escribir, heredado)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Osetio (herdado)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Osetio (teclas Windows)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Chuvash"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Cuvash (latino)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurto"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Yakuto"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Calmuco"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Ruso (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Ruso (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbio (Rusia)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Bashkiriano"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Ruso (azerty fonético)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Ruso (francés fonético)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbio"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbio (cirílico, Z e ZHE trocados)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbio (latino)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbio (latino Unicode)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbio (latino qwerty)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbio (latino Unicode qwerty)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Montenegrino (cirílico con guillemots)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbio (latino con guillemots)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Rusino de Panonia"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Esloveno"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Esloveno (con comiñas para citas)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Esloveno (teclado EE. UU. con letras eslovenas)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Eslovaco"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Eslovaco (contrabarra estendida)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Eslovaco (qwerty)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Eslovaco (qwerty, contrabarra estendida)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Español"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Español (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Español (tecla Windows)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Español (incluír til morta)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Español (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Español (Dvorak)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturiano (español, con H de medio punto e L de medio punto)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Catalán (español, con L de medio punto)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Español (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Sueco"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Sueco (eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Sueco (Dvorak)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Ruso (sueco, fonético)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Ruso (sueco, fonético, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Lapón do norte (Suecia)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Sueco (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Sueco (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Lingua de signos sueco"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Alemán (Suíza)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Alemán (Suíza, herdado)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Alemán (Suíza, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Alemán (Suíza, teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Francés (Suíza)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Francés (Suíza, eliminar teclas mortas)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Francés (Suíza, teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Francés (Suíza, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Alemán (Suíza, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Árabe (Siria)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Sirio"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Sirio (fonético)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurdo (Siria, latino Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurdo (Siria, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurdo (Siria, latino Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Taxico"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Taxico (herdado)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Cingalés (fonético)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamil (Sri Lanka, Unicode)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamil (Sri Lanka, máquina de escribir TAB)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Singhala (teclado EE. UU. con letras Singhala)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Tailandés"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Tailandés (TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Tailandés (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turco"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turco (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turco (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turco (teclas mortas de Sun)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurdo (Turquía, latino Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurdo (Turquía, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurdo (Turquía, latino Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turco (internacional con teclas mortas)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Tártaro de Crimea (turco Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Tártaro de Crimea (turco F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Tártaro de Crimea (turco Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taiwanés"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taiwanés (autóctono)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taiwán)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ucraíno"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ucraíno (fonético)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ucraíno (máquina de escribir)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ucraíno (teclas Windows)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ucraíno (herdado)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ucraíno (estándar RSTU)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Ruso (Ucraíno estándar RSTU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ucraíno (homofónico)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Inglés (RU)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Inglés (UK, estendido con teclas Windows)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Inglés (RU, internacional con teclas mortas)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Inglés (RU, Dvorak)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Inglés (RU, Dvorak con puntuación para RU)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Inglés (RU, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Inglés (RU, Macintosh internacional)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Inglés (RU, Colemark)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Uzbeco"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Uzbeco (latino)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamita"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Coreano"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Coreano (101/104 teclas compatíbeis)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Xaponés (PC-98xx Series)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irlandés"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irlandés (UnicodeExperto)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogam (IS434)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdú (Paquistán)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdú (Paquistán, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdú (Paquistán, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Árabe (Paquistán)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Dhivehi"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Inglés (Sudáfrica)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Estoniano (punto e coma e comiña desprazadas, obsoleto)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalí"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Inglés (Nixeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Yoruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharico"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braille (zurdo)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braille (destro)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmenistano"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmenistano (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Francés (Malí, alternativa)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Inglés (Malí, Macintosh de EE. UU.)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Inglés (Malí, EE. UU. internacional)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Swahili (Tanzania)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Swahili (Kenia)"
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipino"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipino (QWERTY baybayin)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipino (Capewell-Dvorak latino)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipino (Capewell-Dvorak baybayin)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipino (Capewell-QWERF 2006 latino)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipino (Capewell-QWERF 2006 baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipino (Colemak latino)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipino (Colemak baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipino (Dvorak latino)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipino (Dvorak baybayin)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldavo"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldavo (Gagauz)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Cambiando a outra disposición"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Alt dereito (mentres está premido)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Alt esquerda (mentres está premida)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Tecla Windows esquerda (ao premela)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "A tecla Windows (mentres está premida)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Calquera tecla Windows (ao pulsala)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Bloqueo de maiúsculas (ao pulsarse), Alt+Bloq Maiús realiza a acción orixinal de bloqueo de maiúsculas"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Ctrl dereito (mentres está premido)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Alt dereito"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Alt esquerda"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Bloqueo de maiúsculas"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Maiús+BloqMaiús"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Bloqueo de maiúsculas (á primeira disposición), Maiús+Bloq Maiús (á última disposición)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Win esquerda (á primeira disposición), Win/Menu dereita (á última disposición)"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Ctrl esquerda (á primeira disposición), Ctrl dereita (á última disposición)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Bloq Maiús"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Ámbalas teclas «Maiús» xuntas"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Ámbalas teclas Alt xuntas"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Ámbalas teclas Ctrl xuntas"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Maiús"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Ctrl esquerda + Maiús esquerda"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Ctrl dereito + Maiús dereito"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Maiús"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Alt esquerda + Maiús. esquerda"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Espazo"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Win esquerda"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Tecla Win+Espazo"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Windows dereito"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Maiús esquerda"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Maiús dereito"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Ctrl esquerda"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Ctrl dereito"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Bloq Despl"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Ctrl esquerda + Ctrl dereito (á primeira disposición), Ctrl dereita + Menú(á última disposición)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Tecla para seleccionar o 3º nivel"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Calquera tecla Windows"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Calquera tecla Alt"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "A tecla Alt dereita, Maiús+Alt dereita e tecla Compose"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "A tecla Alt dereita nunca elixe o 3º nivel"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Intro no teclado numérico"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Contrabarra"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Menor que/Maior que&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Bloq Maiús escolle o 3º nivel, actúa como un bloqueo dunha vez ao premelo xunto con outro selector de 3º nivel"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Contra barra selecciona o 3º nivel, bloquea ao premerse xunto con outro selector de 3º nivel"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Menor que/Maior que&gt; elixe o 3º nivel, actúa como un bloqueo unitario ao premerse xunto con outro selector de 3º nivel"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Posición da tecla Ctrl"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Bloq Maiús como Ctrl"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Ctrl esquerdo como Meta"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Intercambiar Ctrl e Bloq Maiús"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Á esquerda do «A»"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "Na parte inferior esquerda"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Ctrl dereito como Alt dereito"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menú como Ctrl dereito"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Alt dereito como Ctrl dereito"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Trocar Alt esquerda con Ctrl esquerda"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Trocar Win esquerda con Ctrl esquerda"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Trocar tecla Win dereita por tecla Ctrl dereita"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Alt esquerda como Ctrl, Ctrl esquerda com Win, Win esquerda como ALt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Usar o LED do teclado para mostrar a disposición alternativa"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Bloq Num"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Disposición do teclado numérico"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Herdado"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Adicións unicode (frechas e operadores matemáticos)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
msgid "Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Adicións unicode (frechas e operadores matemáticos); operadores matemáticos no nivel predeterminado"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Wang 724 herdado"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
msgid "Wang 724 keypad with Unicode additions (arrows and math operators)"
msgstr "Teclado numérico Wang 724 con adicións Unicode (frechas e operadores matemáticos)"
-#: ../rules/base.xml.in.h:965
+#: ../rules/base.xml.in.h:968
msgid "Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Teclado numérico Wang 724 con adicións Unicode (frechas e operadores matemáticos); operadores matemáticos no nivel predeterminado"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadecimal"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "Caixeiro automático/estilo teléfono"
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Comportamento da tecla Supr do teclado numérico"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Tecla herdada con punto"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Tecla herdada con coma"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Tecla de cuarto nivel con punto"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Tecla de cuarto nivel con punto, restrición latin-9"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Tecla de cuarto nivel con coma"
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Tecla de cuarto nivel con momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Tecla de cuarto nivel con separadores abstractos"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Punto e coma no terceiro nivel"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Comportamento da tecla Bloq. Maiús."
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Bloq Maiús usa a capitalización interna; Maiús «suspende» o Bloq Maiús"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Bloq Maiús usa a capitalización interna; Maiús non afecta a Bloq Maiús"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Bloq Maiús actúa como Maiús con bloqueo; Maiús «suspende» Bloq Maiús"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Bloq Maiús actúa como Maiús con bloqueo; Maiús non afecta ao Bloq Maiús"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Bloq Maiús cambia a capitalización normal dos caracteres alfabéticos"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Facer de Bloq Maiús un Bloq Num adicional"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Intercambiar ESC e Bloq Maiús"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Facer de Bloq Maiús un Esc adicional"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Facer de Bloq Maiús un Retroceso adicional"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Facer de Bloq Maiús un Super adicional"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Facer de Bloq Maiús un Hyper adicional"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Bloq Maiús cambia a Maiús con bloqueo (afecta a todas as teclas)"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Bloq Maiús está desactivado"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Facer de Bloq Maiús un Ctrl adicional"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Comportamento da tecla Alt/Windows"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Engadir o comportamiento estándar á tecla Menú."
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt e Meta están nas teclas Alt"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt asígnase ás teclas Win (e as teclas Alt usuais)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Control asígnase ás teclas Win (e as teclas Ctrl usuais)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Control está asignada ás teclas Alt, Alt está asingado ás teclas Win"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta está asignada ás teclas Windows"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta está asignada á tecla Windows esquerda"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper está asignada ás teclas Windows"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt está asignada á tecla Windows dereita e Super a tecla Menú"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt está cambiada con Win"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Posición da tecla Compose"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "3º nivel da Win esquerda"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "3º nivel da Win dereita"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "3º nivel do menú"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "3º nivel da Ctrl esquerda"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "3º nivel da Ctrl dereita"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "3º nivel do Bloq Maiús"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "3º nivel do &lt;Menor/Maior&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pausa"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Opcións varias de compatiblidade"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Teclas do teclado numérico por omisión"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "As teclas do teclado numérico sempre escriben díxitos (como en Mac OS)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "Bloq. Num. activo: díxitos, Maiús. cambia a teclas de frechas, Bloq. Num. inactivo: sempre teclas de frechas (como en MS Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Maiús non cancela Bloq Num, no seu lugar elixe o 3er nivel"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Teclas especiais (Ctrl+Alt+«tecla») manipuladas nun servidor"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Teclado de aluminio de Apple: emular teclas PC (Imprimir, Bloq Despl, Pausa, Bloq Núm)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Maiús cancela BloqMaiús"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Activar caracteres tipográficos adicionais"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Ambas as teclas «Maiús» xuntas cambian o Bloqueo de maiúsculas"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Ambas as teclas Maiús xuntas activan o Bloq Maiús, unha tecla Maiús desactívao"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Ambas as teclas Maiús xuntas activan Maiús con bloqueo"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Maiús + Bloqueo numérico cambia a teclas do punteiro"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Permitir que accións do teclado liberen as capturas (aviso: risco de seguranza)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Permitir captura e rexistro da árbore de xanelas"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Engadir o símbolo de divisa a certas teclas"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro no E"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro no 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro no 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro no 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupia no 4"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Tecla para seleccionar o 5º nivel"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Menor que/Maior que&gt; elixe o 5º nivel, actúa como un bloqueo unitario ao premerse xunto con outro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Alt dereita elixe o 5º nivel, bloquea ao premerse xunto con outro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Win esquerda elixe o 5º nivel, bloquea ao premerse xunto con outro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Win dereita elixe o 5º nivel, bloquea ao premerse xunto con outro selector de 5º nivel"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Usando a tecla espazo para introducir un carácter de espazo non separábel"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Espacio usual en calquera nivel"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Carácter de espazo non separábel no segundo nivel"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Carácter de espazo non separábel no terceiro nivel"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Carácter de espazo non separábel no terceiro nivel, nada no cuarto nivel"
-#: ../rules/base.xml.in.h:1047
+#: ../rules/base.xml.in.h:1050
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Carácter de espazo non separábel no terceiro nivel, carácter de espazo estreito non separábel no cuarto nivel"
-#: ../rules/base.xml.in.h:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Carácter de espazo non separábel no cuarto nivel"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Carácter de espazo non separábel no cuarto nivel, carácter de espacio estreito non separábel no sexto nivel"
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1053
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Carácter de espazo non separábel no cuarto nivel, carácter de espazo estreito non separábel o sexto nivel (a través de Ctrl+Maiús)"
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Carácer de espazo irrompíbel de anchura cero («ZWNJ») no segundo nivel"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Carácer de espazo irrompíbel de anchura cero («ZWNJ») no segundo nivel, carácter de espazo de anchura cero rompíbel («ZWJ») no terceiro nivel"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Carácer de espazo irrompíbel de anchura cero («ZWNJ») no segundo nivel, carácter de espazo de anchura cero rompíbel («ZWJ») no terceiro nivel, caracter de espazo non separábel no cuarto nivel"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Carácer de espazo irrompíbel de anchura cero («ZWNJ») no segundo nivel, carácter de espazo non separábel no terceiro nivel"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Carácer de espazo irrompíbel de anchura cero («ZWNJ») no segundo nivel, carácter de espazo non separábel no terceiro nivel, nada no cuarto nivel"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Carácter de espazo irrompíbel de anchura cero («ZWNJ») no segundo nivel, carácter de espazo non separábel no terceiro nivel, espazo de anchura cero rompíbel («ZWJ») no cuarto nivel"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Carácer de espazo irrompíbel de anchura cero («ZWNJ») no segundo nivel, carácter de espazo non separábel no terceiro nivel, espazo estreito non separábel no cuarto nivel"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Carácer de espazo irrompíbel de anchura cero («ZWNJ») no terceiro nivel, carácter de anchura cero rompíbel («ZWJ») no cuarto nivel"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Opcións de teclado xaponés"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "A tecla Bloq Kana está bloqueando"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Retroceso estilo NICOLA-F"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Facer Zenkaku Hankaku un ESC adicional"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Coreano teclas Hangul/Hania"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Hardware teclas Hangul/Hania"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Alt dereito como Hangul, Ctrl dereito como Hania"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Ctrl dereito como Hangul, Alt dereito como Hania"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Engadir as letras acentuadas do esperanto"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "Á tecla correspondente nunha disposición Qwerty."
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "Á tecla correspondente nunha disposición Dvorak."
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "Á tecla correspondente nunha disposición Colemak."
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Manter a compatibilidade das teclas cos códigos de teclas antigos de Solaris"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Compatibilidade coas teclas de Sun"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Secuencia de teclas para matar o servidor X"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Control + Alt + Retroceso"
diff --git a/xorg-server/xkeyboard-config/po/ko.po b/xorg-server/xkeyboard-config/po/ko.po
index 85799a0e4..ccf9eddc0 100644
--- a/xorg-server/xkeyboard-config/po/ko.po
+++ b/xorg-server/xkeyboard-config/po/ko.po
@@ -10,10 +10,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 2.13.99\n"
+"Project-Id-Version: xkeyboard-config 2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-21 13:01+0900\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-16 05:35+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <translation-team-ko@lists.sourceforge.net>\n"
"Language: ko\n"
@@ -955,3131 +955,3143 @@ msgstr "아랍어(QWERTY/숫자)"
msgid "Arabic (Buckwalter)"
msgstr "아랍어(버크월터)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "아랍어(매킨토시)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "알바니아"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "알바니아(Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "아르메니아"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "아르메니아(음성 기호)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "아르메니아(다른 음성 기호)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "아르메니아(동부)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "아르메니아(서부)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "아르메니아(다른 동부)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "독일어(오스트리아)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "독일어(오스트리아, 데드키 없음)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "독일어(오스트리아, 썬 데드키)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "독일어(오스트리아, 매킨토시)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "아제르바이잔어"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "아제르바이잔어(키릴 문자)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "벨라루스어"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "벨라루시아어(구형)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "벨라루스어(라틴)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "벨기에어"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "벨기에어(다른 버전)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "벨기에어(다른 버전, Latin-9 전용)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "벨기에어(다른 버전, 썬 데드키)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "벨기에어(ISO 다른 버전)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "벨기에어(데드키 없음)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "벨기에어(썬 데드키)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "벨기에어(Wang model 724 AZERTY)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "벵골어"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "벵골어(프롭해트)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "인도"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "벵골어(인도)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "벵골어(인도, 프롭해트)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "벵골어(인도, 바이샤키)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "벵골어(인도, 보르노나)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "벵골어(인도, 유니 기탄잘리)"
# inscript - 인도 키보드 표준
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "벵골어(인도, 바이샤키 인스크립트)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "마니푸르어(Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "구자라트어"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "펀자브어(구르무키 문자)"
# 젤룸 - 파키스탄 지역
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "펀자브어(구르무키 문자, 젤룸)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "칸나다어"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "칸나다어(KaGaPa 음성 기호)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "말라얄람어"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "말라얄람어(라리타)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "말라얄람어(발전된 Inscript, 루피 기호 포함)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
# Oriya - 인도 방언
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "오리야어"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "타밀어(유니코드)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "타밀어(숫자 포함 키보드)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "타밀어(TAB 타자기)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "타밀어(TSCII 타자기)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "타밀어"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "텔루구어"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "텔루구어(KaGaPa 음성 표기)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
# Urdu - 인도 방언
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "우르두어(음성 표기)"
# Urdu, 인도 방언
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "우르두어(다른 음성 기호 버전)"
# Urdu - 인도 방언
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "우르두어(윈도우 키)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
# Bolnagri: x input method 이름, http://indlinux.org/wiki/index.php/BolNagri
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "힌두어(Bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "힌두어(Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "힌두어(KaGaPa 음성 기호)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "산스크리트(KaGaPa 음성 기호)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "마라티어(KaGaPa 음성 기호)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "영어(인도, 루피 기호 포함)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "보스니아어"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "보스니아어(따옴표에 각괄호 포함)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "보스니아어(보스니아 이중 문자 포함)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "보스니아어(미국식 키보드, 보스니아 이중 문자 포함)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "보스니아어(미국식 키보드, 보스니아 문자 포함)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "포르투갈어(브라질)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "포르투갈어(브라질, 데드키 없음)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "포르투갈어(브라질, 드보락)"
# 나티보 - 아메리카 소수 언어
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "포르투갈어(브라질, 나티보)"
# 나티보 - 아메리카 소수 언어
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "포르투갈어(브라질, 미국 키보드 나티보)"
# 나티보 - 아메리카 소수 언어
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "에스페란토(브라질, 나티보)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "불가리아어"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "불가리아어(구식 음성 기호)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "불가리아어(새 음성 기호)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "아랍어(모로코)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "프랑스어(모로코)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
# 베르베르어파
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "베르베르어(모로코, 티피나그)"
# 베르베르어파
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "베르베르어(모로코, 티피나그 다른 버전)"
# 베르베르어파
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "베르베르어(모로코, 티피나그 다른 음성 기호 버전)"
# 베르베르어파
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "베르베르어(모로코, 티피나그 확장)"
# 베르베르어파
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "베르베르어(모로코, 티피나그 음성 기호)"
# 베르베르어파
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "베르베르어(모로코, 티피나그 확장 음성 기호)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "영어(카메룬)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "프랑스어(카메룬)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "카메룬 여러 언어 지원(QWERTY)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "카메룬 여러 언어 지원(AZERTY)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "카메룬 여러 언어 지원(드보락)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "미얀마어"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "프랑스어(캐나다)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "프랑스어(캐나다, 드보락)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "프랑스어(캐나다, 구형)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "캐나다 여러 언어 지원"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "캐나다 여러 언어 지원(첫번째)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "캐나다 여러 언어 지원(두번째)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "이누이트어"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "영어(캐나다)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "프랑스어(콩고 민주 공화국)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "중국어"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "티베트어"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "티베트어(ASCII 숫자 포함)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "위구르어"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "크로아티아어"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "크로아티아어(따옴표에 각괄호 포함)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "크로아티아어(크로아티아 이중 문자 포함)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "크로아티아어(미국식 키보드, 크로아티아 이중 문자 포함)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "크로아티아어(미국식 키보드, 크로아티아 문자 포함)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "체코어"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "체코어(&lt;\\|&gt; 키 포함)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "체코어(QWERTY)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "체코어(QWERTY, 백슬래시 확장)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "체코어(UCW 배치, 액센트 문자만)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "체코어(US 드보락, CZ UCW 지원)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "덴마크어"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "덴마크어(데드키 없음)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "덴마크어(윈도우 키)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "덴마크어(매킨토시)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "덴마크어(매킨토시, 데드키 없음)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "덴마크어(드보락)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "네덜란드어"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "네덜란드어(썬 데드키)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "네덜란드어(매킨토시)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "네덜란드어(표준)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "종카어"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "에스토니아어"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "에스토니아어(데드키 없음)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "에스토니아어(드보락)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "에스토니아어(미국식 키보드, 에스토니아 문자 포함)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "페르시아어"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "페르시아어(페르시아어 키패드 포함)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "쿠르드어(이란, 라틴 Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "쿠르드어(이란, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "쿠르드어(이란, 라틴 Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "쿠르드어(이란, 아랍어 라틴)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "이라크"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "쿠르드어(이라크, 라틴 Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "쿠르드어(이라크, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "쿠르드어(이라크, 라틴 Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "쿠르드어(이라크, 아랍어 라틴)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "페로어"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "페로어(데드키 없음)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "핀란드어"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "핀란드어(클래식)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "핀란드어(클래식, 데드키 없음)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "핀란드어(윈도우 키)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "북 사오미(핀란드)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "핀란드어(매킨토시)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "프랑스어"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "프랑스어(데드키 없음)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "프랑스어(썬 데드키)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "프랑스어(다른 버전)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "프랑스어(다른 버전, Latin-9 전용)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "프랑스어(다른 버전, 데드키 없음)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "프랑스어(다른 버전, 썬 데드키)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "프랑스어(구형, 다른 버전)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "프랑스어(구형, 다른 버전, 데드키 없음)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "프랑스어(구형, 다른 버전, 썬 데드키)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "프랑스어(Bepo, ergonomic, 드보락 방식)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "프랑스어(Bepo, ergonomic, 드보락 방식, Latin-9 전용)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "프랑스어(드보락)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "프랑스어(매킨토시)"
# 브르타뉴어 - 프랑스 지방 언어
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "프랑스어(브르타뉴어)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "오크어"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "조지아어(프랑스, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "영어(가나)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "영어(가나, 다국어)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "아칸"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
# 가나 부족어
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "에베어"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "풀라"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
# 가나의 언어
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "가어"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
# 나이지리아 변종
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "하우사어"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
# 아프리카 지역 언어
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "애버타임어"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "영어(가나, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "프랑스어(기니)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "조지아어"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "조지아어(어고노믹)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "조지아어(MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "러시아어(그루지아)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "오세트어(그루지아)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "독일어"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "독일어(어큐트 데드키)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "독일어(그레이브 어큐트 데드키)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "독일어(데드키 없음)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "독일어(T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "루마니아어(독일)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "루마니아어(독일, 데드키 없음)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "독일어(드보락)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "독일어(썬 데드키)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "독일어(Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "독일어(매킨토시)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "독일어(매킨토시, 데드키 없음)"
# http://ko.wikipedia.org/wiki/저지_소르브어
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "저지 소르브어"
# http://ko.wikipedia.org/wiki/저지_소르브어
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "저지 소르브어(QWERTZ)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "독일어(QWERTY)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "터키어(독일)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "러시아어(독일, 음성 표기)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "독일어(구형)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "그리스어"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "그리스어(간단)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "그리스어(확장)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "그리스어(데드키 없음)"
# 그리스어 발음 표기 http://en.wikipedia.org/wiki/Polytonic_orthography
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "그리스어(폴리토닉)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "헝가리어"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "헝가리어(표준)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "헝가리어(데드키 없음)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "헝가리어(QWERTY)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "헝가리어(101/QWERTZ/쉼표/데드키)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "헝가리어(101/QWERTZ/쉼표/데드키 없음0"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "헝가리어(101/QWERTZ/점/데드키)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "헝가리어(101/QWERTZ/점/데드키 없음)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "헝가리어(101/QWERTY/쉼표/데드키)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "헝가리어(101/QWERTY/쉼표/데드키 없음)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "헝가리어(101/QWERTY/점/데드키)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "헝가리어(101/QWERTY/점/데드키 없음)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "헝가리어(102/QWERTZ/쉼표/데드키)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "헝가리어(102/QWERTZ/쉼표/데드키 없음)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "헝가리어(102/QWERTZ/점/데드키)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "헝가리어(102/QWERTZ/점/데드키 없음)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "헝가리어(102/QWERTY/쉼표/데드키)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "헝가리어(102/QWERTY/쉼표/데드키 없음)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "헝가리어(102/QWERTY/점/데드키)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "헝가리어(102/QWERTY/점/데드키 없음)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "아이슬란드어"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "아이슬란드어(썬 데드키)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "아이슬란드어(데드키 없음)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "아이슬란드어(매킨토시, 구형)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "아이슬란드어(매킨토시)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "아이슬란드어(드보락)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "히브리어"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "히브리어(lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "히브리어(음성 표기)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "히브리어(성서 방식, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "이탈리아어"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "이탈리아어(데드키 없음)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "이탈리아어(윈도우 키)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "이탈리아어(매킨토시)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "이탈리아어(미국식 키보드, 이탈리아어 문자 포함)"
# 오세트 - 러시아 및 조지아 지역 오세트족
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "조지아어(이탈리아)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "이탈리아어(IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "일본어"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "일본어(가나)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "일본어(가나 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "일본어(OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "일본어(매킨토시)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "일본어(드보락)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "키르기스어"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "키르기스어(음성 기호)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "크메르어(캄보디아)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "카자흐어"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "러시아어(카자흐스탄, 카자흐어 포함)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "카자흐어(러시아어 포함)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "라오어"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "라오어(STEA 제안 표준 키 배치)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "스페인어(라틴 아메리카)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "스페인어(라틴 아메리카, 데드키 없음)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "스페인어(라틴 아메리카, 물결 데드키 포함)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "스페인어(라틴 아메리카, 썬 데드키)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "스페인어(라틴 아메리카, 드보락)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "리투아니아어"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "리투아니아어(표준)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "리투아니아어(미국식 키보드, 리투아니아 문자 포함)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "리투아니아어(IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "리투아니아어(LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "리투아니아어(LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "라트비아어"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "라트비아어(아포스트로피 변종)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "라트비아어(물결 변종)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "라트비아어(F 변종)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "라트비아어(현대 버전)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "라트비아어(어고노믹, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "라트비아어(개조 버전)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "마오리어"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "몬테네그로어"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "몬테네그로어(키릴 문자)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "몬테네그로어(키릴 문자, ZE와 ZHE 뒤바꾸기)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "몬테네그로어(라틴 유니코드)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "몬테네그로어(라틴 QWERTY)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "몬테네그로어(라틴 유니코드 QWERTY)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "몬테네그로어(키릴 문자, 각괄호 포함)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "몬테네그로어(라틴, 각괄호 포함)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "마케도니아어"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "마케도니아어(데드키 없음)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "몰타어"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "몰타어(미국식 키 배치)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "몽골어"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "노르웨이어"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "노르웨이어(데드키 없음)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "노르웨이어(윈도우 키)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "노르웨이어(드보락)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "북 사오미(노르웨이)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "북 사오미(노르웨이, 데드키 없음)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "노르웨이어(매킨토시)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "노르웨이어(매킨토시, 데드키 없음)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "노르웨이어(콜맥)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "폴란드어"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "폴란드어(구형)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "폴란드어(QWERTZ)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "폴란드어(드보락)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "폴란드어(드보락, 따옴표 키에 폴란드어 따옴표)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "폴란드어(드보락, 1 키에 폴란드어 따옴표)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "카슈브어"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "실레지아어"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "러시아어(폴란드, 음성 표기 드보락)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "폴란드어(프로그래머 드보락)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "포르투갈어"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "포르투갈어(데드키 없음)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "포르투갈어(썬 데드키)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "포르투갈어(매킨토시)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "포르투갈어(매킨토시, 데드키 없음)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "포르투갈어(매킨토시, 썬 데드키)"
# 나티보 - 아메리카 소수 언어
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "포르투갈어(나티보)"
# 나티보 - 아메리카 소수 언어
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "포르투갈어(나티보, 미국 키보드)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "에스페란토(포르투갈, 네이티브)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "루마니아어"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "루미니아어(세디유)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "루마니아어(표준)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "루마니아어(표준 세디유)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "루마니아어(윈도우 키)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "러시아어"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "러시아어(음성 표기)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "러시아어(음성 표기, 윈도우 키)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "러시아어(타자기)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "러시아어(구형)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "러시아어(타자기, 구형)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "타타르어"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "오세트어(구형)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "오세트어(윈도우 키)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "추바시어"
# http://ko.wikipedia.org/wiki/%EC%B6%94%EB%B0%94%EC%8B%9C%EC%96%B4
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "추바시어(라틴)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "우드무르트어"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "코미어"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "야큐트어"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "칼미크어"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "러시아어(DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "러시아어(매킨토시)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "세르비아어(러시아)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "바시키르어"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "마리어"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "러시아어(음성 표기 AZERTY)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "러시아어(음성 표기 프랑스식)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "세르비아어"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "세르비아어(키릴 문자, ZE와 ZHE 뒤바꾸기)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "세르비아어(라틴)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "세르비아어(라틴 유니코드)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "세르비아어(라틴 QWERTY)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "세르비아어(라틴 유니코드 QWERTY)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "세르비아어(키릴 문자, 각괄호 포함)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "세르비아어(라틴, 각괄호 포함)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "판노니아 루테니아"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "슬로베니아어"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "슬로베니아어(따옴표에 각괄호 포함)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "슬로베니아어(미국식 키보드, 슬로베니아 문자 포함)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "슬로바키아어"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "슬로바키아어(확장 백슬래시)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "슬로바키아어(QWERTY)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "슬로바키아어(QWERTY, 백슬래시 확장)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "스페인어"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "스페인어(데드키 없음)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "스페인어(윈도우 키)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "스페인어(물결 데드키 포함)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "스페인어(썬 데드키)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "스페인어(드보락)"
# 아스투리아스 - 스페인 지역
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "아스투리아스어(스페인, 가운데점 H 및 가운데점 L 포함)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "카탈로니아어(스페인, 가운데점 L 포함)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "스페인어(매킨토시)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "스웨덴어"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "스웨덴어(데드키 없음)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "스웨덴어(드보락)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "러시아어(스웨덴, 음성 표기)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "러시아어(스웨덴, 음성 표기, 데드키 없음)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "북 사오미(스웨덴)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "스웨덴어(매킨토시)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "스웨덴어(SV 드보락)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "스웨덴 기호 언어"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "독일어(스위스)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "독일어(스위스, 구형)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "독일어(스위스, 데드키 없음)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "독일어(스위스, 썬 데드키)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "프랑스어(스위스)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "프랑스어(스위스, 데드키 없음)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "프랑스어(스위스, 썬 데드키)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "프랑스어(스위스, 매킨토시)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "독일어(스위스, 매킨토시)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "아랍어(시리아)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "시리아어"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "시리아어(음성 기호)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "쿠르드어(시리아, 라틴 Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "쿠르드어(시리아, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "쿠르드어(시리아, 라틴 Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "타지키스탄"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "타지키스탄(구형)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "싱할라어(음성 기호)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "타밀어(스리랑카, 유니코드)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "타밀어(스리랑카, TAB 타자기)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "싱할라어(미국식 키보드, 싱할라 문자 포함)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "타이어"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "타이어(TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "타이어(Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "터키어"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "터키어(F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "터키어(Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "터키어(썬 데드키)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "쿠르드어(터키, 라틴 Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "쿠르드어(터키, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "쿠르드어(터키, 라틴 Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "터키어(국제 버전, 데드키 포함)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "크림타타르(터키어 Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "크림타타르(터키어 F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "크림타타르(터키어 Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "타이완"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "타이완(원주민)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
# 사이시얏트(賽夏族) - 타이완 원주민
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "사이시얏트(타이완)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "우크라이나어"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "우크라이나어(음성 기호)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "우크라이나어(타자기)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "우크라이나어(윈도우 키)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "우크라이나어(구형)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "우크라이나어(표준 RSTU)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "러시아어(우크라이나, 표준 RSTU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "우크라이나어(homophonic)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "영어(영국)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "영어(영국, 확장 윈도우 키)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "영어(영국, 국제 버전, 데드키 포함)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "영어(영국, 드보락)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "영어(영국, 영국 문장 부호 포함 드보락)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "영어(영국, 매킨토시)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "영어(영국, 매킨토시 국제 버전)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "영어(영국, 콜맥)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "우즈베크어"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "우즈베크어(라틴)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "베트남어"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "한국어"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "한국어(101/104키 호환)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "일본어(PC-98xx 시리즈)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "아일랜드"
# 아일랜드 변종
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "클로개라치어"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "아일랜드(UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "오검 문자"
# 아일랜드 변종
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "오검 문자(IS434)"
# Urdu - 인도 방언
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "우르두어(파키스탄)"
# Urdu - 인도 방언
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "우르두어(파키스탄, CRULP)"
# Urdu - 인도 방언
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "우르두어(파키스탄, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "아랍어(파키스탄)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
# 인도
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "신디어"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
# 몰디브 공용어
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "디베히어"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "영어(남아공)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "에스페란토"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "에스페란토(세미콜론과 따옴표 없애기, 없어진 기능)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "네팔어"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "영어(나이지리아)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
# 나이지리아 변종
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "이그보어"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
# 나이지리아 변종
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "요루바어"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "암하라어"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
# 월로프어 - 세네갈, 감비아, 모리타니에서 쓰이는 아프리카 언어
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "월로프어"
# Braille
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "점자"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "점자(왼손잡이)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "점자(오른손잡이)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "투르크멘어"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "투르크멘어(Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "밤바라어"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "프랑스어(말리, 다른 버전)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "영어(말리, 미국 매킨토시)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "영어(말리, 미국 국제 버전)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "스와힐리어(탄자니아)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "스와힐리어(케냐)"
# http://en.wikipedia.org/wiki/Kikuyu#Language
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "키쿠유어"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "츠와나어"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "필리핀어"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "필리핀어(QWERTY 베이베이인)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "필리핀어(케이프웰 드보락 라틴)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "필리핀어(케이프웰 드보락 베이베이인)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "필리핀어(케이프웰 QWERF 2006 라틴)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "필리핀어(케이프웰 QWERF 2006 베이베이인)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "필리핀어(콜맥 라틴)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "필리핀어(콜맥 베이베이인)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "필리핀어(드보락 라틴)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "필리핀어(드보락 베이베이인)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "몰디브어"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
# 가가우지아 지역의 몰디브어
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "몰티브어(가가우지아)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "다른 키 배치로 전환"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "오른쪽 Alt(누르고 있는 동안)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "왼쪽 Alt(누르고 있는 동안)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "왼쪽 윈도우(누르고 있는 동안)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "오른쪽 윈도우(누르고 있는 동안)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "모든 윈도우 키(누르고 있는 동안)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Caps Lock(누르고 있는 동안), Alt+Caps Lock을 누르면 원래 Caps Lock 기능"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "오른쪽 Ctrl(누르고 있는 동안)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "오른쪽 Alt"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "왼쪽 Alt"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Shift+Caps Lock"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Caps Lock(1번으로), Shift+Caps Lock(마지막으로)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "왼쪽 윈도우(1번으로), 오른쪽 윈도우/메뉴(마지막으로)"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "왼쪽 Ctrl(1번 키보드 배치로), 오른쪽 Ctrl (마지막 키보드 배치로)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Caps Lock"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Shift 키 2개 동시 누름"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Alt 키 2개 동시 누름"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Ctrl 키 2개 동시 누름"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "왼쪽 Ctrl+왼쪽 Shift"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "오른쪽 Ctrl+오른쪽 Alt"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "왼쪽 Alt+왼쪽 Shift"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+스페이스"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "메뉴"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "왼쪽 윈도우"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "윈도우 키+스페이스"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "오른쪽 윈도우"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "왼쪽 Shift"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "오른쪽 Shift"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "왼쪽 Ctrl"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "오른쪽 Ctrl"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "왼쪽 Ctrl+왼쪽 윈도우(1번 키보드 배치로), 오른쪽 Ctrl+Menu (2번째 키보드 배치로)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "3번째 단계를 선택하는 키"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "모든 윈도우 키"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "모든 Alt 키"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "오른쪽 Alt, Shift+오른쪽 Alt가 Compose"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "오른쪽 Alt는 3번째 단계를 선택하지 않음"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "키패드에 Enter"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "백슬래시"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt; 및 &gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Caps Lock으로 3번째 단계 선택, 다른 3번째 단계 선택 키와 같이 누르면 고정"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "백슬래시로 3번째 단계 선택, 다른 3번째 단계 선택 키와 같이 누르면 고정"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt; 및 &gt; 키로 3번째 단계 선택, 다른 3번째 단계 선택 키와 같이 누르면 고정"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Ctrl 키 위치"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Caps Lock 키를 Ctrl 키로"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "왼쪽 Ctrl 키를 Meta 키로"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Ctrl과 Caps Lock 뒤바꾸기"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "'A' 왼쪽에"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "맨 아래 왼쪽에"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "오른쪽 Ctrl 키를 오른쪽 Alt 키로"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menu 키를 오른쪽 Ctrl 키로"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "오른쪽 Alt 키를 오른쪽 Ctrl 키로"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "왼쪽 Alt와 왼쪽 Ctrl 뒤바꾸기"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "왼쪽 윈도우와 왼쪽 Ctrl 뒤바꾸기"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "오른쪽 윈도우와 오른쪽 Ctrl 뒤바꾸기"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "왼쪽 Alt를 Ctrl, 왼쪽 Ctrl을 윈도우, 왼쪽 윈도우를 Alt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "키보드 LED에서 다른 키보드 배치 사용 표시"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Num Lock"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "숫자 키패드의 키 배치"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "구형 방식"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "유니코드 추가(화살표 및 수학 기호)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
msgid "Unicode additions (arrows and math operators; math operators on default level)"
msgstr "유니코드 추가(화살표 및 수학 기호, 수학 기호를 기본 단계에)"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "구형 방식 Wang 724 키패드"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
msgid "Wang 724 keypad with Unicode additions (arrows and math operators)"
msgstr "Wang 724 키패드, 유니코드 추가(화살표 및 수학 기호)"
-#: ../rules/base.xml.in.h:965
+#: ../rules/base.xml.in.h:968
msgid "Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Wang 724 키패드, 유니코드 추가(화살표 및 수학 기호, 수학 기호를 기본 단계에)"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "십육진법"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "ATM/전화기형태"
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "숫자 키패드의 Delete 키 동작"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "구형 방식 키, 점 포함"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "구형 방식 키, 쉼표 포함"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "네번째 단계, 점 사용"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "네번째 단계, 점 사용, Latin-9 전용"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "네번째 단계, 쉼표 사용"
# momayyez: http://en.wikipedia.org/wiki/Momayyez
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "네번째 단계, 아랍식 쉼표(momayyez) 사용"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "네번째 단계, 가상 구분 문자 사용"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "3번째 단계에서 세미콜론"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Caps Lock 키 동작"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock이 내부 대문자 기능 사용, Shift가 Caps Lock을 \"일시 중지\""
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Caps Lock이 내부 대문자 기능 사용, Shift가 Caps Lock 상태에 영향 없음"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock이 Shift처럼 동작하고 상태 고정, Shift가 Caps Lock을 \"일시 중지\""
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Caps Lock이 Shift처럼 동작하고 상태 고정, Shift가 Caps Lock 상태에 영향 없음"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Caps Lock이 일반적인 알파벳 대문자 상태를 토글"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Caps Lock을 추가 Num Lock으로 사용"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "ESC와 Caps Lock 뒤바꾸기"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Caps Lock을 추가 ESC로 사용"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Caps Lock을 추가 백스페이스로 사용"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Caps Lock을 추가 Super로 사용"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Caps Lock을 추가 Hyper로 사용"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Caps Lock이 Shift 상태를 토글(모든 키가 영향을 받음)"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Caps Lock 사용 안 함"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Caps Lock을 추가 Ctrl로 사용"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Alt/Win 키 동작"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "메뉴 키에 기본 동작 추가"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt와 Meta를 Alt 키에"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt 키를 윈도우 키로 매핑(일반 Alt 키로도 동작)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl 키를 윈도우 키로 매핑(일반 Ctrl 키로도 동작)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl 키를 윈도우 키로 매핑, Alt 키를 윈도우 키로 매핑"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "메타 키를 윈도우 키로 매핑"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "메타 키를 왼쪽 윈도우 키로 매핑"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper 키를 윈도우 키로 매핑"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt 키를 오른쪽 윈도우 키로 매핑, Super 키를 메뉴 키로 매핑"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt와 윈도우 키 뒤바꾸기"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Compose 키의 위치"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "3번째 단계에서 왼쪽 윈도우"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "3번째 단계에서 오른쪽 윈도우"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "3번째 단계에서 메뉴"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "3번째 단계에서 왼쪽 Ctrl"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "3번째 단계에서 오른쪽 Ctrl"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "3번째 단계에서 Caps Lock"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "3번째 단계에서 &lt;Less/Greater&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "기타 호환성 옵션"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "기본 숫자 키패드 키"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "숫자 키패드 키가 항상 숫자를 입력(맥 OS처럼 동작)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "NumLock 켜면: 숫자, Shift 누르면 화살표 키, NumLock 끔: 항상 화살표 키 (MS 윈도우 방식)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Shift를 누르면 Num Lock을 끄지 않고, 3번째 단계를 선택"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "특수 키는(Ctrl+Alt+&lt;키&gt;) 서버에서 처리"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Apple Aluminium Keyboard: PC 키 에뮬레이션(Print, Scroll_Lock, Pause, Num Lock)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Shift를 누르면 Caps Lock 끄기"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "추가 타이포그라피 문자 사용"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Shift 키 동시 눌러 Caps Lock 토글"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Shift 키 동시 눌러 Caps Lock 켜기, Shift 키 한 개로 해제"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Shift 키 동시 눌러 ShiftLock 토글"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Shift + NumLock으로 PointerKeys 토글"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "키보드 동작으로 키 잡기 해제 허용(경고: 보안 위험)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "키 잡기 및 창 단계 기록 허용"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "화폐 기호를 특정 키에 추가"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "유로를 E 키에"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "유로를 2 키에"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "유로를 4 키에"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "유로를 5 키에"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "루피를 4 키에"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "5번째 단계를 선택하는 키"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt; 및 &gt; 키로 5번째 단계 선택, 다른 5번째 단계 선택 키와 같이 누르면 고정"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "오른쪽 Alt로 5번째 단계 선택, 다른 5번째 단계 선택 키와 같이 누르면 고정"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "왼쪽 윈도우로 5번째 단계 선택, 다른 5번째 단계 선택 키와 같이 누르면 고정"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "오른쪽 윈도우로 5번째 단계 선택, 다른 5번째 단계 선택 키와 같이 누르면 고정"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
-msgstr "스페이스 키가 강제 공백 출력."
+msgstr "스페이스 키가 강제 공백 출력"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "모든 단계에서 일반 공백 문자"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "2번째 단계에서 강제 공백 문자"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "3번째 단계에서 강제 공백 문자"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
msgid "Non-breakable space character at third level, nothing at fourth level"
-msgstr "3번째 단계에서 강제 공백 문자, 4번째에서는 출력 없음."
+msgstr "3번째 단계에서 강제 공백 문자, 4번째에서는 출력 없음"
-#: ../rules/base.xml.in.h:1047
+#: ../rules/base.xml.in.h:1050
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
-msgstr "3번째 단계에서 강제 공백 문자, 4번째에서는 얇은 강제 공백 문자."
+msgstr "3번째 단계에서 강제 공백 문자, 4번째에서는 얇은 강제 공백 문자"
-#: ../rules/base.xml.in.h:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "4번째 단계에서 강제 공백 문자"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "4번째 단계에서 강제 공백 문자, 6번째 단계에서 얇은 강제 공백 문자"
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1053
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "4번째 단계에서 강제 공백 문자, 6번째 단계에서 얇은 강제 공백 문자(Ctrl+Shift 사용)"
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "2번째 단계에서 폭 없는 연결 금지 문자"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "2번째 단계에서 폭 없는 연결 금지 문자, 3번째에서는 폭 없는 연결 문자"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "2번째 단계에서 폭 없는 연결 금지 문자, 3번째에서는 폭 없는 연결 문자, 4번째에서는 강제 공백 문자"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "2번째 단계에서 폭 없는 연결 금지 문자, 3번째에서는 강제 공백 문자"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "2번째 단계에서 폭 없는 연결 금지 문자, 3번째에서는 강제 공백 문자, 4번째에서는 없음"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "2번째 단계에서 폭 없는 연결 금지 문자, 3번째에서는 강제 공백 문자, 4번째에서는 폭 없는 연결 문자"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "2번째 단계에서 폭 없는 연결 금지 문자, 3번째에서는 강제 공백 문자, 4번째에서는 얇은 강제 공백 문자"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "3번째 단계에서 폭 없는 연결 금지 문자, 4번째에서는 폭 없는 연결 문자"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "일본어 키보드 옵션"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Kana Lock 키 상태 고정"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F 방식 백스페이스"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Zenkaku Hankaku를 추가 ESC로 사용"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "한국어 한/영, 한자 키"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "하드웨어 한/영, 한자 키"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "오른쪽 Alt 키를 한/영, 오른쪽 Ctrl 키를 한자 키로"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "오른쪽 Ctrl 키를 한/영, 오른쪽 Alt 키를 한자 키로"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "에스페란토 수퍼사인 문자 추가"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "QWERTY 키 배치에서 해당하는 키로"
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "드보락 키 배치에서 해당하는 키로"
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "콜맥 키 배치에서 해당하는 키로"
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "과거 솔라리스 키코드와 키 호환성 유지"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "썬 키 호환성"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "X 서버를 멈추는 키 조합"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + 백스페이스"
diff --git a/xorg-server/xkeyboard-config/po/nl.po b/xorg-server/xkeyboard-config/po/nl.po
index b3f512406..7c6c6e1c9 100644
--- a/xorg-server/xkeyboard-config/po/nl.po
+++ b/xorg-server/xkeyboard-config/po/nl.po
@@ -2,7 +2,7 @@
# Copyright (C) 2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the xkeyboard-config package.
#
-# »Eine schöne, leichte Schwere.«
+# "Of niet."
#
# ------------------------------------------------------------------------------
# *** Vocabulair ***
@@ -26,15 +26,16 @@
# Er zijn maximaal acht niveaus -- Shift gaat normaal naar tweede,
# AltGr naar derde en (+Shift) vierde, en Ctrl naar de bovenste vier.
# ------------------------------------------------------------------------------
+#
# Taco Witte <tcwitte@cs.uu.nl>, 2003, 2004, 2005, 2006.
# Tino Meinen <tino.meinen@gmail.com>, 2007, 2008, 2009, 2011, 2012.
# Benno Schulenberg <benno@vertaalt.nl>, 2013, 2014, 2015.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-2.13.99\n"
+"Project-Id-Version: xkeyboard-config-2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-17 17:21+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-19 10:51+0200\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
@@ -601,7 +602,7 @@ msgstr "Symplon PaceBook (tablet PC)"
msgid "Toshiba Satellite S3000"
msgstr "Toshiba Satellite S3000"
-# "Classic" is hier onderdeel van de merknaam?
+# Is "Classic" hier onderdeel van de merknaam?
#: ../rules/base.xml.in.h:140
msgid "Trust Wireless Keyboard Classic"
msgstr "Trust Wireless Keyboard Classic"
@@ -951,924 +952,928 @@ msgstr "Arabisch (qwerty/cijfers)"
msgid "Arabic (Buckwalter)"
msgstr "Arabisch (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Arabisch (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albanees"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albanees (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armeens"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armeens (fonetisch)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armeens (alternatief fonetisch)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armeens (Oosters)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armeens (Westers)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armeens (alternatief Oosters)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Duits (Oostenrijk)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Duits (Oostenrijk, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Duits (Oostenrijk, Sun dode toetsen)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Duits (Oostenrijk, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Azerbeidzjaans"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Azerbeidzjaans (Cyrillisch)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Wit-Russisch"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Wit-Russisch (historisch)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Wit-Russisch (Latijns)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belgisch"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belgisch (alternatief)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belgisch (alternatief, enkel Latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belgisch (alternatief, Sun dode toetsen)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belgisch (ISO alternatief)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belgisch (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belgisch (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belgisch (Wang model 724 azerty)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengaals"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengaals (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indisch"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengaals (India)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengaals (India, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengaals (India, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengaals (India, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengaals (India, Uni Gitanjali)"
# "Baishakhi Inscript" is een toetsenbordindeling.
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengaals (India, Baishakhi Inscript)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Meitei (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gujarati"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Punjabi (Gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Punjabi (Gurmukhi Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (KaGaPa-fonetisch)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
# Een van de 23 Indische talen.
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malayalam"
# Een van de 23 Indische talen.
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malayalam (Lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malayalam (verbeterd Inscript, met roepie-teken)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Oriya"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamil (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamil (toetsenbord met cijfertekens)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamil (TAB-typmachine)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamil (TSCII-typmachine)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamil"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (KaGaPa-fonetisch)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdu (fonetisch)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdu (alternatief fonetisch)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdu (Windows-toetsen)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (Bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (KaGaPa-fonetisch)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sanskriet (KaGaPa-fonetisch)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (KaGaPa-fonetisch)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Engels (India, met roepie-teken)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosnisch"
# Guillemets (of ook quillemets) zijn Franse aanhalingstekens.
# Voorbeeld: "Nederlandse" en «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosnisch (met Franse aanhalingstekens)"
# Digraaf - teken samengesteld uit twee letters.
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosnisch (met Bosnische digrafen)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosnisch (VS-toetsenbord met Bosnische digrafen)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosnisch (VS-toetsenbord met Bosnische lettertekens)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugees (Brazilië)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugees (Brazilië, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugees (Brazilië, Dvorak)"
# Nativo is een soort indeling, net als Dvorak en Colemak.
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugees (Brazilië, Nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugees (Brazilië, Nativo voor US-toetsenborden)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperanto (Brazilië, Nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Bulgaars"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Bulgaars (traditioneel fonetisch)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Bulgaars (nieuw fonetisch)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Arabisch (Marokko)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Frans (Marokko)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berbers (Marokko, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Berbers (Marokko, Tifinagh alternatief)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berbers (Marokko, Tifinagh alternatief fonetisch)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berbers (Marokko, Tifinagh uitgebreid)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berbers (Marokko, Tifinagh fonetisch)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berbers (Marokko, Tifinagh fonetisch uitgebreid)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Engels (Kameroen)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Frans (Kameroen)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Kameroens meertalig (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Kameroens meertalig (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Kameroens meertalig (Dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Burmees"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Frans (Canada)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Frans (Canada, Dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Frans (Canada, historisch)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Canadees meertalig"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Canadees meertalig (eerste deel)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Canadees meertalig (tweede deel)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Engels (Canada)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Frans (Democratische Republiek Congo)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Chinees"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetaans"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetaans (met ASCII-cijfers)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Oeigoers"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Kroatisch"
# Guillemets of ook quillemets zijn Franse aanhalingstekens.
# Dit is de "Nederlandse" en dit is de «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Kroatisch (met Franse aanhalingstekens)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Kroatisch (met Kroatische digrafen)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Kroatisch (VS-toetsenbord met Kroatische digrafen)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Kroatisch (VS-toetsenbord met Kroatische lettertekens)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Tsjechisch"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Tsjechisch (met &lt;\\|&gt;-toets)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Tsjechisch (qwerty)"
# XXX: brede backslash/uitgebreide backslash -- wat is dit?
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Tsjechisch (qwerty, brede backslash-toets)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Tsjechisch (UCW-indeling, alleen lettertekens met accenten)"
-# XXX: CZ?
-#: ../rules/base.xml.in.h:404
+# XXX: Wat is CZ?
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Tsjechisch (VS, Dvorak met Tsjechische UCW-ondersteuning)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Deens"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Deens (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Deens (Windows-toetsen)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Deens (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Deens (Macintosh, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Deens (Dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Nederlands"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Nederlands (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Nederlands (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Nederlands (standaard)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
# Dzongkha is een taal die is afgeleid van het oud-Tibetaans.
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
# Estisch, de taal die ook Estlands of Ests wordt genoemd,
# heeft ongeveer 1 miljoen sprekers.
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estisch"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estisch (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estisch (Dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estisch (VS-toetsenbord met Estische lettertekens)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Perzisch"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Perzisch (met Perzisch cijferblok)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Koerdisch (Iran, Latijns Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Koerdisch (Iran, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Koerdisch (Iran, Latijns Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Koerdisch (Iran, Arabisch-Latijns)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Irakees"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Koerdisch (Irak, Latijns Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Koerdisch (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Koerdisch (Irak, Latijns Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Koerdisch (Irak, Arabisch-Latijns)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Faeröers"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Faeröers (zonder dode toetsen)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Fins"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Fins (klassiek)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Fins (klassiek, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Fins (Windows-toetsen)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Noord-Samisch (Finland)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Fins (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Frans"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Frans (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Frans (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Frans (alternatief)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Frans (alternatief, enkel Latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Frans (alternatief, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Frans (alternatief, Sun dode toetsen)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Frans (historisch, alternatief)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Frans (historisch, alternatief, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Frans (historisch, alternatief, Sun dode toetsen)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Frans (Bepo, ergonomisch, op Dvorak-wijze)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Frans (Bepo, ergonomisch, Dvorak-wijze, enkel Latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Frans (Dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Frans (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Frans (Bretons)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Occitaans"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Georgisch (Frankrijk, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Engels (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Engels (Ghana, meertalig)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akaans"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Engels (Ghana, GILLBT)"
@@ -1876,828 +1881,831 @@ msgstr "Engels (Ghana, GILLBT)"
# de Republiek Guinee, is grondwettelijk een presidentiële republiek in
# West-Afrika, gelegen aan de Atlantische Oceaan tussen Guinee-Bissau en
# Sierra Leone. De hoofdstad is Conakry.
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Frans (Guinee)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Georgisch"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Georgisch (ergonomisch)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Georgisch (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Russisch (Georgisch)"
-# Russisch (Georgisch)
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Ossetisch (Georgië)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Duits"
# acute - aigu (bijv. á)
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Duits (dode aigu)"
# grave (bijv: à)
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Duits (dode grave en aigu)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Duits (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Duits (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Roemeens (Duitsland)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Roemeens (Duitsland, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Duits (Dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Duits (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Duits (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Duits (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Duits (Macintosh, zonder dode toetsen)"
# Het Nedersorbisch is de noordelijke versie van de in Brandenburg
# gesproken Sorbische taal.
# http://nl.wikipedia.org/wiki/Nedersorbisch
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Nedersorbisch"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Nedersorbisch (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Duits (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turks (Duitsland)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Russisch (Duitsland, fonetisch)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Duits (historisch)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Grieks"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Grieks (eenvoudig)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Grieks (uitgebreid)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Grieks (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Grieks (meertonig)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Hongaars"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Hongaars (standaard)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Hongaars (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Hongaars (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Hongaars (101/qwertz/komma/dode toetsen)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Hongaars (101/qwertz/komma/zonder dode toetsen)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Hongaars (101/qwertz/punt/dode toetsen)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Hongaars (101/qwertz/punt/zonder dode toetsen)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Hongaars (101/qwerty/komma/dode toetsen)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Hongaars (101/qwerty/komma/zonder dode toetsen)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Hongaars (101/qwerty/punt/dode toetsen)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Hongaars (101/qwerty/punt/zonder dode toetsen)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Hongaars (102/qwertz/komma/dode toetsen)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Hongaars (102/qwertz/komma/zonder dode toetsen)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Hongaars (102/qwertz/punt/dode toetsen)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Hongaars (102/qwertz/punt/zonder dode toetsen)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Hongaars (102/qwerty/komma/dode toetsen)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Hongaars (102/qwerty/komma/zonder dode toetsen)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Hongaars (102/qwerty/punt/dode toetsen)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Hongaars (102/qwerty/punt/zonder dode toetsen)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "IJslands"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "IJslands (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "IJslands (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "IJslands (Macintosh, historisch)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "IJslands (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "IJslands (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebreeuws"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebreeuws (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebreeuws (fonetisch)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebreeuws (Bijbels, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italiaans"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italiaans (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italiaans (Windows-toetsen)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italiaans (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italiaans (VS-toetsenbord met Italiaanse lettertekens)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Georgisch (Italië)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italiaans (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japans"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japans (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japans (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japans (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japans (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japans (Dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirgizisch"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirgizisch (fonetisch)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmer (Cambodja)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazachstaans"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Russisch (Kazachstan, met Kazachstaans)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazachstaans (met Russisch)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Lao (STEA voorgestelde standaard indeling)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Spaans (Latijns-Amerika)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Spaans (Latijns-Amerika, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Spaans (Latijns-Amerika, met dode tilde)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Spaans (Latijns-Amerika, Sun dode toetsen)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Spaans (Latijns-Amerika, Dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Litouws"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Litouws (standaard)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Litouws (VS-toetsenbord met Litouwse lettertekens)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Litouws (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Litouws (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Litouws (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Lets"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Lets (apostrof-variant)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Lets (tilde-variant)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Lets (F-variant)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Lets (modern)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Lets (ergonomisch, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Lets (aangepast)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maori"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-# Montenegrijns is het Servo-Kroatische (Štokavische) dialect
+# Montenegrijns is het Servo-Kroatische (štokavische) dialect
# dat in Montenegro wordt gesproken.
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Montenegrijns"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Montenegrijns (Cyrillisch)"
# verwisseld/gewisseld/omgewisseld
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Montenegrijns (Cyrillisch, ZE en ZHE omgewisseld)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Montenegrijns (Latijns Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Montenegrijns (Latijns qwerty)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Montenegrijns (Latijns Unicode qwerty)"
# Guillemets (of ook quillemets) zijn Franse aanhalingstekens.
# Voorbeeld: "Nederlandse" en «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Montenegrijns (Cyrillisch met Franse aanhalingstekens)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Montenegrijns (Latijns met Franse aanhalingstekens)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Macedonisch"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Macedonisch (zonder dode toetsen)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltees"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltees (met US-indeling)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongools"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Noors"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Noors (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Noors (Windows-toetsen)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Noors (Dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Noord-Samisch (Noorwegen)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Noord-Samisch (Noorwegen, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Noors (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Noors (Macintosh, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Noors (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Pools"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Pools (historisch)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Pools (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Pools (Dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Pools (Dvorak, Poolse aanhalingstekens op aanhalingstekentoets)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Pools (Dvorak, Poolse aanhalingstekens op toets 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Kasjoebisch"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Silezisch"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Russisch (Polen, fonetisch Dvorak)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Pools (programmeer-Dvorak)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugees"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugees (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugees (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugees (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugees (Macintosh, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugees (Macintosh, Sun dode toetsen)"
# Nativo is een soort indeling, net als Dvorak en Colemak.
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugees (Nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugees (Nativo voor US-toetsenborden)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugal, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Roemeens"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Roemeens (cedilla)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Roemeens (standaard)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Roemeens (standaard cedilla)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Roemeens (Windows-toetsen)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Russisch"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Russisch (fonetisch)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Russisch (fonetisch, Windows-toetsen)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Russisch (typmachine)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Russisch (historisch)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Russisch (typmachine, historisch)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Ossetisch (historisch)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Ossetisch (Windows-toetsen)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Tsjoevasjisch"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Tsjoevasjisch (Latijns)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurts"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
# Het Jakoets is een Turkse taal met ongeveer 360 duizend sprekers.
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Jakoets"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Russisch (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Russisch (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Servisch (Rusland)"
# Het Basjkiers is een Turkse taal, voornamelijk gesproken door de Basjkieren.
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Basjkiers"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Russisch (fonetisch, azerty)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Russisch (fonetisch, Frans)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Servisch"
# verwisseld/gewisseld/omgewisseld
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Servisch (Cyrillisch, ZE en ZHE omgewisseld)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Servisch (Latijns)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Servisch (Latijns Unicode)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Servisch (Latijns qwerty)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Servisch (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:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Servisch (Cyrillisch met Franse aanhalingstekens)"
# Guillemets of ook quillemets zijn Franse aanhalingstekens.
# Dit is "Nederlands" en dit is de «Franse manier» van aanhalen.
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Servisch (Latijns met Franse aanhalingstekens)"
@@ -2706,1350 +2714,1342 @@ msgstr "Servisch (Latijns met Franse aanhalingstekens)"
# north-western Serbia (Bačka region) and eastern Croatia
# (therefore also called Yugoslavo-Ruthenian, Vojvodina-Ruthenian
# or Bačka-Ruthenian).
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Pannonisch Rusyn"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Sloveens"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Sloveens (met Franse aanhalingstekens)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Sloveens (VS-toetsenbord met Sloveense lettertekens)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Slowaaks"
# XXX: brede backslash/uitgebreide backslash
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Slowaaks (brede backslash-toets)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Slowaaks (qwerty)"
# XXX: brede backslash/uitgebreide backslash
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Slowaaks (qwerty, brede backslash-toets)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Spaans"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Spaans (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Spaans (Windows-toetsen)"
-# inactieve/dode/latente
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Spaans (met dode tilde)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Spaans (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Spaans (Dvorak)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturisch (Spanje, met onderpunts H en onderpunts L)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Catalaans (Spanje, met middenpunts L)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Spaans (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Zweeds"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Zweeds (zonder dode toetsen)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Zweeds (Dvorak)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Russisch (Zweden, fonetisch)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Russisch (Zweden, fonetisch, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Noord-Samisch (Zweden)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Zweeds (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Zweeds (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Zweedse gebarentaal"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Duits (Zwitserland)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Duits (Zwitserland, historisch)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Duits (Zwitserland, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Duits (Zwitserland, Sun dode toetsen)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Frans (Zwitserland)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Frans (Zwitserland, zonder dode toetsen)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Frans (Zwitserland, Sun dode toetsen)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Frans (Zwitserland, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Duits (Zwitserland, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Arabisch (Syrië)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Syrisch"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Syrisch (fonetisch)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Koerdisch (Syrië, Latijns Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Koerdisch (Syrië, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Koerdisch (Syrië, Latijns Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
# Het Tadzjieks of Tajiki.
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tadzjieks"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tadzjieks (historisch)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Singalees (fonetisch)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamil (Sri Lanka, Unicode)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamil (Sri Lanka, TAB-typmachine)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Singalees (VS-toetsenbord met Singalese lettertekens)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
# Het Thai is de officiële taal van Thailand.
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Thai"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Thai (TIS-820.2538)"
# Pattachote en Kedmanee zijn de twee toetsenbordindelingen voor Thai.
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Thai (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turks"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turks (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turks (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turks (Sun dode toetsen)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
-msgstr "Koerdisch (Turks, Latijns Q)"
+msgstr "Koerdisch (Turkije, Latijns Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
-msgstr "Koerdisch (Turks, F)"
+msgstr "Koerdisch (Turkije, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
-msgstr "Koerdisch (Turks, Latijns Alt-Q)"
+msgstr "Koerdisch (Turkije, Latijns Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turks (internationaal, met dode toetsen)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krim-Tataars (Turks Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Krim-Tataars (Turks F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krim-Tataars (Turks Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taiwanees"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taiwanees (oorspronkelijk)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
# Saisiyat, ook Saiset, Seisirat, Saisett, Saisiat, Saisiett, Saisirat,
# Saisyet, Saisyett, Amutoura of Bouiok.
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taiwan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Oekraïens"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Oekraïens (fonetisch)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Oekraïens (typmachine)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Oekraïens (Windows-toetsen)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Oekraïens (historisch)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Oekraïens (standaard RSTU)"
-# Oekraïens (standaard RSTU).
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Russisch (Oekraïne, standaard RSTU)"
-# Pannonian Rusyn (руска бешеда) or simply Rusyn (or Ruthenian) is a Slavic language
-# or dialect spoken by Pannonian Rusyns in north-western Serbia (Bačka region) and eastern
-# Croatia (therefore also called Yugoslavo-Ruthenian, Vojvodina-Ruthenian or Bačka-Ruthenian).
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
-msgstr "Oekraïens (homophonisch)"
+msgstr "Oekraïens (homofonisch)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Engels (GB)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Engels (GB, uitgebreid, Windows-toetsen)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Engels (GB, internationaal, met dode toetsen)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Engels (GB, Dvorak)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Engels (GB, Dvorak met Britse leestekens)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Engels (GB, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Engels (GB, Macintosh internationaal)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Engels (GB, Colemak)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Oezbeeks"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Oezbeeks (Latijns)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Viëtnamees"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Koreaans"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Koreaans (101/104-toetsen compatibel)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japans (PC-98xx serie)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Iers"
# Iers.
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Iers (UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
# Iers (Ogham IS434).
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogham (IS434)"
# Het Urdu, vroeger door Westerse taalkundigen vaak Hindoestani genoemd,
# is de officiële taal van Pakistan.
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdu (Pakistan)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdu (Pakistan, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdu (Pakistan, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Arabisch (Pakistan)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Dhivehi"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Engels (Zuid-Afrika)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Esperanto (puntkomma en aanhalingsteken op afwijkende plek, historisch)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalees"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Engels (Nigeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
# Het Yoruba is een Afrikaanse taal. Het is de taal van de Yoruba
# en wordt gesproken in Nigeria, Benin en Togo.
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Yoruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
# Het Amhaars is een Semitische taal die in Ethiopië gesproken wordt.
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amhaars"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braille"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braille (linkerhand)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braille (rechterhand)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmeens"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmeens (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
# Bambara, ook bekend onder de naam Bamanankan, is een Mande-taal die door meer
# dan zes miljoen mensen gesproken wordt, voornamelijk in Mali.
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Frans (Mali, alternatief)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Engels (Mali, US Macintosh)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Engels (Mali, US internationaal)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Swahili (Tanzania)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Swahili (Kenia)"
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
# Tswana of Setswana is een Bantoetaal die wordt gesproken in Botswana.
# Andere benamingen voor Tswana zijn onder meer Sechuana en Beetjuans.
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
# Het Filipijns (Filipino of Pilipino).
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipijns"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipijns (QWERTY Baybayin)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipijns (Capewell-Dvorak, Latijns)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipijns (Capewell-Dvorak, Baybayin)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipijns (Capewell-QWERF 2006 Latijns)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipijns (Capewell-QWERF 2006 Baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipijns (Colemak, Latijns)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipijns (Colemak, Baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipijns (Dvorak, Latijns)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipijns (Dvorak, Baybayin)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldavisch"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldavisch (Gagauz)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Overschakelen naar een andere indeling"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Rechter Alt-toets (ingedrukt gehouden)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Linker Alt-toets (ingedrukt gehouden)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Linker Windows-toets (ingedrukt gehouden)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Rechter Windows-toets (ingedrukt gehouden)"
# Beide Win-toetsen wisselen de indeling gedurende het indrukken.
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Elke Windows-toets (ingedrukt gehouden)"
# XXX: what IS original capslock action?
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "CapsLock (ingedrukt gehouden); Alt+CapsLock geeft de oorspronkelijke caps-lock actie"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Rechter Ctrl-toets (ingedrukt gehouden)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Rechter Alt-toets"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Linker Alt-toets"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Shift + CapsLock"
# CapsLock wisselt naar de eerste indeling, Shift+CapsLock wisselt naar de laatste indeling.
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "CapsLock (naar eerste indeling), Shift+CapsLock (naar laatste indeling)"
# Linker Win-toets wisselt naar de eerste indeling, rechter Win/Menu-toets wisselt naar de laatste indeling.
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Linker Windows-toets (naar eerste indeling), rechter Windows/Menu-toets (naar laatste indeling)"
# Linker Win-toets wisselt naar de eerste indeling, rechter Win/Menu-toets wisselt naar de laatste indeling.
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Linker Ctrl-toets (naar eerste indeling), rechter Ctrl-toets (naar laatste indeling)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt + CapsLock"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Beide Shift-toetsen samen"
-# verandert/wijzigt is hier beter dan veranderen/wijzigen
-# "Beide Alt-toetsen samen verandert de groep."
-#
# tezamen/samen/tegelijk
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Beide Alt-toetsen samen"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Beide Ctrl-toetsen samen"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl + Shift"
-# Linker Ctrl + Shift-toets
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Linker Ctrl + linker Shift-toets"
-# Rechter Ctrl + Shift-toets
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Rechter Ctrl + rechter Shift-toets"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt + Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt + Shift"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Linker Alt + linker Shift-toets"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt + Spatie"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Linker Windows-toets"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Windows-toets + Spatie"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Rechter Windows-toets"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Linker Shift-toets"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Rechter Shift-toets"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Linker Ctrl-toets"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Rechter Ctrl-toets"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Scroll-Lock"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Linker Ctrl + linker Windows-toets (naar eerste indeling), rechter Ctrl + Menu-toets (naar tweede indeling)"
# aan te zetten/te kiezen/te selecteren/te krijgen/te bereiken
# 'to choose' is hier een slechte woordkeuze IMO
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Toegang tot het derde niveau"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Elke Windows-toets"
# Beide/Willekeurige/Een van de/Een/Elke
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Elke Alt-toets"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Rechter Alt-toets (Shift + rechter Alt-toets is samensteltoets)"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "Rechter Alt-toets geeft nooit het derde niveau"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Enter op cijferblok"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Backslash"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Kleiner dan/Groter dan&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "CapsLock, vergrendelt eenmalig samen met andere derdeniveaukiezer"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Backslash, vergrendelt eenmalig samen met andere derdeniveaukiezer"
# locks - op slot gezet/blijvend/in stand houden
# latches - vergrendelt
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Kleiner dan/Groter dan&gt;, vergrendelt eenmalig samen met andere derdeniveaukiezer"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Positie van Ctrl-toets"
# Ctrl-toets is hier duidelijker
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "CapsLock is Ctrl-toets"
# fungeert als/werkt als/is
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Linker Ctrl is Meta-toets"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Ctrl en CapsLock omwisselen"
# Ctrl-toets links van ‘A’
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Links van de A"
# "Ctrl-toets zit linksonder"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "Linksonder"
# fungeert als/werkt als/is
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Rechter Ctrl is rechter Alt-toets"
# fungeert als/werkt als/is
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menu is rechter Ctrl-toets"
# fungeert als/werkt als/is
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Rechter Alt is rechter Ctrl-toets"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Linker Alt- en linker Ctrl-toets omwisselen"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Linker Windows- en linker Ctrl-toets omwisselen"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Rechter Windows- en rechter Ctrl-toets omwisselen"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Linker Alt is Ctrl, linker Ctrl is Windows-toets, linker Windows-toets is Alt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Toetsenbord-LED gebruiken om alternatieve indeling te tonen"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "NumLock"
-# dubbelop numeriek/cijfer
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Indeling van het cijferblok"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Historisch"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode-aanvullingen (pijlen en wiskundige operatoren)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
msgid "Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Unicode-aanvullingen (pijlen en wiskundige operatoren; de laatste op standaardniveau)"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Historisch Wang 724"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
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:965
+#: ../rules/base.xml.in.h:968
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; de laatste op standaardniveau)"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadecimaal"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "ATM/telefoonstijl"
-# Op het cijferblok is de delete toets aangegeven met "Del", maar
+# Op het cijferblok is de Delete-toets aangegeven met "Del", maar
# voor de duidelijkheid maar "Delete-toetsgedrag" van gemaakt.
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Gedrag van Delete-toets op cijferblok"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Historisch met punt"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Historisch met komma"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Vierniveaus-toets met punt"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Vierniveaus-toets met punt, beperkt tot Latin-9"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Vierniveaus-toets met komma"
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Vierniveaus-toets met momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Vierniveaus-toets met abstracte scheidingstekens"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Puntkomma op derde niveau"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Gedrag van CapsLock-toets"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "CapsLock gebruikt interne conversie naar hoofdletters; Shift heft CapsLock tijdelijk op"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "CapsLock gebruikt interne conversie naar hoofdletters; Shift heft CapsLock niet op"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "CapsLock werkt als Shift met vergrendeling; Shift heft CapsLock tijdelijk op"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "CapsLock werkt als Shift met vergrendeling; Shift heft CapsLock niet op"
# heeft alleen effect op/werkt alleen op/beïnvloedt alleen ~
# de alfabetische toetsen/
# bepaalt hoofdletters/kleine letters bij alfabetische tekens.<
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock beïnvloedt alleen alfabetische tekens"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Van CapsLock een extra NumLock maken"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Esc en CapsLock omwisselen"
# ESC-toets.
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Van CapsLock een extra Esc maken"
# Backspace-toets.
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Van CapsLock een extra Backspace maken"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Van CapsLock een extra Super maken"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Van CapsLock een extra Hyper maken"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "CapsLock schakelt Shift-vergrendeling aan/uit (beïnvloedt alle toetsen)"
# heeft geen functie/geen effect
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "CapsLock is uitgeschakeld"
# Ctrl-toets
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Van CapsLock een extra Ctrl maken"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Gedrag van Alt/Windows-toetsen"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Het standaardgedrag toevoegen aan de Menu-toets"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt en Meta zitten op de Alt-toetsen"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt zit op de Windows-toetsen (én op de gebruikelijke Alt-toetsen)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl zit op de Windows-toetsen (én op de gebruikelijke Ctrl-toetsen)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl zit op de Alt-toetsen, Alt zit op de Windows-toetsen"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta zit op de Windows-toetsen"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta zit op de linker Windows-toets"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper zit op de Windows-toetsen"
# wordt afgebeeld op/zit op
# zit op is veel korter en is ook duidelijker
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt zit op de rechter Windows-toets, Super op de Menu-toets"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt- en Windows-toetsen omwisselen"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Positie van samensteltoets"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "derde niveau van linker Windows-toets"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "derde niveau van rechter Windows-toets"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "derde niveau van Menu"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "derde niveau van linker Ctrl-toets"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "derde niveau van rechter Ctrl-toets"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "derde niveau van CapsLock"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "derde niveau van &lt;Kleiner dan/Groter dan&gt;"
# De tekst op de Pause-toets is meestal "Pause".
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Overige compatibiliteitsopties"
-# dubbelop numeriek/cijfer
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Standaard cijferblok-toetsen"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Cijferblok-toetsen geven altijd cijfers (net als bij Mac OS)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "NumLock aan geeft cijfers, en Shift schakelt naar cursortoetsen; Numlock uit geeft altijd cursortoetsen (zoals in MS Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Shift heft NumLock niet op, maar geeft juist het derde niveau"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
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:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Apple Aluminium-toetsenbord: PC-toetsen emuleren (Print, Scroll-Lock, Pause, NumLock)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Shift schakelt CapsLock uit"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Extra typografische tekens aanzetten"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Beide Shift-toetsen samen schakelen CapsLock aan/uit"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Beide Shift-toetsen samen zetten CapsLock aan, één Shift-toets zet uit"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Beide Shift-toetsen samen schakelen ShiftLock aan/uit"
# PointerKeys are the mouse emulation that XKB provides on the press of a key.
# (Test with Shift+NumLock, then the keypad will move the mouse around.)
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Shift + NumLock schakelen 'muistoetsen' aan/uit"
# XXX: what does "grab" mean?
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Het verbreken van 'grabs' via toetsenbord toestaan (veiligheidsrisico)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Het loggen van 'grabs' en 'window trees' toestaan"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Valutatekens aan bepaalde toetsen toevoegen"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euroteken op E"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euroteken op 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euroteken op 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euroteken op 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Roepie op 4"
# aan te zetten/te kiezen/te selecteren/te krijgen
# 'to choose' is hier een slechte woordkeuze IMO
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "De toets om het vijde niveau te krijgen"
# locks - op slot gezet/blijvend/in stand houden
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Kleiner dan/Groter dan&gt; geeft vijfde niveau, en vergrendelt wanneer ingedrukt samen met andere vijfdeniveau-kiezer"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Rechter Alt-toets geeft vijfde niveau, en vergrendelt wanneer ingedrukt samen met andere vijfdeniveau-kiezer"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Linker Windows-toets geeft vijfde niveau, en vergrendelt wanneer ingedrukt samen met andere vijfdeniveau-kiezer"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Rechter Windows-toets geeft vijfde niveau, en vergrendelt wanneer ingedrukt samen met andere vijfdeniveau-kiezer"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Gebruik van spatiebalk voor het invoeren van harde (niet-afbrekende) spaties"
# Spatiebalk geeft de gebruikelijke spatie op elk niveau.
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Gewone spatie op elk niveau"
# http://en.wikipedia.org/wiki/Non-breaking_space
# niet-afbreekbaar spatieteken/nietafbrekendespatie/
# niet-afbrekende spatie/harde spatie/ vaste spatie
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Harde spatie op het tweede niveau"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Harde spatie op het derde niveau"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
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:1047
+#: ../rules/base.xml.in.h:1050
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"
# Spatiebalk geeft harde spatie op het vierde niveau.
-#: ../rules/base.xml.in.h:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Harde spatie op het vierde niveau"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
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"
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1053
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)"
@@ -4063,103 +4063,103 @@ msgstr "Harde spatie op het vierde niveau, smalle harde spatie op het zesde nive
# Nulbreedte-losmaker/non-verbinder/non-verbindingsteken --
# losmaker is het duidelijkst, het maakt twee tekens los die
# anders verbonden zouden worden. (Tino)
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Nulbreedte-losmaker op het tweede niveau"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Nulbreedte-losmaker op het tweede niveau, nulbreedte-verbinder op het derde niveau"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Nulbreedte-losmaker op het tweede niveau, nulbreedte-verbinder op het derde niveau, harde spatie op het vierde niveau"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Nulbreedte-losmaker op het tweede niveau, harde spatie op het derde niveau"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Nulbreedte-losmaker op het tweede niveau, harde spatie op het derde niveau, niets op het vierde niveau"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Nulbreedte-losmaker op het tweede niveau, harde spatie op het derde niveau, nulbreedte-verbinder op het vierde niveau"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Nulbreedte-losmaker op het tweede niveau, harde spatie op het derde niveau, smalle harde spatie op het vierde niveau"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Nulbreedte-losmaker op het derde niveau, nulbreedte-verbinder op het vierde niveau"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Japanse toetsenbordopties"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Kana Lock-toets is vergrendelend"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F-stijl backspace"
# De Zenkaku Hankaku toets converteert tussen volle breedte en half breedte karakters.
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Van de Zenkaku Hankaku-toets een extra Esc-toets maken"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Koreaanse Hangul-/Hanja-toetsen"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Fysieke Hangul-/Hanja-toetsen"
# fungeert als/werkt als/is
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Rechter Alt is Hangul, rechter Ctrl is Hanja"
# fungeert als/werkt als/is
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Rechter Ctrl is Hangul, rechter Alt is Hanja"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Esperanto-letters met accenten toevoegen"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "Aan de gerelateerde toets in een Qwerty-indeling"
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "Aan de gerelateerde toets in een Dvorak-indeling"
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "Aan de gerelateerde toets in een Colemak-indeling"
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Toetscompatibiliteit behouden met oude Solaris-toetscodes"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Sun-toetsen-compatibiliteit"
# om zeep te helpen/af te breken/te stoppen/
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Toetscombinatie om de X-server af te breken"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Backspace"
@@ -4219,8 +4219,7 @@ msgstr "aplx"
msgid "APL keyboard symbols (APLX unified)"
msgstr "APL-toetsenbordsymbolen (APLX unified)"
-# Ja! Hee! Dit kan niet!
-# :)
+# Ja, hee! Dit kan niet! :)
#: ../rules/base.extras.xml.in.h:17
msgid "kut"
msgstr "kut"
diff --git a/xorg-server/xkeyboard-config/po/pl.po b/xorg-server/xkeyboard-config/po/pl.po
index b60e09d36..930749bf4 100644
--- a/xorg-server/xkeyboard-config/po/pl.po
+++ b/xorg-server/xkeyboard-config/po/pl.po
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 2.13.99\n"
+"Project-Id-Version: xkeyboard-config 2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-15 20:16+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-17 11:23+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
@@ -918,3087 +918,3099 @@ msgstr "Arabski (QWERTY/cyfry)"
msgid "Arabic (Buckwalter)"
msgstr "Arabski (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Arabski (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albański"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albański (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armeński"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armeński (fonetyczny)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armeński (alternatywny fonetyczny)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armeński (wschodni)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armeński (zachodni)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armeński (anternatywny wschodni)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Niemiecki (Austria)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Niemiecki (Austria, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Niemiecki (Austria, klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Niemiecki (Austria, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "AZ"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Azerbejdżański"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Azerbejdżański (cyrylica)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Białoruski"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Białoruski (stary)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Białoruski (łaciński)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belgijski"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belgijski (alternatywny)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belgijski (alternatywny, tylko Latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belgijski (alternatywny, klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belgijski (alternatywny ISO)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belgijski (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belgijski (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belgijski (Wang model 724 AZERTY)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengalski"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengalski (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indyjski"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengalski (Indie)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengalski (Indie, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengalski (Indie, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengalski (Indie, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengalski (Indie, Uni Gitanjali)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengalski (Indie, Baishakhi Inscript)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipuri (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gudźarati"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Pendżabski (Gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Pendżabski (Gurmukhi Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (fonetyczny KaGaPa)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malajalam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malajalam (Lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malajalam (rozszerzony Inscript ze znakiem rupii)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Orija"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamilski (unikodowy)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamilski (klawiatura z cyframi)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamilski (maszynistki TAB)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamilski (maszynistki TSCII)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamilski"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugu"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (fonetyczny KaGaPa)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdu (fonetyczny)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdu (alternatywny fonetyczny)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdu (klawisze Win)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (Bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (fonetyczny KaGaPa)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sanskryt (fonetyczny KaGaPa)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (fonetyczny KaGaPa)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Angielski (Indie, ze znakiem rupii)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bośniacki"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bośniacki (z cudzysłowami do cytowania)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bośniacki (z dwuznakami bośniackimi)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bośniacki (klawiatura US z dwuznakami bośniackimi)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bośniacki (klawiatura US z literami bośniackimi)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugalski (Brazylia)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugalski (Brazylia, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugalski (Brazylia, Dvoraka)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugalski (Brazylia, Nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugalski (Brazylia, Nativo dla klawiatur US)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperanto (Brazylia, Nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Bułgarski"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Bułgarski (tradycyjny fonetyczny)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Bułgarski (nowy fonetyczny)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Arabski (marokański)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Francuski (Maroko)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berberyjski (Maroko, tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Berberyjski (Maroko, alternatywny tifinagh)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berberyjski (Maroko, alternatywny fonetyczny tifinagh)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berberyjski (Maroko, rozszerzony tifinagh)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berberyjski (Maroko, tifinagh fonetyczny"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berberyjski (Maroko, rozszerzony fonetyczny tifinagh)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Angielski (Kamerun)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Francuski (Kamerun)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Kameruński wielojęzyczny (QWERTY)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Kameruński wielojęzyczny (AZERTY)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Kameruński wielojęzyczny (Dvoraka)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Birmański"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Francuski (Kanada)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Francuski (kanadyjski, Dvoraka)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Francuski (kanadyjski, stary)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Kanadyjski wielojęzyczny"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Kanadyjski wielojęzyczny (część pierwsza)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Kanadyjski wielojęzyczny (część druga)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Angielski (Kanada)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Francuski (Demokratyczna Republika Konga)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Chiński"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tybetański"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tybetański (z liczbami ASCII)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Ujgurski"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Chorwacki"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Chorwacki (z cudzysłowami do cytowania)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Chorwacki (z dwuznakami chorwackimi)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Chorwacki (klawiatura US z dwuznakami chorwackimi)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Chorwacki (klawiatura US z literami chorwackimi)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Czeski"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Czeski (z klawiszem &lt;\\|&gt;)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Czeski (QWERTY)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Czeski (QWERTY, rozszerzony Backslash)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Czeski (układ UCW - tylko litery akcentowane)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Czeski (US Dvoraka z obsługą CZ UCW)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Duński"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Duński (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Duński (klawisze Win)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Duński (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Duński (Macintosh, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Duński (Dvoraka)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Holenderski"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Holenderski (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Holenderski (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Holenderski (standardowy)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongka"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estoński"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estoński (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estoński (Dvoraka)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estoński (klawiatura US z literami estońskimi)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Perski"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Perski (z perską klawiaturą numeryczną)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurdyjski (Iran, łaciński Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurdyjski (Iran, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurdyjski (Iran, łaciński Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurdyjski (Iran, arabsko-łaciński)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Iracki"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurdyjski (Irak, łaciński Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurdyjski (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurdyjski (Irak, łaciński Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurdyjski (Irak, arabsko-łaciński)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Farerski"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Farerski (bez klawiszy akcentów)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Fiński"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Fiński (klasyczny)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Fiński (klasyczny, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Fiński (klawisze Win)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Północnolapoński (Finlandia)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Fiński (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Francuski"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Francuski (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Francuski (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Francuski (alternatywny)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Francuski (alternatywny, tylko Latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Francuski (alternatywny, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Francuski (alternatywny, klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Francuski (stary, alternatywny)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Francuski (stary alternatywny, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Francuski (stary alternatywny, klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Francuski (Bepo, ergonomiczny, w stylu Dvoraka)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Francuski (Bepo, ergonomiczny, w stylu Dvoraka, tylko Latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Francuski (Dvoraka)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Francuski (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Francuski (bretoński)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Okcytański"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Gruziński (Francja, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Angielski (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Angielski (Ghana, wielojęzyczny)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fulani"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Angielski (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Francuski (Gwinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Gruziński"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Gruziński (ergonomiczny)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Gruziński (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Rosyjski (gruziński)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Osetyjski (Gruzja)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Niemiecki"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Niemiecki (akcent ostry)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Niemiecki (akcent gravis)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Niemiecki (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Niemiecki (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Rumuński (Niemcy)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Rumuński (Niemcy, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Niemiecki (Dvoraka)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Niemiecki (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Niemiecki (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Niemiecki (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Niemiecki (Macintosh, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Dolnołużycki"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Dolnołużycki (QWERTZ)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Niemiecki (QWERTY)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turecki (Niemcy)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Rosyjski (Niemcy, fonetyczny)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Niemiecki (stary)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Grecki"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Grecki (prosty)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Grecki (rozszerzony)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Grecki (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Grecki (politoniczny)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Węgierski"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Węgierski (standardowy)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Węgierski (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Węgierski (QWERTY)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Węgierski (101/QWERTZ/przecinek/klawisze akcentów)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Węgierski (101/QWERTZ/przecinek/bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Węgierski (101/QWERTZ/kropka/klawisze akcentów)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Węgierski (101/QWERTZ/kropka/bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Węgierski (101/QWERTY/przecinek/klawisze akcentów)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Węgierski (101/QWERTY/przecinek/bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Węgierski (101/QWERTY/kropka/klawisze akcentów)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Węgierski (101/QWERTY/kropka/bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Węgierski (102/QWERTZ/przecinek/klawisze akcentów)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Węgierski (102/QWERTZ/przecinek/bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Węgierski (102/QWERTZ/kropka/klawisze akcentów)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Węgierski (102/QWERTZ/kropka/bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Węgierski (102/QWERTY/przecinek/klawisze akcentów)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Węgierski (102/QWERTY/przecinek/bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Węgierski (102/QWERTY/kropka/klawisze akcentów)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Węgierski (102/QWERTY/kropka/bez klawiszy akcentów)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Islandzki"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Islandzki (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Islandzki (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Islandzki (Macintosh, stary)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Islandzki (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Islandzki (Dvoraka)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebrajski"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebrajski (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebrajski (fonetyczny)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebrajski (biblijny, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Włoski"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Włoski (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Włoski (klawisze Win)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Włoski (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Włoski (klawiatura US z literami włoskimi)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Gruziński (Włochy)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Włoski (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japoński"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japoński (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japoński (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japoński (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japoński (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japoński (Dvoraka)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirgiski"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirgiski (fonetyczny)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmerski (Kambodża)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazaski"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Rosyjski (Kazahstan, z kazaskim)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazaski (z rosyjskim)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Laotański"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Laotański (proponowany układ standardowy STEA)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Hiszpański (Ameryka Łacińska)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Hiszpański (Ameryka Łacińska, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Hiszpański (Ameryka Łacińska, ze znakiem tyldy)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Hiszpański (Ameryka Łacińska, klawisze akcentów Suna)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Hiszpański (Ameryka Łacińska, Dvoraka)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Litewski"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Litewski (standardowy)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Litewski (klawiatura US z literami litewskimi)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Litewski (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Litewski (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Litewski (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Łotewski"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Łotewski (wariant z apostrofem)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Łotewski (wariant z tyldą)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Łotewski (wariant F)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Łotewski (współczesny)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Łotewski (ergonomiczny ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Łotewski (zaadaptowany)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maoryski"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Czarnogórski"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Czarnogórski (cyrylicki)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Czarnogórski (cyrylicki, zamienione ZE i ŻE)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Czarnogórski (łaciński unikodowy)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Czarnogórski (łaciński QWERTY)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Czarnogórski (łaciński unikodowy QWERTY)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Czarnogórski (cyrylicki z cudzysłowami)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Czarnogórski (łaciński z cudzysłowami)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Macedoński"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Macedoński (bez klawiszy akcentów)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltański"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltański (z układem US)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongolski"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Norweski"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Norweski (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Norweski (klawisze Win)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Norweski (Dvoraka)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Północnolapoński (Norwegia)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Północnolapoński (Norwegia, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Norweski (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Norweski (Macintosh, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Norweski (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polski"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polski (stary)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polski (QWERTZ)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polski (Dvoraka)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polski (Dvoraka, polskie cudzysłowy pod klawiszem cudzysłowu)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polski (Dvoraka, polskie cudzysłowy pod klawiszem 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Kaszubski"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Śląski"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Rosyjski (Polska, fonetyczny Dvoraka)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polski (Dvoraka programisty)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugalski"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugalski (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugalski (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugalski (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugalski (Macintosh, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugalski (Macintosh, klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugalski (Nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugalski (Nativo dla klawiatur US)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugalia, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Rumuński"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Rumuński (cedilla)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Rumuński (standardowy)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Rumuński (standardowy cedilla)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Rumuński (klawisze Win)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Rosyjski"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Rosyjski (fonetyczny)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Rosyjski (fonetyczny, klawisze Win)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Rosyjski (maszynistki)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Rosyjski (stary)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Rosyjski (maszynistki, stary)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatarski"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Osetyjski (stary)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Osetyjski (klawisze Win)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Czuwaski"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Czuwaski (łaciński)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurcki"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Jakucki"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Kałmucki"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Rosyjski (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Rosyjski (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbski (Rosja)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Baszkirski"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Maryjski"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Rosyjski (fonetyczny azerty)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Rosyjski (fonetyczny francuski)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbski"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbski (cyrylicki, zamienione ZE i ŻE)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbski (łaciński)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbski (łaciński unikodowy)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbski (łaciński QWERTY)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbski (łaciński unikodowy QWERTY)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Serbski (cyrylicki z cudzysłowami)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbski (łaciński z cudzysłowami)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Pannońskorusiński"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Słoweński"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Słoweński (z cudzysłowami do cytowania)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Słoweński (klawiatura US z literami słoweńskimi)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Słowacki"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Słowacki (rozszerzony backslash)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Słowacki (QWERTY)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Słowacki (QWERTY, rozszerzony Backslash)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Hiszpański"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Hiszpański (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Hiszpański (klawisze Win)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Hiszpański (ze znakiem tyldy)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Hiszpański (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Hiszpański (Dvoraka)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturski (hiszpański, z H i L z dolną kropką)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Kataloński (hiszpański, z L ze środkową kropką)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Hiszpański (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Szwedzki"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Szwedzki (bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Szwedzki (Dvoraka)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Rosyjski (Szwecja, fonetyczny)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Rosyjski (Szwecja, fonetyczny, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Północnolapoński (Szwecja)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Szwedzki (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Szwedzki (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Szwedzki migowy"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Niemiecki (Szwajcaria)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Niemiecki (Szwajcaria, stary)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Niemiecki (Szwajcaria, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Niemiecki (Szwajcaria, klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Francuski (Szwajcaria)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Francuski (Szwajcaria, bez klawiszy akcentów)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Francuski (Szwajcaria, klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Francuski (Szwajcaria, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Niemiecki (Szwajcaria, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Arabski (syryjski)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Syryjski"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Syryjski (fonetyczny)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurdyjski (Syria, łaciński Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurdyjski (Syria, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurdyjski (Syria, łaciński Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tadżycki"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tadżycki (stary)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Syngaleski (fonetyczny)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamilski (Sri Lanka, unikodowy)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamilski (Sri Lanka, maszynistki TAB)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Syngaleski (klawiatura US z literami syngaleskimi)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Tajski"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Tajski (TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Tajski (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turecki"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turecki (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turecki (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turecki (klawisze akcentów Suna)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurdyjski (Turcja, łaciński Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurdyjski (Turcja, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurdyjski (Turcja, łaciński Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turecki (międzynarodowy z klawiszami akcentów)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krymskotatarski (turecki Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Krymskotatarski (turecki F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krymskotatarski (turecki Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Tajwański"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Tajwański (autochtoniczny)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Tajwan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ukraiński"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ukraiński (fonetyczny)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ukraiński (maszynistki)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ukraiński (klawisze Win)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ukraiński (stary)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ukraiński (standardowy RSTU)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Rosyjski (Ukraina, standardowy RSTU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ukraiński (homofoniczny)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Angielski (Wielka Brytania)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Angielski (Wielka Brytania, rozszerzone klawisze Win)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Angielski (Wielka Brytania, międzynarodowy z klawiszami akcentów)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Angielski (Wielka Brytania, Dvoraka)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Angielski (Wielka Brytania, Dvoraka z brytyjskimi znakami przestankowymi)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Angielski (Wielka Brytania, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Angielski (Wielka Brytania, międzynarodowy Macintosh)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Angielski (Wielka Brytania, Colemak)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Uzbecki"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Uzbecki (łaciński)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Wietnamski"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Koreański"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Koreański (kompatybilny ze 101/104 klawiszami)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japoński (serie PC-98xx)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irlandzki"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "Irlandzki gaelicki"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irlandzki (UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogamiczny"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogamiczny (IS434)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdu (Pakistan)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdu (Pakistan, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdu (Pakistan, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Arabski (pakistański)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Malediwski"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Angielski (Afryka Południowa)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperancki"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Esperanto (zamieniony średnik i apostrof, przestarzałe)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalski"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Angielski (Nigeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Ibo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Joruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharski"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolof"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Braille'a"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Braille (leworęczny)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Braille (praworęczny)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmeński"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmeński (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Francuski (Mali, alternatywny)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Angielski (Mali, USA - Macintosh)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Angielski (Mali, międzynarodowy USA)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Suahili (Tanzania)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Suahili (Kenia)"
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikiju"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipiński"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipino (baybain QWERTY)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipiński (łaciński Capewella-Dvoraka)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipiński (baybayin Capewella-Dvoraka)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipiński (łaciński Capewella-QWERF 2006)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipiński (baybayin Capewella-QWERF 2006)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipiński (łaciński Colemak)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipiński (baybain Colemak)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipiński (łaciński Dvoraka)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipiński (baybain Dvoraka)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Mołdawski"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Mołdawski (gagauski)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Przełączenie na inny układ"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Prawy Alt (wciśnięty)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Lewy Alt (wciśnięty)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Lewy Win (wciśnięty)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Prawy Win (wciśnięty)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Dowolny klawisz Win (wciśnięty)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "CapsLock (wciśnięty), Alt+CapsLock działa jak zwykły CapsLock"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Prawy Ctrl (wciśnięty)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Prawy Alt"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Lewy Alt"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "CapsLock"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Shift+CapsLock"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "CapsLock (do pierwszego układu), Shift+CapsLock (do ostatniego układu)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Lewy Win (do pierwszego układu), prawy Win/Menu (do ostatniego układu)"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Lewy Ctrl (do pierwszego układu), prawy Ctrl (do ostatniego układu)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+CapsLock"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Oba klawisze Shift naraz"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Oba klawisze Alt naraz"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Oba klawisze Ctrl naraz"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Lewy Ctrl+lewy Shift"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Prawy Ctrl+prawy Shift"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Lewy Alt+lewy Shift"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Spacja"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Lewy Win"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Win+Spacja"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Prawy Win"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Lewy Shift"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Prawy Shift"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Lewy Ctrl"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Prawy Ctrl"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "ScrollLock"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Lewy Ctrl+lewy Win (do pierwszego układu), prawy Ctrl+Menu (do drugiego układu)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Klawisz wybierający poziom 3."
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Dowolny klawisz Win"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Dowolny klawisz Alt"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Prawy Alt, Shift+prawy Alt jako Compose"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "Prawy Alt nigdy nie wybierający poziomu 3."
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Enter na klawiaturze numerycznej"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Backslash"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Mniejsze/Większe&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "CapsLock wybiera poziom 3., jednorazowo blokuje przy naciśnięciu z innym klawiszem wybierającym poziom 3."
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Odwrotny ukośnik wybiera poziom 3., jednorazowo blokuje przy naciśnięciu z innym klawiszem wybierającym poziom 3."
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Mniejsze/Większe&gt; wybiera poziom 3., jednorazowo blokuje przy naciśnięciu z innym klawiszem wybierającym poziom 3."
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Położenie klawisza Ctrl"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "CapsLock jako Ctrl"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Lewy Ctrl jako Meta"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Zamiana Ctrl i CapsLocka"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Z lewej 'A'"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "W lewym dolnym rogu"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Prawy Ctrl jako prawy Alt"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menu jako prawy Ctrl"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Prawy Alt jako prawy Ctrl"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Zamiana lewego Alta z lewym Ctrl"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Zamiana lewego Win z lewym Ctrl"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Zamiana prawego Win z prawym Ctrl"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Lewy Alt jako Ctrl, lewy Ctrl jako Win, lewy Win jako Alt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Używanie diody na klawiaturze do sygnalizacji układu alternatywnego"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "NumLock"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Układ klawiatury numerycznej"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Stary"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Dodatki Unicode (strzałki i symbole matematyczne)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
msgid "Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Dodatki Unicode (strzałki i symbole matematyczne; symbole matematyczne na poziomie domyślnym)"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Legacy Wang 724"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
msgid "Wang 724 keypad with Unicode additions (arrows and math operators)"
msgstr "Klawiatura numeryczna Wang 724 z dodatkami Unicode (strzałki i symbole matematyczne)"
-#: ../rules/base.xml.in.h:965
+#: ../rules/base.xml.in.h:968
msgid "Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Klawiatura numeryczna Wang 724 z dodatkami Unicode (strzałki i symbole matematyczne; symbole matematyczne na poziomie domyślnym)"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Szesnastkowy"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "ATM/telefoniczna"
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Zachowanie klawisza Delete na klawiaturze numerycznej"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Klawisz tradycyjny z kropką"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Klawisz tradycyjny z przecinkiem"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Klawisz czterofunkcyjny z kropką"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Klawisz czterofunkcyjny z kropką, tylko Latin-9"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Klawisz czterofunkcyjny z przecinkiem"
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Klawisz czterofunkcyjny ze znakiem momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Klawisz czterofunkcyjny z abstrakcyjnymi separatorami"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Średnik na poziomie 3."
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Zachowanie klawisza CapsLock"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "CapsLock używa wewnętrznej zmiany rozmiaru liter; Shift wstrzymuje CapsLock"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "CapsLock używa wewnętrznej zmiany rozmiaru liter; Shift nie wpływa na CapsLock"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "CapsLock działa jako Shift z blokadą; Shift wstrzymuje CapsLock"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "CapsLock działa jako Shift z blokadą; Shift nie wpływa na CapsLock"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "CapsLock przełącza wielkość znaków alfabetycznych"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "CapsLock jako dodatkowy NumLock"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Zamiana Esc i CapsLocka"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "CapsLock jako dodatkowy Esc"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "CapsLock jako dodatkowy Backspace"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "CapsLock jako dodatkowy Super"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "CapsLock jako dodatkowy Hyper"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "CapsLock przełącza ShiftLock (wpływając na wszystkie klawisze)"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "CapsLock wyłączony"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "CapsLock jako dodatkowy Ctrl"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Zachowanie klawiszy Alt/Win"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Dodanie standardowego działania klawisza Menu"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt i Meta pod klawiszami Alt"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt pod klawiszami Win (oraz zwykłymi klawiszami Alt)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl pod klawiszami Win (oraz zwykłymi klawiszami Ctrl)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl pod klawiszami Alt, Alt pod klawiszami Win"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta pod klawiszami Win"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta pod lewym Win"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper pod klawiszami Win"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Alt pod prawym Win, Super pod Menu"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Lewy zamieniony z Win"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Położenie klawisza Compose"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "Pozion 3. lewego klawisza Win"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "Pozion 3. prawego klawisza Win"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "Poziom 3. klawisza Menu"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "Poziom 3. lewego klawisza Ctrl"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "Poziom 3. prawego klawisza Ctrl"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "Poziom 3. klawisza Caps Lock"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "Poziom 3. klawisza &lt;Mniejsze/Większe&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pauza"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Różne opcje kompatybilności"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Domyślne klawisze klawiatury numerycznej"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Klawiatura numeryczna zawsze prowadza cyfry (jak w Mac OS)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "NumLock włączony: cyfry, Shift przełącza na strzałki; NumLock wyłączonty: zawsze strzałki (jak w MS Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Shift nie anuluje NumLocka, wybiera poziom 3."
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Klawisze specjalne (Ctrl+Alt+&lt;klawisz&gt;) obsługiwane przez serwer"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Apple Aluminium Keyboard: emulacja klawiszy PC (Print, ScrollLock, Pause, NumLock)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Shift anuluje CapsLock"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Włączenie dodatkowych znaków typograficznych"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Oba klawisze Shift naraz przełączają CapsLock"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Oba klawisze Shift naraz włączają CapsLock, jeden Shift wyłącza"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Oba klawisze Shift naraz przełączają ShiftLock"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Shift + NumLock przełącza klawisze kursorów"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Akcje klawiatury mogą przełamywać przechwytywanie (uwaga: zagrożenie bezpieczeństwa)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Możliwe przechwytywanie i logowanie drzewa okien"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Dodanie znaków walut do pewnych klawiszy"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro pod E"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro pod 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro pod 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro pod 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupia pod 4"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Klawisz wybierający poziom 5."
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Mniejsze/Większe&gt; wybiera poziom 5., blokuje przy naciśnięciu z innym klawiszem wybierającym poziom 5."
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Prawy Alt wybiera poziom 5., blokuje przy naciśnięciu z innym klawiszem wybierającym poziom 5."
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Lewy Win wybiera poziom 5., blokuje przy naciśnięciu z innym klawiszem wybierającym poziom 5."
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Prawy Win wybiera poziom 5., blokuje przy naciśnięciu z innym klawiszem wybierającym poziom 5."
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Używanie klawisza spacji do wprowadzania znaku niełamliwej spacji"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Zwykła spacja na dowolnym poziomie"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Znak niełamliwej spacji na poziomie 2."
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Znak niełamliwej spacji na poziomie 3."
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Znak niełamliwej spacji na poziomie 3., nic na poziomie 4."
-#: ../rules/base.xml.in.h:1047
+#: ../rules/base.xml.in.h:1050
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Znak niełamliwej spacji na poziomie 3., wąskiej niełamliwej spacji na poziomie 4."
-#: ../rules/base.xml.in.h:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Znak niełamliwej spacji na poziomie 4."
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Znak niełamliwej spacji na poziomie 4., wąskiej niełamliwej spacji na poziomie 6."
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1053
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Znak niełamliwej spacji na poziomie 4., wąskiej niełamliwej spacji na poziomie 6. (z Ctrl+Shift)"
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 2."
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 2., znak łączący zerowej szerokości na poziomie 3."
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 2., znak łączący zerowej szerokości na poziomie 3., znak niełamliwej spacji na poziomie 4."
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 2., znak niełamliwej spacji na poziomie 3."
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 2., znak niełamliwej spacji na poziomie 3., nic na poziomie 4."
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 2., znak niełamliwej spacji na poziomie 3., znak łączący zerowej szerokości na poziomie 4."
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 2., znak niełamliwej spacji na poziomie 3., wąskiej niełamliwej spacji na poziomie 4."
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Znak rozdzielający zerowej szerokości na poziomie 3., znak łączący zerowej szerokości na poziomie 4."
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Opcje klawiatury japońskiej"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Blokujący klawisz Kana Lock"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Backspace w stylu NICOLA-F"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Zenkaku Hankaku jako dodatkowy Esc"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Koreańskie klawisze Hangul/Hanja"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Sprzętowe klawisze Hangul/Hanja"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Prawy Alt jako Hangul, prawy Ctrl jako Hanja"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Prawy Ctrl jako Hangul, prawy Alt jako Hanja"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Dodanie akcentów Esperanto (supersigno)"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "Pod odpowiednimi klawiszami wg układu QWERTY"
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "Pod odpowiednimi klawiszami wg układu Dvoraka"
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "Pod odpowiednimi klawiszami wg układu Colemak"
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Zachowanie zgodności klawiszy ze starymi kodami Solarisa"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Zgodność klawiszy z Sunem"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Sekwencja klawiszy zabijająca serwer X"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Backspace"
diff --git a/xorg-server/xkeyboard-config/po/sv.po b/xorg-server/xkeyboard-config/po/sv.po
index 8954a4c2f..80966cb1c 100644
--- a/xorg-server/xkeyboard-config/po/sv.po
+++ b/xorg-server/xkeyboard-config/po/sv.po
@@ -7,17 +7,17 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config 2.13.99\n"
+"Project-Id-Version: xkeyboard-config 2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2015-01-15 01:16+0000\n"
-"PO-Revision-Date: 2015-01-25 20:50+0100\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-14 22:14+0100\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.7.3\n"
+"X-Generator: Poedit 1.7.6\n"
#: ../rules/base.xml.in.h:1
msgid "Generic 101-key PC"
@@ -922,3089 +922,3102 @@ msgstr "Arabisk (qwerty/siffror)"
msgid "Arabic (Buckwalter)"
msgstr "Arabisk (Buckwalter)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Arabisk (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Albansk"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Albansk (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:76
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Armenisk"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Armenisk (fonetisk)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Armenisk (Alternativ fonetisk)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Armenisk (östlig)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Armenisk (västlig)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Armenisk (Alternativ östlig)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Tysk (Österrike)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Tysk (Österrike, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Tysk (Österrike, Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Tysk (Österrike, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Azerbajdzjansk"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Azerbajdzjansk (Kyrillisk)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Vitrysk"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Vitrysk (äldre)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Vitrysk (latin)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:85
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Belgisk"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Belgisk (alternativ)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Belgisk (alternativ, endast Latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Belgisk (alternativ, Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Belgisk (ISO-alternativ)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Belgisk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Belgisk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Belgisk (Wang modell 724 azerty)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Bengali"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Bengali (Probhat)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Indisk"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Bengali (Indien)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Bengali (Indien, Probhat)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Bengali (Indien, Baishakhi)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Bengali (Indien, Bornona)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Bengali (Indien, Uni Gitanjali)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Bengali (Indien, Baishakhi Inscript)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Manipuri (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Gujaratisk"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Punjabi (Gurmukhi)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Punjabi (Gurmukhi Jhelum)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
# Även kanaresisk (äldre form)
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Kannada"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Kannada (KaGaPa-fonetisk)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Malayalam"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Malayalamsk (Lalitha)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Malayalam (förbättrad Inscript, med rupietecken)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Oriya"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Tamilsk (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Tamilsk (tangentbord med siffror)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Tamilsk (TAB Typewriter)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Tamilsk (TSCII Typewriter)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Tamilsk"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Telugo"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Telugu (KaGaPa-fonetisk)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Urdu (fonetisk)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Urdu (alternativ fonetisk)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Urdu (Windows-tangenter)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Hindi (Bolnagri)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Hindi (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Hindi (KaGaPa-fonetisk)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Sanskrit (KaGaPa-fonetisk)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Marathi (KaGaPa-fonetisk)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Engelsk (Indien, med rupietecken)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Bosnisk"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Bosnisk (med gåsögon för citattecken)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Bosnisk (med bosniska digrafer)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Bosnisk (USA-tangentbord med bosniska digrafer)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Bosnisk (USA-tangentbord med bosniska bokstäver)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:88
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Portugisisk (Brasilien)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Portugisisk (Brasilien, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Portugisisk (Brasilien, Dvorak)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Portugisisk (Brasilien, Nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Portugisisk (Brasilien, Nativo för USA-tangentbord)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Esperanto (Brasilien, Nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Bulgarisk"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Bulgarisk (traditionell fonetisk)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Bulgarisk (ny fonetisk)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Arabisk (Marocko)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Fransk (Marocko)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Berberisk (Marocko, Tifinagh)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Berberisk (Marocko, Tifinagh alternativ)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Berberisk (Marocko, Tifinagh alternativ fonetisk)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Berberisk (Marocko, Tifinagh utökad)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Berberisk (Marocko, Tifinagh fonetisk)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Berberisk (Marocko, Tifinagh utökad fonetisk)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:151
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Engelsk (Kamerun)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Fransk (Kamerun)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Kamerun flerspråkig (qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Kamerun flerspråkig (azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Kamerun flerspråkig (Dvorak)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Burmesisk"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Fransk (Kanada)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Fransk (Kanada, Dvorak)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Fransk (Kanada, äldre)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Kanadensisk flerspråkig"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Kanadensisk flerspråkig (första delen)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Kanadensisk flerspråkig (andra delen)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Inuktitut"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Engelsk (Kanada)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Fransk (Demokratiska republiken Kongo)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Kinesisk"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Tibetansk"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Tibetansk (med ASCII-taltecken)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Uyghur"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Kroatisk"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Kroatisk (med gåsögon för citattecken)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Kroatisk (med kroatiska digrafer)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Kroatisk (USA-tangentbord med kroatiska digrafer)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Kroatisk (USA-tangentbord med kroatiska bokstäver)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:91
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Tjeckisk"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Tjeckisk (med &lt;\\|&gt;-tangent)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Tjeckisk (qwerty)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Tjeckisk (qwerty, utökat omvänt snedstreck)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Tjeckisk (UCW-layout, endast bokstäver med accenter)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Tjeckisk (US Dvorak med CZ UCW-stöd)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:94
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Dansk"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Dansk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Dansk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Dansk (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Dansk (Macintosh, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Dansk (Dvorak)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:97
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Nederländsk"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Nederländsk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Nederländsk (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Nederländsk (standard)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Dzongkha"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:100
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Estnisk"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Estnisk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Estnisk (Dvorak)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Estnisk (USA-tangentbord med estniska bokstäver)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:30
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Persisk"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Persisk (med persiskt numeriskt tangentbord)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Kurdisk (Iran, Latinskt Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Kurdisk (Iran, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Kurdisk (Iran, latinskt Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Kurdisk (Iran, Arabisk-Latin)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Irakisk"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Kurdisk (Irak, latinskt Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Kurdisk (Irak, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Kurdisk (Irak, latinskt Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Kurdisk (Irak, Arabisk-Latin)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Färöisk"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Färöisk (eliminera stumma tangenter)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:103
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Finsk"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Finsk (klassisk)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Finsk (klassisk, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Finsk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Nordsamisk (Finland)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Finska (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:105
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Fransk"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Fransk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Fransk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Fransk (alternativ)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Fransk (alternativ, endast Latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Fransk (alternativ, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Fransk (alternativ, Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Franska (äldre, alternativ)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Fransk (äldre, alternativ, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Fransk (äldre, alternativ, Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Fransk (Bepo, ergonomisk, Dvorak-liknande)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Fransk (Bepo, ergonomisk, Dvorak-liknande, endast Latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Fransk (Dvorak)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Franska (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Fransk (Bretagnsk)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Occitansk"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Georgisk (Frankrike, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Engelsk (Ghana)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Engelsk (Ghana, flerspråkig)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Akan"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Fula"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Ga"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Avatime"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Engelsk (Ghana, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Fransk (Guinea)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Georgisk"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Georgisk (ergonomisk)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Georgisk (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Rysk (Georgien)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Ossetisk (Georgien)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Tysk"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Tysk (stumma akutaccent)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Tysk (stum grav accent)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Tysk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Tysk (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Rumänska (Tyskland)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Rumänska (Tyskland, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Tysk (Dvorak)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Tysk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Tysk (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Tysk (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Tysk (Macintosh, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Lågsorbisk"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Lågsorbisk (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Tysk (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Turkisk (Tyskland)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Rysk (Tyskland, fonetisk)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Tysk (äldre)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:108
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Grekisk"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Grekisk (enkel)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Grekisk (utökad)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Grekisk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Grekisk (polytonisk)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Ungersk"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Ungersk (standard)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Ungersk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Ungersk (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Ungersk (101/qwertz/komma/stumma tangenter)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Ungersk (101/qwertz/komma/eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Ungersk (101/qwertz/punkt/stumma tangenter)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Ungersk (101/qwertz/punkt/eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Ungersk (101/qwerty/komma/stumma tangenter)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Ungersk (101/qwerty/komma/eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Ungersk (101/qwerty/punkt/stumma tangenter)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Ungersk (101/qwerty/punkt/eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Ungersk (102/qwertz/komma/stumma tangenter)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Ungersk (102/qwertz/komma/eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Ungersk (102/qwertz/punkt/stumma tangenter)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Ungersk (102/qwertz/punkt/eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Ungersk (102/qwerty/komma/stumma tangenter)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Ungersk (102/qwerty/komma/eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Ungersk (102/qwerty/punkt/stumma tangenter)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Ungersk (102/qwerty/punkt/eliminera stumma tangenter)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Isländsk"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Isländsk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Isländsk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Isländsk (Macintosh, äldre)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Isländsk (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Isländsk (Dvorak)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:79
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Hebreisk"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Hebreisk (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Hebreisk (fonetisk)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Hebreisk (Biblisk, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:111
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Italiensk"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Italiensk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Italiensk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Italiensk (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Italiensk (USA-tangentbord med italienska bokstäver)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Georgisk (Italien)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Italiensk (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:114
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Japansk"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Japansk (Kana)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Japansk (Kana 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Japansk (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Japansk (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Japansk (Dvorak)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Kirgizisk"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Kirgizisk (fonetisk)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Khmer (Kambodja)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Kazakisk"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Rysk (Kazakstan, med kazakiska)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Kazakisk (med ryska)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Lao"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Lao (STEA-föreslagen standardlayout)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Spansk (Latinamerikansk)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Spansk (Latinamerikansk, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Spansk (Latinamerikansk, inkluderar stumma tilde)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Spansk (Latinamerikansk, Sun stumma tangenter)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Spansk (Latinamerikansk, Dvorak)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:33
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Litauisk"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Litauisk (standard)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Litauisk (USA-tangentbord med litauiska bokstäver)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Litauisk (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Litauisk (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Litauisk (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:37
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Lettisk"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Lettisk (apostrof-variant)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Lettisk (tilde-variant)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Lettisk (F-variant)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Lettisk (modern)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Lettisk (ergonomisk, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Lettisk (anpassad)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Maori"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Montenegrinsk"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Montenegrinsk (Kyrillisk)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Montenegrinsk (Kyrillisk, ZE och ZHE utbytta)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Montenegrinsk (Latin Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Montenegrinsk (Latin qwerty)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Montenegrinsk (Latin unicode qwerty)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Montenegrinsk (Kyrillisk med gåsögon)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Montenegrinsk (Latin med gåsögon)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Makedonsk"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Makedonsk (eliminera stumma tangenter)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Maltesisk"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Maltesisk (med USA-layout)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Mongolisk"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:119
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Norsk"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Norsk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Norsk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Norsk (Dvorak)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Nordsamisk (Norge)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Nordsamisk (Norge, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Norsk (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Norsk (Macintosh, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Norsk (Colemak)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:57
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Polsk"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Polsk (äldre)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Polsk (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Polsk (Dvorak)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Polsk (Dvorak, polska citattecken på citattangent)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Polsk (Dvorak, polska citattecken på tangent 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Kasjubisk"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Schlesisk"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Rysk (Polen, fonetisk Dvorak)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Polsk (Dvorak för programmerare)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:121
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Portugisisk"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Portugisisk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Portugisisk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Portugisisk (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Portugisisk (Macintosh, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Portugisisk (Macintosh, Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Portugisisk (Nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Portugisisk (Nativo för USA-tangentbord)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Esperanto (Portugal, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Rumänsk"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Rumänsk (cedilj)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Rumänsk (standard)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Rumänsk (standard cedilj)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Rumänsk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:71
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Rysk"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Rysk (fonetisk)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Rysk (fonetiska Windows-tangenter)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Rysk (skrivmaskin)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Rysk (äldre)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Rysk (skrivmaskin, äldre)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Tatar"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Ossetisk (äldre)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Ossetisk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Tjuvasjisk"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Tjuvasjisk (Latin)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Udmurt"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Komi"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Yakut"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Kalmyk"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Rysk (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Rysk (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Serbisk (Ryssland)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Basjkirisk"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Mari"
-#: ../rules/base.xml.in.h:699
+#: ../rules/base.xml.in.h:701
msgid "Russian (phonetic azerty)"
msgstr "Rysk (fonetisk azerty)"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:702
msgid "Russian (phonetic French)"
msgstr "Rysk (fonetisk franska)"
-#: ../rules/base.xml.in.h:701 ../rules/base.extras.xml.in.h:68
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Serbisk"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Serbisk (Kyrillisk, ZE och ZHE utbytta)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Serbisk (Latin)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Serbisk (Latin Unicode)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Serbisk (Latin qwerty)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Serbisk (Latin Unicode qwerty)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Serbisk (Kyrillisk med gåsögon)"
-#: ../rules/base.xml.in.h:708
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Serbisk (Latin med gåsögon)"
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Pannonisk rusinsk"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Slovensk"
-#: ../rules/base.xml.in.h:713
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Slovensk (med gåsögon för citattecken)"
-#: ../rules/base.xml.in.h:714
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Slovensk (USA-tangentbord med slovenska bokstäver)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:716 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:717 ../rules/base.extras.xml.in.h:124
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Slovakisk"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Slovakisk (utökat omvänt snedstreck)"
-#: ../rules/base.xml.in.h:719
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Slovakisk (qwerty)"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Slovakisk (qwerty, utökat omvänt snedstreck)"
-#: ../rules/base.xml.in.h:721 ../rules/base.extras.xml.in.h:127
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Spansk"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Spansk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Spansk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Spansk (Inkludera dött tilde-tecken)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Spansk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Spansk (Dvorak)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Asturisk (Spanien, med nederpunkts H och nederpunkts L)"
-#: ../rules/base.xml.in.h:728
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Katalansk (Spanien, med mittenpunkts L)"
-#: ../rules/base.xml.in.h:729
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Spansk (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:731 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:732 ../rules/base.extras.xml.in.h:130
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Svensk"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Svensk (eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Svensk (Dvorak)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Rysk (Sverige, fonetisk)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Rysk (Sverige, fonetisk, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Nordsamisk (Sverige)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Svenska (Macintosh)"
-#: ../rules/base.xml.in.h:739
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Svensk (Svdvorak)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Svenskt teckenspråk"
-#: ../rules/base.xml.in.h:741 ../rules/base.extras.xml.in.h:133
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Tysk (Schweiz)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Tysk (Schweiz, äldre)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Tysk (Schweiz, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Tysk (Schweiz, Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Fransk (Schweiz)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Fransk (Schweiz, eliminera stumma tangenter)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Fransk (Schweiz, Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Fransk (Schweiz, Macintosh)"
-#: ../rules/base.xml.in.h:749
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Tysk (Schweiz, Macintosh)"
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Arabisk (Syrien)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Syrisk"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Syrisk (fonetisk)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Kurdisk (Syrien, latinskt Q)"
-#: ../rules/base.xml.in.h:756
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Kurdisk (Syrien, F)"
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Kurdisk (Syrien, latinskt Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:760
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Tadjikisk"
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Tadjikisk (äldre)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
-msgstr "Sinhala (fonetisk)"
+msgstr "Singalesisk (fonetisk)"
-#: ../rules/base.xml.in.h:765
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Tamilsk (Sri Lanka, Unicode)"
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Tamilsk (Sri Lanka, TAB Typewriter)"
+# https://bugs.freedesktop.org/show_bug.cgi?id=90456
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Singalesisk (USA-tangentbord med singalesiska bokstäver)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Thailändsk"
-#: ../rules/base.xml.in.h:770
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Thailändsk (TIS-820.2538)"
-#: ../rules/base.xml.in.h:771
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Thailändsk (Pattachote)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:773 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:774 ../rules/base.extras.xml.in.h:137
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Turkisk"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Turkisk (F)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Turkisk (Alt-Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Turkisk (Sun stumma tangenter)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Kurdisk (Turkiet, latinskt Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Kurdisk (Turkiet, F)"
-#: ../rules/base.xml.in.h:780
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Kurdisk (Turkiet, latinskt Alt-Q)"
-#: ../rules/base.xml.in.h:781
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Turkisk (Internationell med stumma tangenter)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:783 ../rules/base.extras.xml.in.h:63
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Krimtatarisk (Turkiskt Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Krimtatarisk (Turkiskt F)"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Krimtatarisk (Turkisk Alt-Q)"
-#: ../rules/base.xml.in.h:787
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Taiwanesisk"
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Taiwanesisk (inhemsk)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:790
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:791
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Saisiyat (Taiwan)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:793 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:794 ../rules/base.extras.xml.in.h:140
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Ukrainsk"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Ukrainsk (fonetisk)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Ukrainsk (skrivmaskin)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Ukrainsk (Windows-tangenter)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Ukrainsk (äldre)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Ukrainsk (Standard RSTU)"
-#: ../rules/base.xml.in.h:800
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Rysk (Ukraina, standard RSTU)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Ukrainsk (homofonisk)"
-#: ../rules/base.xml.in.h:802 ../rules/base.extras.xml.in.h:142
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Engelsk (Storbritannien)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Engelsk (Storbritannien, utökade Windows-tangenter)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Engelsk (Storbritannien, internationell med stumma tangenter)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Engelsk (Storbritannien, Dvorak)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Engelsk (Storbritannien, Dvorak med brittisk-engelska skiljetecken)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Engelsk (Storbritannien, Macintosh)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Engelsk (Storbritannien, Macintosh internationell)"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Engelsk (Storbritannien, Colemak)"
-#: ../rules/base.xml.in.h:810
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Uzbekisk"
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Uzbekisk (Latin)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:813
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:814
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "Vietnamesisk"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:816 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:817 ../rules/base.extras.xml.in.h:145
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Koreansk"
-#: ../rules/base.xml.in.h:818
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Koreansk (101/104-tangenters kompatibel)"
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Japansk (PC-98xx-serien)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Irländsk"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "CloGaelach"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Irländsk (UnicodeExpert)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Ogham"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Ogham (IS434)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Urdu (Pakistan)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Urdu (Pakistan, CRULP)"
-#: ../rules/base.xml.in.h:829
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Urdu (Pakistan, NLA)"
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Arabisk (Pakistan)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:832
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Sindhi"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:836
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Dhivehi"
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Engelsk (Sydafrika)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:840
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Esperanto"
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Esperanto (flyttat semikolon och citattecken, föråldrat)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:844
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Nepalesisk"
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Engelsk (Nigeria)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:847
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:850
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Yoruba"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:853
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Amharisk"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:856
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Wolofsk"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Punktskrift"
-#: ../rules/base.xml.in.h:861
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Punktskrift (vänster hand)"
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Punktskrift (höger hand)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:865
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Turkmenisk"
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Turkmenisk (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Bambara"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Fransk (Mali, alternativ)"
-#: ../rules/base.xml.in.h:871
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Engelsk (Mali, USA Macintosh)"
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Engelsk (Mali, USA internationell)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Swahilisk (Tanzania)"
-#: ../rules/base.xml.in.h:876
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Swahilisk (Kenya)"
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Kikuyu"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:879
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Tswana"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Filipino"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Filipino (QWERTY Baybayin)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Filipino (Capewell-Dvorak Latin)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Filipino (Capewell-Dvorak Baybayin)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Filipino (Capewell-QWERF 2006 Latin)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Filipino (Capewell-QWERF 2006 Baybayin)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Filipino (Colemak Latin)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Filipino (Colemak Baybayin)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Filipino (Dvorak Latin)"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Filipino (Dvorak Baybayin)"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Moldavisk"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Moldavisk (Gagauz)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Byta till en annan layout"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Höger Alt-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Vänster Alt (då den trycks ned)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Vänster Win-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Höger Win-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Valfri Win-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Caps Lock (när den trycks ned), Alt+Caps Lock gör ursprunglig capslock-åtgärd"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Höger Ctrl-tangent (då den trycks ned)"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Höger Alt"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Vänster alt"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Skift+Caps Lock"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Caps Lock (till första layouten), Skift+Caps Lock (till sista layouten)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:913
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:911
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Vänster Ctrl (till första layouten), Höger Ctrl (till sista layouten)"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Caps Lock"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Båda Skift-tangenterna tillsammans"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Båda Alt-tangenterna tillsammans"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Båda Ctrl-tangenterna tillsammans"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Skift"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Vänster ctrl+vänster skift"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Höger Ctrl + höger Skift"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Skift"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Vänster Alt+Vänster Skift"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Blanksteg"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Meny"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Vänster Win-tangent"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Win-tangent+Blanksteg"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Höger Win-tangent"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Vänster skift"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Höger skift"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Vänster Ctrl"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Höger Ctrl"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Vänster Ctrl+ Vänster Win (till första layouten), Höger Ctrl+Meny (till andra layouten)"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Tangent för att välja tredje nivån"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Valfri Win-tangent"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Valfri Alt-tangent"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Höger Alt-tangent, Skift+höger Alt-tangent är Compose"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "Höger Alt-tangent väljer aldrig tredje nivån"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Enter på numeriskt tangentbord"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Omvänt snedstreck"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Mindre än/Större än&gt;"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Caps Lock väljer tredje nivån, låses när nedtryckt tillsammans med en annan tredjenivåväljare"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Omvänt snedstreck väljer tredje nivån, låses när nedtryckt tillsammans med en annan tredjenivåväljare"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Mindre än/Större än&gt; väljer tredje nivån, låses när nedtryckt tillsammans med annan tredjenivåväljare"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Position för Ctrl-tangenten"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Caps Lock som Ctrl"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Vänster Ctrl som Meta"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Byt Ctrl och Caps Lock"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Till vänster om \"A\""
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "Nere till vänster"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Höger Ctrl-tangent fungerar som höger Alt"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Meny som Höger Ctrl"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Höger Alt som Höger Ctrl"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Byt vänster Alt-tangent med vänster Ctrl-tangent"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Byt vänster Win-tangent med vänster Ctrl-tangent"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Byt höger Win-tangent med höger Ctrl-tangent"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Vänster Alt som Ctrl, vänster Ctrl som Win, vänster Win som Alt"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Använd tangentbordslampa för att visa alternativ layout"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Num Lock"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Layout för numeriskt tangentbord"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Äldre"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Unicode-tillägg (pilar och matematikoperatorer)"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:965
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:963
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Gammalt Wang 724"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:967
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:965
+#: ../rules/base.xml.in.h:968
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:966
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Hexadecimal"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "Knappsats/telefonliknande"
# KONTROLLERA DENNA
-#: ../rules/base.xml.in.h:968
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Beteende för Delete-tangent på numeriskt tangentbord"
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Äldre tangent med punkt"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Äldre tangent med komma"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Fjärdenivåtangent med punkt"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Fjärdenivåtangent med punkt, Latin-9-begränsning"
-#: ../rules/base.xml.in.h:974
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Fjärdenivåtangent med komma"
-#: ../rules/base.xml.in.h:975
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Fjärdenivåtangent med momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Fjärdenivåtangent med abstrakta avgränsare"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Semikolon på tredje nivån"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Beteende för Caps Lock-tangenten"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock använder intern skiftlägesstyrning; Skift \"pausar\" Caps Lock"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Caps Lock använder intern skiftlägesstyrning; Skift påverkar inte Caps Lock"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock fungerar som Skift med låsning; Skift \"pausar\" Caps Lock"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Caps Lock fungerar som Skift med låsning; Skift påverkar inte Caps Lock"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Caps Lock växlar normalt skiftläge på alfabetiska tecken"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Gör Caps Lock till ytterligare en Num Lock-tangent"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Byt ESC och Caps Lock"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Gör Caps Lock till ytterligare en ESC-tangent"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Gör Caps Lock till ytterligare en backstegstangent"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Gör Caps Lock till ytterligare en Super-tangent"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Gör Caps Lock till ytterligare en Hyper-tangent"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Caps Lock växlar Skift (påverkar alla tangenter)"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Caps Lock är inaktiverad"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Gör Caps Lock till ytterligare en Ctrl-tangent"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Alt/Win-tangentbeteende"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Lägg till standardbeteendet till Meny-tangenten"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt och Meta finns på Alt-tangenterna"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt är mappad till Win-tangenterna (och de vanliga Alt-tangenterna)"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl är mappad till Win-tangenterna (och de vanliga Ctrl-tangenterna)"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl är mappad till Alt-tangenterna, Alt-tangenten är mappad till Win-tangenterna"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta är mappad till Win-tangenterna"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta är mappad till vänster Win-tangent"
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper är mappad till Win-tangenterna"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1007
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:1005
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt är utbytt med Win-tangent"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Placering av Compose-tangent"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "Tredje nivån av vänster Win"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "Tredje nivån av höger Win"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "Tredje nivån av Meny"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "Tredje nivån av vänster Ctrl"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "Tredje nivån av höger Ctrl"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "Tredje nivån av Caps Lock"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "Tredje nivån av &lt;Mindre än/Större än&gt;"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Diverse kompatibilitetsalternativ"
-#: ../rules/base.xml.in.h:1017
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Standardtangenter för numeriskt tangentbord"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "Tangenter på det numeriska tangentbordet ger alltid siffror (som på Mac OS)"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1022
msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
msgstr "NumLock på: siffror, Skift växlar till piltangenter, Numlock av: alltid piltangenter (som i MS Windows)"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Skift avbryter inte Num Lock, väljer tredje nivån istället"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1024
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Specialtangenter (Ctrl+Alt+‹tangent›) hanteras i en server"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Apple aluminiumtangentbord: emulera PC-tangenter (Print, Scroll Lock, Pause, Num Lock)"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Skift avbryter Caps Lock"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Aktivera extra typografiska tecken"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Båda Skifttangenterna tillsammans växlar Caps Lock"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Båda Skifttangenterna tillsammans aktiverar Caps Lock, en Skifttangent inaktiverar"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Båda Skifttangenterna tillsammans växlar ShiftLock"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Skift + NumLock växlar pekartangenter"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Tillåt avbrott av fångad inmatning med tangentbordsåtgärder (varning: säkerhetsrisk)"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Tillåt loggning av fångst och fönsterträd"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Lägga till valutatecken till vissa tangenter"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Euro på E"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Euro på 2"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Euro på 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Euro på 5"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Rupee på 4"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Tangent för att välja femte nivån"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Mindre än/Större än&gt; väljer femte nivån, låses när nedtryckt tillsammans med en annan femtenivåväljare"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Höger Alt-tangent väljer femte nivån, låses när nedtryckt tillsammans med en annan femtenivåväljare"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Vänster Win-tangent väljer femte nivån, låses när nedtryckt tillsammans med en annan femtenivåväljare"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Höger Win-tangent väljer femte nivån, låses när nedtryckt tillsammans med en annan femtenivåväljare"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Använda blankstegstangenten för att mata in icke-brytande blankstegstecken"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Vanligt blanksteg på alla nivåer"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Icke-brytande blankstegstecken på andra nivån"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Icke-brytande blankstegstecken på tredje nivån"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1049
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:1047
+#: ../rules/base.xml.in.h:1050
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:1048
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Icke-brytande blankstegstecken på fjärde nivån"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1052
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:1050
+#: ../rules/base.xml.in.h:1053
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:1051
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Noll-bredd, icke-sammanfogande tecken på andra nivån"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Noll-bredd, icke-sammanfogande tecken på andra nivån, noll-bredd, sammanfogande tecken på tredje nivån"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Noll-bredd, icke-sammanfogande tecken på andra nivån, noll-bredd, sammanfogande tecken på tredje nivån, icke-brytande blankstegstecken på fjärde nivån"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Noll-bredd, icke-sammanfogande tecken på andra nivån, icke-brytande blankstegstecken på tredje nivån"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Noll-bredd, icke-sammanfogande tecken på andra nivån, icke-brytande blankstegstecken på tredje nivån, ingenting på fjärde nivån"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Noll-bredd, icke-sammanfogande tecken på andra nivån, icke-brytande blankstegstecken på tredje nivån, noll-bredd sammanfogande på fjärde nivån"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Noll-bredd, icke-sammanfogande tecken på andra nivån, icke-brytande blankstegstecken på tredje nivån, tunt icke-brytande blanksteg på fjärde nivån"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Noll-bredd, icke-sammanfogande tecken på tredje nivån, noll-bredd, sammanfogande på fjärde nivån"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Tangentbordsalternativ för japanska"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Kana Lock-tangent låser"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "Backsteg i NICOLA-F-stil"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Gör Zenkaku Hankaku till ytterligare en ESC-tangent"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1066
msgid "Korean Hangul/Hanja keys"
msgstr "Koreanska Hangul/Hanja-tangenter"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1067
msgid "Hardware Hangul/Hanja keys"
msgstr "Hårdvarutangenter för Hangul/Hanja"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1068
msgid "Right Alt as Hangul, right Ctrl as Hanja"
msgstr "Höger Alt som Hangul, höger Ctrl som Hanja"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1069
msgid "Right Ctrl as Hangul, right Alt as Hanja"
msgstr "Höger Ctrl som Hangul, höger Alt som Hanja"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Lägga till bokstäver med övertecken för Esperanto"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "Till motsvarande tangent i en Qwerty-layout."
-#: ../rules/base.xml.in.h:1069
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "Till motsvarande tangent i en Dvorak-layout."
-#: ../rules/base.xml.in.h:1070
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "Till motsvarande tangent i en Colemak-layout."
-#: ../rules/base.xml.in.h:1071
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Behåll tangentkompatibilitet med gamla tangentkoder för Solaris"
-#: ../rules/base.xml.in.h:1072
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Kompatibilitet med Sun-tangenter"
-#: ../rules/base.xml.in.h:1073
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Tangentsekvens för att döda X-servern"
-#: ../rules/base.xml.in.h:1074
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Backsteg"
diff --git a/xorg-server/xkeyboard-config/po/uk.po b/xorg-server/xkeyboard-config/po/uk.po
index 772cc753b..cd82ad0fa 100644
--- a/xorg-server/xkeyboard-config/po/uk.po
+++ b/xorg-server/xkeyboard-config/po/uk.po
@@ -7,13 +7,13 @@
# Andriy Rysin <arysin@bcsii.com>, 2007, 2008.
# Andriy Rysin <arysin@gmail.com>, 2008.
# Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2011.
-# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012, 2013, 2014.
+# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012, 2013, 2014, 2015.
msgid ""
msgstr ""
-"Project-Id-Version: xkeyboard-config-2.12.99\n"
+"Project-Id-Version: xkeyboard-config-2.14.99\n"
"Report-Msgid-Bugs-To: svu@users.sourceforge.net\n"
-"POT-Creation-Date: 2014-09-18 23:46+0100\n"
-"PO-Revision-Date: 2014-09-19 11:08+0300\n"
+"POT-Creation-Date: 2015-05-13 23:54+0100\n"
+"PO-Revision-Date: 2015-05-15 00:49+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
@@ -760,11 +760,11 @@ msgid "Htc Dream phone"
msgstr "Телефон HTC Dream"
#. Keyboard indicator for English layouts
-#: ../rules/base.xml.in.h:186 ../rules/base.extras.xml.in.h:46
+#: ../rules/base.xml.in.h:186 ../rules/base.extras.xml.in.h:47
msgid "en"
msgstr "en"
-#: ../rules/base.xml.in.h:187 ../rules/base.extras.xml.in.h:47
+#: ../rules/base.xml.in.h:187 ../rules/base.extras.xml.in.h:48
msgid "English (US)"
msgstr "Англійська (США)"
@@ -822,7 +822,7 @@ msgid "English (programmer Dvorak)"
msgstr "Англійська (програмістський Дворак)"
#. Keyboard indicator for Russian layouts
-#: ../rules/base.xml.in.h:203 ../rules/base.extras.xml.in.h:69
+#: ../rules/base.xml.in.h:203 ../rules/base.extras.xml.in.h:70
msgid "ru"
msgstr "ru"
@@ -855,7 +855,7 @@ msgid "English (Workman, international with dead keys)"
msgstr "Англійська (інтернаціональна Воркмена зі сліпими клавішами)"
#. Keyboard indicator for Persian layouts
-#: ../rules/base.xml.in.h:212 ../rules/base.extras.xml.in.h:28
+#: ../rules/base.xml.in.h:212 ../rules/base.extras.xml.in.h:29
msgid "fa"
msgstr "fa"
@@ -894,11 +894,11 @@ msgid "Uzbek (Afghanistan, OLPC)"
msgstr "Узбецька (Афганістан, OLPC)"
#. Keyboard indicator for Arabic layouts
-#: ../rules/base.xml.in.h:224 ../rules/base.extras.xml.in.h:80
+#: ../rules/base.xml.in.h:224 ../rules/base.extras.xml.in.h:81
msgid "ar"
msgstr "ar"
-#: ../rules/base.xml.in.h:225 ../rules/base.extras.xml.in.h:81
+#: ../rules/base.xml.in.h:225 ../rules/base.extras.xml.in.h:82
msgid "Arabic"
msgstr "Арабська"
@@ -926,3063 +926,3099 @@ msgstr "Арабська (qwerty/цифри)"
msgid "Arabic (Buckwalter)"
msgstr "Арабська (Бакволтера)"
+#: ../rules/base.xml.in.h:232
+msgid "Arabic (Macintosh)"
+msgstr "Арабська (Macintosh)"
+
#. Keyboard indicator for Albanian layouts
-#: ../rules/base.xml.in.h:233
+#: ../rules/base.xml.in.h:234
msgid "sq"
msgstr "sq"
-#: ../rules/base.xml.in.h:234
+#: ../rules/base.xml.in.h:235
msgid "Albanian"
msgstr "Албанська"
-#: ../rules/base.xml.in.h:235
+#: ../rules/base.xml.in.h:236
msgid "Albanian (Plisi D1)"
msgstr "Албанська (Plisi D1)"
#. Keyboard indicator for Armenian layouts
-#: ../rules/base.xml.in.h:237 ../rules/base.extras.xml.in.h:74
+#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
msgid "hy"
msgstr "hy"
-#: ../rules/base.xml.in.h:238 ../rules/base.extras.xml.in.h:75
+#: ../rules/base.xml.in.h:239 ../rules/base.extras.xml.in.h:76
msgid "Armenian"
msgstr "Вірменська"
-#: ../rules/base.xml.in.h:239
+#: ../rules/base.xml.in.h:240
msgid "Armenian (phonetic)"
msgstr "Вірменська (фонетична)"
-#: ../rules/base.xml.in.h:240
+#: ../rules/base.xml.in.h:241
msgid "Armenian (alternative phonetic)"
msgstr "Вірменська (альтернативна фонетична)"
-#: ../rules/base.xml.in.h:241
+#: ../rules/base.xml.in.h:242
msgid "Armenian (eastern)"
msgstr "Вірменська (східна)"
-#: ../rules/base.xml.in.h:242
+#: ../rules/base.xml.in.h:243
msgid "Armenian (western)"
msgstr "Вірменська (західна)"
-#: ../rules/base.xml.in.h:243
+#: ../rules/base.xml.in.h:244
msgid "Armenian (alternative eastern)"
msgstr "Вірменська (альтернативна східна)"
#. Keyboard indicator for German layouts
-#: ../rules/base.xml.in.h:245 ../rules/base.extras.xml.in.h:22
+#: ../rules/base.xml.in.h:246 ../rules/base.extras.xml.in.h:22
msgid "de"
msgstr "de"
-#: ../rules/base.xml.in.h:246
+#: ../rules/base.xml.in.h:247
msgid "German (Austria)"
msgstr "Німецька (Австрія)"
-#: ../rules/base.xml.in.h:247
+#: ../rules/base.xml.in.h:248
msgid "German (Austria, eliminate dead keys)"
msgstr "Німецька (Австрія, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:248
+#: ../rules/base.xml.in.h:249
msgid "German (Austria, Sun dead keys)"
msgstr "Німецька (Австрія, сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:249
+#: ../rules/base.xml.in.h:250
msgid "German (Austria, Macintosh)"
msgstr "Німецька (Австрія, Macintosh)"
#. Keyboard indicator for Azerbaijani layouts
-#: ../rules/base.xml.in.h:251
+#: ../rules/base.xml.in.h:252
msgid "az"
msgstr "az"
-#: ../rules/base.xml.in.h:252
+#: ../rules/base.xml.in.h:253
msgid "Azerbaijani"
msgstr "Азербайджанська"
-#: ../rules/base.xml.in.h:253
+#: ../rules/base.xml.in.h:254
msgid "Azerbaijani (Cyrillic)"
msgstr "Азербайджанська (кирилиця)"
#. Keyboard indicator for Belarusian layouts
-#: ../rules/base.xml.in.h:255
+#: ../rules/base.xml.in.h:256
msgid "by"
msgstr "by"
-#: ../rules/base.xml.in.h:256
+#: ../rules/base.xml.in.h:257
msgid "Belarusian"
msgstr "Білоруська"
-#: ../rules/base.xml.in.h:257
+#: ../rules/base.xml.in.h:258
msgid "Belarusian (legacy)"
msgstr "Білоруська (застаріла)"
-#: ../rules/base.xml.in.h:258
+#: ../rules/base.xml.in.h:259
msgid "Belarusian (Latin)"
msgstr "Білоруська (латиниця)"
#. Keyboard indicator for Belgian layouts
-#: ../rules/base.xml.in.h:260 ../rules/base.extras.xml.in.h:83
+#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
msgid "be"
msgstr "be"
-#: ../rules/base.xml.in.h:261 ../rules/base.extras.xml.in.h:84
+#: ../rules/base.xml.in.h:262 ../rules/base.extras.xml.in.h:85
msgid "Belgian"
msgstr "Бельгійська"
-#: ../rules/base.xml.in.h:262
+#: ../rules/base.xml.in.h:263
msgid "Belgian (alternative)"
msgstr "Бельгійська (альтернативна)"
-#: ../rules/base.xml.in.h:263
+#: ../rules/base.xml.in.h:264
msgid "Belgian (alternative, Latin-9 only)"
msgstr "Бельгійська (альтернативна, лише Latin-9)"
-#: ../rules/base.xml.in.h:264
+#: ../rules/base.xml.in.h:265
msgid "Belgian (alternative, Sun dead keys)"
msgstr "Бельгійська (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:265
+#: ../rules/base.xml.in.h:266
msgid "Belgian (ISO alternate)"
msgstr "Бельгійська (додаткова ISO)"
-#: ../rules/base.xml.in.h:266
+#: ../rules/base.xml.in.h:267
msgid "Belgian (eliminate dead keys)"
msgstr "Бельгійська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:267
+#: ../rules/base.xml.in.h:268
msgid "Belgian (Sun dead keys)"
msgstr "Бельгійська (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:268
+#: ../rules/base.xml.in.h:269
msgid "Belgian (Wang model 724 azerty)"
msgstr "Бельгійська (модель Wang 724, azerty)"
#. Keyboard indicator for Bangla layouts
-#: ../rules/base.xml.in.h:270
+#: ../rules/base.xml.in.h:271
msgid "bn"
msgstr "bn"
-#: ../rules/base.xml.in.h:271
+#: ../rules/base.xml.in.h:272
msgid "Bangla"
msgstr "Бенгальська"
-#: ../rules/base.xml.in.h:272
+#: ../rules/base.xml.in.h:273
msgid "Bangla (Probhat)"
msgstr "Бенгальська (пробхат)"
#. Keyboard indicator for Indian layouts
-#: ../rules/base.xml.in.h:274
+#: ../rules/base.xml.in.h:275
msgid "in"
msgstr "in"
-#: ../rules/base.xml.in.h:275
+#: ../rules/base.xml.in.h:276
msgid "Indian"
msgstr "Індійська"
-#: ../rules/base.xml.in.h:276
+#: ../rules/base.xml.in.h:277
msgid "Bangla (India)"
msgstr "Бенгальська (Індія)"
-#: ../rules/base.xml.in.h:277
+#: ../rules/base.xml.in.h:278
msgid "Bangla (India, Probhat)"
msgstr "Бенгальська (Індія, пробхат)"
-#: ../rules/base.xml.in.h:278
+#: ../rules/base.xml.in.h:279
msgid "Bangla (India, Baishakhi)"
msgstr "Бенгальська (Індія, байшахі)"
-#: ../rules/base.xml.in.h:279
+#: ../rules/base.xml.in.h:280
msgid "Bangla (India, Bornona)"
msgstr "Бенгальська (Індія, борнона)"
-#: ../rules/base.xml.in.h:280
+#: ../rules/base.xml.in.h:281
msgid "Bangla (India, Uni Gitanjali)"
msgstr "Бенгальська (Індія, уні гітанджалі)"
-#: ../rules/base.xml.in.h:281
+#: ../rules/base.xml.in.h:282
msgid "Bangla (India, Baishakhi Inscript)"
msgstr "Бенгальська (Індія, байшахі, індійські символи)"
-#: ../rules/base.xml.in.h:282
+#: ../rules/base.xml.in.h:283
msgid "Manipuri (Eeyek)"
msgstr "Маніпурі (Eeyek)"
#. Keyboard indicator for Gujarati layouts
-#: ../rules/base.xml.in.h:284
+#: ../rules/base.xml.in.h:285
msgid "gu"
msgstr "gu"
-#: ../rules/base.xml.in.h:285
+#: ../rules/base.xml.in.h:286
msgid "Gujarati"
msgstr "Гуджараті"
#. Keyboard indicator for Punjabi layouts
-#: ../rules/base.xml.in.h:287
+#: ../rules/base.xml.in.h:288
msgid "pa"
msgstr "pa"
-#: ../rules/base.xml.in.h:288
+#: ../rules/base.xml.in.h:289
msgid "Punjabi (Gurmukhi)"
msgstr "Пенджабська (гурмухі)"
-#: ../rules/base.xml.in.h:289
+#: ../rules/base.xml.in.h:290
msgid "Punjabi (Gurmukhi Jhelum)"
msgstr "Пенджабська (гурмухі, джелум)"
#. Keyboard indicator for Kannada layouts
-#: ../rules/base.xml.in.h:291
+#: ../rules/base.xml.in.h:292
msgid "kn"
msgstr "kn"
-#: ../rules/base.xml.in.h:292
+#: ../rules/base.xml.in.h:293
msgid "Kannada"
msgstr "Каннада"
-#: ../rules/base.xml.in.h:293
+#: ../rules/base.xml.in.h:294
msgid "Kannada (KaGaPa phonetic)"
msgstr "Каннада (KaGaPa, фонетична)"
#. Keyboard indicator for Malayalam layouts
-#: ../rules/base.xml.in.h:295
+#: ../rules/base.xml.in.h:296
msgid "ml"
msgstr "ml"
-#: ../rules/base.xml.in.h:296
+#: ../rules/base.xml.in.h:297
msgid "Malayalam"
msgstr "Малаяламська"
-#: ../rules/base.xml.in.h:297
+#: ../rules/base.xml.in.h:298
msgid "Malayalam (Lalitha)"
msgstr "Малаяламська (лаліта)"
-#: ../rules/base.xml.in.h:298
+#: ../rules/base.xml.in.h:299
msgid "Malayalam (enhanced Inscript, with rupee sign)"
msgstr "Малаяламська (покращений запис індійських мов з символом рупії)"
#. Keyboard indicator for Oriya layouts
-#: ../rules/base.xml.in.h:300
+#: ../rules/base.xml.in.h:301
msgid "or"
msgstr "or"
-#: ../rules/base.xml.in.h:301
+#: ../rules/base.xml.in.h:302
msgid "Oriya"
msgstr "Орія"
#. Keyboard indicator for Tamil layouts
-#: ../rules/base.xml.in.h:303
+#: ../rules/base.xml.in.h:304
msgid "ta"
msgstr "ta"
-#: ../rules/base.xml.in.h:304
+#: ../rules/base.xml.in.h:305
msgid "Tamil (Unicode)"
msgstr "Тамільська (Unicode)"
-#: ../rules/base.xml.in.h:305
+#: ../rules/base.xml.in.h:306
msgid "Tamil (keyboard with numerals)"
msgstr "Тамільська (клавіатура з цифрами)"
-#: ../rules/base.xml.in.h:306
+#: ../rules/base.xml.in.h:307
msgid "Tamil (TAB typewriter)"
msgstr "Тамільська (TAB, машинопис)"
-#: ../rules/base.xml.in.h:307
+#: ../rules/base.xml.in.h:308
msgid "Tamil (TSCII typewriter)"
msgstr "Тамільська (TSCII, машинопис)"
-#: ../rules/base.xml.in.h:308
+#: ../rules/base.xml.in.h:309
msgid "Tamil"
msgstr "Тамільська"
#. Keyboard indicator for Telugu layouts
-#: ../rules/base.xml.in.h:310
+#: ../rules/base.xml.in.h:311
msgid "te"
msgstr "te"
-#: ../rules/base.xml.in.h:311
+#: ../rules/base.xml.in.h:312
msgid "Telugu"
msgstr "Телугу"
-#: ../rules/base.xml.in.h:312
+#: ../rules/base.xml.in.h:313
msgid "Telugu (KaGaPa phonetic)"
msgstr "Телугу (KaGaPa, фонетична)"
#. Keyboard indicator for Urdu layouts
-#: ../rules/base.xml.in.h:314
+#: ../rules/base.xml.in.h:315
msgid "ur"
msgstr "ur"
-#: ../rules/base.xml.in.h:315
+#: ../rules/base.xml.in.h:316
msgid "Urdu (phonetic)"
msgstr "Урду (фонетична)"
-#: ../rules/base.xml.in.h:316
+#: ../rules/base.xml.in.h:317
msgid "Urdu (alternative phonetic)"
msgstr "Урду (альтернативна фонетична)"
-#: ../rules/base.xml.in.h:317
+#: ../rules/base.xml.in.h:318
msgid "Urdu (WinKeys)"
msgstr "Урду (з клавішами Win)"
#. Keyboard indicator for Hindi layouts
-#: ../rules/base.xml.in.h:319
+#: ../rules/base.xml.in.h:320
msgid "hi"
msgstr "hi"
-#: ../rules/base.xml.in.h:320
+#: ../rules/base.xml.in.h:321
msgid "Hindi (Bolnagri)"
msgstr "Хінді (болнагрі)"
-#: ../rules/base.xml.in.h:321
+#: ../rules/base.xml.in.h:322
msgid "Hindi (Wx)"
msgstr "Хінді (Wx)"
-#: ../rules/base.xml.in.h:322
+#: ../rules/base.xml.in.h:323
msgid "Hindi (KaGaPa phonetic)"
msgstr "Хінді (KaGaPa, фонетична)"
#. Keyboard indicator for Sanskrit layouts
-#: ../rules/base.xml.in.h:324
+#: ../rules/base.xml.in.h:325
msgid "sa"
msgstr "sa"
-#: ../rules/base.xml.in.h:325
+#: ../rules/base.xml.in.h:326
msgid "Sanskrit (KaGaPa phonetic)"
msgstr "Санскритська (KaGaPa, фонетична)"
#. Keyboard indicator for Marathi layouts
-#: ../rules/base.xml.in.h:327
+#: ../rules/base.xml.in.h:328
msgid "mr"
msgstr "mr"
-#: ../rules/base.xml.in.h:328
+#: ../rules/base.xml.in.h:329
msgid "Marathi (KaGaPa phonetic)"
msgstr "Мараті (KaGaPa, фонетична)"
-#: ../rules/base.xml.in.h:329
+#: ../rules/base.xml.in.h:330
msgid "English (India, with rupee sign)"
msgstr "Англійська (Індія, з підтримкою символу рупії)"
#. Keyboard indicator for Bosnian layouts
-#: ../rules/base.xml.in.h:331
+#: ../rules/base.xml.in.h:332
msgid "bs"
msgstr "bs"
-#: ../rules/base.xml.in.h:332
+#: ../rules/base.xml.in.h:333
msgid "Bosnian"
msgstr "Боснійська"
-#: ../rules/base.xml.in.h:333
+#: ../rules/base.xml.in.h:334
msgid "Bosnian (with guillemets for quotes)"
msgstr "Боснійська (кутові лапки)"
-#: ../rules/base.xml.in.h:334
+#: ../rules/base.xml.in.h:335
msgid "Bosnian (with Bosnian digraphs)"
msgstr "Боснійська (з боснійськими диграфами)"
-#: ../rules/base.xml.in.h:335
+#: ../rules/base.xml.in.h:336
msgid "Bosnian (US keyboard with Bosnian digraphs)"
msgstr "Боснійська (клавіатура США з боснійськими диграфами)"
-#: ../rules/base.xml.in.h:336
+#: ../rules/base.xml.in.h:337
msgid "Bosnian (US keyboard with Bosnian letters)"
msgstr "Боснійська (клавіатура США з боснійськими літерами)"
#. Keyboard indicator for Portuguese layouts
-#: ../rules/base.xml.in.h:338 ../rules/base.extras.xml.in.h:86
+#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
msgid "pt"
msgstr "pt"
-#: ../rules/base.xml.in.h:339 ../rules/base.extras.xml.in.h:87
+#: ../rules/base.xml.in.h:340 ../rules/base.extras.xml.in.h:88
msgid "Portuguese (Brazil)"
msgstr "Португальська (Бразилія)"
-#: ../rules/base.xml.in.h:340
+#: ../rules/base.xml.in.h:341
msgid "Portuguese (Brazil, eliminate dead keys)"
msgstr "Португальська (Бразилія, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:341
+#: ../rules/base.xml.in.h:342
msgid "Portuguese (Brazil, Dvorak)"
msgstr "Португальська (Бразилія, Дворак)"
-#: ../rules/base.xml.in.h:342
+#: ../rules/base.xml.in.h:343
msgid "Portuguese (Brazil, Nativo)"
msgstr "Португальська (Бразилія, Nativo)"
-#: ../rules/base.xml.in.h:343
+#: ../rules/base.xml.in.h:344
msgid "Portuguese (Brazil, Nativo for US keyboards)"
msgstr "Португальська (Бразилія, Nativo для американських клавіатур)"
-#: ../rules/base.xml.in.h:344
+#: ../rules/base.xml.in.h:345
msgid "Esperanto (Brazil, Nativo)"
msgstr "Есперанто (бразильська, Nativo)"
#. Keyboard indicator for Bulgarian layouts
-#: ../rules/base.xml.in.h:346
+#: ../rules/base.xml.in.h:347
msgid "bg"
msgstr "bg"
-#: ../rules/base.xml.in.h:347
+#: ../rules/base.xml.in.h:348
msgid "Bulgarian"
msgstr "Болгарська"
-#: ../rules/base.xml.in.h:348
+#: ../rules/base.xml.in.h:349
msgid "Bulgarian (traditional phonetic)"
msgstr "Болгарська (традиційна фонетична)"
-#: ../rules/base.xml.in.h:349
+#: ../rules/base.xml.in.h:350
msgid "Bulgarian (new phonetic)"
msgstr "Болгарська (нова фонетична)"
-#: ../rules/base.xml.in.h:350
+#: ../rules/base.xml.in.h:351
msgid "Arabic (Morocco)"
msgstr "Арабська (Марокко)"
#. Keyboard indicator for French layouts
-#: ../rules/base.xml.in.h:352 ../rules/base.extras.xml.in.h:15
+#: ../rules/base.xml.in.h:353 ../rules/base.extras.xml.in.h:15
msgid "fr"
msgstr "fr"
-#: ../rules/base.xml.in.h:353
+#: ../rules/base.xml.in.h:354
msgid "French (Morocco)"
msgstr "Французька (Марокко)"
#. Keyboard indicator for Berber layouts
-#: ../rules/base.xml.in.h:355
+#: ../rules/base.xml.in.h:356
msgid "ber"
msgstr "ber"
-#: ../rules/base.xml.in.h:356
+#: ../rules/base.xml.in.h:357
msgid "Berber (Morocco, Tifinagh)"
msgstr "Берберська (Марокко, давньолівійська)"
-#: ../rules/base.xml.in.h:357
+#: ../rules/base.xml.in.h:358
msgid "Berber (Morocco, Tifinagh alternative)"
msgstr "Берберська (Марокко, тифінаг, альтернативна)"
-#: ../rules/base.xml.in.h:358
+#: ../rules/base.xml.in.h:359
msgid "Berber (Morocco, Tifinagh alternative phonetic)"
msgstr "Берберська (Марокко, тифінаг, альтернативна фонетична)"
-#: ../rules/base.xml.in.h:359
+#: ../rules/base.xml.in.h:360
msgid "Berber (Morocco, Tifinagh extended)"
msgstr "Берберська (Марокко, тифінаг, розширена)"
-#: ../rules/base.xml.in.h:360
+#: ../rules/base.xml.in.h:361
msgid "Berber (Morocco, Tifinagh phonetic)"
msgstr "Берберська (Марокко, тифінаг, фонетична)"
-#: ../rules/base.xml.in.h:361
+#: ../rules/base.xml.in.h:362
msgid "Berber (Morocco, Tifinagh extended phonetic)"
msgstr "Берберська (Марокко, тифінаг, розширена фонетична)"
#. Keyboard indicator for Cameroon layouts
-#: ../rules/base.xml.in.h:363 ../rules/base.extras.xml.in.h:149
+#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
msgid "cm"
msgstr "cm"
-#: ../rules/base.xml.in.h:364 ../rules/base.extras.xml.in.h:150
+#: ../rules/base.xml.in.h:365 ../rules/base.extras.xml.in.h:151
msgid "English (Cameroon)"
msgstr "Англійська (Камерун)"
-#: ../rules/base.xml.in.h:365
+#: ../rules/base.xml.in.h:366
msgid "French (Cameroon)"
msgstr "Французька (Камерун)"
-#: ../rules/base.xml.in.h:366
+#: ../rules/base.xml.in.h:367
msgid "Cameroon Multilingual (qwerty)"
msgstr "Камерунська (багатомовна, qwerty)"
-#: ../rules/base.xml.in.h:367
+#: ../rules/base.xml.in.h:368
msgid "Cameroon Multilingual (azerty)"
msgstr "Камерунська (багатомовна, azerty)"
-#: ../rules/base.xml.in.h:368
+#: ../rules/base.xml.in.h:369
msgid "Cameroon Multilingual (Dvorak)"
msgstr "Камерунська (багатомовна, Дворак)"
#. Keyboard indicator for Burmese layouts
-#: ../rules/base.xml.in.h:370
+#: ../rules/base.xml.in.h:371
msgid "my"
msgstr "my"
-#: ../rules/base.xml.in.h:371
+#: ../rules/base.xml.in.h:372
msgid "Burmese"
msgstr "Бірманська"
-#: ../rules/base.xml.in.h:372 ../rules/base.extras.xml.in.h:16
+#: ../rules/base.xml.in.h:373 ../rules/base.extras.xml.in.h:16
msgid "French (Canada)"
msgstr "Французька (Канада)"
-#: ../rules/base.xml.in.h:373
+#: ../rules/base.xml.in.h:374
msgid "French (Canada, Dvorak)"
msgstr "Французька (Канада, Дворак)"
-#: ../rules/base.xml.in.h:374
+#: ../rules/base.xml.in.h:375
msgid "French (Canada, legacy)"
msgstr "Французька (Канада, застаріла)"
-#: ../rules/base.xml.in.h:375
+#: ../rules/base.xml.in.h:376
msgid "Canadian Multilingual"
msgstr "Канадська (багатомовна)"
-#: ../rules/base.xml.in.h:376
+#: ../rules/base.xml.in.h:377
msgid "Canadian Multilingual (first part)"
msgstr "Канадська (багатомовна, перша частина)"
-#: ../rules/base.xml.in.h:377
+#: ../rules/base.xml.in.h:378
msgid "Canadian Multilingual (second part)"
msgstr "Канадська (багатомовна, друга частина)"
#. Keyboard indicator for Inuktikut layouts
-#: ../rules/base.xml.in.h:379
+#: ../rules/base.xml.in.h:380
msgid "ike"
msgstr "ike"
-#: ../rules/base.xml.in.h:380
+#: ../rules/base.xml.in.h:381
msgid "Inuktitut"
msgstr "Інуктитут"
-#: ../rules/base.xml.in.h:381
+#: ../rules/base.xml.in.h:382
msgid "English (Canada)"
msgstr "Англійська (Канада)"
-#: ../rules/base.xml.in.h:382
+#: ../rules/base.xml.in.h:383
msgid "French (Democratic Republic of the Congo)"
msgstr "Французька (Демократична республіка Конго)"
#. Keyboard indicator for Taiwanese layouts
-#: ../rules/base.xml.in.h:384
+#: ../rules/base.xml.in.h:385
msgid "zh"
msgstr "zh"
-#: ../rules/base.xml.in.h:385
+#: ../rules/base.xml.in.h:386
msgid "Chinese"
msgstr "Китайська"
-#: ../rules/base.xml.in.h:386
+#: ../rules/base.xml.in.h:387
msgid "Tibetan"
msgstr "Тибетська"
-#: ../rules/base.xml.in.h:387
+#: ../rules/base.xml.in.h:388
msgid "Tibetan (with ASCII numerals)"
msgstr "Тибетська (з ASCII числами)"
-#: ../rules/base.xml.in.h:388
+#: ../rules/base.xml.in.h:389
msgid "ug"
msgstr "ug"
-#: ../rules/base.xml.in.h:389
+#: ../rules/base.xml.in.h:390
msgid "Uyghur"
msgstr "Уйгурська"
#. Keyboard indicator for Croatian layouts
-#: ../rules/base.xml.in.h:391
+#: ../rules/base.xml.in.h:392
msgid "hr"
msgstr "hr"
-#: ../rules/base.xml.in.h:392
+#: ../rules/base.xml.in.h:393
msgid "Croatian"
msgstr "Хорватська"
-#: ../rules/base.xml.in.h:393
+#: ../rules/base.xml.in.h:394
msgid "Croatian (with guillemets for quotes)"
msgstr "Хорватська (кутові лапки)"
-#: ../rules/base.xml.in.h:394
+#: ../rules/base.xml.in.h:395
msgid "Croatian (with Croatian digraphs)"
msgstr "Хорватська (з хорватськими диграфами)"
-#: ../rules/base.xml.in.h:395
+#: ../rules/base.xml.in.h:396
msgid "Croatian (US keyboard with Croatian digraphs)"
msgstr "Хорватська (клавіатура США з хорватськими диграфами)"
-#: ../rules/base.xml.in.h:396
+#: ../rules/base.xml.in.h:397
msgid "Croatian (US keyboard with Croatian letters)"
msgstr "Хорватська (клавіатура США з хорватськими літерами)"
#. Keyboard indicator for Chech layouts
-#: ../rules/base.xml.in.h:398 ../rules/base.extras.xml.in.h:89
+#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
msgid "cs"
msgstr "cs"
-#: ../rules/base.xml.in.h:399 ../rules/base.extras.xml.in.h:90
+#: ../rules/base.xml.in.h:400 ../rules/base.extras.xml.in.h:91
msgid "Czech"
msgstr "Чеська"
-#: ../rules/base.xml.in.h:400
+#: ../rules/base.xml.in.h:401
msgid "Czech (with &lt;\\|&gt; key)"
msgstr "Чеська (з клавішею &lt;\\|&gt;)"
-#: ../rules/base.xml.in.h:401
+#: ../rules/base.xml.in.h:402
msgid "Czech (qwerty)"
msgstr "Чеська (qwerty)"
-#: ../rules/base.xml.in.h:402
+#: ../rules/base.xml.in.h:403
msgid "Czech (qwerty, extended Backslash)"
msgstr "Чеська (qwerty, розширені функції Backslash)"
-#: ../rules/base.xml.in.h:403
+#: ../rules/base.xml.in.h:404
msgid "Czech (UCW layout, accented letters only)"
msgstr "Чеська (UCW-розкладка, лише літери з акцентами)"
-#: ../rules/base.xml.in.h:404
+#: ../rules/base.xml.in.h:405
msgid "Czech (US Dvorak with CZ UCW support)"
msgstr "Чеська (Дворак-США з підтримкою CZ UCW)"
#. Keyboard indicator for Danish layouts
-#: ../rules/base.xml.in.h:406 ../rules/base.extras.xml.in.h:92
+#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
msgid "da"
msgstr "da"
-#: ../rules/base.xml.in.h:407 ../rules/base.extras.xml.in.h:93
+#: ../rules/base.xml.in.h:408 ../rules/base.extras.xml.in.h:94
msgid "Danish"
msgstr "Данська"
-#: ../rules/base.xml.in.h:408
+#: ../rules/base.xml.in.h:409
msgid "Danish (eliminate dead keys)"
msgstr "Данська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:409
+#: ../rules/base.xml.in.h:410
msgid "Danish (Winkeys)"
msgstr "Данська (Winkeys)"
-#: ../rules/base.xml.in.h:410
+#: ../rules/base.xml.in.h:411
msgid "Danish (Macintosh)"
msgstr "Данська (Macintosh)"
-#: ../rules/base.xml.in.h:411
+#: ../rules/base.xml.in.h:412
msgid "Danish (Macintosh, eliminate dead keys)"
msgstr "Данська (Macintosh, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:412
+#: ../rules/base.xml.in.h:413
msgid "Danish (Dvorak)"
msgstr "Данська (Дворака)"
#. Keyboard indicator for Dutch layouts
-#: ../rules/base.xml.in.h:414 ../rules/base.extras.xml.in.h:95
+#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
msgid "nl"
msgstr "nl"
-#: ../rules/base.xml.in.h:415 ../rules/base.extras.xml.in.h:96
+#: ../rules/base.xml.in.h:416 ../rules/base.extras.xml.in.h:97
msgid "Dutch"
msgstr "Голландська"
-#: ../rules/base.xml.in.h:416
+#: ../rules/base.xml.in.h:417
msgid "Dutch (Sun dead keys)"
msgstr "Голландська (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:417
+#: ../rules/base.xml.in.h:418
msgid "Dutch (Macintosh)"
msgstr "Голландська (Macintosh)"
-#: ../rules/base.xml.in.h:418
+#: ../rules/base.xml.in.h:419
msgid "Dutch (standard)"
msgstr "Голландська (стандартна)"
#. Keyboard indicator for Dzongkha layouts
-#: ../rules/base.xml.in.h:420
+#: ../rules/base.xml.in.h:421
msgid "dz"
msgstr "dz"
-#: ../rules/base.xml.in.h:421
+#: ../rules/base.xml.in.h:422
msgid "Dzongkha"
msgstr "Дзонг-ке"
#. Keyboard indicator for Estonian layouts
-#: ../rules/base.xml.in.h:423 ../rules/base.extras.xml.in.h:98
+#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
msgid "et"
msgstr "et"
-#: ../rules/base.xml.in.h:424 ../rules/base.extras.xml.in.h:99
+#: ../rules/base.xml.in.h:425 ../rules/base.extras.xml.in.h:100
msgid "Estonian"
msgstr "Естонська"
-#: ../rules/base.xml.in.h:425
+#: ../rules/base.xml.in.h:426
msgid "Estonian (eliminate dead keys)"
msgstr "Естонська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:426
+#: ../rules/base.xml.in.h:427
msgid "Estonian (Dvorak)"
msgstr "Естонська (Дворака)"
-#: ../rules/base.xml.in.h:427
+#: ../rules/base.xml.in.h:428
msgid "Estonian (US keyboard with Estonian letters)"
msgstr "Естонська (клавіатура США з естонськими літерами)"
-#: ../rules/base.xml.in.h:428 ../rules/base.extras.xml.in.h:29
+#: ../rules/base.xml.in.h:429 ../rules/base.extras.xml.in.h:30
msgid "Persian"
msgstr "Перська"
-#: ../rules/base.xml.in.h:429
+#: ../rules/base.xml.in.h:430
msgid "Persian (with Persian keypad)"
msgstr "Перська (з перською дод. панеллю)"
#. Keyboard indicator for Kurdish layouts
-#: ../rules/base.xml.in.h:431
+#: ../rules/base.xml.in.h:432
msgid "ku"
msgstr "ku"
-#: ../rules/base.xml.in.h:432
+#: ../rules/base.xml.in.h:433
msgid "Kurdish (Iran, Latin Q)"
msgstr "Курдська (Іран, латиниця Q)"
-#: ../rules/base.xml.in.h:433
+#: ../rules/base.xml.in.h:434
msgid "Kurdish (Iran, F)"
msgstr "Курдська (Іран, F)"
-#: ../rules/base.xml.in.h:434
+#: ../rules/base.xml.in.h:435
msgid "Kurdish (Iran, Latin Alt-Q)"
msgstr "Курдська (Іран, латиниця Alt-Q)"
-#: ../rules/base.xml.in.h:435
+#: ../rules/base.xml.in.h:436
msgid "Kurdish (Iran, Arabic-Latin)"
msgstr "Курдська (Іран, арабсько-латинська)"
-#: ../rules/base.xml.in.h:436
+#: ../rules/base.xml.in.h:437
msgid "Iraqi"
msgstr "Іракська"
-#: ../rules/base.xml.in.h:437
+#: ../rules/base.xml.in.h:438
msgid "Kurdish (Iraq, Latin Q)"
msgstr "Курдська (Ірак, латиниця Q)"
-#: ../rules/base.xml.in.h:438
+#: ../rules/base.xml.in.h:439
msgid "Kurdish (Iraq, F)"
msgstr "Курдська (Ірак, F)"
-#: ../rules/base.xml.in.h:439
+#: ../rules/base.xml.in.h:440
msgid "Kurdish (Iraq, Latin Alt-Q)"
msgstr "Курдська (Ірак, латиниця Alt-Q)"
-#: ../rules/base.xml.in.h:440
+#: ../rules/base.xml.in.h:441
msgid "Kurdish (Iraq, Arabic-Latin)"
msgstr "Курдська (Ірак, арабсько-латинська)"
#. Keyboard indicator for Faroese layouts
-#: ../rules/base.xml.in.h:442
+#: ../rules/base.xml.in.h:443
msgid "fo"
msgstr "fo"
-#: ../rules/base.xml.in.h:443
+#: ../rules/base.xml.in.h:444
msgid "Faroese"
msgstr "Фарерська"
-#: ../rules/base.xml.in.h:444
+#: ../rules/base.xml.in.h:445
msgid "Faroese (eliminate dead keys)"
msgstr "Фарерська (вимкнути сліпі клавіші)"
#. Keyboard indicator for Finnish layouts
-#: ../rules/base.xml.in.h:446 ../rules/base.extras.xml.in.h:101
+#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
msgid "fi"
msgstr "fi"
-#: ../rules/base.xml.in.h:447 ../rules/base.extras.xml.in.h:102
+#: ../rules/base.xml.in.h:448 ../rules/base.extras.xml.in.h:103
msgid "Finnish"
msgstr "Фінська"
-#: ../rules/base.xml.in.h:448
+#: ../rules/base.xml.in.h:449
msgid "Finnish (classic)"
msgstr "Фінська (класична)"
-#: ../rules/base.xml.in.h:449
+#: ../rules/base.xml.in.h:450
msgid "Finnish (classic, eliminate dead keys)"
msgstr "Фінська (класична, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:450
+#: ../rules/base.xml.in.h:451
msgid "Finnish (Winkeys)"
msgstr "Фінська (Winkeys)"
-#: ../rules/base.xml.in.h:451
+#: ../rules/base.xml.in.h:452
msgid "Northern Saami (Finland)"
msgstr "Північно-саамська (Фінляндія)"
-#: ../rules/base.xml.in.h:452
+#: ../rules/base.xml.in.h:453
msgid "Finnish (Macintosh)"
msgstr "Фінська (Macintosh)"
-#: ../rules/base.xml.in.h:453 ../rules/base.extras.xml.in.h:104
+#: ../rules/base.xml.in.h:454 ../rules/base.extras.xml.in.h:105
msgid "French"
msgstr "Французька"
-#: ../rules/base.xml.in.h:454
+#: ../rules/base.xml.in.h:455
msgid "French (eliminate dead keys)"
msgstr "Французька (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:455
+#: ../rules/base.xml.in.h:456
msgid "French (Sun dead keys)"
msgstr "Французька (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:456
+#: ../rules/base.xml.in.h:457
msgid "French (alternative)"
msgstr "Французька (альтернативна)"
-#: ../rules/base.xml.in.h:457
+#: ../rules/base.xml.in.h:458
msgid "French (alternative, Latin-9 only)"
msgstr "Французька (альтернативна, лише Latin-9)"
-#: ../rules/base.xml.in.h:458
+#: ../rules/base.xml.in.h:459
msgid "French (alternative, eliminate dead keys)"
msgstr "Французька (альтернативна, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:459
+#: ../rules/base.xml.in.h:460
msgid "French (alternative, Sun dead keys)"
msgstr "Французька (альтернативна, сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:460
+#: ../rules/base.xml.in.h:461
msgid "French (legacy, alternative)"
msgstr "Французька (застаріла, альтернативна)"
-#: ../rules/base.xml.in.h:461
+#: ../rules/base.xml.in.h:462
msgid "French (legacy, alternative, eliminate dead keys)"
msgstr "Французька (застаріла, альтернативна, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:462
+#: ../rules/base.xml.in.h:463
msgid "French (legacy, alternative, Sun dead keys)"
msgstr "Французька (застаріла, альтернативна, сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:463
+#: ../rules/base.xml.in.h:464
msgid "French (Bepo, ergonomic, Dvorak way)"
msgstr "Французька (Bepo, ергономічна, варіант Дворак)"
-#: ../rules/base.xml.in.h:464
+#: ../rules/base.xml.in.h:465
msgid "French (Bepo, ergonomic, Dvorak way, Latin-9 only)"
msgstr "Французька (Bepo, ергономічна, варіант Дворак, лише Latin-9)"
-#: ../rules/base.xml.in.h:465
+#: ../rules/base.xml.in.h:466
msgid "French (Dvorak)"
msgstr "Французька (Дворак)"
-#: ../rules/base.xml.in.h:466
+#: ../rules/base.xml.in.h:467
msgid "French (Macintosh)"
msgstr "Французька (Macintosh)"
-#: ../rules/base.xml.in.h:467
+#: ../rules/base.xml.in.h:468
msgid "French (Breton)"
msgstr "Французька (бретонська)"
-#: ../rules/base.xml.in.h:468
+#: ../rules/base.xml.in.h:469
msgid "Occitan"
msgstr "Окситанська"
-#: ../rules/base.xml.in.h:469
+#: ../rules/base.xml.in.h:470
msgid "Georgian (France, AZERTY Tskapo)"
msgstr "Грузинська (Франція, AZERTY Tskapo)"
-#: ../rules/base.xml.in.h:470
+#: ../rules/base.xml.in.h:471
msgid "English (Ghana)"
msgstr "Англійська (Гана)"
-#: ../rules/base.xml.in.h:471
+#: ../rules/base.xml.in.h:472
msgid "English (Ghana, multilingual)"
msgstr "Англійська (Гана, інтернаціональна)"
#. Keyboard indicator for Akan layouts
-#: ../rules/base.xml.in.h:473
+#: ../rules/base.xml.in.h:474
msgid "ak"
msgstr "ak"
-#: ../rules/base.xml.in.h:474
+#: ../rules/base.xml.in.h:475
msgid "Akan"
msgstr "Акан"
#. Keyboard indicator for Ewe layouts
-#: ../rules/base.xml.in.h:476
+#: ../rules/base.xml.in.h:477
msgid "ee"
msgstr "ee"
-#: ../rules/base.xml.in.h:477
+#: ../rules/base.xml.in.h:478
msgid "Ewe"
msgstr "Ewe"
#. Keyboard indicator for Fula layouts
-#: ../rules/base.xml.in.h:479
+#: ../rules/base.xml.in.h:480
msgid "ff"
msgstr "ff"
-#: ../rules/base.xml.in.h:480
+#: ../rules/base.xml.in.h:481
msgid "Fula"
msgstr "Фула"
#. Keyboard indicator for Ga layouts
-#: ../rules/base.xml.in.h:482
+#: ../rules/base.xml.in.h:483
msgid "gaa"
msgstr "gaa"
-#: ../rules/base.xml.in.h:483
+#: ../rules/base.xml.in.h:484
msgid "Ga"
msgstr "Га"
#. Keyboard indicator for Hausa layouts
-#: ../rules/base.xml.in.h:485
+#: ../rules/base.xml.in.h:486
msgid "ha"
msgstr "ha"
-#: ../rules/base.xml.in.h:486
+#: ../rules/base.xml.in.h:487
msgid "Hausa"
msgstr "Hausa"
#. Keyboard indicator for Avatime layouts
-#: ../rules/base.xml.in.h:488
+#: ../rules/base.xml.in.h:489
msgid "avn"
msgstr "avn"
-#: ../rules/base.xml.in.h:489
+#: ../rules/base.xml.in.h:490
msgid "Avatime"
msgstr "Аватіме"
-#: ../rules/base.xml.in.h:490
+#: ../rules/base.xml.in.h:491
msgid "English (Ghana, GILLBT)"
msgstr "Англійська (Гана, GILLBT)"
-#: ../rules/base.xml.in.h:491
+#: ../rules/base.xml.in.h:492
msgid "French (Guinea)"
msgstr "Французька (Гвінея)"
#. Keyboard indicator for Georgian layouts
-#: ../rules/base.xml.in.h:493
+#: ../rules/base.xml.in.h:494
msgid "ka"
msgstr "ka"
-#: ../rules/base.xml.in.h:494
+#: ../rules/base.xml.in.h:495
msgid "Georgian"
msgstr "Грузинська"
-#: ../rules/base.xml.in.h:495
+#: ../rules/base.xml.in.h:496
msgid "Georgian (ergonomic)"
msgstr "Грузинська (ергономічна)"
-#: ../rules/base.xml.in.h:496
+#: ../rules/base.xml.in.h:497
msgid "Georgian (MESS)"
msgstr "Грузинська (MESS)"
-#: ../rules/base.xml.in.h:497
+#: ../rules/base.xml.in.h:498
msgid "Russian (Georgia)"
msgstr "Російська (Грузія)"
-#: ../rules/base.xml.in.h:498
+#: ../rules/base.xml.in.h:499
msgid "Ossetian (Georgia)"
msgstr "Осетинська (Грузія)"
-#: ../rules/base.xml.in.h:499 ../rules/base.extras.xml.in.h:23
+#: ../rules/base.xml.in.h:500 ../rules/base.extras.xml.in.h:23
msgid "German"
msgstr "Німецька"
-#: ../rules/base.xml.in.h:500
+#: ../rules/base.xml.in.h:501
msgid "German (dead acute)"
msgstr "Німецька (сліпий акут)"
-#: ../rules/base.xml.in.h:501
+#: ../rules/base.xml.in.h:502
msgid "German (dead grave acute)"
msgstr "Німецька (сліпий наголос-акут)"
-#: ../rules/base.xml.in.h:502
+#: ../rules/base.xml.in.h:503
msgid "German (eliminate dead keys)"
msgstr "Німецька (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:503
+#: ../rules/base.xml.in.h:504
msgid "German (T3)"
msgstr "Німецька (T3)"
-#: ../rules/base.xml.in.h:504
+#: ../rules/base.xml.in.h:505
msgid "Romanian (Germany)"
msgstr "Румунська (Німеччина)"
-#: ../rules/base.xml.in.h:505
+#: ../rules/base.xml.in.h:506
msgid "Romanian (Germany, eliminate dead keys)"
msgstr "Німецька (Німеччина, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:506
+#: ../rules/base.xml.in.h:507
msgid "German (Dvorak)"
msgstr "Німецька (Дворак)"
-#: ../rules/base.xml.in.h:507
+#: ../rules/base.xml.in.h:508
msgid "German (Sun dead keys)"
msgstr "Німецька (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:508
+#: ../rules/base.xml.in.h:509
msgid "German (Neo 2)"
msgstr "Німецька (Neo 2)"
-#: ../rules/base.xml.in.h:509
+#: ../rules/base.xml.in.h:510
msgid "German (Macintosh)"
msgstr "Німецька (Macintosh)"
-#: ../rules/base.xml.in.h:510
+#: ../rules/base.xml.in.h:511
msgid "German (Macintosh, eliminate dead keys)"
msgstr "Німецька (Macintosh, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:511
+#: ../rules/base.xml.in.h:512
msgid "Lower Sorbian"
msgstr "Нижньолужицька"
-#: ../rules/base.xml.in.h:512
+#: ../rules/base.xml.in.h:513
msgid "Lower Sorbian (qwertz)"
msgstr "Нижньолужицька (qwertz)"
-#: ../rules/base.xml.in.h:513
+#: ../rules/base.xml.in.h:514
msgid "German (qwerty)"
msgstr "Німецька (qwerty)"
-#: ../rules/base.xml.in.h:514
+#: ../rules/base.xml.in.h:515
msgid "Turkish (Germany)"
msgstr "Турецька (Німеччина)"
-#: ../rules/base.xml.in.h:515
+#: ../rules/base.xml.in.h:516
msgid "Russian (Germany, phonetic)"
msgstr "Російська (Німеччина, фонетична)"
-#: ../rules/base.xml.in.h:516
+#: ../rules/base.xml.in.h:517
msgid "German (legacy)"
msgstr "Німецька (застаріла)"
#. Keyboard indicator for Greek layouts
-#: ../rules/base.xml.in.h:518 ../rules/base.extras.xml.in.h:106
+#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
msgid "gr"
msgstr "gr"
-#: ../rules/base.xml.in.h:519 ../rules/base.extras.xml.in.h:107
+#: ../rules/base.xml.in.h:520 ../rules/base.extras.xml.in.h:108
msgid "Greek"
msgstr "Грецька"
-#: ../rules/base.xml.in.h:520
+#: ../rules/base.xml.in.h:521
msgid "Greek (simple)"
msgstr "Грецька (проста)"
-#: ../rules/base.xml.in.h:521
+#: ../rules/base.xml.in.h:522
msgid "Greek (extended)"
msgstr "Грецька (розширена)"
-#: ../rules/base.xml.in.h:522
+#: ../rules/base.xml.in.h:523
msgid "Greek (eliminate dead keys)"
msgstr "Грецька (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:523
+#: ../rules/base.xml.in.h:524
msgid "Greek (polytonic)"
msgstr "Грецька (поліфонічна)"
#. Keyboard indicator for Hungarian layouts
-#: ../rules/base.xml.in.h:525
+#: ../rules/base.xml.in.h:526
msgid "hu"
msgstr "hu"
-#: ../rules/base.xml.in.h:526
+#: ../rules/base.xml.in.h:527
msgid "Hungarian"
msgstr "Угорська"
-#: ../rules/base.xml.in.h:527
+#: ../rules/base.xml.in.h:528
msgid "Hungarian (standard)"
msgstr "Угорська (стандартна)"
-#: ../rules/base.xml.in.h:528
+#: ../rules/base.xml.in.h:529
msgid "Hungarian (eliminate dead keys)"
msgstr "Угорська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:529
+#: ../rules/base.xml.in.h:530
msgid "Hungarian (qwerty)"
msgstr "Угорська (qwerty)"
-#: ../rules/base.xml.in.h:530
+#: ../rules/base.xml.in.h:531
msgid "Hungarian (101/qwertz/comma/dead keys)"
msgstr "Угорська (101/qwertz/кома/сліпі клавіші)"
-#: ../rules/base.xml.in.h:531
+#: ../rules/base.xml.in.h:532
msgid "Hungarian (101/qwertz/comma/eliminate dead keys)"
msgstr "Угорська (101/qwertz/крапка/вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:532
+#: ../rules/base.xml.in.h:533
msgid "Hungarian (101/qwertz/dot/dead keys)"
msgstr "Угорська (101/qwertz/крапка/сліпі клавіші)"
-#: ../rules/base.xml.in.h:533
+#: ../rules/base.xml.in.h:534
msgid "Hungarian (101/qwertz/dot/eliminate dead keys)"
msgstr "Угорська (101/qwertz/крапка/вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:534
+#: ../rules/base.xml.in.h:535
msgid "Hungarian (101/qwerty/comma/dead keys)"
msgstr "Угорська (101/qwerty/кома/сліпі клавіші)"
-#: ../rules/base.xml.in.h:535
+#: ../rules/base.xml.in.h:536
msgid "Hungarian (101/qwerty/comma/eliminate dead keys)"
msgstr "Угорська (101/qwerty/кома/вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:536
+#: ../rules/base.xml.in.h:537
msgid "Hungarian (101/qwerty/dot/dead keys)"
msgstr "Угорська (101/qwerty/крапка/сліпі клавіші)"
-#: ../rules/base.xml.in.h:537
+#: ../rules/base.xml.in.h:538
msgid "Hungarian (101/qwerty/dot/eliminate dead keys)"
msgstr "Угорська (101/qwerty/крапка/вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:538
+#: ../rules/base.xml.in.h:539
msgid "Hungarian (102/qwertz/comma/dead keys)"
msgstr "Угорська (102/qwertz/кома/сліпі клавіші)"
-#: ../rules/base.xml.in.h:539
+#: ../rules/base.xml.in.h:540
msgid "Hungarian (102/qwertz/comma/eliminate dead keys)"
msgstr "Угорська (102/qwertz/крапка/вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:540
+#: ../rules/base.xml.in.h:541
msgid "Hungarian (102/qwertz/dot/dead keys)"
msgstr "Угорська (102/qwertz/крапка/сліпі клавіші)"
-#: ../rules/base.xml.in.h:541
+#: ../rules/base.xml.in.h:542
msgid "Hungarian (102/qwertz/dot/eliminate dead keys)"
msgstr "Угорська (102/qwertz/крапка/вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:542
+#: ../rules/base.xml.in.h:543
msgid "Hungarian (102/qwerty/comma/dead keys)"
msgstr "Угорська (102/qwerty/кома/сліпі клавіші)"
-#: ../rules/base.xml.in.h:543
+#: ../rules/base.xml.in.h:544
msgid "Hungarian (102/qwerty/comma/eliminate dead keys)"
msgstr "Угорська (102/qwerty/кома/вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:544
+#: ../rules/base.xml.in.h:545
msgid "Hungarian (102/qwerty/dot/dead keys)"
msgstr "Угорська (102/qwerty/крапка/сліпі клавіші)"
-#: ../rules/base.xml.in.h:545
+#: ../rules/base.xml.in.h:546
msgid "Hungarian (102/qwerty/dot/eliminate dead keys)"
msgstr "Угорська (102/qwerty/крапка/вимкнути сліпі клавіші)"
#. Keyboard indicator for Icelandic layouts
-#: ../rules/base.xml.in.h:547
+#: ../rules/base.xml.in.h:548
msgid "is"
msgstr "is"
-#: ../rules/base.xml.in.h:548
+#: ../rules/base.xml.in.h:549
msgid "Icelandic"
msgstr "Ісландська"
-#: ../rules/base.xml.in.h:549
+#: ../rules/base.xml.in.h:550
msgid "Icelandic (Sun dead keys)"
msgstr "Ісландська (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:550
+#: ../rules/base.xml.in.h:551
msgid "Icelandic (eliminate dead keys)"
msgstr "Ісландська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:551
+#: ../rules/base.xml.in.h:552
msgid "Icelandic (Macintosh, legacy)"
msgstr "Ісландська (Macintosh, застаріла)"
-#: ../rules/base.xml.in.h:552
+#: ../rules/base.xml.in.h:553
msgid "Icelandic (Macintosh)"
msgstr "Ісландська (Macintosh)"
-#: ../rules/base.xml.in.h:553
+#: ../rules/base.xml.in.h:554
msgid "Icelandic (Dvorak)"
msgstr "Ісландська (Дворак)"
#. Keyboard indicator for Hebrew layouts
-#: ../rules/base.xml.in.h:555 ../rules/base.extras.xml.in.h:77
+#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
msgid "he"
msgstr "he"
-#: ../rules/base.xml.in.h:556 ../rules/base.extras.xml.in.h:78
+#: ../rules/base.xml.in.h:557 ../rules/base.extras.xml.in.h:79
msgid "Hebrew"
msgstr "Іврит"
-#: ../rules/base.xml.in.h:557
+#: ../rules/base.xml.in.h:558
msgid "Hebrew (lyx)"
msgstr "Іврит (lyx)"
-#: ../rules/base.xml.in.h:558
+#: ../rules/base.xml.in.h:559
msgid "Hebrew (phonetic)"
msgstr "Іврит (фонетична)"
-#: ../rules/base.xml.in.h:559
+#: ../rules/base.xml.in.h:560
msgid "Hebrew (Biblical, Tiro)"
msgstr "Іврит (Біблейська, Tiro)"
#. Keyboard indicator for Italian layouts
-#: ../rules/base.xml.in.h:561 ../rules/base.extras.xml.in.h:109
+#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
msgid "it"
msgstr "it"
-#: ../rules/base.xml.in.h:562 ../rules/base.extras.xml.in.h:110
+#: ../rules/base.xml.in.h:563 ../rules/base.extras.xml.in.h:111
msgid "Italian"
msgstr "Італійська"
-#: ../rules/base.xml.in.h:563
+#: ../rules/base.xml.in.h:564
msgid "Italian (eliminate dead keys)"
msgstr "Італійська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:564
+#: ../rules/base.xml.in.h:565
msgid "Italian (Winkeys)"
msgstr "Італійська (Winkeys)"
-#: ../rules/base.xml.in.h:565
+#: ../rules/base.xml.in.h:566
msgid "Italian (Macintosh)"
msgstr "Італійська (Macintosh)"
-#: ../rules/base.xml.in.h:566
+#: ../rules/base.xml.in.h:567
msgid "Italian (US keyboard with Italian letters)"
msgstr "Італійська (клавіатура США з італійськими літерами)"
-#: ../rules/base.xml.in.h:567
+#: ../rules/base.xml.in.h:568
msgid "Georgian (Italy)"
msgstr "Грузинська (Італія)"
-#: ../rules/base.xml.in.h:568
+#: ../rules/base.xml.in.h:569
msgid "Italian (IBM 142)"
msgstr "Італійська (IBM 142)"
#. Keyboard indicator for Japanese layouts
-#: ../rules/base.xml.in.h:570 ../rules/base.extras.xml.in.h:112
+#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
msgid "ja"
msgstr "ja"
-#: ../rules/base.xml.in.h:571 ../rules/base.extras.xml.in.h:113
+#: ../rules/base.xml.in.h:572 ../rules/base.extras.xml.in.h:114
msgid "Japanese"
msgstr "Японська"
-#: ../rules/base.xml.in.h:572
+#: ../rules/base.xml.in.h:573
msgid "Japanese (Kana)"
msgstr "Японська (кана)"
-#: ../rules/base.xml.in.h:573
+#: ../rules/base.xml.in.h:574
msgid "Japanese (Kana 86)"
msgstr "Японська (кана 86)"
-#: ../rules/base.xml.in.h:574
+#: ../rules/base.xml.in.h:575
msgid "Japanese (OADG 109A)"
msgstr "Японська (OADG 109A)"
-#: ../rules/base.xml.in.h:575
+#: ../rules/base.xml.in.h:576
msgid "Japanese (Macintosh)"
msgstr "Японська (Macintosh)"
-#: ../rules/base.xml.in.h:576
+#: ../rules/base.xml.in.h:577
msgid "Japanese (Dvorak)"
msgstr "Японська (Дворак)"
#. Keyboard indicator for Kikuyu layouts
-#: ../rules/base.xml.in.h:578
+#: ../rules/base.xml.in.h:579
msgid "ki"
msgstr "ki"
-#: ../rules/base.xml.in.h:579
+#: ../rules/base.xml.in.h:580
msgid "Kyrgyz"
msgstr "Киргизька"
-#: ../rules/base.xml.in.h:580
+#: ../rules/base.xml.in.h:581
msgid "Kyrgyz (phonetic)"
msgstr "Киргизька (фонетична)"
#. Keyboard indicator for Khmer layouts
-#: ../rules/base.xml.in.h:582
+#: ../rules/base.xml.in.h:583
msgid "km"
msgstr "km"
-#: ../rules/base.xml.in.h:583
+#: ../rules/base.xml.in.h:584
msgid "Khmer (Cambodia)"
msgstr "Кхмерська (Камбоджа)"
#. Keyboard indicator for Kazakh layouts
-#: ../rules/base.xml.in.h:585
+#: ../rules/base.xml.in.h:586
msgid "kk"
msgstr "kk"
-#: ../rules/base.xml.in.h:586
+#: ../rules/base.xml.in.h:587
msgid "Kazakh"
msgstr "Казахська"
-#: ../rules/base.xml.in.h:587
+#: ../rules/base.xml.in.h:588
msgid "Russian (Kazakhstan, with Kazakh)"
msgstr "Російська (Казахстан, з казахською)"
-#: ../rules/base.xml.in.h:588
+#: ../rules/base.xml.in.h:589
msgid "Kazakh (with Russian)"
msgstr "Казахська (з російськими)"
#. Keyboard indicator for Lao layouts
-#: ../rules/base.xml.in.h:590
+#: ../rules/base.xml.in.h:591
msgid "lo"
msgstr "lo"
-#: ../rules/base.xml.in.h:591
+#: ../rules/base.xml.in.h:592
msgid "Lao"
msgstr "Лаоська"
-#: ../rules/base.xml.in.h:592
+#: ../rules/base.xml.in.h:593
msgid "Lao (STEA proposed standard layout)"
msgstr "Лаоська (стандартна розкладка, запропонована STEA)"
#. Keyboard indicator for Spanish layouts
-#: ../rules/base.xml.in.h:594 ../rules/base.extras.xml.in.h:125
+#: ../rules/base.xml.in.h:595 ../rules/base.extras.xml.in.h:126
msgid "es"
msgstr "es"
-#: ../rules/base.xml.in.h:595
+#: ../rules/base.xml.in.h:596
msgid "Spanish (Latin American)"
msgstr "Іспанська (латиноамериканська)"
-#: ../rules/base.xml.in.h:596
+#: ../rules/base.xml.in.h:597
msgid "Spanish (Latin American, eliminate dead keys)"
msgstr "Іспанська (латиноамериканська, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:597
+#: ../rules/base.xml.in.h:598
msgid "Spanish (Latin American, include dead tilde)"
msgstr "Іспанська (латиноамериканська зі «спеціальною» тильдою)"
-#: ../rules/base.xml.in.h:598
+#: ../rules/base.xml.in.h:599
msgid "Spanish (Latin American, Sun dead keys)"
msgstr "Іспанська (латиноамериканська, сліпі клавіші Sun)"
+#: ../rules/base.xml.in.h:600
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Іспанська (латиноамериканська, Дворак)"
+
#. Keyboard indicator for Lithuanian layouts
-#: ../rules/base.xml.in.h:600 ../rules/base.extras.xml.in.h:31
+#: ../rules/base.xml.in.h:602 ../rules/base.extras.xml.in.h:32
msgid "lt"
msgstr "lt"
-#: ../rules/base.xml.in.h:601 ../rules/base.extras.xml.in.h:32
+#: ../rules/base.xml.in.h:603 ../rules/base.extras.xml.in.h:33
msgid "Lithuanian"
msgstr "Литовська"
-#: ../rules/base.xml.in.h:602
+#: ../rules/base.xml.in.h:604
msgid "Lithuanian (standard)"
msgstr "Литовська (стандартна)"
-#: ../rules/base.xml.in.h:603
+#: ../rules/base.xml.in.h:605
msgid "Lithuanian (US keyboard with Lithuanian letters)"
msgstr "Литовська (клавіатура США, з литовськими літерами)"
-#: ../rules/base.xml.in.h:604
+#: ../rules/base.xml.in.h:606
msgid "Lithuanian (IBM LST 1205-92)"
msgstr "Литовська (IBM LST 1205-92)"
-#: ../rules/base.xml.in.h:605
+#: ../rules/base.xml.in.h:607
msgid "Lithuanian (LEKP)"
msgstr "Литовська (LEKP)"
-#: ../rules/base.xml.in.h:606
+#: ../rules/base.xml.in.h:608
msgid "Lithuanian (LEKPa)"
msgstr "Литовська (LEKPa)"
#. Keyboard indicator for Latvian layouts
-#: ../rules/base.xml.in.h:608 ../rules/base.extras.xml.in.h:35
+#: ../rules/base.xml.in.h:610 ../rules/base.extras.xml.in.h:36
msgid "lv"
msgstr "lv"
-#: ../rules/base.xml.in.h:609 ../rules/base.extras.xml.in.h:36
+#: ../rules/base.xml.in.h:611 ../rules/base.extras.xml.in.h:37
msgid "Latvian"
msgstr "Латвійська"
-#: ../rules/base.xml.in.h:610
+#: ../rules/base.xml.in.h:612
msgid "Latvian (apostrophe variant)"
msgstr "Латвійська (варіант з апострофом)"
-#: ../rules/base.xml.in.h:611
+#: ../rules/base.xml.in.h:613
msgid "Latvian (tilde variant)"
msgstr "Латвійська (варіант з тильдою)"
-#: ../rules/base.xml.in.h:612
+#: ../rules/base.xml.in.h:614
msgid "Latvian (F variant)"
msgstr "Латвійська (варіант з літерою F)"
-#: ../rules/base.xml.in.h:613
+#: ../rules/base.xml.in.h:615
msgid "Latvian (modern)"
msgstr "Латвійська (сучасна)"
-#: ../rules/base.xml.in.h:614
+#: ../rules/base.xml.in.h:616
msgid "Latvian (ergonomic, ŪGJRMV)"
msgstr "Латвійська (ергономічна, ŪGJRMV)"
-#: ../rules/base.xml.in.h:615
+#: ../rules/base.xml.in.h:617
msgid "Latvian (adapted)"
msgstr "Латвійська (адаптована)"
#. Keyboard indicator for Maori layouts
-#: ../rules/base.xml.in.h:617
+#: ../rules/base.xml.in.h:619
msgid "mi"
msgstr "mi"
-#: ../rules/base.xml.in.h:618
+#: ../rules/base.xml.in.h:620
msgid "Maori"
msgstr "Маорійська"
#. Keyboard indicator for Serbian layouts
-#: ../rules/base.xml.in.h:620 ../rules/base.extras.xml.in.h:66
+#: ../rules/base.xml.in.h:622 ../rules/base.extras.xml.in.h:67
msgid "sr"
msgstr "sr"
-#: ../rules/base.xml.in.h:621
+#: ../rules/base.xml.in.h:623
msgid "Montenegrin"
msgstr "Чорногорська"
-#: ../rules/base.xml.in.h:622
+#: ../rules/base.xml.in.h:624
msgid "Montenegrin (Cyrillic)"
msgstr "Чорногорська (кирилиця)"
-#: ../rules/base.xml.in.h:623
+#: ../rules/base.xml.in.h:625
msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
msgstr "Чорногорська (кирилиця, З та Ж поміняні місцями)"
-#: ../rules/base.xml.in.h:624
+#: ../rules/base.xml.in.h:626
msgid "Montenegrin (Latin Unicode)"
msgstr "Чорногорська (латиниця, Unicode)"
-#: ../rules/base.xml.in.h:625
+#: ../rules/base.xml.in.h:627
msgid "Montenegrin (Latin qwerty)"
msgstr "Чорногорська (латиниця, qwerty)"
-#: ../rules/base.xml.in.h:626
+#: ../rules/base.xml.in.h:628
msgid "Montenegrin (Latin Unicode qwerty)"
msgstr "Чорногорська (латиниця, Unicode, qwerty)"
-#: ../rules/base.xml.in.h:627
+#: ../rules/base.xml.in.h:629
msgid "Montenegrin (Cyrillic with guillemets)"
msgstr "Чорногорська (кирилиця з кутовими лапками)"
-#: ../rules/base.xml.in.h:628
+#: ../rules/base.xml.in.h:630
msgid "Montenegrin (Latin with guillemets)"
msgstr "Чорногорська (латиниця з кутовими лапками)"
#. Keyboard indicator for Macedonian layouts
-#: ../rules/base.xml.in.h:630
+#: ../rules/base.xml.in.h:632
msgid "mk"
msgstr "mk"
-#: ../rules/base.xml.in.h:631
+#: ../rules/base.xml.in.h:633
msgid "Macedonian"
msgstr "Македонська"
-#: ../rules/base.xml.in.h:632
+#: ../rules/base.xml.in.h:634
msgid "Macedonian (eliminate dead keys)"
msgstr "Македонська (вимкнути сліпі клавіші)"
#. Keyboard indicator for Maltese layouts
-#: ../rules/base.xml.in.h:634
+#: ../rules/base.xml.in.h:636
msgid "mt"
msgstr "mt"
-#: ../rules/base.xml.in.h:635
+#: ../rules/base.xml.in.h:637
msgid "Maltese"
msgstr "Мальтійська"
-#: ../rules/base.xml.in.h:636
+#: ../rules/base.xml.in.h:638
msgid "Maltese (with US layout)"
msgstr "Мальтійська (клавіатура з розкладкою США)"
#. Keyboard indicator for Mongolian layouts
-#: ../rules/base.xml.in.h:638
+#: ../rules/base.xml.in.h:640
msgid "mn"
msgstr "mn"
-#: ../rules/base.xml.in.h:639
+#: ../rules/base.xml.in.h:641
msgid "Mongolian"
msgstr "Монгольська"
#. Keyboard indicator for Norwegian layouts
-#: ../rules/base.xml.in.h:641 ../rules/base.extras.xml.in.h:117
+#: ../rules/base.xml.in.h:643 ../rules/base.extras.xml.in.h:118
msgid "no"
msgstr "no"
-#: ../rules/base.xml.in.h:642 ../rules/base.extras.xml.in.h:118
+#: ../rules/base.xml.in.h:644 ../rules/base.extras.xml.in.h:119
msgid "Norwegian"
msgstr "Норвезька"
-#: ../rules/base.xml.in.h:643
+#: ../rules/base.xml.in.h:645
msgid "Norwegian (eliminate dead keys)"
msgstr "Норвезька (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:644
+#: ../rules/base.xml.in.h:646
msgid "Norwegian (Winkeys)"
msgstr "Норвезька (Winkeys)"
-#: ../rules/base.xml.in.h:645
+#: ../rules/base.xml.in.h:647
msgid "Norwegian (Dvorak)"
msgstr "Норвезька (Дворак)"
-#: ../rules/base.xml.in.h:646
+#: ../rules/base.xml.in.h:648
msgid "Northern Saami (Norway)"
msgstr "Північно-саамська (Норвегія)"
-#: ../rules/base.xml.in.h:647
+#: ../rules/base.xml.in.h:649
msgid "Northern Saami (Norway, eliminate dead keys)"
msgstr "Північно-саамська (Норвегія, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:648
+#: ../rules/base.xml.in.h:650
msgid "Norwegian (Macintosh)"
msgstr "Норвезька (Macintosh)"
-#: ../rules/base.xml.in.h:649
+#: ../rules/base.xml.in.h:651
msgid "Norwegian (Macintosh, eliminate dead keys)"
msgstr "Норвезька (Macintosh, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:650
+#: ../rules/base.xml.in.h:652
msgid "Norwegian (Colemak)"
msgstr "Норвезька (Колемак)"
#. Keyboard indicator for Polish layouts
-#: ../rules/base.xml.in.h:652 ../rules/base.extras.xml.in.h:55
+#: ../rules/base.xml.in.h:654 ../rules/base.extras.xml.in.h:56
msgid "pl"
msgstr "pl"
-#: ../rules/base.xml.in.h:653 ../rules/base.extras.xml.in.h:56
+#: ../rules/base.xml.in.h:655 ../rules/base.extras.xml.in.h:57
msgid "Polish"
msgstr "Польська"
-#: ../rules/base.xml.in.h:654
+#: ../rules/base.xml.in.h:656
msgid "Polish (legacy)"
msgstr "Польська (застаріла)"
-#: ../rules/base.xml.in.h:655
+#: ../rules/base.xml.in.h:657
msgid "Polish (qwertz)"
msgstr "Польська (qwertz)"
-#: ../rules/base.xml.in.h:656
+#: ../rules/base.xml.in.h:658
msgid "Polish (Dvorak)"
msgstr "Польська (Дворак)"
-#: ../rules/base.xml.in.h:657
+#: ../rules/base.xml.in.h:659
msgid "Polish (Dvorak, Polish quotes on quotemark key)"
msgstr "Польська (Дворак, польські лапки на знаку лапки)"
-#: ../rules/base.xml.in.h:658
+#: ../rules/base.xml.in.h:660
msgid "Polish (Dvorak, Polish quotes on key 1)"
msgstr "Польська (Дворак, польські лапки на клавіші 1)"
-#: ../rules/base.xml.in.h:659
+#: ../rules/base.xml.in.h:661
msgid "Kashubian"
msgstr "Кашубська"
-#: ../rules/base.xml.in.h:660
+#: ../rules/base.xml.in.h:662
msgid "Silesian"
msgstr "Силезька"
-#: ../rules/base.xml.in.h:661
+#: ../rules/base.xml.in.h:663
msgid "Russian (Poland, phonetic Dvorak)"
msgstr "Російська (Польща, фонетична Дворака)"
-#: ../rules/base.xml.in.h:662
+#: ../rules/base.xml.in.h:664
msgid "Polish (programmer Dvorak)"
msgstr "Польська (програмістський Дворак)"
-#: ../rules/base.xml.in.h:663 ../rules/base.extras.xml.in.h:120
+#: ../rules/base.xml.in.h:665 ../rules/base.extras.xml.in.h:121
msgid "Portuguese"
msgstr "Португальська"
-#: ../rules/base.xml.in.h:664
+#: ../rules/base.xml.in.h:666
msgid "Portuguese (eliminate dead keys)"
msgstr "Португальська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:665
+#: ../rules/base.xml.in.h:667
msgid "Portuguese (Sun dead keys)"
msgstr "Португальська (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:666
+#: ../rules/base.xml.in.h:668
msgid "Portuguese (Macintosh)"
msgstr "Португальська (Macintosh)"
-#: ../rules/base.xml.in.h:667
+#: ../rules/base.xml.in.h:669
msgid "Portuguese (Macintosh, eliminate dead keys)"
msgstr "Португальська (Macintosh, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:668
+#: ../rules/base.xml.in.h:670
msgid "Portuguese (Macintosh, Sun dead keys)"
msgstr "Португальська (Macintosh, сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:669
+#: ../rules/base.xml.in.h:671
msgid "Portuguese (Nativo)"
msgstr "Португальська (Nativo)"
-#: ../rules/base.xml.in.h:670
+#: ../rules/base.xml.in.h:672
msgid "Portuguese (Nativo for US keyboards)"
msgstr "Португальська (nativo для клавіатур США)"
-#: ../rules/base.xml.in.h:671
+#: ../rules/base.xml.in.h:673
msgid "Esperanto (Portugal, Nativo)"
msgstr "Есперанто (португальська, Nativo)"
#. Keyboard indicator for Romanian layouts
-#: ../rules/base.xml.in.h:673 ../rules/base.extras.xml.in.h:60
+#: ../rules/base.xml.in.h:675 ../rules/base.extras.xml.in.h:61
msgid "ro"
msgstr "ro"
-#: ../rules/base.xml.in.h:674 ../rules/base.extras.xml.in.h:61
+#: ../rules/base.xml.in.h:676 ../rules/base.extras.xml.in.h:62
msgid "Romanian"
msgstr "Румунська"
-#: ../rules/base.xml.in.h:675
+#: ../rules/base.xml.in.h:677
msgid "Romanian (cedilla)"
msgstr "Румунська (седиль)"
-#: ../rules/base.xml.in.h:676
+#: ../rules/base.xml.in.h:678
msgid "Romanian (standard)"
msgstr "Румунська (стандартна)"
-#: ../rules/base.xml.in.h:677
+#: ../rules/base.xml.in.h:679
msgid "Romanian (standard cedilla)"
msgstr "Румунська (стандартна седиль)"
-#: ../rules/base.xml.in.h:678
+#: ../rules/base.xml.in.h:680
msgid "Romanian (WinKeys)"
msgstr "Румунська (з клавішами Win)"
-#: ../rules/base.xml.in.h:679 ../rules/base.extras.xml.in.h:70
+#: ../rules/base.xml.in.h:681 ../rules/base.extras.xml.in.h:71
msgid "Russian"
msgstr "Російська"
-#: ../rules/base.xml.in.h:680
+#: ../rules/base.xml.in.h:682
msgid "Russian (phonetic)"
msgstr "Російська (фонетична)"
-#: ../rules/base.xml.in.h:681
+#: ../rules/base.xml.in.h:683
msgid "Russian (phonetic WinKeys)"
msgstr "Російська (фонетична з клавішами Win)"
-#: ../rules/base.xml.in.h:682
+#: ../rules/base.xml.in.h:684
msgid "Russian (typewriter)"
msgstr "Російська (машинопис)"
-#: ../rules/base.xml.in.h:683
+#: ../rules/base.xml.in.h:685
msgid "Russian (legacy)"
msgstr "Російська (застаріла)"
-#: ../rules/base.xml.in.h:684
+#: ../rules/base.xml.in.h:686
msgid "Russian (typewriter, legacy)"
msgstr "Російська (машинопис, застаріла)"
-#: ../rules/base.xml.in.h:685
+#: ../rules/base.xml.in.h:687
msgid "Tatar"
msgstr "Татарська"
-#: ../rules/base.xml.in.h:686
+#: ../rules/base.xml.in.h:688
msgid "Ossetian (legacy)"
msgstr "Осетинська (застаріла)"
-#: ../rules/base.xml.in.h:687
+#: ../rules/base.xml.in.h:689
msgid "Ossetian (WinKeys)"
msgstr "Осетинська (з клавішами Win)"
-#: ../rules/base.xml.in.h:688
+#: ../rules/base.xml.in.h:690
msgid "Chuvash"
msgstr "Чуваська"
-#: ../rules/base.xml.in.h:689
+#: ../rules/base.xml.in.h:691
msgid "Chuvash (Latin)"
msgstr "Чуваська (латиниця)"
-#: ../rules/base.xml.in.h:690
+#: ../rules/base.xml.in.h:692
msgid "Udmurt"
msgstr "Удмуртська"
-#: ../rules/base.xml.in.h:691
+#: ../rules/base.xml.in.h:693
msgid "Komi"
msgstr "Комі"
-#: ../rules/base.xml.in.h:692
+#: ../rules/base.xml.in.h:694
msgid "Yakut"
msgstr "Якутська"
-#: ../rules/base.xml.in.h:693
+#: ../rules/base.xml.in.h:695
msgid "Kalmyk"
msgstr "Калмицька"
-#: ../rules/base.xml.in.h:694
+#: ../rules/base.xml.in.h:696
msgid "Russian (DOS)"
msgstr "Російська (DOS)"
-#: ../rules/base.xml.in.h:695
+#: ../rules/base.xml.in.h:697
msgid "Russian (Macintosh)"
msgstr "Російська (Macintosh)"
-#: ../rules/base.xml.in.h:696
+#: ../rules/base.xml.in.h:698
msgid "Serbian (Russia)"
msgstr "Сербська (Росія)"
-#: ../rules/base.xml.in.h:697
+#: ../rules/base.xml.in.h:699
msgid "Bashkirian"
msgstr "Башкирська"
-#: ../rules/base.xml.in.h:698
+#: ../rules/base.xml.in.h:700
msgid "Mari"
msgstr "Марійська"
-#: ../rules/base.xml.in.h:699 ../rules/base.extras.xml.in.h:67
+#: ../rules/base.xml.in.h:701
+msgid "Russian (phonetic azerty)"
+msgstr "Російська (фонетична azerty)"
+
+#: ../rules/base.xml.in.h:702
+msgid "Russian (phonetic French)"
+msgstr "Російська (фонетична французька)"
+
+#: ../rules/base.xml.in.h:703 ../rules/base.extras.xml.in.h:68
msgid "Serbian"
msgstr "Сербська"
-#: ../rules/base.xml.in.h:700
+#: ../rules/base.xml.in.h:704
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr "Сербська (кирилиця, З та Ж поміняні місцями)"
-#: ../rules/base.xml.in.h:701
+#: ../rules/base.xml.in.h:705
msgid "Serbian (Latin)"
msgstr "Сербська (латиниця)"
-#: ../rules/base.xml.in.h:702
+#: ../rules/base.xml.in.h:706
msgid "Serbian (Latin Unicode)"
msgstr "Сербська (латиниця Unicode)"
-#: ../rules/base.xml.in.h:703
+#: ../rules/base.xml.in.h:707
msgid "Serbian (Latin qwerty)"
msgstr "Сербська (латиниця, qwerty)"
-#: ../rules/base.xml.in.h:704
+#: ../rules/base.xml.in.h:708
msgid "Serbian (Latin Unicode qwerty)"
msgstr "Сербська (латиниця, Unicode qwerty)"
-#: ../rules/base.xml.in.h:705
+#: ../rules/base.xml.in.h:709
msgid "Serbian (Cyrillic with guillemets)"
msgstr "Сербська (кирилиця з кутовими лапками)"
-#: ../rules/base.xml.in.h:706
+#: ../rules/base.xml.in.h:710
msgid "Serbian (Latin with guillemets)"
msgstr "Сербська (латиниця з кутовими лапками)"
-#: ../rules/base.xml.in.h:707
+#: ../rules/base.xml.in.h:711
msgid "Pannonian Rusyn"
msgstr "Паннонська русинська"
#. Keyboard indicator for Slovenian layouts
-#: ../rules/base.xml.in.h:709
+#: ../rules/base.xml.in.h:713
msgid "sl"
msgstr "sl"
-#: ../rules/base.xml.in.h:710
+#: ../rules/base.xml.in.h:714
msgid "Slovenian"
msgstr "Словенська"
-#: ../rules/base.xml.in.h:711
+#: ../rules/base.xml.in.h:715
msgid "Slovenian (with guillemets for quotes)"
msgstr "Словенська (кутові лапки)"
-#: ../rules/base.xml.in.h:712
+#: ../rules/base.xml.in.h:716
msgid "Slovenian (US keyboard with Slovenian letters)"
msgstr "Словенська (клавіатура США із словенськими літерами)"
#. Keyboard indicator for Slovak layouts
-#: ../rules/base.xml.in.h:714 ../rules/base.extras.xml.in.h:122
+#: ../rules/base.xml.in.h:718 ../rules/base.extras.xml.in.h:123
msgid "sk"
msgstr "sk"
-#: ../rules/base.xml.in.h:715 ../rules/base.extras.xml.in.h:123
+#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:124
msgid "Slovak"
msgstr "Словацька"
-#: ../rules/base.xml.in.h:716
+#: ../rules/base.xml.in.h:720
msgid "Slovak (extended Backslash)"
msgstr "Словацька (розширені функції Backslash)"
-#: ../rules/base.xml.in.h:717
+#: ../rules/base.xml.in.h:721
msgid "Slovak (qwerty)"
msgstr "Словацька (qwerty)"
-#: ../rules/base.xml.in.h:718
+#: ../rules/base.xml.in.h:722
msgid "Slovak (qwerty, extended Backslash)"
msgstr "Словацька (qwerty, розширені функції Backslash)"
-#: ../rules/base.xml.in.h:719 ../rules/base.extras.xml.in.h:126
+#: ../rules/base.xml.in.h:723 ../rules/base.extras.xml.in.h:127
msgid "Spanish"
msgstr "Іспанська"
-#: ../rules/base.xml.in.h:720
+#: ../rules/base.xml.in.h:724
msgid "Spanish (eliminate dead keys)"
msgstr "Іспанська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:721
+#: ../rules/base.xml.in.h:725
msgid "Spanish (Winkeys)"
msgstr "Іспанська (Winkeys)"
-#: ../rules/base.xml.in.h:722
+#: ../rules/base.xml.in.h:726
msgid "Spanish (include dead tilde)"
msgstr "Іспанська (зі «спеціальною» тильдою)"
-#: ../rules/base.xml.in.h:723
+#: ../rules/base.xml.in.h:727
msgid "Spanish (Sun dead keys)"
msgstr "Іспанська (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:724
+#: ../rules/base.xml.in.h:728
msgid "Spanish (Dvorak)"
msgstr "Іспанська (Дворак)"
-#: ../rules/base.xml.in.h:725
+#: ../rules/base.xml.in.h:729
msgid "Asturian (Spain, with bottom-dot H and bottom-dot L)"
msgstr "Астурійська (Іспанія, з H та L з нижньою крапкою)"
-#: ../rules/base.xml.in.h:726
+#: ../rules/base.xml.in.h:730
msgid "Catalan (Spain, with middle-dot L)"
msgstr "Іспанська (Іспанія, варіант з L із середньою точкою)"
-#: ../rules/base.xml.in.h:727
+#: ../rules/base.xml.in.h:731
msgid "Spanish (Macintosh)"
msgstr "Іспанська (Macintosh)"
#. Keyboard indicator for Swedish layouts
-#: ../rules/base.xml.in.h:729 ../rules/base.extras.xml.in.h:128
+#: ../rules/base.xml.in.h:733 ../rules/base.extras.xml.in.h:129
msgid "sv"
msgstr "sv"
-#: ../rules/base.xml.in.h:730 ../rules/base.extras.xml.in.h:129
+#: ../rules/base.xml.in.h:734 ../rules/base.extras.xml.in.h:130
msgid "Swedish"
msgstr "Шведська"
-#: ../rules/base.xml.in.h:731
+#: ../rules/base.xml.in.h:735
msgid "Swedish (eliminate dead keys)"
msgstr "Шведська (вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:732
+#: ../rules/base.xml.in.h:736
msgid "Swedish (Dvorak)"
msgstr "Шведська (Дворак)"
-#: ../rules/base.xml.in.h:733
+#: ../rules/base.xml.in.h:737
msgid "Russian (Sweden, phonetic)"
msgstr "Російська (шведська, фонетична)"
-#: ../rules/base.xml.in.h:734
+#: ../rules/base.xml.in.h:738
msgid "Russian (Sweden, phonetic, eliminate dead keys)"
msgstr "Російська (шведська, фонетична, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:735
+#: ../rules/base.xml.in.h:739
msgid "Northern Saami (Sweden)"
msgstr "Північно-саамська (Швеція)"
-#: ../rules/base.xml.in.h:736
+#: ../rules/base.xml.in.h:740
msgid "Swedish (Macintosh)"
msgstr "Шведська (Macintosh)"
-#: ../rules/base.xml.in.h:737
+#: ../rules/base.xml.in.h:741
msgid "Swedish (Svdvorak)"
msgstr "Шведська (Svdvorak)"
-#: ../rules/base.xml.in.h:738
+#: ../rules/base.xml.in.h:742
msgid "Swedish Sign Language"
msgstr "Шведська мова жестів"
-#: ../rules/base.xml.in.h:739 ../rules/base.extras.xml.in.h:132
+#: ../rules/base.xml.in.h:743 ../rules/base.extras.xml.in.h:133
msgid "German (Switzerland)"
msgstr "Німецька (Швейцарія)"
-#: ../rules/base.xml.in.h:740
+#: ../rules/base.xml.in.h:744
msgid "German (Switzerland, legacy)"
msgstr "Німецька (Швейцарія, застаріла)"
-#: ../rules/base.xml.in.h:741
+#: ../rules/base.xml.in.h:745
msgid "German (Switzerland, eliminate dead keys)"
msgstr "Німецька (Швейцарія, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:742
+#: ../rules/base.xml.in.h:746
msgid "German (Switzerland, Sun dead keys)"
msgstr "Німецька (Швейцарія, сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:743
+#: ../rules/base.xml.in.h:747
msgid "French (Switzerland)"
msgstr "Французька (Швейцарія)"
-#: ../rules/base.xml.in.h:744
+#: ../rules/base.xml.in.h:748
msgid "French (Switzerland, eliminate dead keys)"
msgstr "Французька (Швейцарія, вимкнути сліпі клавіші)"
-#: ../rules/base.xml.in.h:745
+#: ../rules/base.xml.in.h:749
msgid "French (Switzerland, Sun dead keys)"
msgstr "Французька (Швейцарія, сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:746
+#: ../rules/base.xml.in.h:750
msgid "French (Switzerland, Macintosh)"
msgstr "Французька (Швейцарія, Macintosh)"
-#: ../rules/base.xml.in.h:747
+#: ../rules/base.xml.in.h:751
msgid "German (Switzerland, Macintosh)"
msgstr "Німецька (Швейцарія, Macintosh)"
-#: ../rules/base.xml.in.h:748
+#: ../rules/base.xml.in.h:752
msgid "Arabic (Syria)"
msgstr "Арабська (Сирія)"
#. Keyboard indicator for Syriac layouts
-#: ../rules/base.xml.in.h:750
+#: ../rules/base.xml.in.h:754
msgid "syc"
msgstr "syc"
-#: ../rules/base.xml.in.h:751
+#: ../rules/base.xml.in.h:755
msgid "Syriac"
msgstr "Сирійська"
-#: ../rules/base.xml.in.h:752
+#: ../rules/base.xml.in.h:756
msgid "Syriac (phonetic)"
msgstr "Сирійська (фонетична)"
-#: ../rules/base.xml.in.h:753
+#: ../rules/base.xml.in.h:757
msgid "Kurdish (Syria, Latin Q)"
msgstr "Курдська (Сирія, латиниця Q)"
-#: ../rules/base.xml.in.h:754
+#: ../rules/base.xml.in.h:758
msgid "Kurdish (Syria, F)"
msgstr "Курдська (Сирія, F)"
-#: ../rules/base.xml.in.h:755
+#: ../rules/base.xml.in.h:759
msgid "Kurdish (Syria, Latin Alt-Q)"
msgstr "Курдська (Сирія, латиниця Alt-Q)"
#. Keyboard indicator for Tajik layouts
-#: ../rules/base.xml.in.h:757
+#: ../rules/base.xml.in.h:761
msgid "tg"
msgstr "tg"
-#: ../rules/base.xml.in.h:758
+#: ../rules/base.xml.in.h:762
msgid "Tajik"
msgstr "Таджицька"
-#: ../rules/base.xml.in.h:759
+#: ../rules/base.xml.in.h:763
msgid "Tajik (legacy)"
msgstr "Таджицька (застаріла)"
#. Keyboard indicator for Sinhala layouts
-#: ../rules/base.xml.in.h:761
+#: ../rules/base.xml.in.h:765
msgid "si"
msgstr "si"
-#: ../rules/base.xml.in.h:762
+#: ../rules/base.xml.in.h:766
msgid "Sinhala (phonetic)"
msgstr "Сингальська (фонетична)"
-#: ../rules/base.xml.in.h:763
+#: ../rules/base.xml.in.h:767
msgid "Tamil (Sri Lanka, Unicode)"
msgstr "Тамільська (Шрі-Ланка, Unicode)"
-#: ../rules/base.xml.in.h:764
+#: ../rules/base.xml.in.h:768
msgid "Tamil (Sri Lanka, TAB Typewriter)"
msgstr "Тамільська (Шрі-Ланка, TAB, машинопис)"
+#: ../rules/base.xml.in.h:769
+msgid "Singhala (US keyboard with Singhala letters)"
+msgstr "Сингальська (клавіатура США з сингальськими літерами)"
+
#. Keyboard indicator for Thai layouts
-#: ../rules/base.xml.in.h:766
+#: ../rules/base.xml.in.h:771
msgid "th"
msgstr "th"
-#: ../rules/base.xml.in.h:767
+#: ../rules/base.xml.in.h:772
msgid "Thai"
msgstr "Тайська"
-#: ../rules/base.xml.in.h:768
+#: ../rules/base.xml.in.h:773
msgid "Thai (TIS-820.2538)"
msgstr "Тайська (TIS-820.2538)"
-#: ../rules/base.xml.in.h:769
+#: ../rules/base.xml.in.h:774
msgid "Thai (Pattachote)"
msgstr "Тайська (паттачот)"
#. Keyboard indicator for Turkish layouts
-#: ../rules/base.xml.in.h:771 ../rules/base.extras.xml.in.h:135
+#: ../rules/base.xml.in.h:776 ../rules/base.extras.xml.in.h:136
msgid "tr"
msgstr "tr"
-#: ../rules/base.xml.in.h:772 ../rules/base.extras.xml.in.h:136
+#: ../rules/base.xml.in.h:777 ../rules/base.extras.xml.in.h:137
msgid "Turkish"
msgstr "Турецька"
-#: ../rules/base.xml.in.h:773
+#: ../rules/base.xml.in.h:778
msgid "Turkish (F)"
msgstr "Турецька (F)"
-#: ../rules/base.xml.in.h:774
+#: ../rules/base.xml.in.h:779
msgid "Turkish (Alt-Q)"
msgstr "Турецька (Alt-Q)"
-#: ../rules/base.xml.in.h:775
+#: ../rules/base.xml.in.h:780
msgid "Turkish (Sun dead keys)"
msgstr "Турецька (сліпі клавіші Sun)"
-#: ../rules/base.xml.in.h:776
+#: ../rules/base.xml.in.h:781
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Курдська (Туреччина, латиниця Q)"
-#: ../rules/base.xml.in.h:777
+#: ../rules/base.xml.in.h:782
msgid "Kurdish (Turkey, F)"
msgstr "Курдська (Туреччина, F)"
-#: ../rules/base.xml.in.h:778
+#: ../rules/base.xml.in.h:783
msgid "Kurdish (Turkey, Latin Alt-Q)"
msgstr "Курдська (Туреччина, латиниця Alt-Q)"
-#: ../rules/base.xml.in.h:779
+#: ../rules/base.xml.in.h:784
msgid "Turkish (international with dead keys)"
msgstr "Турецька (інтернаціональна зі сліпими клавішами)"
#. Keyboard indicator for Crimean Tatar layouts
-#: ../rules/base.xml.in.h:781 ../rules/base.extras.xml.in.h:62
+#: ../rules/base.xml.in.h:786 ../rules/base.extras.xml.in.h:63
msgid "crh"
msgstr "crh"
-#: ../rules/base.xml.in.h:782
+#: ../rules/base.xml.in.h:787
msgid "Crimean Tatar (Turkish Q)"
msgstr "Кримськотатарська (турецька Q)"
-#: ../rules/base.xml.in.h:783
+#: ../rules/base.xml.in.h:788
msgid "Crimean Tatar (Turkish F)"
msgstr "Кримськотатарська (турецька F)"
-#: ../rules/base.xml.in.h:784
+#: ../rules/base.xml.in.h:789
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr "Кримськотатарська (турецька Alt-Q)"
-#: ../rules/base.xml.in.h:785
+#: ../rules/base.xml.in.h:790
msgid "Taiwanese"
msgstr "Тайванська"
-#: ../rules/base.xml.in.h:786
+#: ../rules/base.xml.in.h:791
msgid "Taiwanese (indigenous)"
msgstr "Тайванська (місцева)"
#. Keyboard indicator for Saisiyat layouts
-#: ../rules/base.xml.in.h:788
+#: ../rules/base.xml.in.h:793
msgid "xsy"
msgstr "xsy"
-#: ../rules/base.xml.in.h:789
+#: ../rules/base.xml.in.h:794
msgid "Saisiyat (Taiwan)"
msgstr "Сайсіят (Тайвань)"
#. Keyboard indicator for Ukranian layouts
-#: ../rules/base.xml.in.h:791 ../rules/base.extras.xml.in.h:138
+#: ../rules/base.xml.in.h:796 ../rules/base.extras.xml.in.h:139
msgid "uk"
msgstr "uk"
-#: ../rules/base.xml.in.h:792 ../rules/base.extras.xml.in.h:139
+#: ../rules/base.xml.in.h:797 ../rules/base.extras.xml.in.h:140
msgid "Ukrainian"
msgstr "Українська"
-#: ../rules/base.xml.in.h:793
+#: ../rules/base.xml.in.h:798
msgid "Ukrainian (phonetic)"
msgstr "Українська (фонетична)"
-#: ../rules/base.xml.in.h:794
+#: ../rules/base.xml.in.h:799
msgid "Ukrainian (typewriter)"
msgstr "Українська (друкарська машинка)"
-#: ../rules/base.xml.in.h:795
+#: ../rules/base.xml.in.h:800
msgid "Ukrainian (WinKeys)"
msgstr "Українська (з клавішами Win)"
-#: ../rules/base.xml.in.h:796
+#: ../rules/base.xml.in.h:801
msgid "Ukrainian (legacy)"
msgstr "Українська (застаріла)"
-#: ../rules/base.xml.in.h:797
+#: ../rules/base.xml.in.h:802
msgid "Ukrainian (standard RSTU)"
msgstr "Українська (стандартна RSTU)"
-#: ../rules/base.xml.in.h:798
+#: ../rules/base.xml.in.h:803
msgid "Russian (Ukraine, standard RSTU)"
msgstr "Російська (Україна, стандартна RSTU)"
-#: ../rules/base.xml.in.h:799
+#: ../rules/base.xml.in.h:804
msgid "Ukrainian (homophonic)"
msgstr "Українська (гомофонна)"
-#: ../rules/base.xml.in.h:800 ../rules/base.extras.xml.in.h:141
+#: ../rules/base.xml.in.h:805 ../rules/base.extras.xml.in.h:142
msgid "English (UK)"
msgstr "Англійська (Великобританія)"
-#: ../rules/base.xml.in.h:801
+#: ../rules/base.xml.in.h:806
msgid "English (UK, extended WinKeys)"
msgstr "Англійська (Великобританія, розширена, з клавішами Win)"
-#: ../rules/base.xml.in.h:802
+#: ../rules/base.xml.in.h:807
msgid "English (UK, international with dead keys)"
msgstr "Англійська (Великобританія, інтернаціональна зі сліпими клавішами)"
-#: ../rules/base.xml.in.h:803
+#: ../rules/base.xml.in.h:808
msgid "English (UK, Dvorak)"
msgstr "Англійська (Великобританія, Дворак)"
-#: ../rules/base.xml.in.h:804
+#: ../rules/base.xml.in.h:809
msgid "English (UK, Dvorak with UK punctuation)"
msgstr "Англійська (Великобританія, Дворак з британською пунктуацією)"
-#: ../rules/base.xml.in.h:805
+#: ../rules/base.xml.in.h:810
msgid "English (UK, Macintosh)"
msgstr "Англійська (Великобританія, Macintosh)"
-#: ../rules/base.xml.in.h:806
+#: ../rules/base.xml.in.h:811
msgid "English (UK, Macintosh international)"
msgstr "Англійська (Великобританія, інтернаціональна Macintosh)"
-#: ../rules/base.xml.in.h:807
+#: ../rules/base.xml.in.h:812
msgid "English (UK, Colemak)"
msgstr "Англійська (США, Коулмак)"
-#: ../rules/base.xml.in.h:808
+#: ../rules/base.xml.in.h:813
msgid "Uzbek"
msgstr "Узбецька"
-#: ../rules/base.xml.in.h:809
+#: ../rules/base.xml.in.h:814
msgid "Uzbek (Latin)"
msgstr "Узбецька (латиниця)"
#. Keyboard indicator for Vietnamese layouts
-#: ../rules/base.xml.in.h:811
+#: ../rules/base.xml.in.h:816
msgid "vi"
msgstr "vi"
-#: ../rules/base.xml.in.h:812
+#: ../rules/base.xml.in.h:817
msgid "Vietnamese"
msgstr "В'єтнамська"
#. Keyboard indicator for Korean layouts
-#: ../rules/base.xml.in.h:814 ../rules/base.extras.xml.in.h:143
+#: ../rules/base.xml.in.h:819 ../rules/base.extras.xml.in.h:144
msgid "ko"
msgstr "ko"
-#: ../rules/base.xml.in.h:815 ../rules/base.extras.xml.in.h:144
+#: ../rules/base.xml.in.h:820 ../rules/base.extras.xml.in.h:145
msgid "Korean"
msgstr "Корейська"
-#: ../rules/base.xml.in.h:816
+#: ../rules/base.xml.in.h:821
msgid "Korean (101/104 key compatible)"
msgstr "Корейська (сумісна з 101/104 клавішною)"
-#: ../rules/base.xml.in.h:817
+#: ../rules/base.xml.in.h:822
msgid "Japanese (PC-98xx Series)"
msgstr "Японська (родина PC-98xx)"
#. Keyboard indicator for Irish layouts
-#: ../rules/base.xml.in.h:819
+#: ../rules/base.xml.in.h:824
msgid "ie"
msgstr "ie"
-#: ../rules/base.xml.in.h:820
+#: ../rules/base.xml.in.h:825
msgid "Irish"
msgstr "Ірландська"
-#: ../rules/base.xml.in.h:821
+#: ../rules/base.xml.in.h:826
msgid "CloGaelach"
msgstr "Гаельський шрифт"
-#: ../rules/base.xml.in.h:822
+#: ../rules/base.xml.in.h:827
msgid "Irish (UnicodeExpert)"
msgstr "Ірландська (UnicodeExpert)"
-#: ../rules/base.xml.in.h:823
+#: ../rules/base.xml.in.h:828
msgid "Ogham"
msgstr "Огам"
-#: ../rules/base.xml.in.h:824
+#: ../rules/base.xml.in.h:829
msgid "Ogham (IS434)"
msgstr "Огам (IS434)"
-#: ../rules/base.xml.in.h:825
+#: ../rules/base.xml.in.h:830
msgid "Urdu (Pakistan)"
msgstr "Урду (Пакистан)"
-#: ../rules/base.xml.in.h:826
+#: ../rules/base.xml.in.h:831
msgid "Urdu (Pakistan, CRULP)"
msgstr "Урду (Пакистан, CRULP)"
-#: ../rules/base.xml.in.h:827
+#: ../rules/base.xml.in.h:832
msgid "Urdu (Pakistan, NLA)"
msgstr "Урду (Пакистан, NLA)"
-#: ../rules/base.xml.in.h:828
+#: ../rules/base.xml.in.h:833
msgid "Arabic (Pakistan)"
msgstr "Арабська (Пакистан)"
#. Keyboard indicator for Sindhi layouts
-#: ../rules/base.xml.in.h:830
+#: ../rules/base.xml.in.h:835
msgid "sd"
msgstr "sd"
-#: ../rules/base.xml.in.h:831
+#: ../rules/base.xml.in.h:836
msgid "Sindhi"
msgstr "Синдхі"
#. Keyboard indicator for Dhivehi layouts
-#: ../rules/base.xml.in.h:833
+#: ../rules/base.xml.in.h:838
msgid "dv"
msgstr "dv"
-#: ../rules/base.xml.in.h:834
+#: ../rules/base.xml.in.h:839
msgid "Dhivehi"
msgstr "Мальдивська"
-#: ../rules/base.xml.in.h:835
+#: ../rules/base.xml.in.h:840
msgid "English (South Africa)"
msgstr "Англійська (ПАР)"
#. Keyboard indicator for Esperanto layouts
-#: ../rules/base.xml.in.h:837
+#: ../rules/base.xml.in.h:842
msgid "eo"
msgstr "eo"
-#: ../rules/base.xml.in.h:838
+#: ../rules/base.xml.in.h:843
msgid "Esperanto"
msgstr "Есперанто"
-#: ../rules/base.xml.in.h:839
+#: ../rules/base.xml.in.h:844
msgid "Esperanto (displaced semicolon and quote, obsolete)"
msgstr "Есперанто (посунута крапка з комою та лапки, застаріла)"
#. Keyboard indicator for Nepali layouts
-#: ../rules/base.xml.in.h:841
+#: ../rules/base.xml.in.h:846
msgid "ne"
msgstr "ne"
-#: ../rules/base.xml.in.h:842
+#: ../rules/base.xml.in.h:847
msgid "Nepali"
msgstr "Непальська"
-#: ../rules/base.xml.in.h:843
+#: ../rules/base.xml.in.h:848
msgid "English (Nigeria)"
msgstr "Англійська (Нігерія)"
#. Keyboard indicator for Igbo layouts
-#: ../rules/base.xml.in.h:845
+#: ../rules/base.xml.in.h:850
msgid "ig"
msgstr "ig"
-#: ../rules/base.xml.in.h:846
+#: ../rules/base.xml.in.h:851
msgid "Igbo"
msgstr "Igbo"
#. Keyboard indicator for Yoruba layouts
-#: ../rules/base.xml.in.h:848
+#: ../rules/base.xml.in.h:853
msgid "yo"
msgstr "yo"
-#: ../rules/base.xml.in.h:849
+#: ../rules/base.xml.in.h:854
msgid "Yoruba"
msgstr "Йоруба"
#. Keyboard indicator for Amharic layouts
-#: ../rules/base.xml.in.h:851
+#: ../rules/base.xml.in.h:856
msgid "am"
msgstr "am"
-#: ../rules/base.xml.in.h:852
+#: ../rules/base.xml.in.h:857
msgid "Amharic"
msgstr "Амхарська"
#. Keyboard indicator for Wolof layouts
-#: ../rules/base.xml.in.h:854
+#: ../rules/base.xml.in.h:859
msgid "wo"
msgstr "wo"
-#: ../rules/base.xml.in.h:855
+#: ../rules/base.xml.in.h:860
msgid "Wolof"
msgstr "Волоф"
#. Keyboard indicator for Braille layouts
-#: ../rules/base.xml.in.h:857
+#: ../rules/base.xml.in.h:862
msgid "brl"
msgstr "brl"
-#: ../rules/base.xml.in.h:858
+#: ../rules/base.xml.in.h:863
msgid "Braille"
msgstr "Брайля"
-#: ../rules/base.xml.in.h:859
+#: ../rules/base.xml.in.h:864
msgid "Braille (left hand)"
msgstr "Брайля (для шульги)"
-#: ../rules/base.xml.in.h:860
+#: ../rules/base.xml.in.h:865
msgid "Braille (right hand)"
msgstr "Брайль (для правші)"
#. Keyboard indicator for Turkmen layouts
-#: ../rules/base.xml.in.h:862
+#: ../rules/base.xml.in.h:867
msgid "tk"
msgstr "tk"
-#: ../rules/base.xml.in.h:863
+#: ../rules/base.xml.in.h:868
msgid "Turkmen"
msgstr "Туркменська"
-#: ../rules/base.xml.in.h:864
+#: ../rules/base.xml.in.h:869
msgid "Turkmen (Alt-Q)"
msgstr "Туркменська (Alt-Q)"
#. Keyboard indicator for Bambara layouts
-#: ../rules/base.xml.in.h:866
+#: ../rules/base.xml.in.h:871
msgid "bm"
msgstr "bm"
-#: ../rules/base.xml.in.h:867
+#: ../rules/base.xml.in.h:872
msgid "Bambara"
msgstr "Бамбара"
-#: ../rules/base.xml.in.h:868
+#: ../rules/base.xml.in.h:873
msgid "French (Mali, alternative)"
msgstr "Французька (Малі, альтернативна)"
-#: ../rules/base.xml.in.h:869
+#: ../rules/base.xml.in.h:874
msgid "English (Mali, US Macintosh)"
msgstr "Англійська (Малі, Macintosh США)"
-#: ../rules/base.xml.in.h:870
+#: ../rules/base.xml.in.h:875
msgid "English (Mali, US international)"
msgstr "Англійська (Малі, інтернаціональна США)"
#. Keyboard indicator for Swahili layouts
-#: ../rules/base.xml.in.h:872
+#: ../rules/base.xml.in.h:877
msgid "sw"
msgstr "sw"
-#: ../rules/base.xml.in.h:873
+#: ../rules/base.xml.in.h:878
msgid "Swahili (Tanzania)"
msgstr "Суахілі (Танзанія)"
-#: ../rules/base.xml.in.h:874
+#: ../rules/base.xml.in.h:879
msgid "Swahili (Kenya)"
msgstr "Суахілі (Кенія)"
-#: ../rules/base.xml.in.h:875
+#: ../rules/base.xml.in.h:880
msgid "Kikuyu"
msgstr "Кікуйю"
#. Keyboard indicator for Tswana layouts
-#: ../rules/base.xml.in.h:877
+#: ../rules/base.xml.in.h:882
msgid "tn"
msgstr "tn"
-#: ../rules/base.xml.in.h:878
+#: ../rules/base.xml.in.h:883
msgid "Tswana"
msgstr "Тсвана"
#. Keyboard indicator for Filipino layouts
-#: ../rules/base.xml.in.h:880
+#: ../rules/base.xml.in.h:885
msgid "ph"
msgstr "ph"
-#: ../rules/base.xml.in.h:881
+#: ../rules/base.xml.in.h:886
msgid "Filipino"
msgstr "Філіппінська"
-#: ../rules/base.xml.in.h:882
+#: ../rules/base.xml.in.h:887
msgid "Filipino (QWERTY Baybayin)"
msgstr "Філіппінська (QWERTY, байбаїн)"
-#: ../rules/base.xml.in.h:883
+#: ../rules/base.xml.in.h:888
msgid "Filipino (Capewell-Dvorak Latin)"
msgstr "Філіппінська (Кейпвелл-Дворак, латиниця)"
-#: ../rules/base.xml.in.h:884
+#: ../rules/base.xml.in.h:889
msgid "Filipino (Capewell-Dvorak Baybayin)"
msgstr "Філіппінська (Кейпвелл-Дворак, байбаїн)"
-#: ../rules/base.xml.in.h:885
+#: ../rules/base.xml.in.h:890
msgid "Filipino (Capewell-QWERF 2006 Latin)"
msgstr "Філіппінська (Кейпвелл-QWERF 2006, латиниця)"
-#: ../rules/base.xml.in.h:886
+#: ../rules/base.xml.in.h:891
msgid "Filipino (Capewell-QWERF 2006 Baybayin)"
msgstr "Філіппінська (Кейпвелл-QWERF 2006, байбаїн)"
-#: ../rules/base.xml.in.h:887
+#: ../rules/base.xml.in.h:892
msgid "Filipino (Colemak Latin)"
msgstr "Філіппінська (Коулмак, латиниця)"
-#: ../rules/base.xml.in.h:888
+#: ../rules/base.xml.in.h:893
msgid "Filipino (Colemak Baybayin)"
msgstr "Філіппінська (Коулмак, байбаїн)"
-#: ../rules/base.xml.in.h:889
+#: ../rules/base.xml.in.h:894
msgid "Filipino (Dvorak Latin)"
msgstr "Філіппінська (Дворак, латиниця)"
-#: ../rules/base.xml.in.h:890
+#: ../rules/base.xml.in.h:895
msgid "Filipino (Dvorak Baybayin)"
msgstr "Філіппінська (Дворат, байбаїн)"
-#: ../rules/base.xml.in.h:891
+#: ../rules/base.xml.in.h:896
msgid "md"
msgstr "md"
-#: ../rules/base.xml.in.h:892
+#: ../rules/base.xml.in.h:897
msgid "Moldavian"
msgstr "Молдавська"
-#: ../rules/base.xml.in.h:893
+#: ../rules/base.xml.in.h:898
msgid "gag"
msgstr "gag"
-#: ../rules/base.xml.in.h:894
+#: ../rules/base.xml.in.h:899
msgid "Moldavian (Gagauz)"
msgstr "Молдавська (гагаузька)"
-#: ../rules/base.xml.in.h:895
+#: ../rules/base.xml.in.h:900
msgid "Switching to another layout"
msgstr "Перемикання на іншу розкладку"
-#: ../rules/base.xml.in.h:896
+#: ../rules/base.xml.in.h:901
msgid "Right Alt (while pressed)"
msgstr "Права клавіша Alt (поки натиснена)"
-#: ../rules/base.xml.in.h:897
+#: ../rules/base.xml.in.h:902
msgid "Left Alt (while pressed)"
msgstr "Ліва клавіша Alt (поки натиснена)"
-#: ../rules/base.xml.in.h:898
+#: ../rules/base.xml.in.h:903
msgid "Left Win (while pressed)"
msgstr "Ліва клавіша Win (поки натиснута)"
-#: ../rules/base.xml.in.h:899
+#: ../rules/base.xml.in.h:904
msgid "Right Win (while pressed)"
msgstr "Права клавіша Win (поки натиснена)"
-#: ../rules/base.xml.in.h:900
+#: ../rules/base.xml.in.h:905
msgid "Any Win key (while pressed)"
msgstr "Будь-яка клавіша Win (на час натискання)"
-#: ../rules/base.xml.in.h:901
+#: ../rules/base.xml.in.h:906
msgid "Caps Lock (while pressed), Alt+Caps Lock does the original capslock action"
msgstr "Caps Lock (поки натиснена), Alt+Caps Lock виконує оригінальну функцію capslock"
-#: ../rules/base.xml.in.h:902
+#: ../rules/base.xml.in.h:907
msgid "Right Ctrl (while pressed)"
msgstr "Права клавіша Ctrl (поки натиснута)"
-#: ../rules/base.xml.in.h:903
+#: ../rules/base.xml.in.h:908
msgid "Right Alt"
msgstr "Права клавіша Alt"
-#: ../rules/base.xml.in.h:904
+#: ../rules/base.xml.in.h:909
msgid "Left Alt"
msgstr "Ліва клавіша Alt"
-#: ../rules/base.xml.in.h:905
+#: ../rules/base.xml.in.h:910
msgid "Caps Lock"
msgstr "Caps Lock"
-#: ../rules/base.xml.in.h:906
+#: ../rules/base.xml.in.h:911
msgid "Shift+Caps Lock"
msgstr "Shift+Caps Lock"
-#: ../rules/base.xml.in.h:907
+#: ../rules/base.xml.in.h:912
msgid "Caps Lock (to first layout), Shift+Caps Lock (to last layout)"
msgstr "Caps Lock (на першу розкладку), Shift+Caps Lock (на останню розкладку)"
-#: ../rules/base.xml.in.h:908
+#: ../rules/base.xml.in.h:913
msgid "Left Win (to first layout), Right Win/Menu (to last layout)"
msgstr "Ліва Win (на першу розкладку), Права Win/Menu (на останню розкладку)"
-#: ../rules/base.xml.in.h:909
+#: ../rules/base.xml.in.h:914
msgid "Left Ctrl (to first layout), Right Ctrl (to last layout)"
msgstr "Ліва Ctrl (на першу розкладку), Правий Ctrl (на останню розкладку)"
-#: ../rules/base.xml.in.h:910
+#: ../rules/base.xml.in.h:915
msgid "Alt+Caps Lock"
msgstr "Alt+Caps Lock"
-#: ../rules/base.xml.in.h:911
+#: ../rules/base.xml.in.h:916
msgid "Both Shift keys together"
msgstr "Обидві клавіші Shift разом"
-#: ../rules/base.xml.in.h:912
+#: ../rules/base.xml.in.h:917
msgid "Both Alt keys together"
msgstr "Обидві клавіші Alt разом"
-#: ../rules/base.xml.in.h:913
+#: ../rules/base.xml.in.h:918
msgid "Both Ctrl keys together"
msgstr "Обидві клавіші Ctrl разом"
-#: ../rules/base.xml.in.h:914
+#: ../rules/base.xml.in.h:919
msgid "Ctrl+Shift"
msgstr "Ctrl+Shift"
-#: ../rules/base.xml.in.h:915
+#: ../rules/base.xml.in.h:920
msgid "Left Ctrl+Left Shift"
msgstr "Лівий Ctrl+Лівий Shift"
-#: ../rules/base.xml.in.h:916
+#: ../rules/base.xml.in.h:921
msgid "Right Ctrl+Right Shift"
msgstr "Права Ctrl+Права Shift"
-#: ../rules/base.xml.in.h:917
+#: ../rules/base.xml.in.h:922
msgid "Alt+Ctrl"
msgstr "Alt+Ctrl"
-#: ../rules/base.xml.in.h:918
+#: ../rules/base.xml.in.h:923
msgid "Alt+Shift"
msgstr "Alt+Shift"
-#: ../rules/base.xml.in.h:919
+#: ../rules/base.xml.in.h:924
msgid "Left Alt+Left Shift"
msgstr "Лівий Alt+Лівий Shift"
-#: ../rules/base.xml.in.h:920
+#: ../rules/base.xml.in.h:925
msgid "Alt+Space"
msgstr "Alt+Пробіл"
-#: ../rules/base.xml.in.h:921
+#: ../rules/base.xml.in.h:926
msgid "Menu"
msgstr "Menu"
-#: ../rules/base.xml.in.h:922
+#: ../rules/base.xml.in.h:927
msgid "Left Win"
msgstr "Ліва клавіша Win"
-#: ../rules/base.xml.in.h:923
+#: ../rules/base.xml.in.h:928
msgid "Win Key+Space"
msgstr "Клавіша Win+Пробіл"
-#: ../rules/base.xml.in.h:924
+#: ../rules/base.xml.in.h:929
msgid "Right Win"
msgstr "Права клавіша Win"
-#: ../rules/base.xml.in.h:925
+#: ../rules/base.xml.in.h:930
msgid "Left Shift"
msgstr "Ліва клавіша Shift"
-#: ../rules/base.xml.in.h:926
+#: ../rules/base.xml.in.h:931
msgid "Right Shift"
msgstr "Права клавіша Shift"
-#: ../rules/base.xml.in.h:927
+#: ../rules/base.xml.in.h:932
msgid "Left Ctrl"
msgstr "Ліва клавіша Ctrl"
-#: ../rules/base.xml.in.h:928
+#: ../rules/base.xml.in.h:933
msgid "Right Ctrl"
msgstr "Права клавіша Ctrl"
-#: ../rules/base.xml.in.h:929
+#: ../rules/base.xml.in.h:934
msgid "Scroll Lock"
msgstr "Scroll Lock"
-#: ../rules/base.xml.in.h:930
+#: ../rules/base.xml.in.h:935
msgid "LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)"
msgstr "Ліва Ctrl+ліва Win (на першу розкладку), правий Ctrl+Menu (на другу розкладку)"
-#: ../rules/base.xml.in.h:931
+#: ../rules/base.xml.in.h:936
msgid "Key to choose 3rd level"
msgstr "Клавіша для вибору 3-го ряду"
-#: ../rules/base.xml.in.h:932
+#: ../rules/base.xml.in.h:937
msgid "Any Win key"
msgstr "Будь-яка клавіша Win"
-#: ../rules/base.xml.in.h:933
+#: ../rules/base.xml.in.h:938
msgid "Any Alt key"
msgstr "Будь-яка клавіша Alt"
-#: ../rules/base.xml.in.h:934
+#: ../rules/base.xml.in.h:939
msgid "Right Alt, Shift+Right Alt key is Compose"
msgstr "Правий Alt, Shift+правий Alt діють як Compose"
-#: ../rules/base.xml.in.h:935
+#: ../rules/base.xml.in.h:940
msgid "Right Alt key never chooses 3rd level"
msgstr "Права клавіша Alt ніколи не обирає 3-й рівень"
-#: ../rules/base.xml.in.h:936
+#: ../rules/base.xml.in.h:941
msgid "Enter on keypad"
msgstr "Enter на цифровій клавіатурі"
-#: ../rules/base.xml.in.h:937
+#: ../rules/base.xml.in.h:942
msgid "Backslash"
msgstr "Зворотна риска"
-#: ../rules/base.xml.in.h:938
+#: ../rules/base.xml.in.h:943
msgid "&lt;Less/Greater&gt;"
msgstr "&lt;Менше ніж/Більше ніж&gt;"
-#: ../rules/base.xml.in.h:939
+#: ../rules/base.xml.in.h:944
msgid "Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Caps Lock вибирає 3-ій рівень, одноразовий вибір регістру, якщо натиснути разом зі іншою комбінацією вибору 3-го рівня"
-#: ../rules/base.xml.in.h:940
+#: ../rules/base.xml.in.h:945
msgid "Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "Зворотна похила риска вибирає 3-ій рівень, одноразовий вибір регістру, якщо натиснути разом зі іншою комбінацією вибору 3-го рівня"
-#: ../rules/base.xml.in.h:941
+#: ../rules/base.xml.in.h:946
msgid "&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser"
msgstr "&lt;Менше/Більше&gt; вибирає 3-ій рівень, одноразовий вибір регістру, якщо натиснути разом зі іншою комбінацією вибору 3-го рівня"
-#: ../rules/base.xml.in.h:942
+#: ../rules/base.xml.in.h:947
msgid "Ctrl key position"
msgstr "Розташування клавіші Ctrl"
-#: ../rules/base.xml.in.h:943
+#: ../rules/base.xml.in.h:948
msgid "Caps Lock as Ctrl"
msgstr "Caps Lock працює як Ctrl"
-#: ../rules/base.xml.in.h:944
+#: ../rules/base.xml.in.h:949
msgid "Left Ctrl as Meta"
msgstr "Ліва клавіша Ctrl як Meta"
-#: ../rules/base.xml.in.h:945
+#: ../rules/base.xml.in.h:950
msgid "Swap Ctrl and Caps Lock"
msgstr "Поміняти місцями клавіші Ctrl та Caps Lock"
-#: ../rules/base.xml.in.h:946
+#: ../rules/base.xml.in.h:951
msgid "At left of 'A'"
msgstr "Ліворуч від 'A'"
-#: ../rules/base.xml.in.h:947
+#: ../rules/base.xml.in.h:952
msgid "At bottom left"
msgstr "Знизу ліворуч"
-#: ../rules/base.xml.in.h:948
+#: ../rules/base.xml.in.h:953
msgid "Right Ctrl as Right Alt"
msgstr "Права клавіша Ctrl працює як права клавіша Alt"
-#: ../rules/base.xml.in.h:949
+#: ../rules/base.xml.in.h:954
msgid "Menu as Right Ctrl"
msgstr "Menu працює як права клавіша Ctrl"
-#: ../rules/base.xml.in.h:950
+#: ../rules/base.xml.in.h:955
msgid "Right Alt as Right Ctrl"
msgstr "Права клавіша Alt працює як права клавіша Ctrl"
-#: ../rules/base.xml.in.h:951
+#: ../rules/base.xml.in.h:956
msgid "Swap Left Alt key with Left Ctrl key"
msgstr "Поміняти місцями ліву клавішу Alt і ліву клавішу Ctrl"
-#: ../rules/base.xml.in.h:952
+#: ../rules/base.xml.in.h:957
msgid "Swap Left Win key with Left Ctrl key"
msgstr "Поміняти місцями ліву клавішу Win і ліву клавішу Ctrl"
-#: ../rules/base.xml.in.h:953
+#: ../rules/base.xml.in.h:958
msgid "Swap Right Win key with Right Ctrl key"
msgstr "Поміняти місцями праву клавішу Win і праву клавішу Ctrl"
-#: ../rules/base.xml.in.h:954
+#: ../rules/base.xml.in.h:959
msgid "Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt"
msgstr "Ліва клавіша Alt працює як Ctrl, ліва Ctrl — як Win, ліва Win — як Alt"
-#: ../rules/base.xml.in.h:955
+#: ../rules/base.xml.in.h:960
msgid "Use keyboard LED to show alternative layout"
msgstr "Використовувати клавіатурні індикатори для індикації альтернативних розкладок"
-#: ../rules/base.xml.in.h:956
+#: ../rules/base.xml.in.h:961
msgid "Num Lock"
msgstr "Num Lock"
-#: ../rules/base.xml.in.h:957
+#: ../rules/base.xml.in.h:962
msgid "Layout of numeric keypad"
msgstr "Розкладка цифрової клавіатури"
-#: ../rules/base.xml.in.h:958
+#: ../rules/base.xml.in.h:963
msgid "Legacy"
msgstr "Застаріла"
-#: ../rules/base.xml.in.h:959
+#: ../rules/base.xml.in.h:964
msgid "Unicode additions (arrows and math operators)"
msgstr "Доповнення Unicode (стрілки та математичні оператори)"
-#: ../rules/base.xml.in.h:960
+#: ../rules/base.xml.in.h:965
msgid "Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Доповнення Unicode (стрілки та математичні оператори; математичні оператори на типовому рівні)"
-#: ../rules/base.xml.in.h:961
+#: ../rules/base.xml.in.h:966
msgid "Legacy Wang 724"
msgstr "Стара Wang 724"
-#: ../rules/base.xml.in.h:962
+#: ../rules/base.xml.in.h:967
msgid "Wang 724 keypad with Unicode additions (arrows and math operators)"
msgstr "Клавіатура Wang 724 з доповненнями Unicode (стрілки та математичні оператори)"
-#: ../rules/base.xml.in.h:963
+#: ../rules/base.xml.in.h:968
msgid "Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)"
msgstr "Клавіатура Wang 724 з доповненнями Unicode (стрілки та математичні оператори). Математичні операції на типовому рівні"
-#: ../rules/base.xml.in.h:964
+#: ../rules/base.xml.in.h:969
msgid "Hexadecimal"
msgstr "Шістнадцяткова"
-#: ../rules/base.xml.in.h:965
+#: ../rules/base.xml.in.h:970
msgid "ATM/phone-style"
msgstr "У стилі банкоматної/телефонної"
-#: ../rules/base.xml.in.h:966
+#: ../rules/base.xml.in.h:971
msgid "Numeric keypad delete key behaviour"
msgstr "Вибір поведінки клавіші del на цифровій клавіатурі"
-#: ../rules/base.xml.in.h:967
+#: ../rules/base.xml.in.h:972
msgid "Legacy key with dot"
msgstr "Застаріла клавіша з крапкою"
#. Actually, with KP_SEPARATOR, as the old keypad(comma)
-#: ../rules/base.xml.in.h:969
+#: ../rules/base.xml.in.h:974
msgid "Legacy key with comma"
msgstr "Застаріла клавіша з комою"
-#: ../rules/base.xml.in.h:970
+#: ../rules/base.xml.in.h:975
msgid "Four-level key with dot"
msgstr "Клавіша четвертого рівня з крапкою"
-#: ../rules/base.xml.in.h:971
+#: ../rules/base.xml.in.h:976
msgid "Four-level key with dot, Latin-9 only"
msgstr "Клавіша четвертого рівня з крапкою, обмежена Latin-9"
-#: ../rules/base.xml.in.h:972
+#: ../rules/base.xml.in.h:977
msgid "Four-level key with comma"
msgstr "Клавіша четвертого рівня з комою"
-#: ../rules/base.xml.in.h:973
+#: ../rules/base.xml.in.h:978
msgid "Four-level key with momayyez"
msgstr "Клавіша четвертого рівня з momayyez"
#. This assumes the KP_ abstract symbols are actually useful for some apps
#. The description needs to be rewritten
-#: ../rules/base.xml.in.h:976
+#: ../rules/base.xml.in.h:981
msgid "Four-level key with abstract separators"
msgstr "Клавіша четвертого рівня з абстрактним розділювачем "
-#: ../rules/base.xml.in.h:977
+#: ../rules/base.xml.in.h:982
msgid "Semicolon on third level"
msgstr "Крапка з комою на третьому рівні"
-#: ../rules/base.xml.in.h:978
+#: ../rules/base.xml.in.h:983
msgid "Caps Lock key behavior"
msgstr "Поведінка клавіші Caps Lock"
-#: ../rules/base.xml.in.h:979
+#: ../rules/base.xml.in.h:984
msgid "Caps Lock uses internal capitalization; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock вмикає внутрішню капіталізацію. Shift призупиняє дію Caps Lock"
-#: ../rules/base.xml.in.h:980
+#: ../rules/base.xml.in.h:985
msgid "Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock"
msgstr "Caps Lock вмикає внутрішню капіталізацію. Shift не впливає на Caps Lock"
-#: ../rules/base.xml.in.h:981
+#: ../rules/base.xml.in.h:986
msgid "Caps Lock acts as Shift with locking; Shift \"pauses\" Caps Lock"
msgstr "Caps Lock дія як Shift з блокуванням. Shift призупиняє дію Caps Lock"
-#: ../rules/base.xml.in.h:982
+#: ../rules/base.xml.in.h:987
msgid "Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock"
msgstr "Caps Lock діє як Shift з блокуванням. Shift не впливає на Caps Lock"
-#: ../rules/base.xml.in.h:983
+#: ../rules/base.xml.in.h:988
msgid "Caps Lock toggles normal capitalization of alphabetic characters"
msgstr "Caps Lock вмикає звичайну капіталізацію символів алфавіту"
-#: ../rules/base.xml.in.h:984
+#: ../rules/base.xml.in.h:989
msgid "Make Caps Lock an additional Num Lock"
msgstr "Caps Lock — додаткова клавіша Num Lock"
-#: ../rules/base.xml.in.h:985
+#: ../rules/base.xml.in.h:990
msgid "Swap ESC and Caps Lock"
msgstr "Поміняти місцями клавіші ESC та Caps Lock"
-#: ../rules/base.xml.in.h:986
+#: ../rules/base.xml.in.h:991
msgid "Make Caps Lock an additional ESC"
msgstr "Caps Lock — додаткова клавіша ESC"
-#: ../rules/base.xml.in.h:987
+#: ../rules/base.xml.in.h:992
msgid "Make Caps Lock an additional Backspace"
msgstr "Caps Lock — додаткова клавіша Backspace"
-#: ../rules/base.xml.in.h:988
+#: ../rules/base.xml.in.h:993
msgid "Make Caps Lock an additional Super"
msgstr "Caps Lock — додаткова клавіша Super"
-#: ../rules/base.xml.in.h:989
+#: ../rules/base.xml.in.h:994
msgid "Make Caps Lock an additional Hyper"
msgstr "Caps Lock — додаткова клавіша Hyper"
-#: ../rules/base.xml.in.h:990
+#: ../rules/base.xml.in.h:995
msgid "Caps Lock toggles ShiftLock (affects all keys)"
msgstr "Caps Lock перемикає Shift (діє одразу на всі клавіші)"
-#: ../rules/base.xml.in.h:991
+#: ../rules/base.xml.in.h:996
msgid "Caps Lock is disabled"
msgstr "Caps Lock вимкнено"
-#: ../rules/base.xml.in.h:992
+#: ../rules/base.xml.in.h:997
msgid "Make Caps Lock an additional Ctrl"
msgstr "Caps Lock — додаткова клавіша Ctrl"
-#: ../rules/base.xml.in.h:993
+#: ../rules/base.xml.in.h:998
msgid "Alt/Win key behavior"
msgstr "Поведінка клавіш Alt/Win"
-#: ../rules/base.xml.in.h:994
+#: ../rules/base.xml.in.h:999
msgid "Add the standard behavior to Menu key"
msgstr "Додати звичайну поведінку на клавішу Menu"
-#: ../rules/base.xml.in.h:995
+#: ../rules/base.xml.in.h:1000
msgid "Alt and Meta are on Alt keys"
msgstr "Alt та Meta на клавішах Alt"
-#: ../rules/base.xml.in.h:996
+#: ../rules/base.xml.in.h:1001
msgid "Alt is mapped to Win keys (and the usual Alt keys)"
msgstr "Alt використовуються як Win (і як звичайні Alt)"
-#: ../rules/base.xml.in.h:997
+#: ../rules/base.xml.in.h:1002
msgid "Ctrl is mapped to Win keys (and the usual Ctrl keys)"
msgstr "Ctrl використовується як Win (і як звичайний Ctrl)"
-#: ../rules/base.xml.in.h:998
+#: ../rules/base.xml.in.h:1003
msgid "Ctrl is mapped to Alt keys, Alt is mapped to Win keys"
msgstr "Ctrl використовується як клавіші Alt, Alt використовується як Win"
-#: ../rules/base.xml.in.h:999
+#: ../rules/base.xml.in.h:1004
msgid "Meta is mapped to Win keys"
msgstr "Meta відповідає клавішам Win"
-#: ../rules/base.xml.in.h:1000
+#: ../rules/base.xml.in.h:1005
msgid "Meta is mapped to Left Win"
msgstr "Meta відповідає лівій клавіші Win"
-#: ../rules/base.xml.in.h:1001
+#: ../rules/base.xml.in.h:1006
msgid "Hyper is mapped to Win keys"
msgstr "Hyper відповідає клавішам Win"
-#: ../rules/base.xml.in.h:1002
+#: ../rules/base.xml.in.h:1007
msgid "Alt is mapped to Right Win, Super to Menu"
msgstr "Клавіша Alt відповідає правій клавіші Win, а Super - клавіші Menu."
-#: ../rules/base.xml.in.h:1003
+#: ../rules/base.xml.in.h:1008
msgid "Alt is swapped with Win"
msgstr "Alt міняється з клавішею Win"
-#: ../rules/base.xml.in.h:1004
+#: ../rules/base.xml.in.h:1009
msgid "Position of Compose key"
msgstr "Розташування клавіші Compose"
-#: ../rules/base.xml.in.h:1005
+#: ../rules/base.xml.in.h:1010
msgid "3rd level of Left Win"
msgstr "3-ій рівень лівої Win"
-#: ../rules/base.xml.in.h:1006
+#: ../rules/base.xml.in.h:1011
msgid "3rd level of Right Win"
msgstr "3-ій рівень правої Win"
-#: ../rules/base.xml.in.h:1007
+#: ../rules/base.xml.in.h:1012
msgid "3rd level of Menu"
msgstr "3-ій рівень клавіші меню"
-#: ../rules/base.xml.in.h:1008
+#: ../rules/base.xml.in.h:1013
msgid "3rd level of Left Ctrl"
msgstr "3-ій рівень лівої Ctrl"
-#: ../rules/base.xml.in.h:1009
+#: ../rules/base.xml.in.h:1014
msgid "3rd level of Right Ctrl"
msgstr "3-ій рівень правої Ctrl"
-#: ../rules/base.xml.in.h:1010
+#: ../rules/base.xml.in.h:1015
msgid "3rd level of Caps Lock"
msgstr "3-ій рівень Caps Lock"
-#: ../rules/base.xml.in.h:1011
+#: ../rules/base.xml.in.h:1016
msgid "3rd level of &lt;Less/Greater&gt;"
msgstr "3-ій рівень &lt;Менше/Більше&gt;"
-#: ../rules/base.xml.in.h:1012
+#: ../rules/base.xml.in.h:1017
msgid "Pause"
msgstr "Pause"
-#: ../rules/base.xml.in.h:1013
+#: ../rules/base.xml.in.h:1018
msgid "PrtSc"
msgstr "PrtSc"
-#: ../rules/base.xml.in.h:1014
+#: ../rules/base.xml.in.h:1019
msgid "Miscellaneous compatibility options"
msgstr "Різні параметри сумісності"
-#: ../rules/base.xml.in.h:1015
+#: ../rules/base.xml.in.h:1020
msgid "Default numeric keypad keys"
msgstr "Типові клавіші цифрової клавіатури"
-#: ../rules/base.xml.in.h:1016
+#: ../rules/base.xml.in.h:1021
msgid "Numeric keypad keys always enter digits (as in Mac OS)"
msgstr "За допомогою цифрової клавіатури вводяться лише цифри (як у Mac OS)"
-#: ../rules/base.xml.in.h:1017
-msgid "Shift with numeric keypad keys works as in MS Windows"
-msgstr "Shift з цифровою клавіатурою працює як у Microsoft Windows"
+#: ../rules/base.xml.in.h:1022
+msgid "NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)"
+msgstr "Увімкнено NumLock: цифри, Shift перемикає на клавіші зі стрілками, Numlock вимкнено: завжди клавіші зі стрілками (як у MS Windows)"
-#: ../rules/base.xml.in.h:1018
+#: ../rules/base.xml.in.h:1023
msgid "Shift does not cancel Num Lock, chooses 3rd level instead"
msgstr "Shift не скасовує Num Lock, а вибирає третій рівень"
-#: ../rules/base.xml.in.h:1019
+#: ../rules/base.xml.in.h:1024
msgid "Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server"
msgstr "Сліпі клавіші (Ctrl+Alt+&lt;key&gt;) обробляються на сервері"
-#: ../rules/base.xml.in.h:1020
+#: ../rules/base.xml.in.h:1025
msgid "Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)"
msgstr "Клавіатура Apple Aluminium (емуляція клавіш ПК: Print, Scroll Lock, Pause, Num Lock)"
-#: ../rules/base.xml.in.h:1021
+#: ../rules/base.xml.in.h:1026
msgid "Shift cancels Caps Lock"
msgstr "Shift скасовує Caps Lock"
-#: ../rules/base.xml.in.h:1022
+#: ../rules/base.xml.in.h:1027
msgid "Enable extra typographic characters"
msgstr "Увімкнути додаткові типографські символи"
-#: ../rules/base.xml.in.h:1023
+#: ../rules/base.xml.in.h:1028
msgid "Both Shift keys together toggle Caps Lock"
msgstr "Обидві клавіші Shift разом перемикають стан Caps Lock"
-#: ../rules/base.xml.in.h:1024
+#: ../rules/base.xml.in.h:1029
msgid "Both Shift keys together activate Caps Lock, one Shift key deactivates"
msgstr "Натискання обох клавіш Shift вмикають Caps Lock, одна клавіша Shift — вимикає"
-#: ../rules/base.xml.in.h:1025
+#: ../rules/base.xml.in.h:1030
msgid "Both Shift keys together toggle ShiftLock"
msgstr "Обидві клавіші Shift разом перемикають стан Shift"
-#: ../rules/base.xml.in.h:1026
+#: ../rules/base.xml.in.h:1031
msgid "Shift + NumLock toggles PointerKeys"
msgstr "Shift + NumLock перемикає PointerKeys"
-#: ../rules/base.xml.in.h:1027
+#: ../rules/base.xml.in.h:1032
msgid "Allow breaking grabs with keyboard actions (warning: security risk)"
msgstr "Дозволити скасування захоплення діями з клавіатури (увага: небезпечно)"
-#: ../rules/base.xml.in.h:1028
+#: ../rules/base.xml.in.h:1033
msgid "Allow grab and window tree logging"
msgstr "Дозволити захоплення і журналювання ієрархії вікон"
-#: ../rules/base.xml.in.h:1029
+#: ../rules/base.xml.in.h:1034
msgid "Adding currency signs to certain keys"
msgstr "Додавання знаків валюти до деяких клавіш"
-#: ../rules/base.xml.in.h:1030
+#: ../rules/base.xml.in.h:1035
msgid "Euro on E"
msgstr "Євро на E"
-#: ../rules/base.xml.in.h:1031
+#: ../rules/base.xml.in.h:1036
msgid "Euro on 2"
msgstr "Євро на 2"
-#: ../rules/base.xml.in.h:1032
+#: ../rules/base.xml.in.h:1037
msgid "Euro on 4"
msgstr "Євро на 4"
-#: ../rules/base.xml.in.h:1033
+#: ../rules/base.xml.in.h:1038
msgid "Euro on 5"
msgstr "Євро на 5"
-#: ../rules/base.xml.in.h:1034
+#: ../rules/base.xml.in.h:1039
msgid "Rupee on 4"
msgstr "Символ рупії на 4"
-#: ../rules/base.xml.in.h:1035
+#: ../rules/base.xml.in.h:1040
msgid "Key to choose 5th level"
msgstr "Клавіша для вибору 5-го ряду"
-#: ../rules/base.xml.in.h:1036
+#: ../rules/base.xml.in.h:1041
msgid "&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "&lt;Менше ніж/Більше ніж&gt; вибирає 5-ий рівень, фіксується, якщо натиснути разом зі іншою комбінацією вибору 5-го рівня"
-#: ../rules/base.xml.in.h:1037
+#: ../rules/base.xml.in.h:1042
msgid "Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Права клавіша Alt вибирає 5-ий рівень, фіксується, якщо натиснути разом зі іншою комбінацією вибору 5-го рівня"
-#: ../rules/base.xml.in.h:1038
+#: ../rules/base.xml.in.h:1043
msgid "Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Ліва клавіша Win вибирає 5-ий рівень, фіксується, якщо натиснути разом зі іншою комбінацією вибору 5-го рівня"
-#: ../rules/base.xml.in.h:1039
+#: ../rules/base.xml.in.h:1044
msgid "Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser"
msgstr "Права клавіша Win вибирає 5-ий рівень, фіксується, якщо натиснути разом зі іншою комбінацією вибору 5-го рівня"
-#: ../rules/base.xml.in.h:1040
+#: ../rules/base.xml.in.h:1045
msgid "Using space key to input non-breakable space character"
msgstr "Клавіша пробіл генерує символ нерозривного пробілу"
-#: ../rules/base.xml.in.h:1041
+#: ../rules/base.xml.in.h:1046
msgid "Usual space at any level"
msgstr "Звичайний пробіл на будь-якому рівні"
-#: ../rules/base.xml.in.h:1042
+#: ../rules/base.xml.in.h:1047
msgid "Non-breakable space character at second level"
msgstr "Символ нерозривного пробілу на другому рівні"
-#: ../rules/base.xml.in.h:1043
+#: ../rules/base.xml.in.h:1048
msgid "Non-breakable space character at third level"
msgstr "Символ нерозривного пробілу на третьому рівні"
-#: ../rules/base.xml.in.h:1044
+#: ../rules/base.xml.in.h:1049
msgid "Non-breakable space character at third level, nothing at fourth level"
msgstr "Символ нерозривного пробілу на третьому рівні, нічого на четвертому"
-#: ../rules/base.xml.in.h:1045
+#: ../rules/base.xml.in.h:1050
msgid "Non-breakable space character at third level, thin non-breakable space character at fourth level"
msgstr "Символ нерозривного пробілу на третьому рівні, символ тонкого нерозривного пробілу на четвертому рівні"
-#: ../rules/base.xml.in.h:1046
+#: ../rules/base.xml.in.h:1051
msgid "Non-breakable space character at fourth level"
msgstr "Символ нерозривного пробілу на четвертому рівні"
-#: ../rules/base.xml.in.h:1047
+#: ../rules/base.xml.in.h:1052
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level"
msgstr "Клавіша пробіл видає нерозривний пробіл на 4-му рівні, вузький нерозривний пробіл на 6-му рівні"
-#: ../rules/base.xml.in.h:1048
+#: ../rules/base.xml.in.h:1053
msgid "Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)"
msgstr "Клавіша пробіл видає нерозривний пробіл на 4-му рівні, вузький нерозривний пробіл на 6-му рівні (через Ctrl+Shift)"
-#: ../rules/base.xml.in.h:1049
+#: ../rules/base.xml.in.h:1054
msgid "Zero-width non-joiner character at second level"
msgstr "Незв’язувальний символ нульової ширини на другому рівні"
-#: ../rules/base.xml.in.h:1050
+#: ../rules/base.xml.in.h:1055
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level"
msgstr "Незв’язувальний символ нульової ширини на другому рівні, зв’язувальний символ нульової ширини на третьому рівні"
-#: ../rules/base.xml.in.h:1051
+#: ../rules/base.xml.in.h:1056
msgid "Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level"
msgstr "Незв’язувальний символ нульової ширини на другому рівні, зв’язувальний символ нульової ширини на третьому рівні, символ нерозривного пробілу на четвертому рівні"
-#: ../rules/base.xml.in.h:1052
+#: ../rules/base.xml.in.h:1057
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level"
msgstr "Незв’язувальний символ нульової ширини на другому рівні, нерозривний пробіл на третьому рівні"
-#: ../rules/base.xml.in.h:1053
+#: ../rules/base.xml.in.h:1058
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level"
msgstr "Незв’язувальний символ нульової ширини на другому рівні, нерозривний пробіл на третьому рівні, нічого на четвертому рівні"
-#: ../rules/base.xml.in.h:1054
+#: ../rules/base.xml.in.h:1059
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level"
msgstr "Незв’язувальний символ нульової ширини на другому рівні, символ нерозривного пробілу на третьому рівні, зв’язувальний символ нульової ширини на четвертому"
-#: ../rules/base.xml.in.h:1055
+#: ../rules/base.xml.in.h:1060
msgid "Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level"
msgstr "Незв’язувальний символ нульової ширини на другому рівні, нерозривний пробіл на третьому рівні, вузький нерозривний пробіл на четвертому рівні"
-#: ../rules/base.xml.in.h:1056
+#: ../rules/base.xml.in.h:1061
msgid "Zero-width non-joiner character at third level, zero-width joiner at fourth level"
msgstr "Незв’язувальний символ нульової ширини на третьому рівні, зв’язувальний символ нульової ширини на четвертому"
-#: ../rules/base.xml.in.h:1057
+#: ../rules/base.xml.in.h:1062
msgid "Japanese keyboard options"
msgstr "Параметри японської клавіатури"
-#: ../rules/base.xml.in.h:1058
+#: ../rules/base.xml.in.h:1063
msgid "Kana Lock key is locking"
msgstr "Клавіша Kana Lock фіксується"
-#: ../rules/base.xml.in.h:1059
+#: ../rules/base.xml.in.h:1064
msgid "NICOLA-F style Backspace"
msgstr "NICOLA-F style Backspace"
-#: ../rules/base.xml.in.h:1060
+#: ../rules/base.xml.in.h:1065
msgid "Make Zenkaku Hankaku an additional ESC"
msgstr "Клавіша повних/половинних форм — додаткова клавіша ESC"
-#: ../rules/base.xml.in.h:1061
+#: ../rules/base.xml.in.h:1066
+msgid "Korean Hangul/Hanja keys"
+msgstr "Корейські клавіші хангиля/ханчі"
+
+#: ../rules/base.xml.in.h:1067
+msgid "Hardware Hangul/Hanja keys"
+msgstr "Апаратні клавіші хангиля/ханчі"
+
+#: ../rules/base.xml.in.h:1068
+msgid "Right Alt as Hangul, right Ctrl as Hanja"
+msgstr "Права клавіша Alt працює як хангиль, права клавіша Ctrl — як ханча"
+
+#: ../rules/base.xml.in.h:1069
+msgid "Right Ctrl as Hangul, right Alt as Hanja"
+msgstr "Права клавіша Ctrl працює як хангиль, права клавіша Alt — як ханча"
+
+#: ../rules/base.xml.in.h:1070
msgid "Adding Esperanto supersigned letters"
msgstr "Додавання діакритичних знаків есперанто"
-#: ../rules/base.xml.in.h:1062
+#: ../rules/base.xml.in.h:1071
msgid "To the corresponding key in a Qwerty layout"
msgstr "На відповідну клавішу у розкладці Qwerty"
-#: ../rules/base.xml.in.h:1063
+#: ../rules/base.xml.in.h:1072
msgid "To the corresponding key in a Dvorak layout"
msgstr "На відповідну клавішу у розкладці Дворака"
-#: ../rules/base.xml.in.h:1064
+#: ../rules/base.xml.in.h:1073
msgid "To the corresponding key in a Colemak layout"
msgstr "На відповідну клавішу у розкладці Колемака"
-#: ../rules/base.xml.in.h:1065
+#: ../rules/base.xml.in.h:1074
msgid "Maintain key compatibility with old Solaris keycodes"
msgstr "Підтримувати сумісність клавіш з застарілими кодами клавіш Solaris"
-#: ../rules/base.xml.in.h:1066
+#: ../rules/base.xml.in.h:1075
msgid "Sun Key compatibility"
msgstr "Сумісність з кодами клавіш Sun"
-#: ../rules/base.xml.in.h:1067
+#: ../rules/base.xml.in.h:1076
msgid "Key sequence to kill the X server"
msgstr "Комбінація клавіш для переривання роботи X-сервера"
-#: ../rules/base.xml.in.h:1068
+#: ../rules/base.xml.in.h:1077
msgid "Ctrl + Alt + Backspace"
msgstr "Ctrl + Alt + Backspace"
@@ -4071,254 +4107,261 @@ msgid "German (with Hungarian letters and no dead keys)"
msgstr "Німецька (з літерами угорської без сліпих клавіш)"
#: ../rules/base.extras.xml.in.h:26
+msgid "Polish (Germany, eliminate dead keys)"
+msgstr "Польська (Німеччина, вимкнути сліпі клавіші)"
+
+#: ../rules/base.extras.xml.in.h:27
msgid "German (Sun Type 6/7)"
msgstr "Німецька (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:27
+#: ../rules/base.extras.xml.in.h:28
msgid "German (Aus der Neo-Welt)"
msgstr "Німецька (Aus der Neo-Welt)"
-#: ../rules/base.extras.xml.in.h:30
+#: ../rules/base.extras.xml.in.h:31
msgid "Avestan"
msgstr "Авестанська"
-#: ../rules/base.extras.xml.in.h:33
+#: ../rules/base.extras.xml.in.h:34
msgid "Lithuanian (US Dvorak with Lithuanian letters)"
msgstr "Литовська (Дворак, США, з литовськими літерами)"
-#: ../rules/base.extras.xml.in.h:34
+#: ../rules/base.extras.xml.in.h:35
msgid "Lithuanian (Sun Type 6/7)"
msgstr "Литовська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:37
+#: ../rules/base.extras.xml.in.h:38
msgid "Latvian (US Dvorak)"
msgstr "Латвійська (Дворак, США)"
-#: ../rules/base.extras.xml.in.h:38
+#: ../rules/base.extras.xml.in.h:39
msgid "Latvian (US Dvorak, Y variant)"
msgstr "Латвійська (Дворак, США, варіант з літерою Y)"
-#: ../rules/base.extras.xml.in.h:39
+#: ../rules/base.extras.xml.in.h:40
msgid "Latvian (US Dvorak, minus variant)"
msgstr "Латвійська (Дворак, США, варіант з мінусом)"
-#: ../rules/base.extras.xml.in.h:40
+#: ../rules/base.extras.xml.in.h:41
msgid "Latvian (programmer US Dvorak)"
msgstr "Латвійська (програмістський Дворак)"
-#: ../rules/base.extras.xml.in.h:41
+#: ../rules/base.extras.xml.in.h:42
msgid "Latvian (programmer US Dvorak, Y variant)"
msgstr "Латвійська (програмістський Дворак, варіант з літерою Y)"
-#: ../rules/base.extras.xml.in.h:42
+#: ../rules/base.extras.xml.in.h:43
msgid "Latvian (programmer US Dvorak, minus variant)"
msgstr "Латвійська (програмістський Дворак, варіант з мінусом)"
-#: ../rules/base.extras.xml.in.h:43
+#: ../rules/base.extras.xml.in.h:44
msgid "Latvian (US Colemak)"
msgstr "Латвійська (США, Коулмак)"
-#: ../rules/base.extras.xml.in.h:44
+#: ../rules/base.extras.xml.in.h:45
msgid "Latvian (US Colemak, apostrophe variant)"
msgstr "Латвійська (Коулмак, США, варіант з апострофом)"
-#: ../rules/base.extras.xml.in.h:45
+#: ../rules/base.extras.xml.in.h:46
msgid "Latvian (Sun Type 6/7)"
msgstr "Латвійська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:48
+#: ../rules/base.extras.xml.in.h:49
msgid "English (US, international AltGr Unicode combining)"
msgstr "Англійська (США, інтернаціональна, введення Unicode за допомогою AltGr)"
-#: ../rules/base.extras.xml.in.h:49
+#: ../rules/base.extras.xml.in.h:50
msgid "English (US, international AltGr Unicode combining, alternative)"
msgstr "Англійська (США, інтернаціональна, введення Unicode за допомогою AltGr, альтернативна)"
-#: ../rules/base.extras.xml.in.h:50
+#: ../rules/base.extras.xml.in.h:51
msgid "Atsina"
msgstr "Атсінська"
-#: ../rules/base.extras.xml.in.h:51
+#: ../rules/base.extras.xml.in.h:52
msgid "Coeur d'Alene Salish"
msgstr "Салішська кер-д’ален"
-#: ../rules/base.extras.xml.in.h:52
+#: ../rules/base.extras.xml.in.h:53
msgid "Czech Slovak and German (US)"
msgstr "Чеська, словацька і німецька (США)"
-#: ../rules/base.extras.xml.in.h:53
+#: ../rules/base.extras.xml.in.h:54
msgid "English (US, Sun Type 6/7)"
msgstr "Англійська (США, Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:54
+#: ../rules/base.extras.xml.in.h:55
msgid "English (Norman)"
msgstr "Англійська (Норман)"
-#: ../rules/base.extras.xml.in.h:57
+#: ../rules/base.extras.xml.in.h:58
msgid "Polish (international with dead keys)"
msgstr "Польська (інтернаціональна зі сліпими клавішами)"
-#: ../rules/base.extras.xml.in.h:58
+#: ../rules/base.extras.xml.in.h:59
msgid "Polish (Colemak)"
msgstr "Польська (Коулмак)"
-#: ../rules/base.extras.xml.in.h:59
+#: ../rules/base.extras.xml.in.h:60
msgid "Polish (Sun Type 6/7)"
msgstr "Польська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:63
+#: ../rules/base.extras.xml.in.h:64
msgid "Crimean Tatar (Dobruja Q)"
msgstr "Кримськотатарська (Dobruja Q)"
-#: ../rules/base.extras.xml.in.h:64
+#: ../rules/base.extras.xml.in.h:65
msgid "Romanian (ergonomic Touchtype)"
msgstr "Румунська (ергономічна для друку наосліп)"
-#: ../rules/base.extras.xml.in.h:65
+#: ../rules/base.extras.xml.in.h:66
msgid "Romanian (Sun Type 6/7)"
msgstr "Румунська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:68
+#: ../rules/base.extras.xml.in.h:69
msgid "Serbian (combining accents instead of dead keys)"
msgstr "Сербська (комбінації з акцентами замість сліпих клавіш)"
-#: ../rules/base.extras.xml.in.h:71
+#: ../rules/base.extras.xml.in.h:72
msgid "Church Slavonic"
msgstr "Церковнослов’янська"
-#: ../rules/base.extras.xml.in.h:72
+#: ../rules/base.extras.xml.in.h:73
msgid "Russian (with Ukrainian-Belorussian layout)"
msgstr "Російська (з українсько-білоруською розкладкою)"
-#: ../rules/base.extras.xml.in.h:73
+#: ../rules/base.extras.xml.in.h:74
msgid "Russian (Sun Type 6/7)"
msgstr "Російська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:76
+#: ../rules/base.extras.xml.in.h:77
msgid "Armenian (OLPC phonetic)"
msgstr "Вірменська (OLPC, фонетична)"
-#: ../rules/base.extras.xml.in.h:79
+#: ../rules/base.extras.xml.in.h:80
msgid "Hebrew (Biblical, SIL phonetic)"
msgstr "Іврит (біблійна, фонетична, SIL)"
-#: ../rules/base.extras.xml.in.h:82
+#: ../rules/base.extras.xml.in.h:83
msgid "Arabic (Sun Type 6/7)"
msgstr "Арабська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:85
+#: ../rules/base.extras.xml.in.h:86
msgid "Belgian (Sun Type 6/7)"
msgstr "Бельгійська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:88
+#: ../rules/base.extras.xml.in.h:89
msgid "Portuguese (Brazil, Sun Type 6/7)"
msgstr "Португальська (Бразилія, Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:91
+#: ../rules/base.extras.xml.in.h:92
msgid "Czech (Sun Type 6/7)"
msgstr "Чеська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:94
+#: ../rules/base.extras.xml.in.h:95
msgid "Danish (Sun Type 6/7)"
msgstr "Данська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:97
+#: ../rules/base.extras.xml.in.h:98
msgid "Dutch (Sun Type 6/7)"
msgstr "Голландська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:100
+#: ../rules/base.extras.xml.in.h:101
msgid "Estonian (Sun Type 6/7)"
msgstr "Естонська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:103
+#: ../rules/base.extras.xml.in.h:104
msgid "Finnish (Sun Type 6/7)"
msgstr "Фінська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:105
+#: ../rules/base.extras.xml.in.h:106
msgid "French (Sun Type 6/7)"
msgstr "Французька (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:108
+#: ../rules/base.extras.xml.in.h:109
msgid "Greek (Sun Type 6/7)"
msgstr "Грецька (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:111
+#: ../rules/base.extras.xml.in.h:112
msgid "Italian (Sun Type 6/7)"
msgstr "Італійська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:114
+#: ../rules/base.extras.xml.in.h:115
msgid "Japanese (Sun Type 6)"
msgstr "Японська (Sun Type 6)"
-#: ../rules/base.extras.xml.in.h:115
+#: ../rules/base.extras.xml.in.h:116
msgid "Japanese (Sun Type 7 - pc compatible)"
msgstr "Японська (Sun Type 7, сумісна з ПК)"
-#: ../rules/base.extras.xml.in.h:116
+#: ../rules/base.extras.xml.in.h:117
msgid "Japanese (Sun Type 7 - sun compatible)"
msgstr "Японська (Sun Type 7, сумісна з комп’ютерами Sun)"
-#: ../rules/base.extras.xml.in.h:119
+#: ../rules/base.extras.xml.in.h:120
msgid "Norwegian (Sun Type 6/7)"
msgstr "Норвезька (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:121
+#: ../rules/base.extras.xml.in.h:122
msgid "Portuguese (Sun Type 6/7)"
msgstr "Португальська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:124
+#: ../rules/base.extras.xml.in.h:125
msgid "Slovak (Sun Type 6/7)"
msgstr "Словацька (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:127
+#: ../rules/base.extras.xml.in.h:128
msgid "Spanish (Sun Type 6/7)"
msgstr "Іспанська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:130
+#: ../rules/base.extras.xml.in.h:131
msgid "Swedish (Dvorak A5)"
msgstr "Шведська (Дворак A5)"
-#: ../rules/base.extras.xml.in.h:131
+#: ../rules/base.extras.xml.in.h:132
msgid "Swedish (Sun Type 6/7)"
msgstr "Шведська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:133
+#: ../rules/base.extras.xml.in.h:134
msgid "German (Switzerland, Sun Type 6/7)"
msgstr "Німецька (Швейцарія, Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:134
+#: ../rules/base.extras.xml.in.h:135
msgid "French (Switzerland, Sun Type 6/7)"
msgstr "Французька (Швейцарія, Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:137
+#: ../rules/base.extras.xml.in.h:138
msgid "Turkish (Sun Type 6/7)"
msgstr "Турецька (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:140
+#: ../rules/base.extras.xml.in.h:141
msgid "Ukrainian (Sun Type 6/7)"
msgstr "Українська (Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:142
+#: ../rules/base.extras.xml.in.h:143
msgid "English (UK, Sun Type 6/7)"
msgstr "Англійська (Великобританія, Sun Type 6/7)"
-#: ../rules/base.extras.xml.in.h:145
+#: ../rules/base.extras.xml.in.h:146
msgid "Korean (Sun Type 6/7)"
msgstr "Корейська (Sun Type 6/7)"
#. Keyboard indicator for European layouts
-#: ../rules/base.extras.xml.in.h:147
+#: ../rules/base.extras.xml.in.h:148
msgid "eu"
msgstr "eu"
-#: ../rules/base.extras.xml.in.h:148
+#: ../rules/base.extras.xml.in.h:149
msgid "EurKEY (US based layout with european letters)"
msgstr "EurKEY (розкладка на основі американської, з європейськими літерами)"
-#: ../rules/base.extras.xml.in.h:151
+#: ../rules/base.extras.xml.in.h:152
msgid "Mmuock"
msgstr "М’мюок"
+#~ msgid "Shift with numeric keypad keys works as in MS Windows"
+#~ msgstr "Shift з цифровою клавіатурою працює як у Microsoft Windows"
+
#~ msgid "Bengali"
#~ msgstr "Бенгальська"
diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in
index c700972d2..c502bc6b0 100644
--- a/xorg-server/xkeyboard-config/rules/base.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.xml.in
@@ -4942,7 +4942,7 @@
<configItem>
<name>us</name>
<shortDescription>us</shortDescription>
- <_description>Singhala (US keyboard with Singhala letters)</_description>
+ <_description>Sinhala (US keyboard with Sinhala letters)</_description>
</configItem>
</variant>
</variantList>
diff --git a/xorg-server/xkeyboard-config/symbols/cm b/xorg-server/xkeyboard-config/symbols/cm
index 685ef2afa..8ed3f40ae 100644
--- a/xorg-server/xkeyboard-config/symbols/cm
+++ b/xorg-server/xkeyboard-config/symbols/cm
@@ -328,15 +328,25 @@ modifier_map Mod5 { ISO_Level3_Latch };
// ------- begin Mmuock keyboard map ------------------------------------------
// This layout is used for the Mmuock alphabet as described in the book
-// _The Sound of Mmuock: Orthography_ [isbn: 978-9956-645-17-6]. Mmuock
-// is the language of the Mmuock (local: Muòk) people of Western Cameroon.
+// _The Sound of Mmuock: Orthography (2. ed.)_ [isbn: 978-9956-645-28-1].
+// Mmuock is the language of the Mmuock (local: Muòk) people of Western
+// Cameroon.
//
// Author: Tano Fotang <fotang at mmuock dot org>
// Created: 2014-06-24
-// Version: 1.0
+// Version: 1.1
//
-// CHANGES:
+// CHANGES v 1.0:
// 2014-07-06 corrected shifted level3 of <AC11> to quotedbl
+// CHANGES v 1.1:
+// 2015-05-23 1- added dead_tilde to key <TILDE>; this is needed to produce
+// the letter <ñ> which was totally missing from the keyboard
+// 2- added letter <dz> to <AB01>; the letter had been missing.
+// 3- if we're not re-defining particular symbols from the included
+// latin layout, then maintain the original latin mappings.
+// Previously, we had set them to NoSymbol. Now, we want to
+// keep the original latin mappings except for those few that we
+// want to overwrite for our own keyboard.
//
// NOTES:
// 0. This map is based on the Latin layout for the US keyboard.
@@ -361,7 +371,7 @@ modifier_map Mod5 { ISO_Level3_Latch };
//
// 5. The 'Cameroon Multilingual' keyboard that is defined elsewhere, does not
// fit our needs because: (a) it is based on a different alphabet, (b) the
-// vast majority of its symbols are not used in Mmuock, and (b) for the few
+// vast majority of its symbols are not used in Mmuock, and (c) for the few
// symbols that are shared, the placing of the symbols is not egonomic for
// typing Mmuock as the _PRIMARY_ language. The aim of this keyboard, is to
// give priority to symbols that are actually used in the Mmuock alphabet.
@@ -382,6 +392,9 @@ modifier_map Mod5 { ISO_Level3_Latch };
// These fonts are all freely available.
//
// ------the layout-----------
+// Note: this drawing does not show the symbols that are mapped by the included
+// latin sybols files. Shown are only the symbols that are requiired by the
+// Mmuock keyboard.
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & | * │ ( │ ) │ _ │ + ┃ ⌫ Back- ┃
@@ -391,10 +404,10 @@ modifier_map Mod5 { ISO_Level3_Latch };
// AD┃Tab ↹ ┃ q │ w │ e ǝ │ š r │ t │ y │ u ω │ i ɛ │ o φ │ p π │ ø [ │ σ ] ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ A │ S │ D │ F │ G │  ̇ H │ J │ K │ L │ Œ : │ " ” │ Æ | ┃ ┃
-// AC┃Caps ⇬ ┃ a │ s  ̃| d  ̀| f  ̌| g  ̈|  ̣ h │ j  ̆│ k  ̏│ l  ̄│ Œ ; │ ' ’ │ æ \ ┃ ┃
+// AC┃Caps ⇬ ┃ a │ s  ̃| d  ̀| f  ̌| g  ̈|  ̣ h │ j  ̆│ k  ̏│ l  ̄│ œ ; │ ' ’ │ æ \ ┃ ┃
// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
-// ┃ │ Z │ X │ C │ V │ B │ N ŋ │ M │ < « │ > » │ ? ┃ ┃
-// AB┃Shift ⇧ │ z │ x │ c │ v │ b │ n Ŋ │ m │ , ‹ │ . › │ / ┃Shift ⇧ ┃
+// ┃ │ Z Dz │ X │ C │ V │ B │ N ŋ │ M │ < « │ > » │ ? ┃ ┃
+// AB┃Shift ⇧ │ z dz │ x │ c │ v │ b │ n Ŋ │ m │ , ‹ │ . › │ / ┃Shift ⇧ ┃
// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// AA┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ⇮┃Menu ┃Ctrl ┃
@@ -408,8 +421,8 @@ xkb_symbols "mmuock" {
include "level3(ralt_switch)"
name[Group1]= "Mmuock";
- key <AE06> { [ 6, asciicircum, U0302, NoSymbol ] }; // tone 10
- key <AE07> { [ 7, ampersand, U0311, NoSymbol ] }; // tone 12
+ key <AE06> { [ 6, asciicircum, U0302 ] }; // tone 10
+ key <AE07> { [ 7, ampersand, U0311 ] }; // tone 12
key <AE08> { [ 8, asterisk, U030D, trademark ] }; // tone 13
key <AE09> { [ 9, parenleft, U0313, plusminus ] }; // tone 14
key <AE10> { [ 0, parenright, U030A, degree ] }; // tone 6
@@ -421,16 +434,18 @@ xkb_symbols "mmuock" {
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
key <AD11> { [ oslash, Ooblique, bracketleft, braceleft ] };
key <AD12> { [Greek_sigma, Greek_SIGMA, bracketright, braceright ] };
- key <AC02> { [ s, S, U0303, NoSymbol ] }; // tone 1
- key <AC03> { [ d, D, U0300, NoSymbol ] }; // tone 4
- key <AC04> { [ f, F, U030C, NoSymbol ] }; // tone 5
- key <AC05> { [ g, G, U0308, NoSymbol ] }; // tone 7
+ key <AC02> { [ s, S, U0303 ] }; // tone 1
+ key <AC03> { [ d, D, U0300 ] }; // tone 4
+ key <AC04> { [ f, F, U030C ] }; // tone 5
+ key <AC05> { [ g, G, U0308 ] }; // tone 7
key <AC06> { [ U0323, U0307, h, H ] }; // COMBINING DOT BELOW, ABOVE
- key <AC07> { [ j, J, U0306, NoSymbol ] }; // tone 9
- key <AC08> { [ k, K, U030F, NoSymbol ] }; // tone 11
- key <AC09> { [ l, L, U0304, NoSymbol ] }; // tone 0
+ key <AC07> { [ j, J, U0306 ] }; // tone 9
+ key <AC08> { [ k, K, U030F ] }; // tone 11
+ key <AC09> { [ l, L, U0304 ] }; // tone 0
key <AC10> { [ oe, OE, semicolon, colon ] };
key <AC11> { [ U0301, U030B, apostrophe, quotedbl ] }; // tone 3, 8
+ key <TLDE> { [ grave, dead_tilde ] };
+ key <AB01> { [ z, Z, U01F3, U01F2 ] }; // U01F3 = letter dz
key <AB06> { [ n, N, eng, ENG ] };
key <AB08> { [ comma, less, guillemotleft, U2039 ] };
key <AB09> { [ period, greater, guillemotright, U203A ] };
@@ -438,9 +453,8 @@ xkb_symbols "mmuock" {
include "cm(solidus_switch)"
};
-
// use slash as special key for switching to level3
-partial hidden modifier_keys
+partial modifier_keys
xkb_symbols "solidus_switch" {
key <AB10> {
symbols[Group1] = [ ISO_Level3_Latch, question, slash, NoSymbol ]
diff --git a/xorg-server/xkeyboard-config/symbols/lk b/xorg-server/xkeyboard-config/symbols/lk
index 017029dfb..0830790c2 100644
--- a/xorg-server/xkeyboard-config/symbols/lk
+++ b/xorg-server/xkeyboard-config/symbols/lk
@@ -88,16 +88,16 @@ xkb_symbols "tam_TAB" {
name[Group1]= "Tamil (Sri Lanka, TAB Typewriter)";
};
-// SINGHALA - US, SUBSTITUTES SOME AND ADDS SOME
+// SINHALA - US, SUBSTITUTES SOME AND ADDS SOME
// =============================================
//
// This started as an upgrade to the first romanized version of
-// Singhala called PTS Pali created in the 1860s. PTS requires
+// Sinhala called PTS Pali created in the 1860s. PTS requires
// dots and bars on letters that are rare in fonts, and impossible
// to type. Its singular purpose was to print Tripitaka, the
// collection of Buddhist discourses.
//
-// This version covers the entire newer Singhala phoneme chart
+// This version covers the entire newer Sinhala phoneme chart
// (Hodiya) that became standard just before the end of the 19th
// century. All the phonemes map to the SBCS. It is easy and
// faster than English to type. It overcomes the setback of
@@ -106,10 +106,10 @@ xkb_symbols "tam_TAB" {
// the SLS1134 specification matching shape and morpheme sets
// violating Sanskrit orthography.
//
-// Most importantly, this romanized version of Singhala has a
+// Most importantly, this romanized version of Sinhala has a
// companion orthographic font that displays the text in the
// native script and a JavaScript converts it to Unicode Sinhala
-// and back dramatically increasing Singhala seen on the web due
+// and back dramatically increasing Sinhala seen on the web due
// to its ease of use
//
// Dedication:
@@ -123,7 +123,7 @@ xkb_symbols "tam_TAB" {
partial alphanumeric_keys modifier_keys
xkb_symbols "us" {
include "us(basic)"
- name[Group1]= "Singhala (US keyboard with Singhala letters)";
+ name[Group1]= "Sinhala (US keyboard with Sinhala letters)";
//
// UNSHIFTED, SHIFT, ALT
// --------------------------------------------
diff --git a/xorg-server/xkeyboard-config/symbols/ph b/xorg-server/xkeyboard-config/symbols/ph
index 6b3defa7b..a5fe5dc42 100644
--- a/xorg-server/xkeyboard-config/symbols/ph
+++ b/xorg-server/xkeyboard-config/symbols/ph
@@ -2,8 +2,6 @@
// Philippines National Keyboard Layout v1.0.0 (2010-10-23) //
// http://laibcoms.com/sandbox/the-philippines-national-keyboard-layout //
// //
-// License: GNU/GPLv3 //
-// //
// Loosely based on ISO/IEC 9995-3:2009 //
// * glyphs that are not used in Philippine Languages and //
// Philippine English were not included //