Compare commits
99 Commits
wip/msanch
...
issue-36
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
735ce62e8b | ||
|
|
cc028dd55a | ||
|
|
fc5b1591ad | ||
|
|
d63c0e277c | ||
|
|
06f790d86c | ||
|
|
a3918d8c38 | ||
|
|
5122b06839 | ||
|
|
f2d12e22b5 | ||
|
|
a647445b95 | ||
|
|
9dbe10889b | ||
|
|
5f6aace8aa | ||
|
|
f2e2af962d | ||
|
|
6f0c187cf4 | ||
|
|
d3a3b7f514 | ||
|
|
80ad471812 | ||
|
|
0206a579c2 | ||
|
|
86b853b23a | ||
|
|
cd0af33947 | ||
|
|
0b51ead004 | ||
|
|
d6107a60e4 | ||
|
|
194040dcb2 | ||
|
|
8fdf47ea5b | ||
|
|
82cecf2e36 | ||
|
|
d7f8a39023 | ||
|
|
083d11a032 | ||
|
|
e0852e5991 | ||
|
|
5cec4ae670 | ||
|
|
e4ee944d8d | ||
|
|
70bc94946f | ||
|
|
8c3f5b615f | ||
|
|
d1bebba77a | ||
|
|
83accce24e | ||
|
|
d86b62d1b7 | ||
|
|
a2303c5272 | ||
|
|
e0910c0f7c | ||
|
|
5b1e705561 | ||
|
|
d93037c05e | ||
|
|
73c7441279 | ||
|
|
5914f225a2 | ||
|
|
774930f1a1 | ||
|
|
3dd3c1ac34 | ||
|
|
40db4a6795 | ||
|
|
7fd8fa3478 | ||
|
|
33c3ed68fd | ||
|
|
a1ce0da9e7 | ||
|
|
52a779e432 | ||
|
|
6795fb0bd6 | ||
|
|
7544bba0c1 | ||
|
|
2d79ab6c5c | ||
|
|
fd034f3724 | ||
|
|
8502be66fa | ||
|
|
626bbeffbf | ||
|
|
4a3c610d70 | ||
|
|
bc9e5a4252 | ||
|
|
e09f8c87e8 | ||
|
|
9ad7f59cdb | ||
|
|
6e74f987ec | ||
|
|
8c8a7f089f | ||
|
|
9b6a931b43 | ||
|
|
c31bd67538 | ||
|
|
5297e86591 | ||
|
|
1d3154a89e | ||
|
|
fed5657b40 | ||
|
|
53f4d12566 | ||
|
|
5d20516330 | ||
|
|
69da686fa9 | ||
|
|
35eac697c1 | ||
|
|
705915cd31 | ||
|
|
cf23490c37 | ||
|
|
d5f081a108 | ||
|
|
f2917968ea | ||
|
|
16a1c35e28 | ||
|
|
baacd216dd | ||
|
|
d71af5e579 | ||
|
|
bc5be10d78 | ||
|
|
f91fbd7728 | ||
|
|
f40ad89c9f | ||
|
|
723c49a8b7 | ||
|
|
3f3e514ff2 | ||
|
|
aab7656d88 | ||
|
|
45e756f247 | ||
|
|
027a08804a | ||
|
|
e64a482972 | ||
|
|
eb4cd57aa2 | ||
|
|
94b96f8d97 | ||
|
|
989c7bf27e | ||
|
|
77ec6a8ea6 | ||
|
|
fb9db4e171 | ||
|
|
54013182d4 | ||
|
|
7571f0d59e | ||
|
|
90534afc20 | ||
|
|
29987ae033 | ||
|
|
a29ceb31dd | ||
|
|
74683b7ef7 | ||
|
|
6c655a6c71 | ||
|
|
13fdaa80bf | ||
|
|
6e3178d5b6 | ||
|
|
ca367e4e26 | ||
|
|
10c602fe95 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -8,6 +8,7 @@ ChangeLog
|
|||||||
INSTALL
|
INSTALL
|
||||||
aclocal.m4
|
aclocal.m4
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
|
data/.osk-layout-workbench
|
||||||
data/org.gnome.Shell.desktop
|
data/org.gnome.Shell.desktop
|
||||||
data/org.gnome.Shell.desktop.in
|
data/org.gnome.Shell.desktop.in
|
||||||
data/gnome-shell-extension-prefs.desktop
|
data/gnome-shell-extension-prefs.desktop
|
||||||
|
|||||||
158
configure
vendored
158
configure
vendored
@@ -1,158 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# configure script adapter for Meson
|
|
||||||
# Based on build-api: https://github.com/cgwalters/build-api
|
|
||||||
# Copyright 2010, 2011, 2013 Colin Walters <walters@verbum.org>
|
|
||||||
# Copyright 2016, 2017 Emmanuele Bassi
|
|
||||||
# Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php)
|
|
||||||
|
|
||||||
# Build API variables:
|
|
||||||
|
|
||||||
# Little helper function for reading args from the commandline.
|
|
||||||
# it automatically handles -a b and -a=b variants, and returns 1 if
|
|
||||||
# we need to shift $3.
|
|
||||||
read_arg() {
|
|
||||||
# $1 = arg name
|
|
||||||
# $2 = arg value
|
|
||||||
# $3 = arg parameter
|
|
||||||
local rematch='^[^=]*=(.*)$'
|
|
||||||
if [[ $2 =~ $rematch ]]; then
|
|
||||||
read "$1" <<< "${BASH_REMATCH[1]}"
|
|
||||||
else
|
|
||||||
read "$1" <<< "$3"
|
|
||||||
# There is no way to shift our callers args, so
|
|
||||||
# return 1 to indicate they should do it instead.
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
sanitycheck() {
|
|
||||||
# $1 = arg name
|
|
||||||
# $1 = arg command
|
|
||||||
# $2 = arg alternates
|
|
||||||
local cmd=$( which $2 2>/dev/null )
|
|
||||||
|
|
||||||
if [ -x "$cmd" ]; then
|
|
||||||
read "$1" <<< "$cmd"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
test -z $3 || {
|
|
||||||
for alt in $3; do
|
|
||||||
cmd=$( which $alt 2>/dev/null )
|
|
||||||
|
|
||||||
if [ -x "$cmd" ]; then
|
|
||||||
read "$1" <<< "$cmd"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
echo -e "\e[1;31mERROR\e[0m: Command '$2' not found"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
sanitycheck MESON 'meson'
|
|
||||||
sanitycheck NINJA 'ninja' 'ninja-build'
|
|
||||||
|
|
||||||
enable_docs='-Denable-gtk-doc=false'
|
|
||||||
enable_man='-Denable-man=false'
|
|
||||||
enable_introspection=''
|
|
||||||
|
|
||||||
while (($# > 0)); do
|
|
||||||
case "${1%%=*}" in
|
|
||||||
--prefix) read_arg prefix "$@" || shift;;
|
|
||||||
--bindir) read_arg bindir "$@" || shift;;
|
|
||||||
--sbindir) read_arg sbindir "$@" || shift;;
|
|
||||||
--libexecdir) read_arg libexecdir "$@" || shift;;
|
|
||||||
--datarootdir) read_arg datarootdir "$@" || shift;;
|
|
||||||
--datadir) read_arg datadir "$@" || shift;;
|
|
||||||
--sysconfdir) read_arg sysconfdir "$@" || shift;;
|
|
||||||
--libdir) read_arg libdir "$@" || shift;;
|
|
||||||
--mandir) read_arg mandir "$@" || shift;;
|
|
||||||
--includedir) read_arg includedir "$@" || shift;;
|
|
||||||
--enable-gtk-doc) enable_docs='-Denable-gtk-doc=true';;
|
|
||||||
--disable-gtk-doc) enable_docs='-Denable-gtk-doc=false';;
|
|
||||||
--enable-man) enable_man='-Denable-man=true';;
|
|
||||||
--disable-man) enable_man='-Denable-man=false';;
|
|
||||||
--enable-introspection) enable_introspection='';;
|
|
||||||
--disable-introspection) enable_introspection='-Ddisable_introspection=true';;
|
|
||||||
*) echo -e "\e[1;33mINFO\e[0m: Ignoring unknown option '$1'";;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# Defaults
|
|
||||||
test -z ${prefix} && prefix="/usr/local"
|
|
||||||
test -z ${bindir} && bindir=${prefix}/bin
|
|
||||||
test -z ${sbindir} && sbindir=${prefix}/sbin
|
|
||||||
test -z ${libexecdir} && libexecdir=${prefix}/bin
|
|
||||||
test -z ${datarootdir} && datarootdir=${prefix}/share
|
|
||||||
test -z ${datadir} && datadir=${datarootdir}
|
|
||||||
test -z ${sysconfdir} && sysconfdir=${prefix}/etc
|
|
||||||
test -z ${libdir} && libdir=${prefix}/lib
|
|
||||||
test -z ${mandir} && mandir=${prefix}/share/man
|
|
||||||
test -z ${includedir} && includedir=${prefix}/include
|
|
||||||
|
|
||||||
# The source directory is the location of this file
|
|
||||||
srcdir=$(dirname $0)
|
|
||||||
|
|
||||||
# The build directory is the current location
|
|
||||||
builddir=`pwd`
|
|
||||||
|
|
||||||
# If we're calling this file from the source directory then
|
|
||||||
# we automatically create a build directory and ensure that
|
|
||||||
# both Meson and Ninja invocations are relative to that
|
|
||||||
# location
|
|
||||||
if [[ -f "${builddir}/meson.build" ]]; then
|
|
||||||
mkdir -p _build
|
|
||||||
builddir="${builddir}/_build"
|
|
||||||
NINJA_OPT="-C ${builddir}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Wrapper Makefile for Ninja
|
|
||||||
cat > Makefile <<END
|
|
||||||
# Generated by configure; do not edit
|
|
||||||
|
|
||||||
all:
|
|
||||||
CC="\$(CC)" CXX="\$(CXX)" ${NINJA} ${NINJA_OPT}
|
|
||||||
|
|
||||||
install:
|
|
||||||
DESTDIR="\$(DESTDIR)" ${NINJA} ${NINJA_OPT} install
|
|
||||||
|
|
||||||
check:
|
|
||||||
${MESON} test ${NINJA_OPT}
|
|
||||||
END
|
|
||||||
|
|
||||||
echo "Summary:"
|
|
||||||
echo " meson:....... ${MESON}"
|
|
||||||
echo " ninja:....... ${NINJA}"
|
|
||||||
echo " prefix:...... ${prefix}"
|
|
||||||
echo " bindir:...... ${bindir}"
|
|
||||||
echo " sbindir:..... ${sbindir}"
|
|
||||||
echo " libexecdir:.. ${libexecdir}"
|
|
||||||
echo " datarootdir:. ${datarootdir}"
|
|
||||||
echo " datadir:..... ${datadir}"
|
|
||||||
echo " sysconfdir:.. ${sysconfdir}"
|
|
||||||
echo " libdir:...... ${libdir}"
|
|
||||||
echo " mandir:...... ${mandir}"
|
|
||||||
echo " includedir:.. ${includedir}"
|
|
||||||
echo " additional:.."
|
|
||||||
echo " - ${enable_docs} ${enable_man} ${enable_introspection}"
|
|
||||||
|
|
||||||
exec ${MESON} \
|
|
||||||
--prefix=${prefix} \
|
|
||||||
--libdir=${libdir} \
|
|
||||||
--libexecdir=${libexecdir} \
|
|
||||||
--datadir=${datadir} \
|
|
||||||
--sysconfdir=${sysconfdir} \
|
|
||||||
--bindir=${bindir} \
|
|
||||||
--includedir=${includedir} \
|
|
||||||
--mandir=${mandir} \
|
|
||||||
--default-library shared \
|
|
||||||
${enable_docs} \
|
|
||||||
${enable_man} \
|
|
||||||
${enable_introspection} \
|
|
||||||
${builddir} \
|
|
||||||
${srcdir}
|
|
||||||
|
|
||||||
# vim: ai ts=8 noet sts=2 ft=sh
|
|
||||||
33
data/README.osk-layouts
Normal file
33
data/README.osk-layouts
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
Gnome-shell OSK layouts are extracted from CLDR layout definitions:
|
||||||
|
https://www.unicode.org/cldr/charts/latest/keyboards/layouts/index.html
|
||||||
|
|
||||||
|
Updating these involves several steps:
|
||||||
|
|
||||||
|
1) Downloading and unzipping the tarball found at:
|
||||||
|
http://www.unicode.org/Public/cldr/latest/keyboards.zip
|
||||||
|
|
||||||
|
This file contains XML files describing the keyboard layouts.
|
||||||
|
|
||||||
|
2) Cloning the cldr2json script at:
|
||||||
|
git://repo.or.cz/cldr2json.git
|
||||||
|
|
||||||
|
It will be used to convert the XML files into JSON that can be
|
||||||
|
directly consumed by gnome-shell.
|
||||||
|
|
||||||
|
3) Running the script to produce the files:
|
||||||
|
./cldr2json <input-directory> <output-directory>
|
||||||
|
|
||||||
|
We shall usually use the "android" folder, since that's most
|
||||||
|
complete, and similar to our UI and target sizes. And the target
|
||||||
|
directory must be data/osk-layouts in this repository.
|
||||||
|
|
||||||
|
4) Modify gnome-shell-osk-layouts.gresource.xml to include the files
|
||||||
|
|
||||||
|
5) Do git add on the updated/new files, and git commit.
|
||||||
|
|
||||||
|
|
||||||
|
Or alternatively:
|
||||||
|
|
||||||
|
1) Run update-osk-layouts.sh
|
||||||
|
|
||||||
|
2) Do git add and git commit
|
||||||
57
data/gnome-shell-osk-layouts.gresource.xml
Normal file
57
data/gnome-shell-osk-layouts.gresource.xml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/org/gnome/shell/osk-layouts">
|
||||||
|
<file>am.json</file>
|
||||||
|
<file>ara.json</file>
|
||||||
|
<file>be.json</file>
|
||||||
|
<file>bg.json</file>
|
||||||
|
<file>by.json</file>
|
||||||
|
<file>cz.json</file>
|
||||||
|
<file>de.json</file>
|
||||||
|
<file>dk.json</file>
|
||||||
|
<file>ee.json</file>
|
||||||
|
<file>epo.json</file>
|
||||||
|
<file>es+cat.json</file>
|
||||||
|
<file>es.json</file>
|
||||||
|
<file>fi.json</file>
|
||||||
|
<file>fr.json</file>
|
||||||
|
<file>ge.json</file>
|
||||||
|
<file>gr.json</file>
|
||||||
|
<file>hr.json</file>
|
||||||
|
<file>hu.json</file>
|
||||||
|
<file>id.json</file>
|
||||||
|
<file>il.json</file>
|
||||||
|
<file>in+bolnagri.json</file>
|
||||||
|
<file>ir.json</file>
|
||||||
|
<file>is.json</file>
|
||||||
|
<file>it.json</file>
|
||||||
|
<file>ke.json</file>
|
||||||
|
<file>kg.json</file>
|
||||||
|
<file>kh.json</file>
|
||||||
|
<file>la.json</file>
|
||||||
|
<file>latam.json</file>
|
||||||
|
<file>lt.json</file>
|
||||||
|
<file>lv.json</file>
|
||||||
|
<file>mk.json</file>
|
||||||
|
<file>mn.json</file>
|
||||||
|
<file>my.json</file>
|
||||||
|
<file>nl.json</file>
|
||||||
|
<file>no.json</file>
|
||||||
|
<file>ph.json</file>
|
||||||
|
<file>pl.json</file>
|
||||||
|
<file>pt.json</file>
|
||||||
|
<file>ro.json</file>
|
||||||
|
<file>rs.json</file>
|
||||||
|
<file>ru.json</file>
|
||||||
|
<file>se.json</file>
|
||||||
|
<file>si.json</file>
|
||||||
|
<file>sk.json</file>
|
||||||
|
<file>th.json</file>
|
||||||
|
<file>tr.json</file>
|
||||||
|
<file>ua.json</file>
|
||||||
|
<file>uk.json</file>
|
||||||
|
<file>us.json</file>
|
||||||
|
<file>vn.json</file>
|
||||||
|
<file>za.json</file>
|
||||||
|
</gresource>
|
||||||
|
</gresources>
|
||||||
@@ -62,6 +62,14 @@ theme_resources = gnome.compile_resources(
|
|||||||
install_dir: pkgdatadir
|
install_dir: pkgdatadir
|
||||||
)
|
)
|
||||||
|
|
||||||
|
osk_layout_resources = gnome.compile_resources(
|
||||||
|
'gnome-shell-osk-layouts', 'gnome-shell-osk-layouts.gresource.xml',
|
||||||
|
source_dir: 'osk-layouts',
|
||||||
|
gresource_bundle: true,
|
||||||
|
install: true,
|
||||||
|
install_dir: pkgdatadir
|
||||||
|
)
|
||||||
|
|
||||||
perfconf = configuration_data()
|
perfconf = configuration_data()
|
||||||
perfconf.set('datadir', datadir)
|
perfconf.set('datadir', datadir)
|
||||||
configure_file(
|
configure_file(
|
||||||
|
|||||||
599
data/osk-layouts/am.json
Normal file
599
data/osk-layouts/am.json
Normal file
@@ -0,0 +1,599 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"է"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"թ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"փ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ձ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ջ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ր"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"չ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ճ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ժ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ծ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ք"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ո"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ե",
|
||||||
|
"և"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ռ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"տ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ը"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ւ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ի"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"օ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"պ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ա"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ս"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"դ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ֆ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"գ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"հ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"յ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"կ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"լ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"խ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"զ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ղ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ց"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"վ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"բ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ն"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"մ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"շ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"։"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Է"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Թ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Փ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ձ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ջ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ր"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Չ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ճ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ժ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ծ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ք"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ո"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ե",
|
||||||
|
"ԵՒ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ռ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Տ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ը"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ւ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ի"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Օ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Պ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ա"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ս"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Դ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ֆ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Գ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Հ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Յ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Կ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Լ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Խ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Զ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ղ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ց"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Վ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Բ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ն"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Մ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Շ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"։"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"՜",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"՞",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"՝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"։",
|
||||||
|
"!",
|
||||||
|
"?",
|
||||||
|
",",
|
||||||
|
".",
|
||||||
|
"֊",
|
||||||
|
"՜",
|
||||||
|
"՝",
|
||||||
|
"՞",
|
||||||
|
":",
|
||||||
|
";",
|
||||||
|
"@",
|
||||||
|
"ՙ",
|
||||||
|
"՚",
|
||||||
|
"՛",
|
||||||
|
"՟"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"՝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"։",
|
||||||
|
"!",
|
||||||
|
"?",
|
||||||
|
",",
|
||||||
|
".",
|
||||||
|
"֊",
|
||||||
|
"՜",
|
||||||
|
"՝",
|
||||||
|
"՞",
|
||||||
|
":",
|
||||||
|
";",
|
||||||
|
"@",
|
||||||
|
"ՙ",
|
||||||
|
"՚",
|
||||||
|
"՛",
|
||||||
|
"՟"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "hy",
|
||||||
|
"name": "Armenian"
|
||||||
|
}
|
||||||
488
data/osk-layouts/ara.json
Normal file
488
data/osk-layouts/ara.json
Normal file
@@ -0,0 +1,488 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ض"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ص"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ث"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ق",
|
||||||
|
"ڨ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ف",
|
||||||
|
"ڤ",
|
||||||
|
"ڢ",
|
||||||
|
"ڥ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"غ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ع"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ه",
|
||||||
|
"ه"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"خ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ح"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ج",
|
||||||
|
"چ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ش",
|
||||||
|
"ڜ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"س"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ي",
|
||||||
|
"ئ",
|
||||||
|
"ى"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ب",
|
||||||
|
"پ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ل",
|
||||||
|
"لا",
|
||||||
|
"لأ",
|
||||||
|
"لإ",
|
||||||
|
"لآ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ا",
|
||||||
|
"آ",
|
||||||
|
"ء",
|
||||||
|
"أ",
|
||||||
|
"إ",
|
||||||
|
"ٱ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ت"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ن"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"م"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ك",
|
||||||
|
"گ",
|
||||||
|
"ک"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ط"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ذ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ء"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ؤ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ر"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ى",
|
||||||
|
"ئ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ة"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"و"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ز",
|
||||||
|
"ژ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ظ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"د"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"،"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"\"",
|
||||||
|
"'",
|
||||||
|
"#",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"!",
|
||||||
|
"،",
|
||||||
|
"؟",
|
||||||
|
"@",
|
||||||
|
"&",
|
||||||
|
"%",
|
||||||
|
"+",
|
||||||
|
"؛",
|
||||||
|
"/",
|
||||||
|
")",
|
||||||
|
"("
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"١",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٢",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٣",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٤",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٥",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٦"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٧",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٨"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٩"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٠",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٪",
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"﴿",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
"﴾",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"★",
|
||||||
|
"٭"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"؛",
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"؟",
|
||||||
|
"?"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"،",
|
||||||
|
"؟",
|
||||||
|
"؛",
|
||||||
|
"!",
|
||||||
|
":",
|
||||||
|
"-",
|
||||||
|
"/",
|
||||||
|
"'",
|
||||||
|
"\""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"ٕ",
|
||||||
|
"ٔ",
|
||||||
|
"ْ",
|
||||||
|
"ٍ",
|
||||||
|
"ٌ",
|
||||||
|
"ً",
|
||||||
|
"ّ",
|
||||||
|
"ٖ",
|
||||||
|
"ٰ",
|
||||||
|
"ٓ",
|
||||||
|
"ِ",
|
||||||
|
"ُ",
|
||||||
|
"َ",
|
||||||
|
"ـ"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"،",
|
||||||
|
"؟",
|
||||||
|
"؛",
|
||||||
|
"!",
|
||||||
|
":",
|
||||||
|
"-",
|
||||||
|
"/",
|
||||||
|
"'",
|
||||||
|
"\""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"ٕ",
|
||||||
|
"ٔ",
|
||||||
|
"ْ",
|
||||||
|
"ٍ",
|
||||||
|
"ٌ",
|
||||||
|
"ً",
|
||||||
|
"ّ",
|
||||||
|
"ٖ",
|
||||||
|
"ٰ",
|
||||||
|
"ٓ",
|
||||||
|
"ِ",
|
||||||
|
"ُ",
|
||||||
|
"َ",
|
||||||
|
"ـ"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "ar",
|
||||||
|
"name": "Arabic"
|
||||||
|
}
|
||||||
584
data/osk-layouts/be.json
Normal file
584
data/osk-layouts/be.json
Normal file
@@ -0,0 +1,584 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ë",
|
||||||
|
"ê",
|
||||||
|
"è",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ij"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"î",
|
||||||
|
"į",
|
||||||
|
"ī",
|
||||||
|
"ij"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"â",
|
||||||
|
"à",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ë",
|
||||||
|
"Ê",
|
||||||
|
"È",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"IJ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Î",
|
||||||
|
"Į",
|
||||||
|
"Ī",
|
||||||
|
"IJ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Â",
|
||||||
|
"À",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "nl-BE",
|
||||||
|
"name": "Dutch (Belgium)"
|
||||||
|
}
|
||||||
533
data/osk-layouts/bg.json
Normal file
533
data/osk-layouts/bg.json
Normal file
@@ -0,0 +1,533 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"е"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"и",
|
||||||
|
"ѝ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"щ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ь"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Е"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"И",
|
||||||
|
"Ѝ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Щ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ь"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "bg",
|
||||||
|
"name": "Bulgarian"
|
||||||
|
}
|
||||||
541
data/osk-layouts/by.json
Normal file
541
data/osk-layouts/by.json
Normal file
@@ -0,0 +1,541 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"е",
|
||||||
|
"ё"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ў"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"э"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"і"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ь",
|
||||||
|
"ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Е",
|
||||||
|
"Ё"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ў"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Э"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"І"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ь",
|
||||||
|
"Ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "be",
|
||||||
|
"name": "Belarusian"
|
||||||
|
}
|
||||||
613
data/osk-layouts/cz.json
Normal file
613
data/osk-layouts/cz.json
Normal file
@@ -0,0 +1,613 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ě",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r",
|
||||||
|
"ř"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž",
|
||||||
|
"ź",
|
||||||
|
"ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ů",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š",
|
||||||
|
"ß",
|
||||||
|
"ś"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"č",
|
||||||
|
"ç",
|
||||||
|
"ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ň",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ě",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R",
|
||||||
|
"Ř"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž",
|
||||||
|
"Ź",
|
||||||
|
"Ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ů",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š",
|
||||||
|
"SS",
|
||||||
|
"Ś"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Č",
|
||||||
|
"Ç",
|
||||||
|
"Ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ň",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "cs",
|
||||||
|
"name": "Czech"
|
||||||
|
}
|
||||||
570
data/osk-layouts/de.json
Normal file
570
data/osk-layouts/de.json
Normal file
@@ -0,0 +1,570 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ė"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ü",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"ä",
|
||||||
|
"â",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ė"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ü",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Ä",
|
||||||
|
"Â",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "de",
|
||||||
|
"name": "German"
|
||||||
|
}
|
||||||
590
data/osk-layouts/dk.json
Normal file
590
data/osk-layouts/dk.json
Normal file
@@ -0,0 +1,590 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ë"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"å"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ð"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"æ",
|
||||||
|
"ä"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ø",
|
||||||
|
"ö"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ë"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Å"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ð"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Æ",
|
||||||
|
"Ä"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ø",
|
||||||
|
"Ö"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "da",
|
||||||
|
"name": "Danish"
|
||||||
|
}
|
||||||
666
data/osk-layouts/ee.json
Normal file
666
data/osk-layouts/ee.json
Normal file
@@ -0,0 +1,666 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"ē",
|
||||||
|
"è",
|
||||||
|
"ė",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę",
|
||||||
|
"ě"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r",
|
||||||
|
"ŗ",
|
||||||
|
"ř",
|
||||||
|
"ŕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ţ",
|
||||||
|
"ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ü",
|
||||||
|
"ū",
|
||||||
|
"ų",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"û",
|
||||||
|
"ů",
|
||||||
|
"ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"ī",
|
||||||
|
"ì",
|
||||||
|
"į",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ı"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ö",
|
||||||
|
"õ",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"ô",
|
||||||
|
"œ",
|
||||||
|
"ő",
|
||||||
|
"ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ü"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"ä",
|
||||||
|
"ā",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"æ",
|
||||||
|
"ą"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g",
|
||||||
|
"ģ",
|
||||||
|
"ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k",
|
||||||
|
"ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ļ",
|
||||||
|
"ł",
|
||||||
|
"ĺ",
|
||||||
|
"ľ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ö",
|
||||||
|
"õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ä"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž",
|
||||||
|
"ż",
|
||||||
|
"ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"č",
|
||||||
|
"ç",
|
||||||
|
"ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ņ",
|
||||||
|
"ñ",
|
||||||
|
"ń",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"Ē",
|
||||||
|
"È",
|
||||||
|
"Ė",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę",
|
||||||
|
"Ě"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R",
|
||||||
|
"Ŗ",
|
||||||
|
"Ř",
|
||||||
|
"Ŕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ţ",
|
||||||
|
"Ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ü",
|
||||||
|
"Ū",
|
||||||
|
"Ų",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Û",
|
||||||
|
"Ů",
|
||||||
|
"Ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Ī",
|
||||||
|
"Ì",
|
||||||
|
"Į",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ö",
|
||||||
|
"Õ",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Ô",
|
||||||
|
"Œ",
|
||||||
|
"Ő",
|
||||||
|
"Ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ü"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Ä",
|
||||||
|
"Ā",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Æ",
|
||||||
|
"Ą"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G",
|
||||||
|
"Ģ",
|
||||||
|
"Ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K",
|
||||||
|
"Ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ļ",
|
||||||
|
"Ł",
|
||||||
|
"Ĺ",
|
||||||
|
"Ľ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ö",
|
||||||
|
"Õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ä"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž",
|
||||||
|
"Ż",
|
||||||
|
"Ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Č",
|
||||||
|
"Ç",
|
||||||
|
"Ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ņ",
|
||||||
|
"Ñ",
|
||||||
|
"Ń",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "et",
|
||||||
|
"name": "Estonian"
|
||||||
|
}
|
||||||
711
data/osk-layouts/epo.json
Normal file
711
data/osk-layouts/epo.json
Normal file
@@ -0,0 +1,711 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ŝ",
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ĝ",
|
||||||
|
"w",
|
||||||
|
"ŵ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ě",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r",
|
||||||
|
"ř",
|
||||||
|
"ŕ",
|
||||||
|
"ŗ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ť",
|
||||||
|
"ț",
|
||||||
|
"ţ",
|
||||||
|
"ŧ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ŭ",
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ŷ",
|
||||||
|
"ÿ",
|
||||||
|
"þ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ů",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"ū",
|
||||||
|
"ũ",
|
||||||
|
"ű",
|
||||||
|
"ų",
|
||||||
|
"µ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ĩ",
|
||||||
|
"ì",
|
||||||
|
"į",
|
||||||
|
"ī",
|
||||||
|
"ı",
|
||||||
|
"ij"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"ő",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā",
|
||||||
|
"ă",
|
||||||
|
"ą",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ß",
|
||||||
|
"š",
|
||||||
|
"ś",
|
||||||
|
"ș",
|
||||||
|
"ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ð",
|
||||||
|
"ď",
|
||||||
|
"đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g",
|
||||||
|
"ğ",
|
||||||
|
"ġ",
|
||||||
|
"ģ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h",
|
||||||
|
"ĥ",
|
||||||
|
"ħ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k",
|
||||||
|
"ķ",
|
||||||
|
"ĸ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ĺ",
|
||||||
|
"ļ",
|
||||||
|
"ľ",
|
||||||
|
"ŀ",
|
||||||
|
"ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ĵ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ź",
|
||||||
|
"ż",
|
||||||
|
"ž"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ĉ",
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ć",
|
||||||
|
"č",
|
||||||
|
"ç",
|
||||||
|
"ċ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v",
|
||||||
|
"w",
|
||||||
|
"ŵ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń",
|
||||||
|
"ņ",
|
||||||
|
"ň",
|
||||||
|
"ʼn",
|
||||||
|
"ŋ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ŝ",
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ĝ",
|
||||||
|
"W",
|
||||||
|
"Ŵ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ě",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R",
|
||||||
|
"Ř",
|
||||||
|
"Ŕ",
|
||||||
|
"Ŗ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ť",
|
||||||
|
"Ț",
|
||||||
|
"Ţ",
|
||||||
|
"Ŧ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ŭ",
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ŷ",
|
||||||
|
"Ÿ",
|
||||||
|
"Þ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ů",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Ū",
|
||||||
|
"Ũ",
|
||||||
|
"Ű",
|
||||||
|
"Ų",
|
||||||
|
"Μ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Ĩ",
|
||||||
|
"Ì",
|
||||||
|
"Į",
|
||||||
|
"Ī",
|
||||||
|
"I",
|
||||||
|
"IJ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"Ő",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā",
|
||||||
|
"Ă",
|
||||||
|
"Ą",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"SS",
|
||||||
|
"Š",
|
||||||
|
"Ś",
|
||||||
|
"Ș",
|
||||||
|
"Ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ð",
|
||||||
|
"Ď",
|
||||||
|
"Đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G",
|
||||||
|
"Ğ",
|
||||||
|
"Ġ",
|
||||||
|
"Ģ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H",
|
||||||
|
"Ĥ",
|
||||||
|
"Ħ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K",
|
||||||
|
"Ķ",
|
||||||
|
"ĸ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ĺ",
|
||||||
|
"Ļ",
|
||||||
|
"Ľ",
|
||||||
|
"Ŀ",
|
||||||
|
"Ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ĵ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ź",
|
||||||
|
"Ż",
|
||||||
|
"Ž"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ĉ",
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ć",
|
||||||
|
"Č",
|
||||||
|
"Ç",
|
||||||
|
"Ċ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V",
|
||||||
|
"W",
|
||||||
|
"Ŵ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń",
|
||||||
|
"Ņ",
|
||||||
|
"Ň",
|
||||||
|
"ʼN",
|
||||||
|
"Ŋ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "eo",
|
||||||
|
"name": "Esperanto"
|
||||||
|
}
|
||||||
602
data/osk-layouts/es+cat.json
Normal file
602
data/osk-layouts/es+cat.json
Normal file
@@ -0,0 +1,602 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ë",
|
||||||
|
"ê",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"î",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"õ",
|
||||||
|
"ø",
|
||||||
|
"œ",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ą",
|
||||||
|
"æ",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"l·l",
|
||||||
|
"ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ç"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"·",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
":",
|
||||||
|
";",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ë",
|
||||||
|
"Ê",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Î",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Õ",
|
||||||
|
"Ø",
|
||||||
|
"Œ",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ą",
|
||||||
|
"Æ",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"L·L",
|
||||||
|
"Ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ç"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"·",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
":",
|
||||||
|
";",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?",
|
||||||
|
"·"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?",
|
||||||
|
"·"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "ca",
|
||||||
|
"name": "Catalan"
|
||||||
|
}
|
||||||
604
data/osk-layouts/es.json
Normal file
604
data/osk-layouts/es.json
Normal file
@@ -0,0 +1,604 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ë",
|
||||||
|
"ê",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"î",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ò",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"õ",
|
||||||
|
"ø",
|
||||||
|
"œ",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"à",
|
||||||
|
"ä",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ą",
|
||||||
|
"æ",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ñ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
";",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
":",
|
||||||
|
"¡",
|
||||||
|
"@",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ë",
|
||||||
|
"Ê",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Î",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ò",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Õ",
|
||||||
|
"Ø",
|
||||||
|
"Œ",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"À",
|
||||||
|
"Ä",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ą",
|
||||||
|
"Æ",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ñ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
";",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
":",
|
||||||
|
"¡",
|
||||||
|
"@",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
",",
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
",",
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "es",
|
||||||
|
"name": "Spanish"
|
||||||
|
}
|
||||||
570
data/osk-layouts/fi.json
Normal file
570
data/osk-layouts/fi.json
Normal file
@@ -0,0 +1,570 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ü"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ø",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"å"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"æ",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š",
|
||||||
|
"ß",
|
||||||
|
"ś"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ö",
|
||||||
|
"ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ä",
|
||||||
|
"æ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž",
|
||||||
|
"ź",
|
||||||
|
"ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ü"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ø",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Å"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Æ",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š",
|
||||||
|
"SS",
|
||||||
|
"Ś"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ö",
|
||||||
|
"Ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ä",
|
||||||
|
"Æ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž",
|
||||||
|
"Ź",
|
||||||
|
"Ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "fi",
|
||||||
|
"name": "Finnish"
|
||||||
|
}
|
||||||
599
data/osk-layouts/fr.json
Normal file
599
data/osk-layouts/fr.json
Normal file
@@ -0,0 +1,599 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"%",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"%",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"%",
|
||||||
|
"ü",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"î",
|
||||||
|
"%",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ô",
|
||||||
|
"œ",
|
||||||
|
"%",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"õ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"%",
|
||||||
|
"æ",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"%",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"%",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"%",
|
||||||
|
"Ü",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"%",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ô",
|
||||||
|
"Œ",
|
||||||
|
"%",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Õ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"%",
|
||||||
|
"Æ",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "fr-CA",
|
||||||
|
"name": "French Canada"
|
||||||
|
}
|
||||||
409
data/osk-layouts/ge.json
Normal file
409
data/osk-layouts/ge.json
Normal file
@@ -0,0 +1,409 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ქ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"წ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ე",
|
||||||
|
"ჱ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"რ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ტ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ყ",
|
||||||
|
"ჸ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"უ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ი",
|
||||||
|
"ჲ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ო"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"პ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ა",
|
||||||
|
"ჺ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ს"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"დ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ფ",
|
||||||
|
"ჶ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"გ",
|
||||||
|
"ჹ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ჰ",
|
||||||
|
"ჵ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ჯ",
|
||||||
|
"ჷ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"კ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ლ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ზ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ხ",
|
||||||
|
"ჴ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ც"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ვ",
|
||||||
|
"ჳ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ბ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ნ",
|
||||||
|
"ჼ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"მ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "ka",
|
||||||
|
"name": "Georgian"
|
||||||
|
}
|
||||||
532
data/osk-layouts/gr.json
Normal file
532
data/osk-layouts/gr.json
Normal file
@@ -0,0 +1,532 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
";",
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ς"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ε",
|
||||||
|
"έ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ρ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"τ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"υ",
|
||||||
|
"ύ",
|
||||||
|
"ϋ",
|
||||||
|
"ΰ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"θ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ι",
|
||||||
|
"ί",
|
||||||
|
"ϊ",
|
||||||
|
"ΐ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ο",
|
||||||
|
"ό"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"π"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"α",
|
||||||
|
"ά"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"σ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"δ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"φ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"γ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"η",
|
||||||
|
"ή"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ξ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"κ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"λ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ζ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"χ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ψ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ω",
|
||||||
|
"ώ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"β"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ν"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"μ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
";",
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Σ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ε",
|
||||||
|
"Έ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ρ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Τ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Υ",
|
||||||
|
"Ύ",
|
||||||
|
"Ϋ",
|
||||||
|
"Ϋ́"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Θ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ι",
|
||||||
|
"Ί",
|
||||||
|
"Ϊ",
|
||||||
|
"Ϊ́"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ο",
|
||||||
|
"Ό"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Α",
|
||||||
|
"Ά"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Σ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Δ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Φ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Γ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Η",
|
||||||
|
"Ή"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ξ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Κ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Λ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ζ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Χ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ψ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ω",
|
||||||
|
"Ώ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Β"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ν"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Μ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "el",
|
||||||
|
"name": "Greek"
|
||||||
|
}
|
||||||
531
data/osk-layouts/hr.json
Normal file
531
data/osk-layouts/hr.json
Normal file
@@ -0,0 +1,531 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž",
|
||||||
|
"ź",
|
||||||
|
"ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š",
|
||||||
|
"ś",
|
||||||
|
"ß"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"č",
|
||||||
|
"ć",
|
||||||
|
"ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž",
|
||||||
|
"Ź",
|
||||||
|
"Ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š",
|
||||||
|
"Ś",
|
||||||
|
"SS"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Č",
|
||||||
|
"Ć",
|
||||||
|
"Ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "hr",
|
||||||
|
"name": "Croatian"
|
||||||
|
}
|
||||||
579
data/osk-layouts/hu.json
Normal file
579
data/osk-layouts/hu.json
Normal file
@@ -0,0 +1,579 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"ű",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ő",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Ű",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ő",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "hu",
|
||||||
|
"name": "Hungarian"
|
||||||
|
}
|
||||||
507
data/osk-layouts/id.json
Normal file
507
data/osk-layouts/id.json
Normal file
@@ -0,0 +1,507 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "id",
|
||||||
|
"name": "Indonesian"
|
||||||
|
}
|
||||||
419
data/osk-layouts/il.json
Normal file
419
data/osk-layouts/il.json
Normal file
@@ -0,0 +1,419 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"\""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ק"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ר"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"א"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ט"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ו"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ן"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ם"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"פ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ש"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ד"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ג",
|
||||||
|
"ג׳"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"כ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ע"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"י",
|
||||||
|
"ײַ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ח",
|
||||||
|
"ח׳"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ל"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ך"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ף"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ז",
|
||||||
|
"ז׳"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ס"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ב"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ה"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"נ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"מ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"צ",
|
||||||
|
"צ׳"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ת",
|
||||||
|
"ת׳"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ץ",
|
||||||
|
"ץ׳"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"₪",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±",
|
||||||
|
"﬩"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
",",
|
||||||
|
"!"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
",",
|
||||||
|
"!"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "he",
|
||||||
|
"name": "Hebrew"
|
||||||
|
}
|
||||||
439
data/osk-layouts/in+bolnagri.json
Normal file
439
data/osk-layouts/in+bolnagri.json
Normal file
@@ -0,0 +1,439 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"◌ौ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌ै"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌ा"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌ी"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌ू"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ब",
|
||||||
|
"ब॒",
|
||||||
|
"%"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ह"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ग",
|
||||||
|
"ज्ञ",
|
||||||
|
"ग़",
|
||||||
|
"ग॒",
|
||||||
|
"%"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"द"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ज",
|
||||||
|
"ज॒",
|
||||||
|
"ज्ञ",
|
||||||
|
"ज़",
|
||||||
|
"%"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ड",
|
||||||
|
"ड॒",
|
||||||
|
"ड़"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"◌ो"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌े"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌्"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌ि"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌ु"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"प"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"र",
|
||||||
|
"ऋ",
|
||||||
|
"ऱ",
|
||||||
|
"ॠ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"क",
|
||||||
|
"क़"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"त",
|
||||||
|
"त्र"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"च"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ट"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"◌ॉ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌ं"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"म",
|
||||||
|
"ॐ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"न",
|
||||||
|
"ञ",
|
||||||
|
"ङ",
|
||||||
|
"ऩ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"व"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ल",
|
||||||
|
"ऌ",
|
||||||
|
"ॡ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"स"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"य",
|
||||||
|
"य़"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"◌़"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"१",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"२",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"३",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"४",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"५",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"६"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"७",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"८"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"९"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"०",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"₹",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "hi",
|
||||||
|
"name": "Hindi"
|
||||||
|
}
|
||||||
495
data/osk-layouts/ir.json
Normal file
495
data/osk-layouts/ir.json
Normal file
@@ -0,0 +1,495 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ض"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ص"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ث"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ق",
|
||||||
|
"ڨ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ف",
|
||||||
|
"ڤ",
|
||||||
|
"ڢ",
|
||||||
|
"ڥ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"غ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ع"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ه",
|
||||||
|
"ه"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"خ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ح"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ج",
|
||||||
|
"چ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ش",
|
||||||
|
"ڜ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"س"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ي",
|
||||||
|
"ئ",
|
||||||
|
"ى"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ب",
|
||||||
|
"پ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ل",
|
||||||
|
"لا",
|
||||||
|
"لأ",
|
||||||
|
"لإ",
|
||||||
|
"لآ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ا",
|
||||||
|
"آ",
|
||||||
|
"ء",
|
||||||
|
"أ",
|
||||||
|
"إ",
|
||||||
|
"ٱ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ت"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ن"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"م"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ك",
|
||||||
|
"گ",
|
||||||
|
"ک"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ط"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ذ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ء"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ؤ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ر"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ى",
|
||||||
|
"ئ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ة"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"و"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ز",
|
||||||
|
"ژ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ظ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"د"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"،"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"\"",
|
||||||
|
"'",
|
||||||
|
"#",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"!",
|
||||||
|
"،",
|
||||||
|
"؟",
|
||||||
|
"@",
|
||||||
|
"&",
|
||||||
|
"%",
|
||||||
|
"+",
|
||||||
|
"؛",
|
||||||
|
"/",
|
||||||
|
")",
|
||||||
|
"("
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"۱",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۲",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۳",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۴",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۵",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۶"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۷",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۸"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۹"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"۰",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"٬",
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٫",
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"﷼",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"٪",
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"﴿",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
"﴾",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"★",
|
||||||
|
"٭"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"«",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"»",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"؛",
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"؟",
|
||||||
|
"?"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"،",
|
||||||
|
":",
|
||||||
|
"!",
|
||||||
|
"؟",
|
||||||
|
"؛",
|
||||||
|
"-",
|
||||||
|
"/",
|
||||||
|
"»",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"ٕ",
|
||||||
|
"ٔ",
|
||||||
|
"ْ",
|
||||||
|
"ٍ",
|
||||||
|
"ٌ",
|
||||||
|
"ً",
|
||||||
|
"ّ",
|
||||||
|
"ٖ",
|
||||||
|
"ٰ",
|
||||||
|
"ٓ",
|
||||||
|
"ِ",
|
||||||
|
"ُ",
|
||||||
|
"َ",
|
||||||
|
"ـ"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"«",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
">"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"»",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"<"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"،",
|
||||||
|
":",
|
||||||
|
"!",
|
||||||
|
"؟",
|
||||||
|
"؛",
|
||||||
|
"-",
|
||||||
|
"/",
|
||||||
|
"»",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"ٕ",
|
||||||
|
"ٔ",
|
||||||
|
"ْ",
|
||||||
|
"ٍ",
|
||||||
|
"ٌ",
|
||||||
|
"ً",
|
||||||
|
"ّ",
|
||||||
|
"ٖ",
|
||||||
|
"ٰ",
|
||||||
|
"ٓ",
|
||||||
|
"ِ",
|
||||||
|
"ُ",
|
||||||
|
"َ",
|
||||||
|
"ـ"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "fa",
|
||||||
|
"name": "Persian"
|
||||||
|
}
|
||||||
583
data/osk-layouts/is.json
Normal file
583
data/osk-layouts/is.json
Normal file
@@ -0,0 +1,583 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ë",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"þ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï",
|
||||||
|
"î",
|
||||||
|
"ì",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"å",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ð"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ë",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Þ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï",
|
||||||
|
"Î",
|
||||||
|
"Ì",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Å",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ð"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "is",
|
||||||
|
"name": "Icelandic"
|
||||||
|
}
|
||||||
580
data/osk-layouts/it.json
Normal file
580
data/osk-layouts/it.json
Normal file
@@ -0,0 +1,580 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"ô",
|
||||||
|
"ö",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Ô",
|
||||||
|
"Ö",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "it",
|
||||||
|
"name": "Italian"
|
||||||
|
}
|
||||||
577
data/osk-layouts/ke.json
Normal file
577
data/osk-layouts/ke.json
Normal file
@@ -0,0 +1,577 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"í",
|
||||||
|
"ī",
|
||||||
|
"ì"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ô",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ß"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g",
|
||||||
|
"g'"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Í",
|
||||||
|
"Ī",
|
||||||
|
"Ì"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ô",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"Õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"SS"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G",
|
||||||
|
"G'"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "sw",
|
||||||
|
"name": "Swahili"
|
||||||
|
}
|
||||||
547
data/osk-layouts/kg.json
Normal file
547
data/osk-layouts/kg.json
Normal file
@@ -0,0 +1,547 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у",
|
||||||
|
"ү"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"е",
|
||||||
|
"ё"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н",
|
||||||
|
"ң"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о",
|
||||||
|
"ө"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"э"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"и"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ь",
|
||||||
|
"ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У",
|
||||||
|
"Ү"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Е",
|
||||||
|
"Ё"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н",
|
||||||
|
"Ң"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О",
|
||||||
|
"Ө"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Э"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"И"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ь",
|
||||||
|
"Ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "ky",
|
||||||
|
"name": "Kirghiz"
|
||||||
|
}
|
||||||
481
data/osk-layouts/kh.json
Normal file
481
data/osk-layouts/kh.json
Normal file
@@ -0,0 +1,481 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"១",
|
||||||
|
"៱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"២",
|
||||||
|
"៲"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៣",
|
||||||
|
"៳"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៤",
|
||||||
|
"៴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៥",
|
||||||
|
"៵"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៦",
|
||||||
|
"៶"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៧",
|
||||||
|
"៷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៨",
|
||||||
|
"៸"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៩",
|
||||||
|
"៹"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"០",
|
||||||
|
"៰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ឥ",
|
||||||
|
"",
|
||||||
|
"ឦ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ឲ",
|
||||||
|
"ឱ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ឆ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ឹ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"េ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"រ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ត"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"យ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ុ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ិ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ោ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ផ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ៀ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ឪ",
|
||||||
|
"ឧ",
|
||||||
|
"ឱ",
|
||||||
|
"ឳ",
|
||||||
|
"ឩ",
|
||||||
|
"ឨ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ា"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ស"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ដ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ថ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ង"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ហ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"្"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ក"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ល"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ើ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"់"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ឮ",
|
||||||
|
"ឭ",
|
||||||
|
"ឰ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ឋ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ខ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ច"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"វ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ប"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ន"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ម"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ុំ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"។"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"៊"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"៛",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "km",
|
||||||
|
"name": "Khmer"
|
||||||
|
}
|
||||||
472
data/osk-layouts/la.json
Normal file
472
data/osk-layouts/la.json
Normal file
@@ -0,0 +1,472 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ຢ",
|
||||||
|
"໑"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຟ",
|
||||||
|
"໒"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ໂ",
|
||||||
|
"໓"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຖ",
|
||||||
|
"໔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຸ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ູ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຄ",
|
||||||
|
"໕"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຕ",
|
||||||
|
"໖"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຈ",
|
||||||
|
"໗"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຂ",
|
||||||
|
"໘"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຊ",
|
||||||
|
"໙"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ໍ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ົ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ໄ",
|
||||||
|
"໐"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຳ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ພ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ະ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ິ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ີ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຮ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ນ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຍ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ບ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ລ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ັ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຫ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ກ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ດ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ເ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"້"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"່"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"າ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ສ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ວ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ງ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"“"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ຜ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ປ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ແ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ອ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຶ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ື"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ທ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ມ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ໃ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ຝ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"₭",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "lo",
|
||||||
|
"name": "Lao"
|
||||||
|
}
|
||||||
603
data/osk-layouts/latam.json
Normal file
603
data/osk-layouts/latam.json
Normal file
@@ -0,0 +1,603 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ë",
|
||||||
|
"ê",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"î",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ò",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"õ",
|
||||||
|
"ø",
|
||||||
|
"œ",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"à",
|
||||||
|
"ä",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ą",
|
||||||
|
"æ",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ñ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
";",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
":",
|
||||||
|
"¡",
|
||||||
|
"@",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ë",
|
||||||
|
"Ê",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Î",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ò",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Õ",
|
||||||
|
"Ø",
|
||||||
|
"Œ",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"À",
|
||||||
|
"Ä",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ą",
|
||||||
|
"Æ",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ñ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
";",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
":",
|
||||||
|
"¡",
|
||||||
|
"@",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
",",
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
",",
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "es-US",
|
||||||
|
"name": "Spanish United States"
|
||||||
|
}
|
||||||
647
data/osk-layouts/lt.json
Normal file
647
data/osk-layouts/lt.json
Normal file
@@ -0,0 +1,647 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"ė",
|
||||||
|
"ę",
|
||||||
|
"ē",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ě"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r",
|
||||||
|
"ŗ",
|
||||||
|
"ř",
|
||||||
|
"ŕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ţ",
|
||||||
|
"ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ū",
|
||||||
|
"ų",
|
||||||
|
"ü",
|
||||||
|
"ū",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"û",
|
||||||
|
"ů",
|
||||||
|
"ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"į",
|
||||||
|
"ī",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ı"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ö",
|
||||||
|
"õ",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"ô",
|
||||||
|
"œ",
|
||||||
|
"ő",
|
||||||
|
"ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"ą",
|
||||||
|
"ä",
|
||||||
|
"ā",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"æ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g",
|
||||||
|
"ģ",
|
||||||
|
"ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k",
|
||||||
|
"ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ļ",
|
||||||
|
"ł",
|
||||||
|
"ĺ",
|
||||||
|
"ľ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž",
|
||||||
|
"ż",
|
||||||
|
"ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"č",
|
||||||
|
"ç",
|
||||||
|
"ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ņ",
|
||||||
|
"ñ",
|
||||||
|
"ń",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"Ė",
|
||||||
|
"Ę",
|
||||||
|
"Ē",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ě"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R",
|
||||||
|
"Ŗ",
|
||||||
|
"Ř",
|
||||||
|
"Ŕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ţ",
|
||||||
|
"Ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ū",
|
||||||
|
"Ų",
|
||||||
|
"Ü",
|
||||||
|
"Ū",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Û",
|
||||||
|
"Ů",
|
||||||
|
"Ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Į",
|
||||||
|
"Ī",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ö",
|
||||||
|
"Õ",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Ô",
|
||||||
|
"Œ",
|
||||||
|
"Ő",
|
||||||
|
"Ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Ą",
|
||||||
|
"Ä",
|
||||||
|
"Ā",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Æ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G",
|
||||||
|
"Ģ",
|
||||||
|
"Ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K",
|
||||||
|
"Ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ļ",
|
||||||
|
"Ł",
|
||||||
|
"Ĺ",
|
||||||
|
"Ľ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž",
|
||||||
|
"Ż",
|
||||||
|
"Ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Č",
|
||||||
|
"Ç",
|
||||||
|
"Ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ņ",
|
||||||
|
"Ñ",
|
||||||
|
"Ń",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "lt",
|
||||||
|
"name": "Lithuanian"
|
||||||
|
}
|
||||||
645
data/osk-layouts/lv.json
Normal file
645
data/osk-layouts/lv.json
Normal file
@@ -0,0 +1,645 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"ē",
|
||||||
|
"ė",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę",
|
||||||
|
"ě"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r",
|
||||||
|
"ŗ",
|
||||||
|
"ř",
|
||||||
|
"ŕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ţ",
|
||||||
|
"ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ū",
|
||||||
|
"ų",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ů",
|
||||||
|
"ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"ī",
|
||||||
|
"į",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ı"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"ô",
|
||||||
|
"õ",
|
||||||
|
"ö",
|
||||||
|
"œ",
|
||||||
|
"ő",
|
||||||
|
"ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"ā",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"ä",
|
||||||
|
"å",
|
||||||
|
"æ",
|
||||||
|
"ą"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g",
|
||||||
|
"ģ",
|
||||||
|
"ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k",
|
||||||
|
"ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ļ",
|
||||||
|
"ł",
|
||||||
|
"ĺ",
|
||||||
|
"ľ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž",
|
||||||
|
"ż",
|
||||||
|
"ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"č",
|
||||||
|
"ç",
|
||||||
|
"ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ņ",
|
||||||
|
"ñ",
|
||||||
|
"ń",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"Ē",
|
||||||
|
"Ė",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę",
|
||||||
|
"Ě"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R",
|
||||||
|
"Ŗ",
|
||||||
|
"Ř",
|
||||||
|
"Ŕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ţ",
|
||||||
|
"Ť"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ū",
|
||||||
|
"Ų",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ů",
|
||||||
|
"Ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Ī",
|
||||||
|
"Į",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Ô",
|
||||||
|
"Õ",
|
||||||
|
"Ö",
|
||||||
|
"Œ",
|
||||||
|
"Ő",
|
||||||
|
"Ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Ā",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Ä",
|
||||||
|
"Å",
|
||||||
|
"Æ",
|
||||||
|
"Ą"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G",
|
||||||
|
"Ģ",
|
||||||
|
"Ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K",
|
||||||
|
"Ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ļ",
|
||||||
|
"Ł",
|
||||||
|
"Ĺ",
|
||||||
|
"Ľ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž",
|
||||||
|
"Ż",
|
||||||
|
"Ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Č",
|
||||||
|
"Ç",
|
||||||
|
"Ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ņ",
|
||||||
|
"Ñ",
|
||||||
|
"Ń",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "lv",
|
||||||
|
"name": "Latvian"
|
||||||
|
}
|
||||||
541
data/osk-layouts/mk.json
Normal file
541
data/osk-layouts/mk.json
Normal file
@@ -0,0 +1,541 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"љ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"њ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"е",
|
||||||
|
"ѐ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ѕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"и",
|
||||||
|
"ѝ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ј"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ќ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"џ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ѓ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Љ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Њ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Е",
|
||||||
|
"Ѐ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ѕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"И",
|
||||||
|
"Ѝ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ј"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ќ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Џ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ѓ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "mk",
|
||||||
|
"name": "Macedonian"
|
||||||
|
}
|
||||||
547
data/osk-layouts/mn.json
Normal file
547
data/osk-layouts/mn.json
Normal file
@@ -0,0 +1,547 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"э"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш",
|
||||||
|
"щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ү"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ө"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ё",
|
||||||
|
"е"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"и"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ь",
|
||||||
|
"ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в",
|
||||||
|
"ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Э"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш",
|
||||||
|
"Щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ү"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ө"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ё",
|
||||||
|
"Е"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"И"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ь",
|
||||||
|
"Ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В",
|
||||||
|
"Ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"₮",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "mn",
|
||||||
|
"name": "Mongolian"
|
||||||
|
}
|
||||||
507
data/osk-layouts/my.json
Normal file
507
data/osk-layouts/my.json
Normal file
@@ -0,0 +1,507 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "ms",
|
||||||
|
"name": "Malay"
|
||||||
|
}
|
||||||
584
data/osk-layouts/nl.json
Normal file
584
data/osk-layouts/nl.json
Normal file
@@ -0,0 +1,584 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ë",
|
||||||
|
"ê",
|
||||||
|
"è",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ij"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"î",
|
||||||
|
"į",
|
||||||
|
"ī",
|
||||||
|
"ij"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"â",
|
||||||
|
"à",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ë",
|
||||||
|
"Ê",
|
||||||
|
"È",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"IJ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Î",
|
||||||
|
"Į",
|
||||||
|
"Ī",
|
||||||
|
"IJ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Â",
|
||||||
|
"À",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "nl",
|
||||||
|
"name": "Dutch"
|
||||||
|
}
|
||||||
507
data/osk-layouts/no.json
Normal file
507
data/osk-layouts/no.json
Normal file
@@ -0,0 +1,507 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "nb",
|
||||||
|
"name": "Norwegian Bokmål"
|
||||||
|
}
|
||||||
507
data/osk-layouts/ph.json
Normal file
507
data/osk-layouts/ph.json
Normal file
@@ -0,0 +1,507 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "fil",
|
||||||
|
"name": "Filipino"
|
||||||
|
}
|
||||||
579
data/osk-layouts/pl.json
Normal file
579
data/osk-layouts/pl.json
Normal file
@@ -0,0 +1,579 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"ę",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"ą",
|
||||||
|
"á",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ś",
|
||||||
|
"ß",
|
||||||
|
"š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ł"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ż",
|
||||||
|
"ź",
|
||||||
|
"ž"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ć",
|
||||||
|
"ç",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ń",
|
||||||
|
"ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"Ę",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Ą",
|
||||||
|
"Á",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Ś",
|
||||||
|
"SS",
|
||||||
|
"Š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ł"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ż",
|
||||||
|
"Ź",
|
||||||
|
"Ž"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ć",
|
||||||
|
"Ç",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ń",
|
||||||
|
"Ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "pl",
|
||||||
|
"name": "Polish"
|
||||||
|
}
|
||||||
584
data/osk-layouts/pt.json
Normal file
584
data/osk-layouts/pt.json
Normal file
@@ -0,0 +1,584 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"è",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē",
|
||||||
|
"ë"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"î",
|
||||||
|
"ì",
|
||||||
|
"ï",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"õ",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"ö",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"ã",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"å",
|
||||||
|
"æ",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"č",
|
||||||
|
"ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"È",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē",
|
||||||
|
"Ë"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Î",
|
||||||
|
"Ì",
|
||||||
|
"Ï",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Õ",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Ö",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Ã",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Å",
|
||||||
|
"Æ",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Č",
|
||||||
|
"Ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "pt-PT",
|
||||||
|
"name": "Portuguese Portugal"
|
||||||
|
}
|
||||||
547
data/osk-layouts/ro.json
Normal file
547
data/osk-layouts/ro.json
Normal file
@@ -0,0 +1,547 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ț"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"ă",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ș",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ț"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Ă",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Ș",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "ro",
|
||||||
|
"name": "Romanian"
|
||||||
|
}
|
||||||
541
data/osk-layouts/rs.json
Normal file
541
data/osk-layouts/rs.json
Normal file
@@ -0,0 +1,541 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"љ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"њ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"е",
|
||||||
|
"ѐ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"и",
|
||||||
|
"ѝ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ј"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ћ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ѕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"џ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ђ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Љ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Њ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Е",
|
||||||
|
"Ѐ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"И",
|
||||||
|
"Ѝ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ј"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ћ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ѕ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Џ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ђ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "sr",
|
||||||
|
"name": "Serbian"
|
||||||
|
}
|
||||||
541
data/osk-layouts/ru.json
Normal file
541
data/osk-layouts/ru.json
Normal file
@@ -0,0 +1,541 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"е",
|
||||||
|
"ё"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"э"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"и"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ь",
|
||||||
|
"ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Е",
|
||||||
|
"Ё"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ы"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Э"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"И"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ь",
|
||||||
|
"Ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "ru",
|
||||||
|
"name": "Russian"
|
||||||
|
}
|
||||||
624
data/osk-layouts/se.json
Normal file
624
data/osk-layouts/se.json
Normal file
@@ -0,0 +1,624 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r",
|
||||||
|
"ř"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ť",
|
||||||
|
"þ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ",
|
||||||
|
"ü"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ü",
|
||||||
|
"ú",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ì",
|
||||||
|
"î",
|
||||||
|
"ï"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ò",
|
||||||
|
"ô",
|
||||||
|
"õ",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"å"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ą",
|
||||||
|
"ã"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ś",
|
||||||
|
"š",
|
||||||
|
"ş",
|
||||||
|
"ß"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ð",
|
||||||
|
"ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ö",
|
||||||
|
"ø",
|
||||||
|
"œ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ä",
|
||||||
|
"æ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ź",
|
||||||
|
"ž",
|
||||||
|
"ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ń",
|
||||||
|
"ñ",
|
||||||
|
"ň"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R",
|
||||||
|
"Ř"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ť",
|
||||||
|
"Þ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ",
|
||||||
|
"Ü"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ü",
|
||||||
|
"Ú",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ì",
|
||||||
|
"Î",
|
||||||
|
"Ï"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ò",
|
||||||
|
"Ô",
|
||||||
|
"Õ",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Å"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ą",
|
||||||
|
"Ã"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Ś",
|
||||||
|
"Š",
|
||||||
|
"Ş",
|
||||||
|
"SS"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ð",
|
||||||
|
"Ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ö",
|
||||||
|
"Ø",
|
||||||
|
"Œ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ä",
|
||||||
|
"Æ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ź",
|
||||||
|
"Ž",
|
||||||
|
"Ż"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ń",
|
||||||
|
"Ñ",
|
||||||
|
"Ň"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "sv",
|
||||||
|
"name": "Swedish"
|
||||||
|
}
|
||||||
518
data/osk-layouts/si.json
Normal file
518
data/osk-layouts/si.json
Normal file
@@ -0,0 +1,518 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"č",
|
||||||
|
"ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Č",
|
||||||
|
"Ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "sl",
|
||||||
|
"name": "Slovenian"
|
||||||
|
}
|
||||||
648
data/osk-layouts/sk.json
Normal file
648
data/osk-layouts/sk.json
Normal file
@@ -0,0 +1,648 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"ě",
|
||||||
|
"ē",
|
||||||
|
"ė",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r",
|
||||||
|
"ŕ",
|
||||||
|
"ř",
|
||||||
|
"ŗ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t",
|
||||||
|
"ť",
|
||||||
|
"ţ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ů",
|
||||||
|
"ü",
|
||||||
|
"ū",
|
||||||
|
"ų",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ī",
|
||||||
|
"į",
|
||||||
|
"ì",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ı"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ô",
|
||||||
|
"ó",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ő",
|
||||||
|
"ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"ā",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"æ",
|
||||||
|
"ą"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"š",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g",
|
||||||
|
"ģ",
|
||||||
|
"ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k",
|
||||||
|
"ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l",
|
||||||
|
"ľ",
|
||||||
|
"ĺ",
|
||||||
|
"ļ",
|
||||||
|
"ł"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z",
|
||||||
|
"ž",
|
||||||
|
"ż",
|
||||||
|
"ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"č",
|
||||||
|
"ç",
|
||||||
|
"ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ň",
|
||||||
|
"ņ",
|
||||||
|
"ñ",
|
||||||
|
"ń",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ě",
|
||||||
|
"Ē",
|
||||||
|
"Ė",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R",
|
||||||
|
"Ŕ",
|
||||||
|
"Ř",
|
||||||
|
"Ŗ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T",
|
||||||
|
"Ť",
|
||||||
|
"Ţ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ů",
|
||||||
|
"Ü",
|
||||||
|
"Ū",
|
||||||
|
"Ų",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"Ű"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ī",
|
||||||
|
"Į",
|
||||||
|
"Ì",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"I"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ô",
|
||||||
|
"Ó",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ő",
|
||||||
|
"Ø"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Ā",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Æ",
|
||||||
|
"Ą"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Š",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Ş"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Ď"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G",
|
||||||
|
"Ģ",
|
||||||
|
"Ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K",
|
||||||
|
"Ķ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L",
|
||||||
|
"Ľ",
|
||||||
|
"Ĺ",
|
||||||
|
"Ļ",
|
||||||
|
"Ł"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z",
|
||||||
|
"Ž",
|
||||||
|
"Ż",
|
||||||
|
"Ź"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Č",
|
||||||
|
"Ç",
|
||||||
|
"Ć"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ň",
|
||||||
|
"Ņ",
|
||||||
|
"Ñ",
|
||||||
|
"Ń",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "sk",
|
||||||
|
"name": "Slovak"
|
||||||
|
}
|
||||||
472
data/osk-layouts/th.json
Normal file
472
data/osk-layouts/th.json
Normal file
@@ -0,0 +1,472 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ๅ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/",
|
||||||
|
"๑"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"_",
|
||||||
|
"๒"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ภ",
|
||||||
|
"๓"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ถ",
|
||||||
|
"๔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ุ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ึ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ค",
|
||||||
|
"๕"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ต",
|
||||||
|
"๖"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"จ",
|
||||||
|
"๗"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ข",
|
||||||
|
"๘"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ช",
|
||||||
|
"๙"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ๆ",
|
||||||
|
"๐"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ไ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ำ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"พ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ะ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ั"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ี"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ร"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"น"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ย"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"บ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ล"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ฟ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ห"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ก"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ด"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"เ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"้"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"่"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"า"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ส"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ว"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ง"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ฃ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ผ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ป"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"แ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"อ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ิ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ื"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ท"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ม"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ใ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ฝ"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"฿",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "th",
|
||||||
|
"name": "Thai"
|
||||||
|
}
|
||||||
566
data/osk-layouts/tr.json
Normal file
566
data/osk-layouts/tr.json
Normal file
@@ -0,0 +1,566 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ü",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"ı",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ö",
|
||||||
|
"ô",
|
||||||
|
"œ",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"õ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"â"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ş",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g",
|
||||||
|
"ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ü",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"İ",
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ö",
|
||||||
|
"Ô",
|
||||||
|
"Œ",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Õ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Â"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"Ş",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Š"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G",
|
||||||
|
"Ğ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "tr",
|
||||||
|
"name": "Turkish"
|
||||||
|
}
|
||||||
545
data/osk-layouts/ua.json
Normal file
545
data/osk-layouts/ua.json
Normal file
@@ -0,0 +1,545 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"у"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"к"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"е"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"г",
|
||||||
|
"ґ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"з"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"і",
|
||||||
|
"ї"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"в"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"а"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"п"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"о"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"є"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"с"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"м"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"и"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ь",
|
||||||
|
"ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Й"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ц"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"У"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"К"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Е"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Н"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Г",
|
||||||
|
"Ґ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ш"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Щ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"З"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Х"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Ф"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"І",
|
||||||
|
"Ї"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"В"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"А"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"П"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Р"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"О"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Л"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Д"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ж"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Є"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Я"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ч"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"С"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"М"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"И"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Т"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ь",
|
||||||
|
"Ъ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Б"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ю"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"₴",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "uk",
|
||||||
|
"name": "Ukrainian"
|
||||||
|
}
|
||||||
576
data/osk-layouts/uk.json
Normal file
576
data/osk-layouts/uk.json
Normal file
@@ -0,0 +1,576 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"í",
|
||||||
|
"ī",
|
||||||
|
"ì"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ô",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ß"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Í",
|
||||||
|
"Ī",
|
||||||
|
"Ì"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ô",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"Õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"SS"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"£",
|
||||||
|
"¢",
|
||||||
|
"$",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "en-GB",
|
||||||
|
"name": "English Great Britain"
|
||||||
|
}
|
||||||
575
data/osk-layouts/us.json
Normal file
575
data/osk-layouts/us.json
Normal file
@@ -0,0 +1,575 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"î",
|
||||||
|
"ï",
|
||||||
|
"í",
|
||||||
|
"ī",
|
||||||
|
"ì"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ô",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s",
|
||||||
|
"ß"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"Ï",
|
||||||
|
"Í",
|
||||||
|
"Ī",
|
||||||
|
"Ì"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ô",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"Õ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S",
|
||||||
|
"SS"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "en",
|
||||||
|
"name": "English United States"
|
||||||
|
}
|
||||||
643
data/osk-layouts/vn.json
Normal file
643
data/osk-layouts/vn.json
Normal file
@@ -0,0 +1,643 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"è",
|
||||||
|
"é",
|
||||||
|
"ẻ",
|
||||||
|
"ẽ",
|
||||||
|
"ẹ",
|
||||||
|
"ê",
|
||||||
|
"ề",
|
||||||
|
"ế",
|
||||||
|
"ể",
|
||||||
|
"ễ",
|
||||||
|
"ệ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ỳ",
|
||||||
|
"ý",
|
||||||
|
"ỷ",
|
||||||
|
"ỹ",
|
||||||
|
"ỵ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ù",
|
||||||
|
"ú",
|
||||||
|
"ủ",
|
||||||
|
"ũ",
|
||||||
|
"ụ",
|
||||||
|
"ư",
|
||||||
|
"ừ",
|
||||||
|
"ứ",
|
||||||
|
"ử",
|
||||||
|
"ữ",
|
||||||
|
"ự"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"ỉ",
|
||||||
|
"ĩ",
|
||||||
|
"ị"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"ỏ",
|
||||||
|
"õ",
|
||||||
|
"ọ",
|
||||||
|
"ô",
|
||||||
|
"ồ",
|
||||||
|
"ố",
|
||||||
|
"ổ",
|
||||||
|
"ỗ",
|
||||||
|
"ộ",
|
||||||
|
"ơ",
|
||||||
|
"ờ",
|
||||||
|
"ớ",
|
||||||
|
"ở",
|
||||||
|
"ỡ",
|
||||||
|
"ợ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"á",
|
||||||
|
"ả",
|
||||||
|
"ã",
|
||||||
|
"ạ",
|
||||||
|
"ă",
|
||||||
|
"ằ",
|
||||||
|
"ắ",
|
||||||
|
"ẳ",
|
||||||
|
"ẵ",
|
||||||
|
"ặ",
|
||||||
|
"â",
|
||||||
|
"ầ",
|
||||||
|
"ấ",
|
||||||
|
"ẩ",
|
||||||
|
"ẫ",
|
||||||
|
"ậ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
"đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"È",
|
||||||
|
"É",
|
||||||
|
"Ẻ",
|
||||||
|
"Ẽ",
|
||||||
|
"Ẹ",
|
||||||
|
"Ê",
|
||||||
|
"Ề",
|
||||||
|
"Ế",
|
||||||
|
"Ể",
|
||||||
|
"Ễ",
|
||||||
|
"Ệ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ỳ",
|
||||||
|
"Ý",
|
||||||
|
"Ỷ",
|
||||||
|
"Ỹ",
|
||||||
|
"Ỵ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ù",
|
||||||
|
"Ú",
|
||||||
|
"Ủ",
|
||||||
|
"Ũ",
|
||||||
|
"Ụ",
|
||||||
|
"Ư",
|
||||||
|
"Ừ",
|
||||||
|
"Ứ",
|
||||||
|
"Ử",
|
||||||
|
"Ữ",
|
||||||
|
"Ự"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Ỉ",
|
||||||
|
"Ĩ",
|
||||||
|
"Ị"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Ỏ",
|
||||||
|
"Õ",
|
||||||
|
"Ọ",
|
||||||
|
"Ô",
|
||||||
|
"Ồ",
|
||||||
|
"Ố",
|
||||||
|
"Ổ",
|
||||||
|
"Ỗ",
|
||||||
|
"Ộ",
|
||||||
|
"Ơ",
|
||||||
|
"Ờ",
|
||||||
|
"Ớ",
|
||||||
|
"Ở",
|
||||||
|
"Ỡ",
|
||||||
|
"Ợ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Á",
|
||||||
|
"Ả",
|
||||||
|
"Ã",
|
||||||
|
"Ạ",
|
||||||
|
"Ă",
|
||||||
|
"Ằ",
|
||||||
|
"Ắ",
|
||||||
|
"Ẳ",
|
||||||
|
"Ẵ",
|
||||||
|
"Ặ",
|
||||||
|
"Â",
|
||||||
|
"Ầ",
|
||||||
|
"Ấ",
|
||||||
|
"Ẩ",
|
||||||
|
"Ẫ",
|
||||||
|
"Ậ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D",
|
||||||
|
"Đ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"₫",
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"€",
|
||||||
|
"£",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "vi",
|
||||||
|
"name": "Vietnamese"
|
||||||
|
}
|
||||||
589
data/osk-layouts/za.json
Normal file
589
data/osk-layouts/za.json
Normal file
@@ -0,0 +1,589 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ŷ",
|
||||||
|
"ÿ",
|
||||||
|
"ij"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ú",
|
||||||
|
"û",
|
||||||
|
"ü",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"í",
|
||||||
|
"ì",
|
||||||
|
"ï",
|
||||||
|
"î",
|
||||||
|
"į",
|
||||||
|
"ī",
|
||||||
|
"ij"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ô",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ø",
|
||||||
|
"ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"á",
|
||||||
|
"â",
|
||||||
|
"ä",
|
||||||
|
"à",
|
||||||
|
"æ",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ŷ",
|
||||||
|
"Ÿ",
|
||||||
|
"IJ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Û",
|
||||||
|
"Ü",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ì",
|
||||||
|
"Ï",
|
||||||
|
"Î",
|
||||||
|
"Į",
|
||||||
|
"Ī",
|
||||||
|
"IJ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ô",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ø",
|
||||||
|
"Ō"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Â",
|
||||||
|
"Ä",
|
||||||
|
"À",
|
||||||
|
"Æ",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "af",
|
||||||
|
"name": "Afrikaans"
|
||||||
|
}
|
||||||
@@ -736,7 +736,7 @@ StScrollBar {
|
|||||||
#panel.solid .panel-button {
|
#panel.solid .panel-button {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
text-shadow: none; }
|
text-shadow: none; }
|
||||||
#panel.solid .panel-button:hover {
|
#panel.solid .panel-button:hover, #panel.solid .panel-button:active, #panel.solid .panel-button:overview, #panel.solid .panel-button:focus, #panel.solid .panel-button:checked {
|
||||||
color: white; }
|
color: white; }
|
||||||
#panel.solid .system-status-icon,
|
#panel.solid .system-status-icon,
|
||||||
#panel.solid .app-menu-icon > StIcon,
|
#panel.solid .app-menu-icon > StIcon,
|
||||||
@@ -987,6 +987,14 @@ StScrollBar {
|
|||||||
min-width: 21em; }
|
min-width: 21em; }
|
||||||
.aggregate-menu .popup-menu-icon {
|
.aggregate-menu .popup-menu-icon {
|
||||||
padding: 0 4px; }
|
padding: 0 4px; }
|
||||||
|
.aggregate-menu .popup-sub-menu .popup-menu-item :first-child:ltr {
|
||||||
|
/* 12px spacing + 2*4px padding */
|
||||||
|
padding-left: 20px;
|
||||||
|
margin-left: 1.09em; }
|
||||||
|
.aggregate-menu .popup-sub-menu .popup-menu-item :first-child:rtl {
|
||||||
|
/* 12px spacing + 2*4px padding */
|
||||||
|
padding-right: 20px;
|
||||||
|
margin-right: 1.09em; }
|
||||||
|
|
||||||
.system-menu-action {
|
.system-menu-action {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@@ -1495,30 +1503,26 @@ StScrollBar {
|
|||||||
border-width: 0; }
|
border-width: 0; }
|
||||||
|
|
||||||
/* On-screen Keyboard */
|
/* On-screen Keyboard */
|
||||||
|
.word-suggestions {
|
||||||
|
font-size: 14pt;
|
||||||
|
spacing: 12px;
|
||||||
|
min-height: 20pt; }
|
||||||
|
|
||||||
#keyboard {
|
#keyboard {
|
||||||
background-color: rgba(46, 52, 54, 0.7); }
|
background-color: rgba(46, 52, 54, 0.7); }
|
||||||
|
|
||||||
.keyboard-layout {
|
.key-container {
|
||||||
spacing: 10px;
|
padding: 4px;
|
||||||
padding: 10px; }
|
spacing: 4px; }
|
||||||
|
|
||||||
.keyboard-row {
|
|
||||||
spacing: 15px; }
|
|
||||||
|
|
||||||
.keyboard-key {
|
.keyboard-key {
|
||||||
color: #eeeeec;
|
background-color: #393f3f;
|
||||||
background-color: #2e3436;
|
|
||||||
border-color: rgba(0, 0, 0, 0.7);
|
|
||||||
box-shadow: inset 0 1px #454f52;
|
|
||||||
text-shadow: 0 1px black;
|
|
||||||
icon-shadow: 0 1px black;
|
|
||||||
min-height: 2em;
|
min-height: 2em;
|
||||||
min-width: 2em;
|
min-width: 2em;
|
||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
font-weight: bold;
|
border-radius: 3px;
|
||||||
border-radius: 5px;
|
border: 1px solid #464d4d;
|
||||||
border: 1px solid black;
|
color: #e5e5e5; }
|
||||||
color: white; }
|
|
||||||
.keyboard-key:focus {
|
.keyboard-key:focus {
|
||||||
color: #eeeeec;
|
color: #eeeeec;
|
||||||
text-shadow: 0 1px black;
|
text-shadow: 0 1px black;
|
||||||
@@ -1542,6 +1546,12 @@ StScrollBar {
|
|||||||
background-color: #2e3436;
|
background-color: #2e3436;
|
||||||
color: #eeeeec;
|
color: #eeeeec;
|
||||||
border-color: rgba(0, 0, 0, 0.7); }
|
border-color: rgba(0, 0, 0, 0.7); }
|
||||||
|
.keyboard-key.default-key {
|
||||||
|
border-color: #2d3232;
|
||||||
|
background-color: #1d2020; }
|
||||||
|
.keyboard-key.enter-key {
|
||||||
|
border-color: #005684;
|
||||||
|
background-color: #006098; }
|
||||||
|
|
||||||
.keyboard-subkeys {
|
.keyboard-subkeys {
|
||||||
color: white;
|
color: white;
|
||||||
|
|||||||
Submodule data/theme/gnome-shell-sass updated: 32361ac692...d509706ff4
@@ -736,7 +736,7 @@ StScrollBar {
|
|||||||
#panel.solid .panel-button {
|
#panel.solid .panel-button {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
text-shadow: none; }
|
text-shadow: none; }
|
||||||
#panel.solid .panel-button:hover {
|
#panel.solid .panel-button:hover, #panel.solid .panel-button:active, #panel.solid .panel-button:overview, #panel.solid .panel-button:focus, #panel.solid .panel-button:checked {
|
||||||
color: white; }
|
color: white; }
|
||||||
#panel.solid .system-status-icon,
|
#panel.solid .system-status-icon,
|
||||||
#panel.solid .app-menu-icon > StIcon,
|
#panel.solid .app-menu-icon > StIcon,
|
||||||
@@ -987,6 +987,14 @@ StScrollBar {
|
|||||||
min-width: 21em; }
|
min-width: 21em; }
|
||||||
.aggregate-menu .popup-menu-icon {
|
.aggregate-menu .popup-menu-icon {
|
||||||
padding: 0 4px; }
|
padding: 0 4px; }
|
||||||
|
.aggregate-menu .popup-sub-menu .popup-menu-item :first-child:ltr {
|
||||||
|
/* 12px spacing + 2*4px padding */
|
||||||
|
padding-left: 20px;
|
||||||
|
margin-left: 1.09em; }
|
||||||
|
.aggregate-menu .popup-sub-menu .popup-menu-item :first-child:rtl {
|
||||||
|
/* 12px spacing + 2*4px padding */
|
||||||
|
padding-right: 20px;
|
||||||
|
margin-right: 1.09em; }
|
||||||
|
|
||||||
.system-menu-action {
|
.system-menu-action {
|
||||||
color: #eeeeec;
|
color: #eeeeec;
|
||||||
@@ -1495,30 +1503,26 @@ StScrollBar {
|
|||||||
border-width: 0; }
|
border-width: 0; }
|
||||||
|
|
||||||
/* On-screen Keyboard */
|
/* On-screen Keyboard */
|
||||||
|
.word-suggestions {
|
||||||
|
font-size: 14pt;
|
||||||
|
spacing: 12px;
|
||||||
|
min-height: 20pt; }
|
||||||
|
|
||||||
#keyboard {
|
#keyboard {
|
||||||
background-color: rgba(46, 52, 54, 0.7); }
|
background-color: rgba(46, 52, 54, 0.7); }
|
||||||
|
|
||||||
.keyboard-layout {
|
.key-container {
|
||||||
spacing: 10px;
|
padding: 4px;
|
||||||
padding: 10px; }
|
spacing: 4px; }
|
||||||
|
|
||||||
.keyboard-row {
|
|
||||||
spacing: 15px; }
|
|
||||||
|
|
||||||
.keyboard-key {
|
.keyboard-key {
|
||||||
color: #eeeeec;
|
background-color: #393f3f;
|
||||||
background-color: #2e3436;
|
|
||||||
border-color: rgba(0, 0, 0, 0.7);
|
|
||||||
box-shadow: inset 0 1px #454f52;
|
|
||||||
text-shadow: 0 1px black;
|
|
||||||
icon-shadow: 0 1px black;
|
|
||||||
min-height: 2em;
|
min-height: 2em;
|
||||||
min-width: 2em;
|
min-width: 2em;
|
||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
font-weight: bold;
|
border-radius: 3px;
|
||||||
border-radius: 5px;
|
border: 1px solid #464d4d;
|
||||||
border: 1px solid #1c1f1f;
|
color: #e5e5e5; }
|
||||||
color: white; }
|
|
||||||
.keyboard-key:focus {
|
.keyboard-key:focus {
|
||||||
color: #eeeeec;
|
color: #eeeeec;
|
||||||
text-shadow: 0 1px black;
|
text-shadow: 0 1px black;
|
||||||
@@ -1542,6 +1546,12 @@ StScrollBar {
|
|||||||
background-color: #2e3436;
|
background-color: #2e3436;
|
||||||
color: #eeeeec;
|
color: #eeeeec;
|
||||||
border-color: rgba(0, 0, 0, 0.7); }
|
border-color: rgba(0, 0, 0, 0.7); }
|
||||||
|
.keyboard-key.default-key {
|
||||||
|
border-color: #2d3232;
|
||||||
|
background-color: #1d2020; }
|
||||||
|
.keyboard-key.enter-key {
|
||||||
|
border-color: #005684;
|
||||||
|
background-color: #006098; }
|
||||||
|
|
||||||
.keyboard-subkeys {
|
.keyboard-subkeys {
|
||||||
color: white;
|
color: white;
|
||||||
|
|||||||
48
data/update-osk-layouts.sh
Executable file
48
data/update-osk-layouts.sh
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/env bash
|
||||||
|
|
||||||
|
CLDR_LAYOUTS_TARBALL="http://www.unicode.org/Public/cldr/latest/keyboards.zip"
|
||||||
|
CLDR2JSON_GIT="git://repo.or.cz/cldr2json.git"
|
||||||
|
|
||||||
|
WORKDIR=".osk-layout-workbench"
|
||||||
|
CLDR2JSON="$WORKDIR/cldr2json/cldr2json.py"
|
||||||
|
SRCDIR="$WORKDIR/keyboards/android"
|
||||||
|
DESTDIR="osk-layouts"
|
||||||
|
GRESOURCE_FILE="gnome-shell-osk-layouts.gresource.xml"
|
||||||
|
TMP_GRESOURCE_FILE=".$GRESOURCE_FILE.tmp"
|
||||||
|
|
||||||
|
cd `dirname $0`
|
||||||
|
|
||||||
|
# Ensure work/dest dirs
|
||||||
|
rm -rf $WORKDIR
|
||||||
|
mkdir -p $WORKDIR
|
||||||
|
mkdir -p "osk-layouts"
|
||||||
|
|
||||||
|
# Download stuff on the work dir
|
||||||
|
pushd $WORKDIR
|
||||||
|
gio copy $CLDR_LAYOUTS_TARBALL .
|
||||||
|
git clone $CLDR2JSON_GIT
|
||||||
|
unzip keyboards.zip
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Transform to JSON files
|
||||||
|
$CLDR2JSON $SRCDIR $DESTDIR
|
||||||
|
|
||||||
|
# Generate new gresources xml file
|
||||||
|
cat >$TMP_GRESOURCE_FILE <<EOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/org/gnome/shell/osk-layouts">
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for f in $DESTDIR/*.json
|
||||||
|
do
|
||||||
|
echo " <file>$(basename $f)</file>" >>$TMP_GRESOURCE_FILE
|
||||||
|
done
|
||||||
|
|
||||||
|
cat >>$TMP_GRESOURCE_FILE <<EOF
|
||||||
|
</gresource>
|
||||||
|
</gresources>
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Rewrite old gresources xml
|
||||||
|
mv $TMP_GRESOURCE_FILE $GRESOURCE_FILE
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
<file>misc/gnomeSession.js</file>
|
<file>misc/gnomeSession.js</file>
|
||||||
<file>misc/history.js</file>
|
<file>misc/history.js</file>
|
||||||
<file>misc/ibusManager.js</file>
|
<file>misc/ibusManager.js</file>
|
||||||
|
<file>misc/inputMethod.js</file>
|
||||||
<file>misc/jsParse.js</file>
|
<file>misc/jsParse.js</file>
|
||||||
<file>misc/keyboardManager.js</file>
|
<file>misc/keyboardManager.js</file>
|
||||||
<file>misc/loginManager.js</file>
|
<file>misc/loginManager.js</file>
|
||||||
@@ -61,6 +62,7 @@
|
|||||||
<file>ui/ibusCandidatePopup.js</file>
|
<file>ui/ibusCandidatePopup.js</file>
|
||||||
<file>ui/iconGrid.js</file>
|
<file>ui/iconGrid.js</file>
|
||||||
<file>ui/inhibitShortcutsDialog.js</file>
|
<file>ui/inhibitShortcutsDialog.js</file>
|
||||||
|
<file>ui/kbdA11yDialog.js</file>
|
||||||
<file>ui/keyboard.js</file>
|
<file>ui/keyboard.js</file>
|
||||||
<file>ui/layout.js</file>
|
<file>ui/layout.js</file>
|
||||||
<file>ui/lightbox.js</file>
|
<file>ui/lightbox.js</file>
|
||||||
@@ -130,5 +132,6 @@
|
|||||||
<file>ui/status/bluetooth.js</file>
|
<file>ui/status/bluetooth.js</file>
|
||||||
<file>ui/status/screencast.js</file>
|
<file>ui/status/screencast.js</file>
|
||||||
<file>ui/status/system.js</file>
|
<file>ui/status/system.js</file>
|
||||||
|
<file>ui/status/thunderbolt.js</file>
|
||||||
</gresource>
|
</gresource>
|
||||||
</gresources>
|
</gresources>
|
||||||
|
|||||||
@@ -14,6 +14,6 @@ var GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
|
|||||||
var LOCALEDIR = '@datadir@/locale';
|
var LOCALEDIR = '@datadir@/locale';
|
||||||
/* other standard directories */
|
/* other standard directories */
|
||||||
var LIBEXECDIR = '@libexecdir@';
|
var LIBEXECDIR = '@libexecdir@';
|
||||||
var SYSCONFDIR = '@sysconfdir@';
|
var VPNDIR = '@vpndir@';
|
||||||
/* g-i package versions */
|
/* g-i package versions */
|
||||||
var LIBMUTTER_API_VERSION = '@LIBMUTTER_API_VERSION@'
|
var LIBMUTTER_API_VERSION = '@LIBMUTTER_API_VERSION@'
|
||||||
|
|||||||
@@ -6,15 +6,11 @@ const Lang = imports.lang;
|
|||||||
const Mainloop = imports.mainloop;
|
const Mainloop = imports.mainloop;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
|
|
||||||
let IBusCandidatePopup;
|
const IBus = imports.gi.IBus;
|
||||||
try {
|
const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
|
||||||
var IBus = imports.gi.IBus;
|
|
||||||
_checkIBusVersion(1, 5, 2);
|
// Ensure runtime version matches
|
||||||
IBusCandidatePopup = imports.ui.ibusCandidatePopup;
|
_checkIBusVersion(1, 5, 2);
|
||||||
} catch (e) {
|
|
||||||
var IBus = null;
|
|
||||||
log(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
let _ibusManager = null;
|
let _ibusManager = null;
|
||||||
|
|
||||||
@@ -45,9 +41,6 @@ var IBusManager = new Lang.Class({
|
|||||||
_PRELOAD_ENGINES_DELAY_TIME: 30, // sec
|
_PRELOAD_ENGINES_DELAY_TIME: 30, // sec
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
if (!IBus)
|
|
||||||
return;
|
|
||||||
|
|
||||||
IBus.init();
|
IBus.init();
|
||||||
|
|
||||||
this._candidatePopup = new IBusCandidatePopup.CandidatePopup();
|
this._candidatePopup = new IBusCandidatePopup.CandidatePopup();
|
||||||
@@ -190,7 +183,7 @@ var IBusManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
getEngineDesc: function(id) {
|
getEngineDesc: function(id) {
|
||||||
if (!IBus || !this._ready || !this._engines.hasOwnProperty(id))
|
if (!this._ready || !this._engines.hasOwnProperty(id))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
return this._engines[id];
|
return this._engines[id];
|
||||||
@@ -200,7 +193,7 @@ var IBusManager = new Lang.Class({
|
|||||||
// Send id even if id == this._currentEngineName
|
// Send id even if id == this._currentEngineName
|
||||||
// because 'properties-registered' signal can be emitted
|
// because 'properties-registered' signal can be emitted
|
||||||
// while this._ibusSources == null on a lock screen.
|
// while this._ibusSources == null on a lock screen.
|
||||||
if (!IBus || !this._ready) {
|
if (!this._ready) {
|
||||||
if (callback)
|
if (callback)
|
||||||
callback();
|
callback();
|
||||||
return;
|
return;
|
||||||
@@ -211,7 +204,7 @@ var IBusManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
preloadEngines: function(ids) {
|
preloadEngines: function(ids) {
|
||||||
if (!IBus || !this._ibus || ids.length == 0)
|
if (!this._ibus || ids.length == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (this._preloadEnginesId != 0) {
|
if (this._preloadEnginesId != 0) {
|
||||||
|
|||||||
214
js/misc/inputMethod.js
Normal file
214
js/misc/inputMethod.js
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
const IBus = imports.gi.IBus;
|
||||||
|
const Keyboard = imports.ui.status.keyboard;
|
||||||
|
const Lang = imports.lang;
|
||||||
|
const Signals = imports.signals;
|
||||||
|
|
||||||
|
var InputMethod = new Lang.Class({
|
||||||
|
Name: 'InputMethod',
|
||||||
|
Extends: Clutter.InputMethod,
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
this.parent();
|
||||||
|
this._hints = 0;
|
||||||
|
this._purpose = 0;
|
||||||
|
this._enabled = true;
|
||||||
|
this._currentFocus = null;
|
||||||
|
this._ibus = IBus.Bus.new_async();
|
||||||
|
this._ibus.connect('connected', Lang.bind(this, this._onConnected));
|
||||||
|
this._ibus.connect('disconnected', Lang.bind(this, this._clear));
|
||||||
|
this.connect('notify::can-show-preedit', Lang.bind(this, this._updateCapabilities));
|
||||||
|
|
||||||
|
this._inputSourceManager = Keyboard.getInputSourceManager();
|
||||||
|
this._sourceChangedId = this._inputSourceManager.connect('current-source-changed',
|
||||||
|
Lang.bind(this, this._onSourceChanged));
|
||||||
|
this._currentSource = this._inputSourceManager.currentSource;
|
||||||
|
|
||||||
|
if (this._ibus.is_connected())
|
||||||
|
this._onConnected();
|
||||||
|
},
|
||||||
|
|
||||||
|
get currentFocus() {
|
||||||
|
return this._currentFocus;
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateCapabilities: function() {
|
||||||
|
let caps = 0;
|
||||||
|
|
||||||
|
if (this.can_show_preedit)
|
||||||
|
caps |= IBus.Capabilite.PREEDIT_TEXT;
|
||||||
|
|
||||||
|
if (this._currentFocus)
|
||||||
|
caps |= IBus.Capabilite.FOCUS | IBus.Capabilite.SURROUNDING_TEXT;
|
||||||
|
else
|
||||||
|
caps |= IBus.Capabilite.PREEDIT_TEXT | IBus.Capabilite.AUXILIARY_TEXT | IBus.Capabilite.LOOKUP_TABLE | IBus.Capabilite.PROPERTY;
|
||||||
|
|
||||||
|
if (this._context)
|
||||||
|
this._context.set_capabilities(caps);
|
||||||
|
},
|
||||||
|
|
||||||
|
_onSourceChanged: function() {
|
||||||
|
this._currentSource = this._inputSourceManager.currentSource;
|
||||||
|
},
|
||||||
|
|
||||||
|
_onConnected: function() {
|
||||||
|
this._ibus.create_input_context_async ('gnome-shell', -1, null,
|
||||||
|
Lang.bind(this, this._setContext));
|
||||||
|
},
|
||||||
|
|
||||||
|
_setContext: function(bus, res) {
|
||||||
|
this._context = this._ibus.create_input_context_async_finish(res);
|
||||||
|
this._context.connect('enabled', Lang.bind(this, function () { this._enabled = true }));
|
||||||
|
this._context.connect('disabled', Lang.bind(this, function () { this._enabled = false }));
|
||||||
|
this._context.connect('commit-text', Lang.bind(this, this._onCommitText));
|
||||||
|
this._context.connect('delete-surrounding-text', Lang.bind(this, this._onDeleteSurroundingText));
|
||||||
|
this._context.connect('update-preedit-text', Lang.bind(this, this._onUpdatePreeditText));
|
||||||
|
|
||||||
|
this._updateCapabilities();
|
||||||
|
},
|
||||||
|
|
||||||
|
_clear: function() {
|
||||||
|
this._context = null;
|
||||||
|
this._hints = 0;
|
||||||
|
this._purpose = 0;
|
||||||
|
this._enabled = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
_emitRequestSurrounding: function() {
|
||||||
|
if (this._context.needs_surrounding_text())
|
||||||
|
this.emit('request-surrounding');
|
||||||
|
},
|
||||||
|
|
||||||
|
_onCommitText: function(context, text) {
|
||||||
|
this.commit(text.get_text());
|
||||||
|
},
|
||||||
|
|
||||||
|
_onDeleteSurroundingText: function (context) {
|
||||||
|
this.delete_surrounding();
|
||||||
|
},
|
||||||
|
|
||||||
|
_onUpdatePreeditText: function (context, text, pos, visible) {
|
||||||
|
let str = null;
|
||||||
|
if (visible && text != null)
|
||||||
|
str = text.get_text();
|
||||||
|
|
||||||
|
this.set_preedit_text(str, pos);
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_focus_in: function(focus) {
|
||||||
|
this._currentFocus = focus;
|
||||||
|
if (this._context) {
|
||||||
|
this._context.focus_in();
|
||||||
|
this._updateCapabilities();
|
||||||
|
this._emitRequestSurrounding();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_focus_out: function() {
|
||||||
|
this._currentFocus = null;
|
||||||
|
if (this._context) {
|
||||||
|
this._context.focus_out();
|
||||||
|
this._updateCapabilities();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unset any preedit text
|
||||||
|
this.set_preedit_text(null, 0);
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_reset: function() {
|
||||||
|
if (this._context) {
|
||||||
|
this._context.reset();
|
||||||
|
this._emitRequestSurrounding();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unset any preedit text
|
||||||
|
this.set_preedit_text(null, 0);
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_set_cursor_location: function(rect) {
|
||||||
|
if (this._context) {
|
||||||
|
this._context.set_cursor_location(rect.get_x(), rect.get_y(),
|
||||||
|
rect.get_width(), rect.get_height());
|
||||||
|
this._emitRequestSurrounding();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_set_surrounding: function(text, cursor, anchor) {
|
||||||
|
if (this._context)
|
||||||
|
this._context.set_surrounding_text(text, cursor, anchor);
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_update_content_hints: function(hints) {
|
||||||
|
let ibusHints = 0;
|
||||||
|
if (hints & Clutter.InputContentHintFlags.COMPLETION)
|
||||||
|
ibusHints |= IBus.InputHints.WORD_COMPLETION;
|
||||||
|
if (hints & Clutter.InputContentHintFlags.SPELLCHECK)
|
||||||
|
ibusHints |= IBus.InputHints.SPELLCHECK;
|
||||||
|
if (hints & Clutter.InputContentHintFlags.AUTO_CAPITALIZATION)
|
||||||
|
ibusHints |= IBus.InputHints.UPPERCASE_SENTENCES;
|
||||||
|
if (hints & Clutter.InputContentHintFlags.LOWERCASE)
|
||||||
|
ibusHints |= IBus.InputHints.LOWERCASE;
|
||||||
|
if (hints & Clutter.InputContentHintFlags.UPPERCASE)
|
||||||
|
ibusHints |= IBus.InputHints.UPPERCASE_CHARS;
|
||||||
|
if (hints & Clutter.InputContentHintFlags.TITLECASE)
|
||||||
|
ibusHints |= IBus.InputHints.UPPERCASE_WORDS;
|
||||||
|
|
||||||
|
this._hints = ibusHints;
|
||||||
|
if (this._context)
|
||||||
|
this._context.set_content_type(this._purpose, this._hints);
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_update_content_purpose: function(purpose) {
|
||||||
|
let ibusPurpose = 0;
|
||||||
|
if (purpose == Clutter.InputContentPurpose.NORMAL)
|
||||||
|
ibusPurpose = IBus.InputPurpose.FREE_FORM;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.ALPHA)
|
||||||
|
ibusPurpose = IBus.InputPurpose.ALPHA;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.DIGITS)
|
||||||
|
ibusPurpose = IBus.InputPurpose.DIGITS;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.NUMBER)
|
||||||
|
ibusPurpose = IBus.InputPurpose.NUMBER;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.PHONE)
|
||||||
|
ibusPurpose = IBus.InputPurpose.PHONE;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.URL)
|
||||||
|
ibusPurpose = IBus.InputPurpose.URL;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.EMAIL)
|
||||||
|
ibusPurpose = IBus.InputPurpose.EMAIL;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.NAME)
|
||||||
|
ibusPurpose = IBus.InputPurpose.NAME;
|
||||||
|
else if (purpose == Clutter.InputContentPurpose.PASSWORD)
|
||||||
|
ibusPurpose = IBus.InputPurpose.PASSWORD;
|
||||||
|
|
||||||
|
this._purpose = ibusPurpose;
|
||||||
|
if (this._context)
|
||||||
|
this._context.set_content_type(this._purpose, this._hints);
|
||||||
|
},
|
||||||
|
|
||||||
|
vfunc_filter_key_event: function(event) {
|
||||||
|
if (!this._context || !this._enabled)
|
||||||
|
return false;
|
||||||
|
if (!this._currentSource ||
|
||||||
|
this._currentSource.type == Keyboard.INPUT_SOURCE_TYPE_XKB)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
let state = event.get_state();
|
||||||
|
if (state & IBus.ModifierType.IGNORED_MASK)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (event.type() == Clutter.EventType.KEY_RELEASE)
|
||||||
|
state |= IBus.ModifierType.RELEASE_MASK;
|
||||||
|
this._context.process_key_event_async(event.get_key_symbol(),
|
||||||
|
event.get_key_code() - 8, // Convert XKB keycodes to evcodes
|
||||||
|
state, -1, null,
|
||||||
|
Lang.bind(this, (context, res) => {
|
||||||
|
try {
|
||||||
|
let retval = context.process_key_event_async_finish(res);
|
||||||
|
this.notify_key_event(event, retval);
|
||||||
|
} catch (e) {
|
||||||
|
log('Error processing key on IM: ' + e.message);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
});
|
||||||
@@ -7,7 +7,7 @@ jsconf.set10('HAVE_BLUETOOTH', bt_dep.found())
|
|||||||
jsconf.set10('HAVE_NETWORKMANAGER', have_networkmanager)
|
jsconf.set10('HAVE_NETWORKMANAGER', have_networkmanager)
|
||||||
jsconf.set('datadir', datadir)
|
jsconf.set('datadir', datadir)
|
||||||
jsconf.set('libexecdir', libexecdir)
|
jsconf.set('libexecdir', libexecdir)
|
||||||
jsconf.set('sysconfdir', sysconfdir)
|
jsconf.set('vpndir', vpndir)
|
||||||
|
|
||||||
config_js = configure_file(
|
config_js = configure_file(
|
||||||
input: 'config.js.in',
|
input: 'config.js.in',
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const NMGtk = imports.gi.NMGtk;
|
const NMA = imports.gi.NMA;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
|
|
||||||
// _getMobileProvidersDatabase:
|
// _getMobileProvidersDatabase:
|
||||||
@@ -14,7 +14,7 @@ let _mpd;
|
|||||||
function _getMobileProvidersDatabase() {
|
function _getMobileProvidersDatabase() {
|
||||||
if (_mpd == null) {
|
if (_mpd == null) {
|
||||||
try {
|
try {
|
||||||
_mpd = new NMGtk.MobileProvidersDatabase();
|
_mpd = new NMA.MobileProvidersDatabase();
|
||||||
_mpd.init(null);
|
_mpd.init(null);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log(e.message);
|
log(e.message);
|
||||||
|
|||||||
186
js/ui/altTab.js
186
js/ui/altTab.js
@@ -156,14 +156,23 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
this._items[this._selectedIndex].cachedWindows.length);
|
this._items[this._selectedIndex].cachedWindows.length);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_closeAppWindow: function(appIndex, windowIndex) {
|
||||||
|
let appIcon = this._items[appIndex];
|
||||||
|
if (!appIcon)
|
||||||
|
return;
|
||||||
|
|
||||||
|
let window = appIcon.cachedWindows[windowIndex];
|
||||||
|
if (!window)
|
||||||
|
return;
|
||||||
|
|
||||||
|
window.delete(global.get_current_time());
|
||||||
|
},
|
||||||
|
|
||||||
_quitApplication: function(appIndex) {
|
_quitApplication: function(appIndex) {
|
||||||
let appIcon = this._items[appIndex];
|
let appIcon = this._items[appIndex];
|
||||||
if (!appIcon)
|
if (!appIcon)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Make sure the list of thumbnails is hidden before quitting the
|
|
||||||
// application, not to keep an empty list of windows showing up.
|
|
||||||
this._select(appIndex, null, false);
|
|
||||||
appIcon.app.request_quit();
|
appIcon.app.request_quit();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -179,6 +188,8 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
this._select(this._next());
|
this._select(this._next());
|
||||||
} else if (action == Meta.KeyBindingAction.SWITCH_APPLICATIONS_BACKWARD) {
|
} else if (action == Meta.KeyBindingAction.SWITCH_APPLICATIONS_BACKWARD) {
|
||||||
this._select(this._previous());
|
this._select(this._previous());
|
||||||
|
} else if (keysym == Clutter.q) {
|
||||||
|
this._quitApplication(this._selectedIndex);
|
||||||
} else if (this._thumbnailsFocused) {
|
} else if (this._thumbnailsFocused) {
|
||||||
if (keysym == Clutter.Left)
|
if (keysym == Clutter.Left)
|
||||||
this._select(this._selectedIndex, this._previousWindow());
|
this._select(this._selectedIndex, this._previousWindow());
|
||||||
@@ -186,8 +197,8 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
this._select(this._selectedIndex, this._nextWindow());
|
this._select(this._selectedIndex, this._nextWindow());
|
||||||
else if (keysym == Clutter.Up)
|
else if (keysym == Clutter.Up)
|
||||||
this._select(this._selectedIndex, null, true);
|
this._select(this._selectedIndex, null, true);
|
||||||
else if (keysym == Clutter.q)
|
else if (keysym == Clutter.w || keysym == Clutter.F4)
|
||||||
this._quitApplication(this._selectedIndex);
|
this._closeAppWindow(this._selectedIndex, this._currentWindow);
|
||||||
else
|
else
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
} else {
|
} else {
|
||||||
@@ -197,8 +208,6 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
this._select(this._next());
|
this._select(this._next());
|
||||||
else if (keysym == Clutter.Down)
|
else if (keysym == Clutter.Down)
|
||||||
this._select(this._selectedIndex, 0);
|
this._select(this._selectedIndex, 0);
|
||||||
else if (keysym == Clutter.q)
|
|
||||||
this._quitApplication(this._selectedIndex);
|
|
||||||
else
|
else
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
}
|
}
|
||||||
@@ -263,14 +272,24 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
this._select(this._selectedIndex, n);
|
this._select(this._selectedIndex, n);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_windowRemoved : function(thumbnailList, n) {
|
||||||
|
let appIcon = this._items[this._selectedIndex];
|
||||||
|
if (!appIcon)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (appIcon.cachedWindows.length > 0) {
|
||||||
|
let newIndex = Math.min(n, appIcon.cachedWindows.length - 1);
|
||||||
|
this._select(this._selectedIndex, newIndex);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
_finish : function(timestamp) {
|
_finish : function(timestamp) {
|
||||||
let appIcon = this._items[this._selectedIndex];
|
let appIcon = this._items[this._selectedIndex];
|
||||||
if (appIcon) {
|
if (this._currentWindow < 0)
|
||||||
if (this._currentWindow < 0)
|
appIcon.app.activate_window(appIcon.cachedWindows[0], timestamp);
|
||||||
appIcon.app.activate_window(appIcon.cachedWindows[0], timestamp);
|
else if (appIcon.cachedWindows[this._currentWindow])
|
||||||
else if (appIcon.cachedWindows[this._currentWindow])
|
Main.activateWindow(appIcon.cachedWindows[this._currentWindow], timestamp);
|
||||||
Main.activateWindow(appIcon.cachedWindows[this._currentWindow], timestamp);
|
|
||||||
}
|
|
||||||
this.parent();
|
this.parent();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -333,7 +352,8 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
} else if (this._items[this._selectedIndex].cachedWindows.length > 1 &&
|
} else if (this._items[this._selectedIndex].cachedWindows.length > 1 &&
|
||||||
!forceAppFocus) {
|
!forceAppFocus) {
|
||||||
this._thumbnailTimeoutId = Mainloop.timeout_add (
|
this._thumbnailTimeoutId = Mainloop.timeout_add (
|
||||||
THUMBNAIL_POPUP_TIME, () => { this._timeoutPopupThumbnails(); });
|
THUMBNAIL_POPUP_TIME,
|
||||||
|
Lang.bind(this, this._timeoutPopupThumbnails));
|
||||||
GLib.Source.set_name_by_id(this._thumbnailTimeoutId, '[gnome-shell] this._timeoutPopupThumbnails');
|
GLib.Source.set_name_by_id(this._thumbnailTimeoutId, '[gnome-shell] this._timeoutPopupThumbnails');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -352,20 +372,21 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
{ opacity: 0,
|
{ opacity: 0,
|
||||||
time: THUMBNAIL_FADE_TIME,
|
time: THUMBNAIL_FADE_TIME,
|
||||||
transition: 'easeOutQuad',
|
transition: 'easeOutQuad',
|
||||||
onComplete: () => {
|
onComplete: Lang.bind(this, function() {
|
||||||
thumbnailsActor.destroy();
|
thumbnailsActor.destroy();
|
||||||
this.thumbnailsVisible = false;
|
this.thumbnailsVisible = false;
|
||||||
},
|
})
|
||||||
onCompleteScope: this
|
|
||||||
});
|
});
|
||||||
this._thumbnails = null;
|
this._thumbnails = null;
|
||||||
this._switcherList._items[this._selectedIndex].remove_accessible_state (Atk.StateType.EXPANDED);
|
if (this._switcherList._items[this._selectedIndex])
|
||||||
|
this._switcherList._items[this._selectedIndex].remove_accessible_state (Atk.StateType.EXPANDED);
|
||||||
},
|
},
|
||||||
|
|
||||||
_createThumbnails : function() {
|
_createThumbnails : function() {
|
||||||
this._thumbnails = new ThumbnailList (this._items[this._selectedIndex].cachedWindows);
|
this._thumbnails = new ThumbnailList (this._items[this._selectedIndex].cachedWindows);
|
||||||
this._thumbnails.connect('item-activated', (thumbnailList, n) => { this._windowActivated(thumbnailList, n); });
|
this._thumbnails.connect('item-activated', Lang.bind(this, this._windowActivated));
|
||||||
this._thumbnails.connect('item-entered', (thumbnailList, n) => { this._windowEntered(thumbnailList, n); });
|
this._thumbnails.connect('item-entered', Lang.bind(this, this._windowEntered));
|
||||||
|
this._thumbnails.connect('item-removed', Lang.bind(this, this._windowRemoved));
|
||||||
this._thumbnails.actor.connect('destroy', () => {
|
this._thumbnails.actor.connect('destroy', () => {
|
||||||
this._thumbnails = null;
|
this._thumbnails = null;
|
||||||
this._thumbnailsFocused = false;
|
this._thumbnailsFocused = false;
|
||||||
@@ -382,8 +403,7 @@ var AppSwitcherPopup = new Lang.Class({
|
|||||||
{ opacity: 255,
|
{ opacity: 255,
|
||||||
time: THUMBNAIL_FADE_TIME,
|
time: THUMBNAIL_FADE_TIME,
|
||||||
transition: 'easeOutQuad',
|
transition: 'easeOutQuad',
|
||||||
onComplete: () => { this.thumbnailsVisible = true; },
|
onComplete: Lang.bind(this, function () { this.thumbnailsVisible = true; })
|
||||||
onCompleteScope: this
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this._switcherList._items[this._selectedIndex].add_accessible_state (Atk.StateType.EXPANDED);
|
this._switcherList._items[this._selectedIndex].add_accessible_state (Atk.StateType.EXPANDED);
|
||||||
@@ -410,8 +430,9 @@ var CyclerHighlight = new Lang.Class({
|
|||||||
|
|
||||||
this.actor.add_constraint(constraint);
|
this.actor.add_constraint(constraint);
|
||||||
|
|
||||||
this.actor.connect('notify::allocation', () => { this._onAllocationChanged(); });
|
this.actor.connect('notify::allocation',
|
||||||
this.actor.connect('destroy', () => { this._onDestroy(); });
|
Lang.bind(this, this._onAllocationChanged));
|
||||||
|
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||||
},
|
},
|
||||||
|
|
||||||
set window(w) {
|
set window(w) {
|
||||||
@@ -469,7 +490,7 @@ var CyclerPopup = new Lang.Class({
|
|||||||
// We don't show an actual popup, so just provide what SwitcherPopup
|
// We don't show an actual popup, so just provide what SwitcherPopup
|
||||||
// expects instead of inheriting from SwitcherList
|
// expects instead of inheriting from SwitcherList
|
||||||
this._switcherList = { actor: new St.Widget(),
|
this._switcherList = { actor: new St.Widget(),
|
||||||
highlight: (index, justOutline) => { this._highlightItem(index, justOutline); },
|
highlight: Lang.bind(this, this._highlightItem),
|
||||||
connect: function() {} };
|
connect: function() {} };
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -555,6 +576,14 @@ var WindowSwitcherPopup = new Lang.Class({
|
|||||||
return getWindows(workspace);
|
return getWindows(workspace);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_closeWindow: function(windowIndex) {
|
||||||
|
let windowIcon = this._items[windowIndex];
|
||||||
|
if (!windowIcon)
|
||||||
|
return;
|
||||||
|
|
||||||
|
windowIcon.window.delete(global.get_current_time());
|
||||||
|
},
|
||||||
|
|
||||||
_keyPressHandler: function(keysym, action) {
|
_keyPressHandler: function(keysym, action) {
|
||||||
if (action == Meta.KeyBindingAction.SWITCH_WINDOWS) {
|
if (action == Meta.KeyBindingAction.SWITCH_WINDOWS) {
|
||||||
this._select(this._next());
|
this._select(this._next());
|
||||||
@@ -565,6 +594,8 @@ var WindowSwitcherPopup = new Lang.Class({
|
|||||||
this._select(this._previous());
|
this._select(this._previous());
|
||||||
else if (keysym == Clutter.Right)
|
else if (keysym == Clutter.Right)
|
||||||
this._select(this._next());
|
this._select(this._next());
|
||||||
|
else if (keysym == Clutter.w || keysym == Clutter.F4)
|
||||||
|
this._closeWindow(this._selectedIndex);
|
||||||
else
|
else
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
}
|
}
|
||||||
@@ -659,15 +690,16 @@ var AppSwitcher = new Lang.Class({
|
|||||||
this._altTabPopup = altTabPopup;
|
this._altTabPopup = altTabPopup;
|
||||||
this._mouseTimeOutId = 0;
|
this._mouseTimeOutId = 0;
|
||||||
|
|
||||||
this.actor.connect('destroy', () => { this._onDestroy(); });
|
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDestroy: function() {
|
_onDestroy: function() {
|
||||||
if (this._mouseTimeOutId != 0)
|
if (this._mouseTimeOutId != 0)
|
||||||
Mainloop.source_remove(this._mouseTimeOutId);
|
Mainloop.source_remove(this._mouseTimeOutId);
|
||||||
|
|
||||||
for (let i = 0; i < this.icons.length; i++)
|
this.icons.forEach(icon => {
|
||||||
this.icons[i].app.disconnect(this.icons[i]._stateChangedId);
|
icon.app.disconnect(icon._stateChangedId);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
_setIconSize: function() {
|
_setIconSize: function() {
|
||||||
@@ -742,11 +774,12 @@ var AppSwitcher = new Lang.Class({
|
|||||||
if (this._mouseTimeOutId != 0)
|
if (this._mouseTimeOutId != 0)
|
||||||
Mainloop.source_remove(this._mouseTimeOutId);
|
Mainloop.source_remove(this._mouseTimeOutId);
|
||||||
if (this._altTabPopup.thumbnailsVisible) {
|
if (this._altTabPopup.thumbnailsVisible) {
|
||||||
this._mouseTimeOutId = Mainloop.timeout_add(APP_ICON_HOVER_TIMEOUT, () => {
|
this._mouseTimeOutId = Mainloop.timeout_add(APP_ICON_HOVER_TIMEOUT,
|
||||||
this._enterItem(index);
|
Lang.bind(this, function () {
|
||||||
this._mouseTimeOutId = 0;
|
this._enterItem(index);
|
||||||
return GLib.SOURCE_REMOVE;
|
this._mouseTimeOutId = 0;
|
||||||
});
|
return GLib.SOURCE_REMOVE;
|
||||||
|
}));
|
||||||
GLib.Source.set_name_by_id(this._mouseTimeOutId, '[gnome-shell] this._enterItem');
|
GLib.Source.set_name_by_id(this._mouseTimeOutId, '[gnome-shell] this._enterItem');
|
||||||
} else
|
} else
|
||||||
this._itemEntered(index);
|
this._itemEntered(index);
|
||||||
@@ -767,7 +800,7 @@ var AppSwitcher = new Lang.Class({
|
|||||||
// show a dim arrow, but show a bright arrow when they are
|
// show a dim arrow, but show a bright arrow when they are
|
||||||
// highlighted.
|
// highlighted.
|
||||||
highlight : function(n, justOutline) {
|
highlight : function(n, justOutline) {
|
||||||
if (this._curApp != -1) {
|
if (this.icons[this._curApp]) {
|
||||||
if (this.icons[this._curApp].cachedWindows.length == 1)
|
if (this.icons[this._curApp].cachedWindows.length == 1)
|
||||||
this._arrows[this._curApp].hide();
|
this._arrows[this._curApp].hide();
|
||||||
else
|
else
|
||||||
@@ -789,7 +822,7 @@ var AppSwitcher = new Lang.Class({
|
|||||||
this.icons.push(appIcon);
|
this.icons.push(appIcon);
|
||||||
let item = this.addItem(appIcon.actor, appIcon.label);
|
let item = this.addItem(appIcon.actor, appIcon.label);
|
||||||
|
|
||||||
appIcon._stateChangedId = appIcon.app.connect('notify::state', (app) => {
|
appIcon._stateChangedId = appIcon.app.connect('notify::state', app => {
|
||||||
if (app.state != Shell.AppState.RUNNING)
|
if (app.state != Shell.AppState.RUNNING)
|
||||||
this._removeIcon(app);
|
this._removeIcon(app);
|
||||||
});
|
});
|
||||||
@@ -807,18 +840,14 @@ var AppSwitcher = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_removeIcon: function(app) {
|
_removeIcon: function(app) {
|
||||||
for (let i = 0; i < this.icons.length; i++)
|
let index = this.icons.findIndex(icon => {
|
||||||
if (this.icons[i].app == app) {
|
return icon.app == app;
|
||||||
this.icons.splice(i, 1);
|
});
|
||||||
this.removeItem(i);
|
if (index === -1)
|
||||||
if (this._curApp == i)
|
return;
|
||||||
this._curApp = SwitcherPopup.mod(i, this.icons.length);
|
|
||||||
if (this.icons.length > 0)
|
this.icons.splice(index, 1);
|
||||||
this.highlight(this._curApp);
|
this.removeItem(index);
|
||||||
else
|
|
||||||
this.actor.destroy();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -859,7 +888,7 @@ var ThumbnailList = new Lang.Class({
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.actor.connect('destroy', () => { this._onDestroy(); });
|
this.actor.connect('destroy', this._onDestroy.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
addClones : function (availHeight) {
|
addClones : function (availHeight) {
|
||||||
@@ -885,7 +914,7 @@ var ThumbnailList = new Lang.Class({
|
|||||||
this._thumbnailBins[i].set_height(binHeight);
|
this._thumbnailBins[i].set_height(binHeight);
|
||||||
this._thumbnailBins[i].add_actor(clone);
|
this._thumbnailBins[i].add_actor(clone);
|
||||||
|
|
||||||
clone._destroyId = mutterWindow.connect('destroy', () => { this._removeThumbnail(clone); });
|
clone._destroyId = mutterWindow.connect('destroy', Lang.bind(this, this._removeThumbnail, clone));
|
||||||
this._clones.push(clone);
|
this._clones.push(clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -894,26 +923,26 @@ var ThumbnailList = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_removeThumbnail: function(source, clone) {
|
_removeThumbnail: function(source, clone) {
|
||||||
for (let i = 0; i < this._clones.length; i++)
|
let index = this._clones.indexOf(clone);
|
||||||
if (this._clones[i] == clone) {
|
if (index === -1)
|
||||||
this._clones.splice(i, 1);
|
return;
|
||||||
this._windows.splice(i, 1);
|
|
||||||
this._labels.splice(i, 1);
|
|
||||||
this.removeItem(i);
|
|
||||||
|
|
||||||
if (this._clones.length > 0)
|
this._clones.splice(index, 1);
|
||||||
this.highlight(SwitcherPopup.mod(i, this._clones.length));
|
this._windows.splice(index, 1);
|
||||||
else
|
this._labels.splice(index, 1);
|
||||||
this.actor.destroy();
|
this.removeItem(index);
|
||||||
return;
|
|
||||||
}
|
if (this._clones.length > 0)
|
||||||
|
this.highlight(SwitcherPopup.mod(index, this._clones.length));
|
||||||
|
else
|
||||||
|
this.actor.destroy();
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDestroy: function() {
|
_onDestroy: function() {
|
||||||
for (let i = 0; i < this._clones.length; i++) {
|
this._clones.forEach(clone => {
|
||||||
if (this._clones[i].source)
|
if (clone.source)
|
||||||
this._clones[i].source.disconnect(this._clones[i]._destroyId);
|
clone.source.disconnect(clone._destroyId);
|
||||||
}
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -995,7 +1024,19 @@ var WindowList = new Lang.Class({
|
|||||||
|
|
||||||
this.addItem(icon.actor, icon.label);
|
this.addItem(icon.actor, icon.label);
|
||||||
this.icons.push(icon);
|
this.icons.push(icon);
|
||||||
|
|
||||||
|
icon._unmanagedSignalId = icon.window.connect('unmanaged', (window) => {
|
||||||
|
this._removeWindow(window)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.actor.connect('destroy', () => { this._onDestroy(); });
|
||||||
|
},
|
||||||
|
|
||||||
|
_onDestroy: function() {
|
||||||
|
this.icons.forEach(icon => {
|
||||||
|
icon.window.disconnect(icon._unmanagedSignalId);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
_getPreferredHeight: function(actor, forWidth, alloc) {
|
_getPreferredHeight: function(actor, forWidth, alloc) {
|
||||||
@@ -1024,5 +1065,16 @@ var WindowList = new Lang.Class({
|
|||||||
this.parent(index, justOutline);
|
this.parent(index, justOutline);
|
||||||
|
|
||||||
this._label.set_text(index == -1 ? '' : this.icons[index].label.text);
|
this._label.set_text(index == -1 ? '' : this.icons[index].label.text);
|
||||||
|
},
|
||||||
|
|
||||||
|
_removeWindow: function(window) {
|
||||||
|
let index = this.icons.findIndex(icon => {
|
||||||
|
return icon.window == window;
|
||||||
|
});
|
||||||
|
if (index === -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.icons.splice(index, 1);
|
||||||
|
this.removeItem(index);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1872,11 +1872,14 @@ var AppIconMenu = new Lang.Class({
|
|||||||
this.actor.add_style_class_name('app-well-menu');
|
this.actor.add_style_class_name('app-well-menu');
|
||||||
|
|
||||||
// Chain our visibility and lifecycle to that of the source
|
// Chain our visibility and lifecycle to that of the source
|
||||||
source.actor.connect('notify::mapped', Lang.bind(this, function () {
|
this._sourceMappedId = source.actor.connect('notify::mapped', () => {
|
||||||
if (!source.actor.mapped)
|
if (!source.actor.mapped)
|
||||||
this.close();
|
this.close();
|
||||||
}));
|
});
|
||||||
source.actor.connect('destroy', Lang.bind(this, this.destroy));
|
source.actor.connect('destroy', () => {
|
||||||
|
source.actor.disconnect(this._sourceMappedId);
|
||||||
|
this.destroy();
|
||||||
|
});
|
||||||
|
|
||||||
Main.uiGroup.add_actor(this.actor);
|
Main.uiGroup.add_actor(this.actor);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -289,6 +289,8 @@ var Background = new Lang.Class({
|
|||||||
this._clock.disconnect(this._timezoneChangedId);
|
this._clock.disconnect(this._timezoneChangedId);
|
||||||
this._timezoneChangedId = 0;
|
this._timezoneChangedId = 0;
|
||||||
|
|
||||||
|
this._clock = null;
|
||||||
|
|
||||||
if (this._prepareForSleepId != 0)
|
if (this._prepareForSleepId != 0)
|
||||||
LoginManager.getLoginManager().disconnect(this._prepareForSleepId);
|
LoginManager.getLoginManager().disconnect(this._prepareForSleepId);
|
||||||
this._prepareForSleepId = 0;
|
this._prepareForSleepId = 0;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ const Gtk = imports.gi.Gtk;
|
|||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
const Gettext_gtk30 = imports.gettext.domain('gtk30');
|
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
|
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
@@ -22,8 +21,6 @@ var ELLIPSIS_CHAR = '\u2026';
|
|||||||
|
|
||||||
var MESSAGE_ICON_SIZE = -1; // pick up from CSS
|
var MESSAGE_ICON_SIZE = -1; // pick up from CSS
|
||||||
|
|
||||||
// alias to prevent xgettext from picking up strings translated in GTK+
|
|
||||||
const gtk30_ = Gettext_gtk30.gettext;
|
|
||||||
var NC_ = function(context, str) { return context + '\u0004' + str; };
|
var NC_ = function(context, str) { return context + '\u0004' + str; };
|
||||||
|
|
||||||
function sameYear(dateA, dateB) {
|
function sameYear(dateA, dateB) {
|
||||||
@@ -376,20 +373,23 @@ var Calendar = new Lang.Class({
|
|||||||
this._settings.connect('changed::' + SHOW_WEEKDATE_KEY, Lang.bind(this, this._onSettingsChange));
|
this._settings.connect('changed::' + SHOW_WEEKDATE_KEY, Lang.bind(this, this._onSettingsChange));
|
||||||
this._useWeekdate = this._settings.get_boolean(SHOW_WEEKDATE_KEY);
|
this._useWeekdate = this._settings.get_boolean(SHOW_WEEKDATE_KEY);
|
||||||
|
|
||||||
// Find the ordering for month/year in the calendar heading
|
/**
|
||||||
this._headerFormatWithoutYear = '%B';
|
* Translators: The header displaying just the month name
|
||||||
switch (gtk30_('calendar:MY')) {
|
* standalone, when this is a month of the current year.
|
||||||
case 'calendar:MY':
|
* "%OB" is the new format specifier introduced in glibc 2.27,
|
||||||
this._headerFormat = '%B %Y';
|
* in most cases you should not change it.
|
||||||
break;
|
*/
|
||||||
case 'calendar:YM':
|
this._headerFormatWithoutYear = _('%OB');
|
||||||
this._headerFormat = '%Y %B';
|
/**
|
||||||
break;
|
* Translators: The header displaying the month name and the year
|
||||||
default:
|
* number, when this is a month of a different year. You can
|
||||||
log('Translation of "calendar:MY" in GTK+ is not correct');
|
* reorder the format specifiers or add other modifications
|
||||||
this._headerFormat = '%B %Y';
|
* according to the requirements of your language.
|
||||||
break;
|
* "%OB" is the new format specifier introduced in glibc 2.27,
|
||||||
}
|
* in most cases you should not use the old "%B" here unless you
|
||||||
|
* absolutely know what you are doing.
|
||||||
|
*/
|
||||||
|
this._headerFormat = _('%OB %Y');
|
||||||
|
|
||||||
// Start off with the current date
|
// Start off with the current date
|
||||||
this._selectedDate = new Date();
|
this._selectedDate = new Date();
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ const Gio = imports.gi.Gio;
|
|||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const GObject = imports.gi.GObject;
|
const GObject = imports.gi.GObject;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const NetworkManager = imports.gi.NetworkManager;
|
const NM = imports.gi.NM;
|
||||||
const NMClient = imports.gi.NMClient;
|
|
||||||
const Pango = imports.gi.Pango;
|
const Pango = imports.gi.Pango;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
|
const Signals = imports.signals;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
|
|
||||||
const Config = imports.misc.config;
|
const Config = imports.misc.config;
|
||||||
@@ -173,7 +173,7 @@ var NetworkSecretDialog = new Lang.Class({
|
|||||||
|
|
||||||
_validateStaticWep: function(secret) {
|
_validateStaticWep: function(secret) {
|
||||||
let value = secret.value;
|
let value = secret.value;
|
||||||
if (secret.wep_key_type == NetworkManager.WepKeyType.KEY) {
|
if (secret.wep_key_type == NM.WepKeyType.KEY) {
|
||||||
if (value.length == 10 || value.length == 26) {
|
if (value.length == 10 || value.length == 26) {
|
||||||
for (let i = 0; i < value.length; i++) {
|
for (let i = 0; i < value.length; i++) {
|
||||||
if (!((value[i] >= 'a' && value[i] <= 'f')
|
if (!((value[i] >= 'a' && value[i] <= 'f')
|
||||||
@@ -189,7 +189,7 @@ var NetworkSecretDialog = new Lang.Class({
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
return false;
|
return false;
|
||||||
} else if (secret.wep_key_type == NetworkManager.WepKeyType.PASSPHRASE) {
|
} else if (secret.wep_key_type == NM.WepKeyType.PASSPHRASE) {
|
||||||
if (value.length < 0 || value.length > 64)
|
if (value.length < 0 || value.length > 64)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -288,7 +288,7 @@ var NetworkSecretDialog = new Lang.Class({
|
|||||||
switch (connectionType) {
|
switch (connectionType) {
|
||||||
case '802-11-wireless':
|
case '802-11-wireless':
|
||||||
wirelessSetting = this._connection.get_setting_wireless();
|
wirelessSetting = this._connection.get_setting_wireless();
|
||||||
ssid = NetworkManager.utils_ssid_to_utf8(wirelessSetting.get_ssid());
|
ssid = NM.utils_ssid_to_utf8(wirelessSetting.get_ssid().get_data());
|
||||||
content.title = _("Authentication required by wireless network");
|
content.title = _("Authentication required by wireless network");
|
||||||
content.message = _("Passwords or encryption keys are required to access the wireless network “%s”.").format(ssid);
|
content.message = _("Passwords or encryption keys are required to access the wireless network “%s”.").format(ssid);
|
||||||
this._getWirelessSecrets(content.secrets, wirelessSetting);
|
this._getWirelessSecrets(content.secrets, wirelessSetting);
|
||||||
@@ -351,9 +351,9 @@ var VPNRequestHandler = new Lang.Class({
|
|||||||
];
|
];
|
||||||
if (authHelper.externalUIMode)
|
if (authHelper.externalUIMode)
|
||||||
argv.push('--external-ui-mode');
|
argv.push('--external-ui-mode');
|
||||||
if (flags & NMClient.SecretAgentGetSecretsFlags.ALLOW_INTERACTION)
|
if (flags & NM.SecretAgentGetSecretsFlags.ALLOW_INTERACTION)
|
||||||
argv.push('-i');
|
argv.push('-i');
|
||||||
if (flags & NMClient.SecretAgentGetSecretsFlags.REQUEST_NEW)
|
if (flags & NM.SecretAgentGetSecretsFlags.REQUEST_NEW)
|
||||||
argv.push('-r');
|
argv.push('-r');
|
||||||
if (authHelper.supportsHints) {
|
if (authHelper.supportsHints) {
|
||||||
for (let i = 0; i < hints.length; i++) {
|
for (let i = 0; i < hints.length; i++) {
|
||||||
@@ -414,7 +414,9 @@ var VPNRequestHandler = new Lang.Class({
|
|||||||
if (this._destroyed)
|
if (this._destroyed)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GLib.source_remove(this._childWatch);
|
this.emit('destroy');
|
||||||
|
if (this._childWatch)
|
||||||
|
GLib.source_remove(this._childWatch);
|
||||||
|
|
||||||
this._stdin.close(null);
|
this._stdin.close(null);
|
||||||
// Stdout is closed when we finish reading from it
|
// Stdout is closed when we finish reading from it
|
||||||
@@ -541,6 +543,7 @@ var VPNRequestHandler = new Lang.Class({
|
|||||||
logError(e, 'error while reading VPN plugin output keyfile');
|
logError(e, 'error while reading VPN plugin output keyfile');
|
||||||
|
|
||||||
this._agent.respond(this._requestId, Shell.NetworkAgentResponse.INTERNAL_ERROR);
|
this._agent.respond(this._requestId, Shell.NetworkAgentResponse.INTERNAL_ERROR);
|
||||||
|
this.destroy();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -551,6 +554,7 @@ var VPNRequestHandler = new Lang.Class({
|
|||||||
this._shellDialog.open(global.get_current_time());
|
this._shellDialog.open(global.get_current_time());
|
||||||
} else {
|
} else {
|
||||||
this._agent.respond(this._requestId, Shell.NetworkAgentResponse.CONFIRMED);
|
this._agent.respond(this._requestId, Shell.NetworkAgentResponse.CONFIRMED);
|
||||||
|
this.destroy();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -571,23 +575,26 @@ var VPNRequestHandler = new Lang.Class({
|
|||||||
logError(e, 'internal error while writing connection to helper');
|
logError(e, 'internal error while writing connection to helper');
|
||||||
|
|
||||||
this._agent.respond(this._requestId, Shell.NetworkAgentResponse.INTERNAL_ERROR);
|
this._agent.respond(this._requestId, Shell.NetworkAgentResponse.INTERNAL_ERROR);
|
||||||
|
this.destroy();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
Signals.addSignalMethods(VPNRequestHandler.prototype);
|
||||||
|
|
||||||
var NetworkAgent = new Lang.Class({
|
var NetworkAgent = new Lang.Class({
|
||||||
Name: 'NetworkAgent',
|
Name: 'NetworkAgent',
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
|
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
|
||||||
capabilities: NMClient.SecretAgentCapabilities.VPN_HINTS
|
capabilities: NM.SecretAgentCapabilities.VPN_HINTS,
|
||||||
|
auto_register: false
|
||||||
});
|
});
|
||||||
|
|
||||||
this._dialogs = { };
|
this._dialogs = { };
|
||||||
this._vpnRequests = { };
|
this._vpnRequests = { };
|
||||||
this._notifications = { };
|
this._notifications = { };
|
||||||
|
|
||||||
this._pluginDir = Gio.file_new_for_path(GLib.build_filenamev([Config.SYSCONFDIR, 'NetworkManager/VPN']));
|
this._pluginDir = Gio.file_new_for_path(Config.VPNDIR);
|
||||||
try {
|
try {
|
||||||
let monitor = this._pluginDir.monitor(Gio.FileMonitorFlags.NONE, null);
|
let monitor = this._pluginDir.monitor(Gio.FileMonitorFlags.NONE, null);
|
||||||
monitor.connect('changed', () => { this._vpnCacheBuilt = false; });
|
monitor.connect('changed', () => { this._vpnCacheBuilt = false; });
|
||||||
@@ -597,12 +604,21 @@ var NetworkAgent = new Lang.Class({
|
|||||||
|
|
||||||
this._native.connect('new-request', Lang.bind(this, this._newRequest));
|
this._native.connect('new-request', Lang.bind(this, this._newRequest));
|
||||||
this._native.connect('cancel-request', Lang.bind(this, this._cancelRequest));
|
this._native.connect('cancel-request', Lang.bind(this, this._cancelRequest));
|
||||||
|
try {
|
||||||
this._enabled = false;
|
this._native.init(null);
|
||||||
|
} catch(e) {
|
||||||
|
this._native = null;
|
||||||
|
logError(e, 'error initializing the NetworkManager Agent');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
enable: function() {
|
enable: function() {
|
||||||
this._enabled = true;
|
if (!this._native)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._native.auto_register = true;
|
||||||
|
if (!this._native.registered)
|
||||||
|
this._native.register_async(null, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
disable: function() {
|
disable: function() {
|
||||||
@@ -620,7 +636,12 @@ var NetworkAgent = new Lang.Class({
|
|||||||
this._notifications[requestId].destroy();
|
this._notifications[requestId].destroy();
|
||||||
this._notifications = { };
|
this._notifications = { };
|
||||||
|
|
||||||
this._enabled = false;
|
if (!this._native)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._native.auto_register = false;
|
||||||
|
if (this._native.registered)
|
||||||
|
this._native.unregister_async(null, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
_showNotification: function(requestId, connection, settingName, hints, flags) {
|
_showNotification: function(requestId, connection, settingName, hints, flags) {
|
||||||
@@ -634,7 +655,7 @@ var NetworkAgent = new Lang.Class({
|
|||||||
switch (connectionType) {
|
switch (connectionType) {
|
||||||
case '802-11-wireless':
|
case '802-11-wireless':
|
||||||
let wirelessSetting = connection.get_setting_wireless();
|
let wirelessSetting = connection.get_setting_wireless();
|
||||||
let ssid = NetworkManager.utils_ssid_to_utf8(wirelessSetting.get_ssid());
|
let ssid = NM.utils_ssid_to_utf8(wirelessSetting.get_ssid());
|
||||||
title = _("Authentication required by wireless network");
|
title = _("Authentication required by wireless network");
|
||||||
body = _("Passwords or encryption keys are required to access the wireless network “%s”.").format(ssid);
|
body = _("Passwords or encryption keys are required to access the wireless network “%s”.").format(ssid);
|
||||||
break;
|
break;
|
||||||
@@ -684,12 +705,7 @@ var NetworkAgent = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_newRequest: function(agent, requestId, connection, settingName, hints, flags) {
|
_newRequest: function(agent, requestId, connection, settingName, hints, flags) {
|
||||||
if (!this._enabled) {
|
if (!(flags & NM.SecretAgentGetSecretsFlags.USER_REQUESTED))
|
||||||
agent.respond(requestId, Shell.NetworkAgentResponse.USER_CANCELED);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(flags & NMClient.SecretAgentGetSecretsFlags.USER_REQUESTED))
|
|
||||||
this._showNotification(requestId, connection, settingName, hints, flags);
|
this._showNotification(requestId, connection, settingName, hints, flags);
|
||||||
else
|
else
|
||||||
this._handleRequest(requestId, connection, settingName, hints, flags);
|
this._handleRequest(requestId, connection, settingName, hints, flags);
|
||||||
@@ -735,7 +751,11 @@ var NetworkAgent = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._vpnRequests[requestId] = new VPNRequestHandler(this._native, requestId, binary, serviceType, connection, hints, flags);
|
let vpnRequest = new VPNRequestHandler(this._native, requestId, binary, serviceType, connection, hints, flags);
|
||||||
|
vpnRequest.connect('destroy', Lang.bind(this, function() {
|
||||||
|
delete this._vpnRequests[requestId];
|
||||||
|
}));
|
||||||
|
this._vpnRequests[requestId] = vpnRequest;
|
||||||
},
|
},
|
||||||
|
|
||||||
_buildVPNServiceCache: function() {
|
_buildVPNServiceCache: function() {
|
||||||
|
|||||||
@@ -50,6 +50,10 @@ var DashItemContainer = new Lang.Class({
|
|||||||
this._childScale = 0;
|
this._childScale = 0;
|
||||||
this._childOpacity = 0;
|
this._childOpacity = 0;
|
||||||
this.animatingOut = false;
|
this.animatingOut = false;
|
||||||
|
|
||||||
|
this.connect('destroy', () => {
|
||||||
|
this.label.destroy();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
vfunc_allocate: function(box, flags) {
|
vfunc_allocate: function(box, flags) {
|
||||||
@@ -177,16 +181,8 @@ var DashItemContainer = new Lang.Class({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
destroy: function() {
|
|
||||||
if (this.label)
|
|
||||||
this.label.destroy();
|
|
||||||
|
|
||||||
this.parent();
|
|
||||||
},
|
|
||||||
|
|
||||||
animateOutAndDestroy: function() {
|
animateOutAndDestroy: function() {
|
||||||
if (this.label)
|
this.label.hide();
|
||||||
this.label.destroy();
|
|
||||||
|
|
||||||
if (this.child == null) {
|
if (this.child == null) {
|
||||||
this.destroy();
|
this.destroy();
|
||||||
|
|||||||
@@ -132,8 +132,11 @@ var WorldClocksSection = new Lang.Class({
|
|||||||
let world = GWeather.Location.get_world();
|
let world = GWeather.Location.get_world();
|
||||||
let clocks = settings.get_value('world-clocks').deep_unpack();
|
let clocks = settings.get_value('world-clocks').deep_unpack();
|
||||||
for (let i = 0; i < clocks.length; i++) {
|
for (let i = 0; i < clocks.length; i++) {
|
||||||
|
if (!clocks[i].location)
|
||||||
|
continue;
|
||||||
let l = world.deserialize(clocks[i].location);
|
let l = world.deserialize(clocks[i].location);
|
||||||
this._locations.push({ location: l });
|
if (l)
|
||||||
|
this._locations.push({ location: l });
|
||||||
}
|
}
|
||||||
|
|
||||||
this._locations.sort(function(a, b) {
|
this._locations.sort(function(a, b) {
|
||||||
|
|||||||
@@ -583,7 +583,7 @@ var _Draggable = new Lang.Class({
|
|||||||
|
|
||||||
_restoreDragActor: function(eventTime) {
|
_restoreDragActor: function(eventTime) {
|
||||||
this._dragInProgress = false;
|
this._dragInProgress = false;
|
||||||
[restoreX, restoreY, restoreScale] = this._getRestoreLocation();
|
let [restoreX, restoreY, restoreScale] = this._getRestoreLocation();
|
||||||
|
|
||||||
// fade the actor back in at its original location
|
// fade the actor back in at its original location
|
||||||
this._dragActor.set_position(restoreX, restoreY);
|
this._dragActor.set_position(restoreX, restoreY);
|
||||||
|
|||||||
@@ -253,10 +253,18 @@ var CandidatePopup = new Lang.Class({
|
|||||||
for (let i = 0; indexLabel = lookupTable.get_label(i); ++i)
|
for (let i = 0; indexLabel = lookupTable.get_label(i); ++i)
|
||||||
indexes.push(indexLabel.get_text());
|
indexes.push(indexLabel.get_text());
|
||||||
|
|
||||||
|
Main.keyboard.resetSuggestions();
|
||||||
|
|
||||||
let candidates = [];
|
let candidates = [];
|
||||||
for (let i = startIndex; i < endIndex; ++i)
|
for (let i = startIndex; i < endIndex; ++i) {
|
||||||
candidates.push(lookupTable.get_candidate(i).get_text());
|
candidates.push(lookupTable.get_candidate(i).get_text());
|
||||||
|
|
||||||
|
Main.keyboard.addSuggestion(lookupTable.get_candidate(i).get_text(), Lang.bind(this, function() {
|
||||||
|
let index = i;
|
||||||
|
this._panelService.candidate_clicked(index, 1, 0);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
this._candidateArea.setCandidates(indexes,
|
this._candidateArea.setCandidates(indexes,
|
||||||
candidates,
|
candidates,
|
||||||
cursorPos % pageSize,
|
cursorPos % pageSize,
|
||||||
@@ -277,6 +285,7 @@ var CandidatePopup = new Lang.Class({
|
|||||||
panelService.connect('focus-out',
|
panelService.connect('focus-out',
|
||||||
Lang.bind(this, function(ps) {
|
Lang.bind(this, function(ps) {
|
||||||
this._boxPointer.hide(BoxPointer.PopupAnimation.NONE);
|
this._boxPointer.hide(BoxPointer.PopupAnimation.NONE);
|
||||||
|
Main.keyboard.resetSuggestions();
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -287,9 +296,10 @@ var CandidatePopup = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateVisibility: function() {
|
_updateVisibility: function() {
|
||||||
let isVisible = (this._preeditText.visible ||
|
let isVisible = (!Main.keyboard.visible &&
|
||||||
this._auxText.visible ||
|
(this._preeditText.visible ||
|
||||||
this._candidateArea.actor.visible);
|
this._auxText.visible ||
|
||||||
|
this._candidateArea.actor.visible));
|
||||||
|
|
||||||
if (isVisible) {
|
if (isVisible) {
|
||||||
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
|
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
|
||||||
|
|||||||
77
js/ui/kbdA11yDialog.js
Normal file
77
js/ui/kbdA11yDialog.js
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
const Gio = imports.gi.Gio;
|
||||||
|
const GObject = imports.gi.GObject;
|
||||||
|
const Lang = imports.lang;
|
||||||
|
const Dialog = imports.ui.dialog;
|
||||||
|
const ModalDialog = imports.ui.modalDialog;
|
||||||
|
|
||||||
|
const KEYBOARD_A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
|
||||||
|
const KEY_STICKY_KEYS_ENABLED = 'stickykeys-enable';
|
||||||
|
const KEY_SLOW_KEYS_ENABLED = 'slowkeys-enable';
|
||||||
|
|
||||||
|
var KbdA11yDialog = new Lang.Class({
|
||||||
|
Name: 'KbdA11yDialog',
|
||||||
|
Extends: GObject.Object,
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
this._a11ySettings = new Gio.Settings({ schema_id: KEYBOARD_A11Y_SCHEMA });
|
||||||
|
|
||||||
|
let deviceManager = Clutter.DeviceManager.get_default();
|
||||||
|
deviceManager.connect('kbd-a11y-flags-changed',
|
||||||
|
Lang.bind(this, this._showKbdA11yDialog));
|
||||||
|
},
|
||||||
|
|
||||||
|
_showKbdA11yDialog: function(deviceManager, newFlags, whatChanged) {
|
||||||
|
let dialog = new ModalDialog.ModalDialog();
|
||||||
|
let title, body;
|
||||||
|
let key, enabled;
|
||||||
|
|
||||||
|
if (whatChanged & Clutter.KeyboardA11yFlags.SLOW_KEYS_ENABLED) {
|
||||||
|
key = KEY_SLOW_KEYS_ENABLED;
|
||||||
|
enabled = (newFlags & Clutter.KeyboardA11yFlags.SLOW_KEYS_ENABLED) ? true : false;
|
||||||
|
title = enabled ?
|
||||||
|
_("Slow Keys Turned On") :
|
||||||
|
_("Slow Keys Turned Off");
|
||||||
|
body = _("You just held down the Shift key for 8 seconds. This is the shortcut " +
|
||||||
|
"for the Slow Keys feature, which affects the way your keyboard works.");
|
||||||
|
|
||||||
|
} else if (whatChanged & Clutter.KeyboardA11yFlags.STICKY_KEYS_ENABLED) {
|
||||||
|
key = KEY_STICKY_KEYS_ENABLED;
|
||||||
|
enabled = (newFlags & Clutter.KeyboardA11yFlags.STICKY_KEYS_ENABLED) ? true : false;
|
||||||
|
title = enabled ?
|
||||||
|
_("Sticky Keys Turned On") :
|
||||||
|
_("Sticky Keys Turned Off");
|
||||||
|
body = enabled ?
|
||||||
|
_("You just pressed the Shift key 5 times in a row. This is the shortcut " +
|
||||||
|
"for the Sticky Keys feature, which affects the way your keyboard works.") :
|
||||||
|
_("You just pressed two keys at once, or pressed the Shift key 5 times in a row. " +
|
||||||
|
"This turns off the Sticky Keys feature, which affects the way your keyboard works.");
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let icon = new Gio.ThemedIcon({ name: 'preferences-desktop-accessibility-symbolic' });
|
||||||
|
let contentParams = { icon, title, body, styleClass: 'access-dialog' };
|
||||||
|
let content = new Dialog.MessageDialogContent(contentParams);
|
||||||
|
|
||||||
|
dialog.contentLayout.add_actor(content);
|
||||||
|
|
||||||
|
dialog.addButton({ label: enabled ? _("Leave On") : _("Turn On"),
|
||||||
|
action: () => {
|
||||||
|
this._a11ySettings.set_boolean(key, true);
|
||||||
|
dialog.close();
|
||||||
|
},
|
||||||
|
default: enabled,
|
||||||
|
key: !enabled ? Clutter.Escape : null });
|
||||||
|
|
||||||
|
dialog.addButton({ label: enabled ? _("Turn Off") : _("Leave Off"),
|
||||||
|
action: () => {
|
||||||
|
this._a11ySettings.set_boolean(key, false);
|
||||||
|
dialog.close();
|
||||||
|
},
|
||||||
|
default: !enabled,
|
||||||
|
key: enabled ? Clutter.Escape : null });
|
||||||
|
|
||||||
|
dialog.open();
|
||||||
|
}
|
||||||
|
});
|
||||||
1055
js/ui/keyboard.js
1055
js/ui/keyboard.js
File diff suppressed because it is too large
Load Diff
@@ -19,6 +19,7 @@ const EndSessionDialog = imports.ui.endSessionDialog;
|
|||||||
const Environment = imports.ui.environment;
|
const Environment = imports.ui.environment;
|
||||||
const ExtensionSystem = imports.ui.extensionSystem;
|
const ExtensionSystem = imports.ui.extensionSystem;
|
||||||
const ExtensionDownloader = imports.ui.extensionDownloader;
|
const ExtensionDownloader = imports.ui.extensionDownloader;
|
||||||
|
const InputMethod = imports.misc.inputMethod;
|
||||||
const Keyboard = imports.ui.keyboard;
|
const Keyboard = imports.ui.keyboard;
|
||||||
const MessageTray = imports.ui.messageTray;
|
const MessageTray = imports.ui.messageTray;
|
||||||
const ModalDialog = imports.ui.modalDialog;
|
const ModalDialog = imports.ui.modalDialog;
|
||||||
@@ -44,6 +45,7 @@ const WindowManager = imports.ui.windowManager;
|
|||||||
const Magnifier = imports.ui.magnifier;
|
const Magnifier = imports.ui.magnifier;
|
||||||
const XdndHandler = imports.ui.xdndHandler;
|
const XdndHandler = imports.ui.xdndHandler;
|
||||||
const Util = imports.misc.util;
|
const Util = imports.misc.util;
|
||||||
|
const KbdA11yDialog = imports.ui.kbdA11yDialog;
|
||||||
|
|
||||||
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
|
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
|
||||||
const STICKY_KEYS_ENABLE = 'stickykeys-enable';
|
const STICKY_KEYS_ENABLE = 'stickykeys-enable';
|
||||||
@@ -78,11 +80,14 @@ var magnifier = null;
|
|||||||
var xdndHandler = null;
|
var xdndHandler = null;
|
||||||
var keyboard = null;
|
var keyboard = null;
|
||||||
var layoutManager = null;
|
var layoutManager = null;
|
||||||
|
var kbdA11yDialog = null;
|
||||||
|
var inputMethod = null;
|
||||||
let _startDate;
|
let _startDate;
|
||||||
let _defaultCssStylesheet = null;
|
let _defaultCssStylesheet = null;
|
||||||
let _cssStylesheet = null;
|
let _cssStylesheet = null;
|
||||||
let _a11ySettings = null;
|
let _a11ySettings = null;
|
||||||
let _themeResource = null;
|
let _themeResource = null;
|
||||||
|
let _oskResource = null;
|
||||||
|
|
||||||
function _sessionUpdated() {
|
function _sessionUpdated() {
|
||||||
if (sessionMode.isPrimary)
|
if (sessionMode.isPrimary)
|
||||||
@@ -146,6 +151,7 @@ function _initializeUI() {
|
|||||||
Shell.AppUsage.get_default();
|
Shell.AppUsage.get_default();
|
||||||
|
|
||||||
reloadThemeResource();
|
reloadThemeResource();
|
||||||
|
_loadOskLayouts();
|
||||||
_loadDefaultStylesheet();
|
_loadDefaultStylesheet();
|
||||||
|
|
||||||
// Setup the stage hierarchy early
|
// Setup the stage hierarchy early
|
||||||
@@ -163,11 +169,15 @@ function _initializeUI() {
|
|||||||
osdWindowManager = new OsdWindow.OsdWindowManager();
|
osdWindowManager = new OsdWindow.OsdWindowManager();
|
||||||
osdMonitorLabeler = new OsdMonitorLabeler.OsdMonitorLabeler();
|
osdMonitorLabeler = new OsdMonitorLabeler.OsdMonitorLabeler();
|
||||||
overview = new Overview.Overview();
|
overview = new Overview.Overview();
|
||||||
|
kbdA11yDialog = new KbdA11yDialog.KbdA11yDialog();
|
||||||
wm = new WindowManager.WindowManager();
|
wm = new WindowManager.WindowManager();
|
||||||
magnifier = new Magnifier.Magnifier();
|
magnifier = new Magnifier.Magnifier();
|
||||||
if (LoginManager.canLock())
|
if (LoginManager.canLock())
|
||||||
screenShield = new ScreenShield.ScreenShield();
|
screenShield = new ScreenShield.ScreenShield();
|
||||||
|
|
||||||
|
inputMethod = new InputMethod.InputMethod();
|
||||||
|
Clutter.get_default_backend().set_input_method(inputMethod);
|
||||||
|
|
||||||
messageTray = new MessageTray.MessageTray();
|
messageTray = new MessageTray.MessageTray();
|
||||||
panel = new Panel.Panel();
|
panel = new Panel.Panel();
|
||||||
keyboard = new Keyboard.Keyboard();
|
keyboard = new Keyboard.Keyboard();
|
||||||
@@ -306,6 +316,11 @@ function reloadThemeResource() {
|
|||||||
_themeResource._register();
|
_themeResource._register();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _loadOskLayouts() {
|
||||||
|
_oskResource = Gio.Resource.load(global.datadir + '/gnome-shell-osk-layouts.gresource');
|
||||||
|
_oskResource._register();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* loadTheme:
|
* loadTheme:
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ var ModalDialog = new Lang.Class({
|
|||||||
else
|
else
|
||||||
this._savedKeyFocus = null;
|
this._savedKeyFocus = null;
|
||||||
Main.popModal(this._group, timestamp);
|
Main.popModal(this._group, timestamp);
|
||||||
global.gdk_screen.get_display().sync();
|
Gdk.Display.get_default().sync();
|
||||||
this._hasModal = false;
|
this._hasModal = false;
|
||||||
|
|
||||||
if (!this._shellReactive)
|
if (!this._shellReactive)
|
||||||
|
|||||||
@@ -977,12 +977,12 @@ var PadOsdService = new Lang.Class({
|
|||||||
let padDevice = null;
|
let padDevice = null;
|
||||||
|
|
||||||
devices.forEach(Lang.bind(this, function(device) {
|
devices.forEach(Lang.bind(this, function(device) {
|
||||||
if (deviceNode == device.get_device_node())
|
if (deviceNode == device.get_device_node() &&
|
||||||
|
device.get_device_type() == Clutter.InputDeviceType.PAD_DEVICE)
|
||||||
padDevice = device;
|
padDevice = device;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (padDevice == null ||
|
if (padDevice == null) {
|
||||||
padDevice.get_device_type() != Clutter.InputDeviceType.PAD_DEVICE) {
|
|
||||||
invocation.return_error_literal(Gio.IOErrorEnum,
|
invocation.return_error_literal(Gio.IOErrorEnum,
|
||||||
Gio.IOErrorEnum.CANCELLED,
|
Gio.IOErrorEnum.CANCELLED,
|
||||||
"Invalid params");
|
"Invalid params");
|
||||||
|
|||||||
@@ -720,7 +720,9 @@ var AggregateMenu = new Lang.Class({
|
|||||||
this._screencast = new imports.ui.status.screencast.Indicator();
|
this._screencast = new imports.ui.status.screencast.Indicator();
|
||||||
this._location = new imports.ui.status.location.Indicator();
|
this._location = new imports.ui.status.location.Indicator();
|
||||||
this._nightLight = new imports.ui.status.nightLight.Indicator();
|
this._nightLight = new imports.ui.status.nightLight.Indicator();
|
||||||
|
this._thunderbolt = new imports.ui.status.thunderbolt.Indicator();
|
||||||
|
|
||||||
|
this._indicators.add_child(this._thunderbolt.indicators);
|
||||||
this._indicators.add_child(this._screencast.indicators);
|
this._indicators.add_child(this._screencast.indicators);
|
||||||
this._indicators.add_child(this._location.indicators);
|
this._indicators.add_child(this._location.indicators);
|
||||||
this._indicators.add_child(this._nightLight.indicators);
|
this._indicators.add_child(this._nightLight.indicators);
|
||||||
@@ -819,6 +821,7 @@ var Panel = new Lang.Class({
|
|||||||
global.window_group.connect('actor-removed', Lang.bind(this, this._onWindowActorRemoved));
|
global.window_group.connect('actor-removed', Lang.bind(this, this._onWindowActorRemoved));
|
||||||
global.window_manager.connect('switch-workspace', Lang.bind(this, this._updateSolidStyle));
|
global.window_manager.connect('switch-workspace', Lang.bind(this, this._updateSolidStyle));
|
||||||
|
|
||||||
|
global.screen.connect('workareas-changed', () => { this.actor.queue_relayout(); });
|
||||||
this._updatePanel();
|
this._updatePanel();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -865,7 +868,16 @@ var Panel = new Lang.Class({
|
|||||||
|
|
||||||
let sideWidth, centerWidth;
|
let sideWidth, centerWidth;
|
||||||
centerWidth = centerNaturalWidth;
|
centerWidth = centerNaturalWidth;
|
||||||
sideWidth = Math.max(0, (allocWidth - centerWidth) / 2);
|
|
||||||
|
// get workspace area and center date entry relative to it
|
||||||
|
let monitor = Main.layoutManager.findMonitorForActor(actor);
|
||||||
|
let centerOffset = 0;
|
||||||
|
if (monitor) {
|
||||||
|
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor.index);
|
||||||
|
centerOffset = 2 * (workArea.x - monitor.x) + workArea.width - monitor.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
sideWidth = Math.max(0, (allocWidth - centerWidth + centerOffset) / 2);
|
||||||
|
|
||||||
let childBox = new Clutter.ActorBox();
|
let childBox = new Clutter.ActorBox();
|
||||||
|
|
||||||
|
|||||||
@@ -1283,7 +1283,10 @@ var ScreenShield = new Lang.Class({
|
|||||||
|
|
||||||
this._resetLockScreen({ animateLockScreen: animate,
|
this._resetLockScreen({ animateLockScreen: animate,
|
||||||
fadeToBlack: true });
|
fadeToBlack: true });
|
||||||
global.set_runtime_state(LOCKED_STATE_STR, GLib.Variant.new('b', true));
|
// On wayland, a crash brings down the entire session, so we don't
|
||||||
|
// need to defend against being restarted unlocked
|
||||||
|
if (!Meta.is_wayland_compositor())
|
||||||
|
global.set_runtime_state(LOCKED_STATE_STR, GLib.Variant.new('b', true));
|
||||||
|
|
||||||
// We used to set isActive and emit active-changed here,
|
// We used to set isActive and emit active-changed here,
|
||||||
// but now we do that from lockScreenShown, which means
|
// but now we do that from lockScreenShown, which means
|
||||||
|
|||||||
@@ -457,7 +457,7 @@ var InputSourceManager = new Lang.Class({
|
|||||||
this._changePerWindowSource();
|
this._changePerWindowSource();
|
||||||
},
|
},
|
||||||
|
|
||||||
_activateInputSource: function(is, interactive) {
|
activateInputSource: function(is, interactive) {
|
||||||
KeyboardManager.holdKeyboard();
|
KeyboardManager.holdKeyboard();
|
||||||
this._keyboardManager.apply(is.xkbId);
|
this._keyboardManager.apply(is.xkbId);
|
||||||
|
|
||||||
@@ -578,7 +578,7 @@ var InputSourceManager = new Lang.Class({
|
|||||||
infosList[i].displayName,
|
infosList[i].displayName,
|
||||||
infosList[i].shortName,
|
infosList[i].shortName,
|
||||||
i);
|
i);
|
||||||
is.connect('activate', Lang.bind(this, this._activateInputSource));
|
is.connect('activate', Lang.bind(this, this.activateInputSource));
|
||||||
|
|
||||||
if (!(is.shortName in inputSourcesByShortName))
|
if (!(is.shortName in inputSourcesByShortName))
|
||||||
inputSourcesByShortName[is.shortName] = [];
|
inputSourcesByShortName[is.shortName] = [];
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ var AppAuthorizer = new Lang.Class({
|
|||||||
_userAuthorizeApp: function() {
|
_userAuthorizeApp: function() {
|
||||||
let name = this._app.get_name();
|
let name = this._app.get_name();
|
||||||
let appInfo = this._app.get_app_info();
|
let appInfo = this._app.get_app_info();
|
||||||
let reason = appInfo.get_string("X-Geoclue-Reason");
|
let reason = appInfo.get_locale_string("X-Geoclue-Reason");
|
||||||
|
|
||||||
this._showAppAuthDialog(name, reason);
|
this._showAppAuthDialog(name, reason);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -6,9 +6,7 @@ const Gio = imports.gi.Gio;
|
|||||||
const Gtk = imports.gi.Gtk;
|
const Gtk = imports.gi.Gtk;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const Mainloop = imports.mainloop;
|
const Mainloop = imports.mainloop;
|
||||||
const NetworkManager = imports.gi.NetworkManager;
|
const NM = imports.gi.NM;
|
||||||
const NMClient = imports.gi.NMClient;
|
|
||||||
const NMGtk = imports.gi.NMGtk;
|
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
@@ -43,9 +41,9 @@ const NMAccessPointSecurity = {
|
|||||||
var MAX_DEVICE_ITEMS = 4;
|
var MAX_DEVICE_ITEMS = 4;
|
||||||
|
|
||||||
// small optimization, to avoid using [] all the time
|
// small optimization, to avoid using [] all the time
|
||||||
const NM80211Mode = NetworkManager['80211Mode'];
|
const NM80211Mode = NM['80211Mode'];
|
||||||
const NM80211ApFlags = NetworkManager['80211ApFlags'];
|
const NM80211ApFlags = NM['80211ApFlags'];
|
||||||
const NM80211ApSecurityFlags = NetworkManager['80211ApSecurityFlags'];
|
const NM80211ApSecurityFlags = NM['80211ApSecurityFlags'];
|
||||||
|
|
||||||
var PortalHelperResult = {
|
var PortalHelperResult = {
|
||||||
CANCELLED: 0,
|
CANCELLED: 0,
|
||||||
@@ -74,18 +72,6 @@ const PortalHelperIface = '<node> \
|
|||||||
</node>';
|
</node>';
|
||||||
const PortalHelperProxy = Gio.DBusProxy.makeProxyWrapper(PortalHelperIface);
|
const PortalHelperProxy = Gio.DBusProxy.makeProxyWrapper(PortalHelperIface);
|
||||||
|
|
||||||
function ssidCompare(one, two) {
|
|
||||||
if (!one || !two)
|
|
||||||
return false;
|
|
||||||
if (one.length != two.length)
|
|
||||||
return false;
|
|
||||||
for (let i = 0; i < one.length; i++) {
|
|
||||||
if (one[i] != two[i])
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function signalToIcon(value) {
|
function signalToIcon(value) {
|
||||||
if (value > 80)
|
if (value > 80)
|
||||||
return 'excellent';
|
return 'excellent';
|
||||||
@@ -99,16 +85,14 @@ function signalToIcon(value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ssidToLabel(ssid) {
|
function ssidToLabel(ssid) {
|
||||||
let label = NetworkManager.utils_ssid_to_utf8(ssid);
|
let label = NM.utils_ssid_to_utf8(ssid.get_data());
|
||||||
if (!label)
|
if (!label)
|
||||||
label = _("<unknown>");
|
label = _("<unknown>");
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
function ensureActiveConnectionProps(active, settings) {
|
function ensureActiveConnectionProps(active, client) {
|
||||||
if (!active._connection) {
|
if (!active._primaryDevice) {
|
||||||
active._connection = settings.get_connection_by_path(active.connection);
|
|
||||||
|
|
||||||
// This list is guaranteed to have only one device in it.
|
// This list is guaranteed to have only one device in it.
|
||||||
let device = active.get_devices()[0]._delegate;
|
let device = active.get_devices()[0]._delegate;
|
||||||
active._primaryDevice = device;
|
active._primaryDevice = device;
|
||||||
@@ -162,7 +146,7 @@ var NMConnectionItem = new Lang.Class({
|
|||||||
if (this._activeConnection == null)
|
if (this._activeConnection == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return this._activeConnection.state <= NetworkManager.ActiveConnectionState.ACTIVATED;
|
return this._activeConnection.state <= NM.ActiveConnectionState.ACTIVATED;
|
||||||
},
|
},
|
||||||
|
|
||||||
_sync: function() {
|
_sync: function() {
|
||||||
@@ -346,10 +330,9 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
Extends: NMConnectionSection,
|
Extends: NMConnectionSection,
|
||||||
Abstract: true,
|
Abstract: true,
|
||||||
|
|
||||||
_init: function(client, device, settings) {
|
_init: function(client, device) {
|
||||||
this.parent(client);
|
this.parent(client);
|
||||||
this._device = device;
|
this._device = device;
|
||||||
this._settings = settings;
|
|
||||||
this._description = '';
|
this._description = '';
|
||||||
|
|
||||||
this._autoConnectItem = this.item.menu.addAction(_("Connect"), Lang.bind(this, this._autoConnect));
|
this._autoConnectItem = this.item.menu.addAction(_("Connect"), Lang.bind(this, this._autoConnect));
|
||||||
@@ -363,12 +346,12 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
if (this._client.primary_connection != this._device.active_connection)
|
if (this._client.primary_connection != this._device.active_connection)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return this._client.connectivity == NetworkManager.ConnectivityState.FULL;
|
return this._client.connectivity == NM.ConnectivityState.FULL;
|
||||||
},
|
},
|
||||||
|
|
||||||
_autoConnect: function() {
|
_autoConnect: function() {
|
||||||
let connection = new NetworkManager.Connection();
|
let connection = new NM.SimpleConnection();
|
||||||
this._client.add_and_activate_connection(connection, this._device, null, null);
|
this._client.add_and_activate_connection_async(connection, this._device, null, null, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
destroy: function() {
|
destroy: function() {
|
||||||
@@ -386,17 +369,12 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
|
|
||||||
_activeConnectionChanged: function() {
|
_activeConnectionChanged: function() {
|
||||||
if (this._activeConnection) {
|
if (this._activeConnection) {
|
||||||
let item = this._connectionItems.get(this._activeConnection._connection.get_uuid());
|
let item = this._connectionItems.get(this._activeConnection.connection.get_uuid());
|
||||||
item.setActiveConnection(null);
|
item.setActiveConnection(null);
|
||||||
|
this._activeConnection = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._activeConnection = this._device.active_connection;
|
this._sync();
|
||||||
|
|
||||||
if (this._activeConnection) {
|
|
||||||
ensureActiveConnectionProps(this._activeConnection, this._settings);
|
|
||||||
let item = this._connectionItems.get(this._activeConnection._connection.get_uuid());
|
|
||||||
item.setActiveConnection(this._activeConnection);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_deviceStateChanged: function(device, newstate, oldstate, reason) {
|
_deviceStateChanged: function(device, newstate, oldstate, reason) {
|
||||||
@@ -408,8 +386,8 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
/* Emit a notification if activation fails, but don't do it
|
/* Emit a notification if activation fails, but don't do it
|
||||||
if the reason is no secrets, as that indicates the user
|
if the reason is no secrets, as that indicates the user
|
||||||
cancelled the agent dialog */
|
cancelled the agent dialog */
|
||||||
if (newstate == NetworkManager.DeviceState.FAILED &&
|
if (newstate == NM.DeviceState.FAILED &&
|
||||||
reason != NetworkManager.DeviceStateReason.NO_SECRETS) {
|
reason != NM.DeviceStateReason.NO_SECRETS) {
|
||||||
this.emit('activation-failed', reason);
|
this.emit('activation-failed', reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -421,7 +399,7 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
activateConnection: function(connection) {
|
activateConnection: function(connection) {
|
||||||
this._client.activate_connection(connection, this._device, null, null);
|
this._client.activate_connection_async(connection, this._device, null, null, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
deactivateConnection: function(activeConnection) {
|
deactivateConnection: function(activeConnection) {
|
||||||
@@ -440,7 +418,18 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
_sync: function() {
|
_sync: function() {
|
||||||
let nItems = this._connectionItems.size;
|
let nItems = this._connectionItems.size;
|
||||||
this._autoConnectItem.actor.visible = (nItems == 0);
|
this._autoConnectItem.actor.visible = (nItems == 0);
|
||||||
this._deactivateItem.actor.visible = this._device.state > NetworkManager.DeviceState.DISCONNECTED;
|
this._deactivateItem.actor.visible = this._device.state > NM.DeviceState.DISCONNECTED;
|
||||||
|
|
||||||
|
if (this._activeConnection == null) {
|
||||||
|
this._activeConnection = this._device.active_connection;
|
||||||
|
|
||||||
|
if (this._activeConnection) {
|
||||||
|
ensureActiveConnectionProps(this._activeConnection, this._client);
|
||||||
|
let item = this._connectionItems.get(this._activeConnection.connection.get_uuid());
|
||||||
|
item.setActiveConnection(this._activeConnection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.parent();
|
this.parent();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -449,31 +438,31 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
return '';
|
return '';
|
||||||
|
|
||||||
switch(this._device.state) {
|
switch(this._device.state) {
|
||||||
case NetworkManager.DeviceState.DISCONNECTED:
|
case NM.DeviceState.DISCONNECTED:
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Off").format(this._getDescription());
|
return _("%s Off").format(this._getDescription());
|
||||||
case NetworkManager.DeviceState.ACTIVATED:
|
case NM.DeviceState.ACTIVATED:
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Connected").format(this._getDescription());
|
return _("%s Connected").format(this._getDescription());
|
||||||
case NetworkManager.DeviceState.UNMANAGED:
|
case NM.DeviceState.UNMANAGED:
|
||||||
/* Translators: this is for network devices that are physically present but are not
|
/* Translators: this is for network devices that are physically present but are not
|
||||||
under NetworkManager's control (and thus cannot be used in the menu);
|
under NetworkManager's control (and thus cannot be used in the menu);
|
||||||
%s is a network identifier */
|
%s is a network identifier */
|
||||||
return _("%s Unmanaged").format(this._getDescription());
|
return _("%s Unmanaged").format(this._getDescription());
|
||||||
case NetworkManager.DeviceState.DEACTIVATING:
|
case NM.DeviceState.DEACTIVATING:
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Disconnecting").format(this._getDescription());
|
return _("%s Disconnecting").format(this._getDescription());
|
||||||
case NetworkManager.DeviceState.PREPARE:
|
case NM.DeviceState.PREPARE:
|
||||||
case NetworkManager.DeviceState.CONFIG:
|
case NM.DeviceState.CONFIG:
|
||||||
case NetworkManager.DeviceState.IP_CONFIG:
|
case NM.DeviceState.IP_CONFIG:
|
||||||
case NetworkManager.DeviceState.IP_CHECK:
|
case NM.DeviceState.IP_CHECK:
|
||||||
case NetworkManager.DeviceState.SECONDARIES:
|
case NM.DeviceState.SECONDARIES:
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Connecting").format(this._getDescription());
|
return _("%s Connecting").format(this._getDescription());
|
||||||
case NetworkManager.DeviceState.NEED_AUTH:
|
case NM.DeviceState.NEED_AUTH:
|
||||||
/* Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
|
/* Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
|
||||||
return _("%s Requires Authentication").format(this._getDescription());
|
return _("%s Requires Authentication").format(this._getDescription());
|
||||||
case NetworkManager.DeviceState.UNAVAILABLE:
|
case NM.DeviceState.UNAVAILABLE:
|
||||||
// This state is actually a compound of various states (generically unavailable,
|
// This state is actually a compound of various states (generically unavailable,
|
||||||
// firmware missing), that are exposed by different properties (whose state may
|
// firmware missing), that are exposed by different properties (whose state may
|
||||||
// or may not updated when we receive state-changed).
|
// or may not updated when we receive state-changed).
|
||||||
@@ -485,7 +474,7 @@ var NMConnectionDevice = new Lang.Class({
|
|||||||
/* Translators: this is for a network device that cannot be activated (for example it
|
/* Translators: this is for a network device that cannot be activated (for example it
|
||||||
is disabled by rfkill, or it has no coverage; %s is a network identifier */
|
is disabled by rfkill, or it has no coverage; %s is a network identifier */
|
||||||
return _("%s Unavailable").format(this._getDescription());
|
return _("%s Unavailable").format(this._getDescription());
|
||||||
case NetworkManager.DeviceState.FAILED:
|
case NM.DeviceState.FAILED:
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Connection Failed").format(this._getDescription());
|
return _("%s Connection Failed").format(this._getDescription());
|
||||||
default:
|
default:
|
||||||
@@ -500,14 +489,14 @@ var NMDeviceWired = new Lang.Class({
|
|||||||
Extends: NMConnectionDevice,
|
Extends: NMConnectionDevice,
|
||||||
category: NMConnectionCategory.WIRED,
|
category: NMConnectionCategory.WIRED,
|
||||||
|
|
||||||
_init: function(client, device, settings) {
|
_init: function(client, device) {
|
||||||
this.parent(client, device, settings);
|
this.parent(client, device);
|
||||||
|
|
||||||
this.item.menu.addSettingsAction(_("Wired Settings"), 'gnome-network-panel.desktop');
|
this.item.menu.addSettingsAction(_("Wired Settings"), 'gnome-network-panel.desktop');
|
||||||
},
|
},
|
||||||
|
|
||||||
_hasCarrier: function() {
|
_hasCarrier: function() {
|
||||||
if (this._device instanceof NMClient.DeviceEthernet)
|
if (this._device instanceof NM.DeviceEthernet)
|
||||||
return this._device.carrier;
|
return this._device.carrier;
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
@@ -522,9 +511,9 @@ var NMDeviceWired = new Lang.Class({
|
|||||||
if (this._device.active_connection) {
|
if (this._device.active_connection) {
|
||||||
let state = this._device.active_connection.state;
|
let state = this._device.active_connection.state;
|
||||||
|
|
||||||
if (state == NetworkManager.ActiveConnectionState.ACTIVATING) {
|
if (state == NM.ActiveConnectionState.ACTIVATING) {
|
||||||
return 'network-wired-acquiring-symbolic';
|
return 'network-wired-acquiring-symbolic';
|
||||||
} else if (state == NetworkManager.ActiveConnectionState.ACTIVATED) {
|
} else if (state == NM.ActiveConnectionState.ACTIVATED) {
|
||||||
if (this._canReachInternet())
|
if (this._canReachInternet())
|
||||||
return 'network-wired-symbolic';
|
return 'network-wired-symbolic';
|
||||||
else
|
else
|
||||||
@@ -542,8 +531,8 @@ var NMDeviceModem = new Lang.Class({
|
|||||||
Extends: NMConnectionDevice,
|
Extends: NMConnectionDevice,
|
||||||
category: NMConnectionCategory.WWAN,
|
category: NMConnectionCategory.WWAN,
|
||||||
|
|
||||||
_init: function(client, device, settings) {
|
_init: function(client, device) {
|
||||||
this.parent(client, device, settings);
|
this.parent(client, device);
|
||||||
|
|
||||||
this.item.menu.addSettingsAction(_("Mobile Broadband Settings"), 'gnome-network-panel.desktop');
|
this.item.menu.addSettingsAction(_("Mobile Broadband Settings"), 'gnome-network-panel.desktop');
|
||||||
|
|
||||||
@@ -552,11 +541,11 @@ var NMDeviceModem = new Lang.Class({
|
|||||||
let capabilities = device.current_capabilities;
|
let capabilities = device.current_capabilities;
|
||||||
if (device.udi.indexOf('/org/freedesktop/ModemManager1/Modem') == 0)
|
if (device.udi.indexOf('/org/freedesktop/ModemManager1/Modem') == 0)
|
||||||
this._mobileDevice = new ModemManager.BroadbandModem(device.udi, capabilities);
|
this._mobileDevice = new ModemManager.BroadbandModem(device.udi, capabilities);
|
||||||
else if (capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS)
|
else if (capabilities & NM.DeviceModemCapabilities.GSM_UMTS)
|
||||||
this._mobileDevice = new ModemManager.ModemGsm(device.udi);
|
this._mobileDevice = new ModemManager.ModemGsm(device.udi);
|
||||||
else if (capabilities & NetworkManager.DeviceModemCapabilities.CDMA_EVDO)
|
else if (capabilities & NM.DeviceModemCapabilities.CDMA_EVDO)
|
||||||
this._mobileDevice = new ModemManager.ModemCdma(device.udi);
|
this._mobileDevice = new ModemManager.ModemCdma(device.udi);
|
||||||
else if (capabilities & NetworkManager.DeviceModemCapabilities.LTE)
|
else if (capabilities & NM.DeviceModemCapabilities.LTE)
|
||||||
this._mobileDevice = new ModemManager.ModemGsm(device.udi);
|
this._mobileDevice = new ModemManager.ModemGsm(device.udi);
|
||||||
|
|
||||||
if (this._mobileDevice) {
|
if (this._mobileDevice) {
|
||||||
@@ -593,7 +582,7 @@ var NMDeviceModem = new Lang.Class({
|
|||||||
/* Translators: this is for a network device that cannot be activated
|
/* Translators: this is for a network device that cannot be activated
|
||||||
because it's disabled by rfkill (airplane mode); %s is a network identifier */
|
because it's disabled by rfkill (airplane mode); %s is a network identifier */
|
||||||
return _("%s Disabled").format(this._getDescription());
|
return _("%s Disabled").format(this._getDescription());
|
||||||
else if (this._device.state == NetworkManager.DeviceState.ACTIVATED &&
|
else if (this._device.state == NM.DeviceState.ACTIVATED &&
|
||||||
this._mobileDevice && this._mobileDevice.operator_name)
|
this._mobileDevice && this._mobileDevice.operator_name)
|
||||||
return this._mobileDevice.operator_name;
|
return this._mobileDevice.operator_name;
|
||||||
else
|
else
|
||||||
@@ -602,7 +591,7 @@ var NMDeviceModem = new Lang.Class({
|
|||||||
|
|
||||||
getIndicatorIcon: function() {
|
getIndicatorIcon: function() {
|
||||||
if (this._device.active_connection) {
|
if (this._device.active_connection) {
|
||||||
if (this._device.active_connection.state == NetworkManager.ActiveConnectionState.ACTIVATING)
|
if (this._device.active_connection.state == NM.ActiveConnectionState.ACTIVATING)
|
||||||
return 'network-cellular-acquiring-symbolic';
|
return 'network-cellular-acquiring-symbolic';
|
||||||
|
|
||||||
return this._getSignalIcon();
|
return this._getSignalIcon();
|
||||||
@@ -621,8 +610,8 @@ var NMDeviceBluetooth = new Lang.Class({
|
|||||||
Extends: NMConnectionDevice,
|
Extends: NMConnectionDevice,
|
||||||
category: NMConnectionCategory.WWAN,
|
category: NMConnectionCategory.WWAN,
|
||||||
|
|
||||||
_init: function(client, device, settings) {
|
_init: function(client, device) {
|
||||||
this.parent(client, device, settings);
|
this.parent(client, device);
|
||||||
|
|
||||||
this.item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-network-panel.desktop');
|
this.item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-network-panel.desktop');
|
||||||
},
|
},
|
||||||
@@ -638,9 +627,9 @@ var NMDeviceBluetooth = new Lang.Class({
|
|||||||
getIndicatorIcon: function() {
|
getIndicatorIcon: function() {
|
||||||
if (this._device.active_connection) {
|
if (this._device.active_connection) {
|
||||||
let state = this._device.active_connection.state;
|
let state = this._device.active_connection.state;
|
||||||
if (state == NetworkManager.ActiveConnectionState.ACTIVATING)
|
if (state == NM.ActiveConnectionState.ACTIVATING)
|
||||||
return 'network-cellular-acquiring-symbolic';
|
return 'network-cellular-acquiring-symbolic';
|
||||||
else if (state == NetworkManager.ActiveConnectionState.ACTIVATED)
|
else if (state == NM.ActiveConnectionState.ACTIVATED)
|
||||||
return 'network-cellular-connected-symbolic';
|
return 'network-cellular-connected-symbolic';
|
||||||
else
|
else
|
||||||
return 'network-cellular-signal-none-symbolic';
|
return 'network-cellular-signal-none-symbolic';
|
||||||
@@ -719,7 +708,7 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
Name: 'NMWirelessDialog',
|
Name: 'NMWirelessDialog',
|
||||||
Extends: ModalDialog.ModalDialog,
|
Extends: ModalDialog.ModalDialog,
|
||||||
|
|
||||||
_init: function(client, device, settings) {
|
_init: function(client, device) {
|
||||||
this.parent({ styleClass: 'nm-dialog' });
|
this.parent({ styleClass: 'nm-dialog' });
|
||||||
|
|
||||||
this._client = client;
|
this._client = client;
|
||||||
@@ -735,7 +724,7 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
this._networks = [];
|
this._networks = [];
|
||||||
this._buildLayout();
|
this._buildLayout();
|
||||||
|
|
||||||
let connections = settings.list_connections();
|
let connections = client.get_connections();
|
||||||
this._connections = connections.filter(Lang.bind(this, function(connection) {
|
this._connections = connections.filter(Lang.bind(this, function(connection) {
|
||||||
return device.connection_valid(connection);
|
return device.connection_valid(connection);
|
||||||
}));
|
}));
|
||||||
@@ -799,7 +788,7 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onScanTimeout: function() {
|
_onScanTimeout: function() {
|
||||||
this._device.request_scan_simple(null);
|
this._device.request_scan_async(null, null);
|
||||||
return GLib.SOURCE_CONTINUE;
|
return GLib.SOURCE_CONTINUE;
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -944,7 +933,7 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
let network = this._selectedNetwork;
|
let network = this._selectedNetwork;
|
||||||
if (network.connections.length > 0) {
|
if (network.connections.length > 0) {
|
||||||
let connection = network.connections[0];
|
let connection = network.connections[0];
|
||||||
this._client.activate_connection(connection, this._device, null, null);
|
this._client.activate_connection_async(connection, this._device, null, null, null);
|
||||||
} else {
|
} else {
|
||||||
let accessPoints = network.accessPoints;
|
let accessPoints = network.accessPoints;
|
||||||
if ((accessPoints[0]._secType == NMAccessPointSecurity.WPA2_ENT)
|
if ((accessPoints[0]._secType == NMAccessPointSecurity.WPA2_ENT)
|
||||||
@@ -952,10 +941,10 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
// 802.1x-enabled APs require further configuration, so they're
|
// 802.1x-enabled APs require further configuration, so they're
|
||||||
// handled in gnome-control-center
|
// handled in gnome-control-center
|
||||||
Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
|
Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
|
||||||
this._device.get_path(), accessPoints[0].dbus_path]);
|
this._device.get_path(), accessPoints[0].path]);
|
||||||
} else {
|
} else {
|
||||||
let connection = new NetworkManager.Connection();
|
let connection = new NM.SimpleConnection();
|
||||||
this._client.add_and_activate_connection(connection, this._device, accessPoints[0].dbus_path, null)
|
this._client.add_and_activate_connection_async(connection, this._device, accessPoints[0].path, null, null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1035,7 +1024,7 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_networkCompare: function(network, accessPoint) {
|
_networkCompare: function(network, accessPoint) {
|
||||||
if (!ssidCompare(network.ssid, accessPoint.get_ssid()))
|
if (!network.ssid.equal (accessPoint.get_ssid()))
|
||||||
return false;
|
return false;
|
||||||
if (network.mode != accessPoint.mode)
|
if (network.mode != accessPoint.mode)
|
||||||
return false;
|
return false;
|
||||||
@@ -1180,10 +1169,9 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
Name: 'NMDeviceWireless',
|
Name: 'NMDeviceWireless',
|
||||||
category: NMConnectionCategory.WIRELESS,
|
category: NMConnectionCategory.WIRELESS,
|
||||||
|
|
||||||
_init: function(client, device, settings) {
|
_init: function(client, device) {
|
||||||
this._client = client;
|
this._client = client;
|
||||||
this._device = device;
|
this._device = device;
|
||||||
this._settings = settings;
|
|
||||||
|
|
||||||
this._description = '';
|
this._description = '';
|
||||||
|
|
||||||
@@ -1252,8 +1240,8 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
/* Emit a notification if activation fails, but don't do it
|
/* Emit a notification if activation fails, but don't do it
|
||||||
if the reason is no secrets, as that indicates the user
|
if the reason is no secrets, as that indicates the user
|
||||||
cancelled the agent dialog */
|
cancelled the agent dialog */
|
||||||
if (newstate == NetworkManager.DeviceState.FAILED &&
|
if (newstate == NM.DeviceState.FAILED &&
|
||||||
reason != NetworkManager.DeviceStateReason.NO_SECRETS) {
|
reason != NM.DeviceStateReason.NO_SECRETS) {
|
||||||
this.emit('activation-failed', reason);
|
this.emit('activation-failed', reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1265,7 +1253,7 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_showDialog: function() {
|
_showDialog: function() {
|
||||||
this._dialog = new NMWirelessDialog(this._client, this._device, this._settings);
|
this._dialog = new NMWirelessDialog(this._client, this._device);
|
||||||
this._dialog.connect('closed', Lang.bind(this, this._dialogClosed));
|
this._dialog.connect('closed', Lang.bind(this, this._dialogClosed));
|
||||||
this._dialog.open();
|
this._dialog.open();
|
||||||
},
|
},
|
||||||
@@ -1314,8 +1302,8 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
if (this._isHotSpotMaster())
|
if (this._isHotSpotMaster())
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Hotspot Active").format(this._description);
|
return _("%s Hotspot Active").format(this._description);
|
||||||
else if (this._device.state >= NetworkManager.DeviceState.PREPARE &&
|
else if (this._device.state >= NM.DeviceState.PREPARE &&
|
||||||
this._device.state < NetworkManager.DeviceState.ACTIVATED)
|
this._device.state < NM.DeviceState.ACTIVATED)
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Connecting").format(this._description);
|
return _("%s Connecting").format(this._description);
|
||||||
else if (ap)
|
else if (ap)
|
||||||
@@ -1326,7 +1314,7 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
else if (!this._client.wireless_enabled)
|
else if (!this._client.wireless_enabled)
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Off").format(this._description);
|
return _("%s Off").format(this._description);
|
||||||
else if (this._device.state == NetworkManager.DeviceState.DISCONNECTED)
|
else if (this._device.state == NM.DeviceState.DISCONNECTED)
|
||||||
/* Translators: %s is a network identifier */
|
/* Translators: %s is a network identifier */
|
||||||
return _("%s Not Connected").format(this._description);
|
return _("%s Not Connected").format(this._description);
|
||||||
else
|
else
|
||||||
@@ -1344,18 +1332,14 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
if (this._client.primary_connection != this._device.active_connection)
|
if (this._client.primary_connection != this._device.active_connection)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return this._client.connectivity == NetworkManager.ConnectivityState.FULL;
|
return this._client.connectivity == NM.ConnectivityState.FULL;
|
||||||
},
|
},
|
||||||
|
|
||||||
_isHotSpotMaster: function() {
|
_isHotSpotMaster: function() {
|
||||||
if (!this._device.active_connection)
|
if (!this._device.active_connection)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
let connectionPath = this._device.active_connection.connection;
|
let connection = this._device.active_connection.connection;
|
||||||
if (!connectionPath)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
let connection = this._settings.get_connection_by_path(connectionPath);
|
|
||||||
if (!connection)
|
if (!connection)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -1363,13 +1347,13 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
if (!ip4config)
|
if (!ip4config)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return ip4config.get_method() == NetworkManager.SETTING_IP4_CONFIG_METHOD_SHARED;
|
return ip4config.get_method() == NM.SETTING_IP4_CONFIG_METHOD_SHARED;
|
||||||
},
|
},
|
||||||
|
|
||||||
getIndicatorIcon: function() {
|
getIndicatorIcon: function() {
|
||||||
if (this._device.state < NetworkManager.DeviceState.PREPARE)
|
if (this._device.state < NM.DeviceState.PREPARE)
|
||||||
return 'network-wireless-disconnected-symbolic';
|
return 'network-wireless-disconnected-symbolic';
|
||||||
if (this._device.state < NetworkManager.DeviceState.ACTIVATED)
|
if (this._device.state < NM.DeviceState.ACTIVATED)
|
||||||
return 'network-wireless-acquiring-symbolic';
|
return 'network-wireless-acquiring-symbolic';
|
||||||
|
|
||||||
if (this._isHotSpotMaster())
|
if (this._isHotSpotMaster())
|
||||||
@@ -1394,15 +1378,15 @@ var NMDeviceWireless = new Lang.Class({
|
|||||||
});
|
});
|
||||||
Signals.addSignalMethods(NMDeviceWireless.prototype);
|
Signals.addSignalMethods(NMDeviceWireless.prototype);
|
||||||
|
|
||||||
var NMVPNConnectionItem = new Lang.Class({
|
var NMVpnConnectionItem = new Lang.Class({
|
||||||
Name: 'NMVPNConnectionItem',
|
Name: 'NMVpnConnectionItem',
|
||||||
Extends: NMConnectionItem,
|
Extends: NMConnectionItem,
|
||||||
|
|
||||||
isActive: function() {
|
isActive: function() {
|
||||||
if (this._activeConnection == null)
|
if (this._activeConnection == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return this._activeConnection.vpn_state != NetworkManager.VPNConnectionState.DISCONNECTED;
|
return this._activeConnection.vpn_state != NM.VpnConnectionState.DISCONNECTED;
|
||||||
},
|
},
|
||||||
|
|
||||||
_buildUI: function() {
|
_buildUI: function() {
|
||||||
@@ -1426,17 +1410,17 @@ var NMVPNConnectionItem = new Lang.Class({
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
switch(this._activeConnection.vpn_state) {
|
switch(this._activeConnection.vpn_state) {
|
||||||
case NetworkManager.VPNConnectionState.DISCONNECTED:
|
case NM.VpnConnectionState.DISCONNECTED:
|
||||||
case NetworkManager.VPNConnectionState.ACTIVATED:
|
case NM.VpnConnectionState.ACTIVATED:
|
||||||
return null;
|
return null;
|
||||||
case NetworkManager.VPNConnectionState.PREPARE:
|
case NM.VpnConnectionState.PREPARE:
|
||||||
case NetworkManager.VPNConnectionState.CONNECT:
|
case NM.VpnConnectionState.CONNECT:
|
||||||
case NetworkManager.VPNConnectionState.IP_CONFIG_GET:
|
case NM.VpnConnectionState.IP_CONFIG_GET:
|
||||||
return _("connecting…");
|
return _("connecting…");
|
||||||
case NetworkManager.VPNConnectionState.NEED_AUTH:
|
case NM.VpnConnectionState.NEED_AUTH:
|
||||||
/* Translators: this is for network connections that require some kind of key or password */
|
/* Translators: this is for network connections that require some kind of key or password */
|
||||||
return _("authentication required");
|
return _("authentication required");
|
||||||
case NetworkManager.VPNConnectionState.FAILED:
|
case NM.VpnConnectionState.FAILED:
|
||||||
return _("connection failed");
|
return _("connection failed");
|
||||||
default:
|
default:
|
||||||
return 'invalid';
|
return 'invalid';
|
||||||
@@ -1444,11 +1428,11 @@ var NMVPNConnectionItem = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_connectionStateChanged: function(ac, newstate, reason) {
|
_connectionStateChanged: function(ac, newstate, reason) {
|
||||||
if (newstate == NetworkManager.VPNConnectionState.FAILED &&
|
if (newstate == NM.VpnConnectionState.FAILED &&
|
||||||
reason != NetworkManager.VPNConnectionStateReason.NO_SECRETS) {
|
reason != NM.VpnConnectionStateReason.NO_SECRETS) {
|
||||||
// FIXME: if we ever want to show something based on reason,
|
// FIXME: if we ever want to show something based on reason,
|
||||||
// we need to convert from NetworkManager.VPNConnectionStateReason
|
// we need to convert from NM.VpnConnectionStateReason
|
||||||
// to NetworkManager.DeviceStateReason
|
// to NM.DeviceStateReason
|
||||||
this.emit('activation-failed', reason);
|
this.emit('activation-failed', reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1473,7 +1457,7 @@ var NMVPNConnectionItem = new Lang.Class({
|
|||||||
|
|
||||||
getIndicatorIcon: function() {
|
getIndicatorIcon: function() {
|
||||||
if (this._activeConnection) {
|
if (this._activeConnection) {
|
||||||
if (this._activeConnection.vpn_state < NetworkManager.VPNConnectionState.ACTIVATED)
|
if (this._activeConnection.vpn_state < NM.VpnConnectionState.ACTIVATED)
|
||||||
return 'network-vpn-acquiring-symbolic';
|
return 'network-vpn-acquiring-symbolic';
|
||||||
else
|
else
|
||||||
return 'network-vpn-symbolic';
|
return 'network-vpn-symbolic';
|
||||||
@@ -1483,8 +1467,8 @@ var NMVPNConnectionItem = new Lang.Class({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var NMVPNSection = new Lang.Class({
|
var NMVpnSection = new Lang.Class({
|
||||||
Name: 'NMVPNSection',
|
Name: 'NMVpnSection',
|
||||||
Extends: NMConnectionSection,
|
Extends: NMConnectionSection,
|
||||||
category: NMConnectionCategory.VPN,
|
category: NMConnectionCategory.VPN,
|
||||||
|
|
||||||
@@ -1492,6 +1476,15 @@ var NMVPNSection = new Lang.Class({
|
|||||||
this.parent(client);
|
this.parent(client);
|
||||||
|
|
||||||
this.item.menu.addSettingsAction(_("VPN Settings"), 'gnome-network-panel.desktop');
|
this.item.menu.addSettingsAction(_("VPN Settings"), 'gnome-network-panel.desktop');
|
||||||
|
|
||||||
|
this._sync();
|
||||||
|
},
|
||||||
|
|
||||||
|
_sync: function() {
|
||||||
|
let nItems = this._connectionItems.size;
|
||||||
|
this.item.actor.visible = (nItems > 0);
|
||||||
|
|
||||||
|
this.parent();
|
||||||
},
|
},
|
||||||
|
|
||||||
_getDescription: function() {
|
_getDescription: function() {
|
||||||
@@ -1513,11 +1506,11 @@ var NMVPNSection = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
activateConnection: function(connection) {
|
activateConnection: function(connection) {
|
||||||
this._client.activate_connection(connection, null, null, null);
|
this._client.activate_connection_async(connection, null, null, null, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
deactivateConnection: function(activeConnection) {
|
deactivateConnection: function(activeConnection) {
|
||||||
this._client.deactivate_connection(activeConnection);
|
this._client.deactivate_connection(activeConnection, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
setActiveConnections: function(vpnConnections) {
|
setActiveConnections: function(vpnConnections) {
|
||||||
@@ -1526,15 +1519,15 @@ var NMVPNSection = new Lang.Class({
|
|||||||
item.setActiveConnection(null);
|
item.setActiveConnection(null);
|
||||||
}
|
}
|
||||||
vpnConnections.forEach(Lang.bind(this, function(a) {
|
vpnConnections.forEach(Lang.bind(this, function(a) {
|
||||||
if (a._connection) {
|
if (a.connection) {
|
||||||
let item = this._connectionItems.get(a._connection.get_uuid());
|
let item = this._connectionItems.get(a.connection.get_uuid());
|
||||||
item.setActiveConnection(a);
|
item.setActiveConnection(a);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
_makeConnectionItem: function(connection) {
|
_makeConnectionItem: function(connection) {
|
||||||
return new NMVPNConnectionItem(this, connection);
|
return new NMVpnConnectionItem(this, connection);
|
||||||
},
|
},
|
||||||
|
|
||||||
getIndicatorIcon: function() {
|
getIndicatorIcon: function() {
|
||||||
@@ -1547,7 +1540,7 @@ var NMVPNSection = new Lang.Class({
|
|||||||
return '';
|
return '';
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
Signals.addSignalMethods(NMVPNSection.prototype);
|
Signals.addSignalMethods(NMVpnSection.prototype);
|
||||||
|
|
||||||
var DeviceCategory = new Lang.Class({
|
var DeviceCategory = new Lang.Class({
|
||||||
Name: 'DeviceCategory',
|
Name: 'DeviceCategory',
|
||||||
@@ -1628,40 +1621,25 @@ var NMApplet = new Lang.Class({
|
|||||||
|
|
||||||
// Device types
|
// Device types
|
||||||
this._dtypes = { };
|
this._dtypes = { };
|
||||||
this._dtypes[NetworkManager.DeviceType.ETHERNET] = NMDeviceWired;
|
this._dtypes[NM.DeviceType.ETHERNET] = NMDeviceWired;
|
||||||
this._dtypes[NetworkManager.DeviceType.WIFI] = NMDeviceWireless;
|
this._dtypes[NM.DeviceType.WIFI] = NMDeviceWireless;
|
||||||
this._dtypes[NetworkManager.DeviceType.MODEM] = NMDeviceModem;
|
this._dtypes[NM.DeviceType.MODEM] = NMDeviceModem;
|
||||||
this._dtypes[NetworkManager.DeviceType.BT] = NMDeviceBluetooth;
|
this._dtypes[NM.DeviceType.BT] = NMDeviceBluetooth;
|
||||||
// TODO: WiMax support
|
|
||||||
|
|
||||||
// Connection types
|
// Connection types
|
||||||
this._ctypes = { };
|
this._ctypes = { };
|
||||||
this._ctypes[NetworkManager.SETTING_WIRED_SETTING_NAME] = NMConnectionCategory.WIRED;
|
this._ctypes[NM.SETTING_WIRED_SETTING_NAME] = NMConnectionCategory.WIRED;
|
||||||
this._ctypes[NetworkManager.SETTING_WIRELESS_SETTING_NAME] = NMConnectionCategory.WIRELESS;
|
this._ctypes[NM.SETTING_WIRELESS_SETTING_NAME] = NMConnectionCategory.WIRELESS;
|
||||||
this._ctypes[NetworkManager.SETTING_BLUETOOTH_SETTING_NAME] = NMConnectionCategory.WWAN;
|
this._ctypes[NM.SETTING_BLUETOOTH_SETTING_NAME] = NMConnectionCategory.WWAN;
|
||||||
this._ctypes[NetworkManager.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN;
|
this._ctypes[NM.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN;
|
||||||
this._ctypes[NetworkManager.SETTING_GSM_SETTING_NAME] = NMConnectionCategory.WWAN;
|
this._ctypes[NM.SETTING_GSM_SETTING_NAME] = NMConnectionCategory.WWAN;
|
||||||
this._ctypes[NetworkManager.SETTING_VPN_SETTING_NAME] = NMConnectionCategory.VPN;
|
this._ctypes[NM.SETTING_VPN_SETTING_NAME] = NMConnectionCategory.VPN;
|
||||||
|
|
||||||
NMClient.Client.new_async(null, Lang.bind(this, this._clientGot));
|
NM.Client.new_async(null, Lang.bind(this, this._clientGot));
|
||||||
NMClient.RemoteSettings.new_async(null, null, Lang.bind(this, this._remoteSettingsGot));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_clientGot: function(obj, result) {
|
_clientGot: function(obj, result) {
|
||||||
this._client = NMClient.Client.new_finish(result);
|
this._client = NM.Client.new_finish(result);
|
||||||
|
|
||||||
this._tryLateInit();
|
|
||||||
},
|
|
||||||
|
|
||||||
_remoteSettingsGot: function(obj, result) {
|
|
||||||
this._settings = NMClient.RemoteSettings.new_finish(result);
|
|
||||||
|
|
||||||
this._tryLateInit();
|
|
||||||
},
|
|
||||||
|
|
||||||
_tryLateInit: function() {
|
|
||||||
if (!this._client || !this._settings)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._activeConnections = [ ];
|
this._activeConnections = [ ];
|
||||||
this._connections = [ ];
|
this._connections = [ ];
|
||||||
@@ -1684,7 +1662,7 @@ var NMApplet = new Lang.Class({
|
|||||||
this.menu.addMenuItem(this._devices[category]);
|
this.menu.addMenuItem(this._devices[category]);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._vpnSection = new NMVPNSection(this._client);
|
this._vpnSection = new NMVpnSection(this._client);
|
||||||
this._vpnSection.connect('activation-failed', Lang.bind(this, this._onActivationFailed));
|
this._vpnSection.connect('activation-failed', Lang.bind(this, this._onActivationFailed));
|
||||||
this._vpnSection.connect('icon-changed', Lang.bind(this, this._updateIcon));
|
this._vpnSection.connect('icon-changed', Lang.bind(this, this._updateIcon));
|
||||||
this.menu.addMenuItem(this._vpnSection.item);
|
this.menu.addMenuItem(this._vpnSection.item);
|
||||||
@@ -1693,18 +1671,19 @@ var NMApplet = new Lang.Class({
|
|||||||
this._readDevices();
|
this._readDevices();
|
||||||
this._syncNMState();
|
this._syncNMState();
|
||||||
this._syncMainConnection();
|
this._syncMainConnection();
|
||||||
this._syncVPNConnections();
|
this._syncVpnConnections();
|
||||||
|
|
||||||
this._client.connect('notify::manager-running', Lang.bind(this, this._syncNMState));
|
this._client.connect('notify::nm-running', Lang.bind(this, this._syncNMState));
|
||||||
this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState));
|
this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState));
|
||||||
this._client.connect('notify::state', Lang.bind(this, this._syncNMState));
|
this._client.connect('notify::state', Lang.bind(this, this._syncNMState));
|
||||||
this._client.connect('notify::primary-connection', Lang.bind(this, this._syncMainConnection));
|
this._client.connect('notify::primary-connection', Lang.bind(this, this._syncMainConnection));
|
||||||
this._client.connect('notify::activating-connection', Lang.bind(this, this._syncMainConnection));
|
this._client.connect('notify::activating-connection', Lang.bind(this, this._syncMainConnection));
|
||||||
this._client.connect('notify::active-connections', Lang.bind(this, this._syncVPNConnections));
|
this._client.connect('notify::active-connections', Lang.bind(this, this._syncVpnConnections));
|
||||||
this._client.connect('notify::connectivity', Lang.bind(this, this._syncConnectivity));
|
this._client.connect('notify::connectivity', Lang.bind(this, this._syncConnectivity));
|
||||||
this._client.connect('device-added', Lang.bind(this, this._deviceAdded));
|
this._client.connect('device-added', Lang.bind(this, this._deviceAdded));
|
||||||
this._client.connect('device-removed', Lang.bind(this, this._deviceRemoved));
|
this._client.connect('device-removed', Lang.bind(this, this._deviceRemoved));
|
||||||
this._settings.connect('new-connection', Lang.bind(this, this._newConnection));
|
this._client.connect('connection-added', Lang.bind(this, this._connectionAdded));
|
||||||
|
this._client.connect('connection-removed', Lang.bind(this, this._connectionRemoved));
|
||||||
|
|
||||||
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
|
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
|
||||||
this._sessionUpdated();
|
this._sessionUpdated();
|
||||||
@@ -1762,7 +1741,7 @@ var NMApplet = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_syncDeviceNames: function() {
|
_syncDeviceNames: function() {
|
||||||
let names = NMGtk.utils_disambiguate_device_names(this._nmDevices);
|
let names = NM.Device.disambiguate_names(this._nmDevices);
|
||||||
for (let i = 0; i < this._nmDevices.length; i++) {
|
for (let i = 0; i < this._nmDevices.length; i++) {
|
||||||
let device = this._nmDevices[i];
|
let device = this._nmDevices[i];
|
||||||
let description = names[i];
|
let description = names[i];
|
||||||
@@ -1779,7 +1758,7 @@ var NMApplet = new Lang.Class({
|
|||||||
|
|
||||||
let wrapperClass = this._dtypes[device.get_device_type()];
|
let wrapperClass = this._dtypes[device.get_device_type()];
|
||||||
if (wrapperClass) {
|
if (wrapperClass) {
|
||||||
let wrapper = new wrapperClass(this._client, device, this._settings);
|
let wrapper = new wrapperClass(this._client, device);
|
||||||
device._delegate = wrapper;
|
device._delegate = wrapper;
|
||||||
this._addDeviceWrapper(wrapper);
|
this._addDeviceWrapper(wrapper);
|
||||||
|
|
||||||
@@ -1836,13 +1815,13 @@ var NMApplet = new Lang.Class({
|
|||||||
|
|
||||||
connection = this._client.get_primary_connection();
|
connection = this._client.get_primary_connection();
|
||||||
if (connection) {
|
if (connection) {
|
||||||
ensureActiveConnectionProps(connection, this._settings);
|
ensureActiveConnectionProps(connection, this._client);
|
||||||
return connection;
|
return connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
connection = this._client.get_activating_connection();
|
connection = this._client.get_activating_connection();
|
||||||
if (connection) {
|
if (connection) {
|
||||||
ensureActiveConnectionProps(connection, this._settings);
|
ensureActiveConnectionProps(connection, this._client);
|
||||||
return connection;
|
return connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1873,13 +1852,13 @@ var NMApplet = new Lang.Class({
|
|||||||
this._syncConnectivity();
|
this._syncConnectivity();
|
||||||
},
|
},
|
||||||
|
|
||||||
_syncVPNConnections: function() {
|
_syncVpnConnections: function() {
|
||||||
let activeConnections = this._client.get_active_connections() || [];
|
let activeConnections = this._client.get_active_connections() || [];
|
||||||
let vpnConnections = activeConnections.filter(function(a) {
|
let vpnConnections = activeConnections.filter(function(a) {
|
||||||
return (a instanceof NMClient.VPNConnection);
|
return (a instanceof NM.VpnConnection);
|
||||||
});
|
});
|
||||||
vpnConnections.forEach(Lang.bind(this, function(a) {
|
vpnConnections.forEach(Lang.bind(this, function(a) {
|
||||||
ensureActiveConnectionProps(a, this._settings);
|
ensureActiveConnectionProps(a, this._client);
|
||||||
}));
|
}));
|
||||||
this._vpnSection.setActiveConnections(vpnConnections);
|
this._vpnSection.setActiveConnections(vpnConnections);
|
||||||
|
|
||||||
@@ -1887,7 +1866,7 @@ var NMApplet = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_mainConnectionStateChanged: function() {
|
_mainConnectionStateChanged: function() {
|
||||||
if (this._mainConnection.state == NetworkManager.ActiveConnectionState.ACTIVATED && this._notification)
|
if (this._mainConnection.state == NM.ActiveConnectionState.ACTIVATED && this._notification)
|
||||||
this._notification.destroy();
|
this._notification.destroy();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -1911,23 +1890,22 @@ var NMApplet = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
connection._removedId = connection.connect('removed', Lang.bind(this, this._connectionRemoved));
|
connection._updatedId = connection.connect('changed', Lang.bind(this, this._updateConnection));
|
||||||
connection._updatedId = connection.connect('updated', Lang.bind(this, this._updateConnection));
|
|
||||||
|
|
||||||
this._updateConnection(connection);
|
this._updateConnection(connection);
|
||||||
this._connections.push(connection);
|
this._connections.push(connection);
|
||||||
},
|
},
|
||||||
|
|
||||||
_readConnections: function() {
|
_readConnections: function() {
|
||||||
let connections = this._settings.list_connections();
|
let connections = this._client.get_connections();
|
||||||
connections.forEach(Lang.bind(this, this._addConnection));
|
connections.forEach(Lang.bind(this, this._addConnection));
|
||||||
},
|
},
|
||||||
|
|
||||||
_newConnection: function(settings, connection) {
|
_connectionAdded: function(client, connection) {
|
||||||
this._addConnection(connection);
|
this._addConnection(connection);
|
||||||
},
|
},
|
||||||
|
|
||||||
_connectionRemoved: function(connection) {
|
_connectionRemoved: function(client, connection) {
|
||||||
let pos = this._connections.indexOf(connection);
|
let pos = this._connections.indexOf(connection);
|
||||||
if (pos != -1)
|
if (pos != -1)
|
||||||
this._connections.splice(pos, 1);
|
this._connections.splice(pos, 1);
|
||||||
@@ -1947,13 +1925,12 @@ var NMApplet = new Lang.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
connection.disconnect(connection._removedId);
|
|
||||||
connection.disconnect(connection._updatedId);
|
connection.disconnect(connection._updatedId);
|
||||||
connection._removedId = connection._updatedId = 0;
|
connection._updatedId = 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateConnection: function(connection) {
|
_updateConnection: function(connection) {
|
||||||
let connectionSettings = connection.get_setting_by_name(NetworkManager.SETTING_CONNECTION_SETTING_NAME);
|
let connectionSettings = connection.get_setting_by_name(NM.SETTING_CONNECTION_SETTING_NAME);
|
||||||
connection._type = connectionSettings.type;
|
connection._type = connectionSettings.type;
|
||||||
connection._section = this._ctypes[connection._type] || NMConnectionCategory.INVALID;
|
connection._section = this._ctypes[connection._type] || NMConnectionCategory.INVALID;
|
||||||
|
|
||||||
@@ -1974,7 +1951,7 @@ var NMApplet = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_syncNMState: function() {
|
_syncNMState: function() {
|
||||||
this.indicators.visible = this._client.manager_running;
|
this.indicators.visible = this._client.nm_running;
|
||||||
this.menu.actor.visible = this._client.networking_enabled;
|
this.menu.actor.visible = this._client.networking_enabled;
|
||||||
|
|
||||||
this._syncConnectivity();
|
this._syncConnectivity();
|
||||||
@@ -2015,7 +1992,7 @@ var NMApplet = new Lang.Class({
|
|||||||
this._client.check_connectivity_async(null, Lang.bind(this, function(client, result) {
|
this._client.check_connectivity_async(null, Lang.bind(this, function(client, result) {
|
||||||
try {
|
try {
|
||||||
let state = client.check_connectivity_finish(result);
|
let state = client.check_connectivity_finish(result);
|
||||||
if (state >= NetworkManager.ConnectivityState.FULL)
|
if (state >= NM.ConnectivityState.FULL)
|
||||||
this._closeConnectivityCheck(path);
|
this._closeConnectivityCheck(path);
|
||||||
} catch(e) { }
|
} catch(e) { }
|
||||||
}));
|
}));
|
||||||
@@ -2026,19 +2003,19 @@ var NMApplet = new Lang.Class({
|
|||||||
|
|
||||||
_syncConnectivity: function() {
|
_syncConnectivity: function() {
|
||||||
if (this._mainConnection == null ||
|
if (this._mainConnection == null ||
|
||||||
this._mainConnection.state != NetworkManager.ActiveConnectionState.ACTIVATED) {
|
this._mainConnection.state != NM.ActiveConnectionState.ACTIVATED) {
|
||||||
this._flushConnectivityQueue();
|
this._flushConnectivityQueue();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let isPortal = this._client.connectivity == NetworkManager.ConnectivityState.PORTAL;
|
let isPortal = this._client.connectivity == NM.ConnectivityState.PORTAL;
|
||||||
// For testing, allow interpreting any value != FULL as PORTAL, because
|
// For testing, allow interpreting any value != FULL as PORTAL, because
|
||||||
// LIMITED (no upstream route after the default gateway) is easy to obtain
|
// LIMITED (no upstream route after the default gateway) is easy to obtain
|
||||||
// with a tethered phone
|
// with a tethered phone
|
||||||
// NONE is also possible, with a connection configured to force no default route
|
// NONE is also possible, with a connection configured to force no default route
|
||||||
// (but in general we should only prompt a portal if we know there is a portal)
|
// (but in general we should only prompt a portal if we know there is a portal)
|
||||||
if (GLib.getenv('GNOME_SHELL_CONNECTIVITY_TEST') != null)
|
if (GLib.getenv('GNOME_SHELL_CONNECTIVITY_TEST') != null)
|
||||||
isPortal = isPortal || this._client.connectivity < NetworkManager.ConnectivityState.FULL;
|
isPortal = isPortal || this._client.connectivity < NM.ConnectivityState.FULL;
|
||||||
if (!isPortal || Main.sessionMode.isGreeter)
|
if (!isPortal || Main.sessionMode.isGreeter)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -2078,12 +2055,12 @@ var NMApplet = new Lang.Class({
|
|||||||
dev = this._mainConnection._primaryDevice;
|
dev = this._mainConnection._primaryDevice;
|
||||||
|
|
||||||
let state = this._client.get_state();
|
let state = this._client.get_state();
|
||||||
let connected = state == NetworkManager.State.CONNECTED_GLOBAL;
|
let connected = state == NM.State.CONNECTED_GLOBAL;
|
||||||
this._primaryIndicator.visible = (dev != null) || connected;
|
this._primaryIndicator.visible = (dev != null) || connected;
|
||||||
if (dev) {
|
if (dev) {
|
||||||
this._primaryIndicator.icon_name = dev.getIndicatorIcon();
|
this._primaryIndicator.icon_name = dev.getIndicatorIcon();
|
||||||
} else if (connected) {
|
} else if (connected) {
|
||||||
if (this._client.connectivity == NetworkManager.ConnectivityState.FULL)
|
if (this._client.connectivity == NM.ConnectivityState.FULL)
|
||||||
this._primaryIndicator.icon_name = 'network-wired-symbolic';
|
this._primaryIndicator.icon_name = 'network-wired-symbolic';
|
||||||
else
|
else
|
||||||
this._primaryIndicator.icon_name = 'network-wired-no-route-symbolic';
|
this._primaryIndicator.icon_name = 'network-wired-no-route-symbolic';
|
||||||
|
|||||||
341
js/ui/status/thunderbolt.js
Normal file
341
js/ui/status/thunderbolt.js
Normal file
@@ -0,0 +1,341 @@
|
|||||||
|
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||||
|
|
||||||
|
// the following is a modified version of bolt/contrib/js/client.js
|
||||||
|
|
||||||
|
const Gio = imports.gi.Gio;
|
||||||
|
const GLib = imports.gi.GLib;
|
||||||
|
const Lang = imports.lang;
|
||||||
|
const Shell = imports.gi.Shell;
|
||||||
|
const Signals = imports.signals;
|
||||||
|
|
||||||
|
const Main = imports.ui.main;
|
||||||
|
const MessageTray = imports.ui.messageTray;
|
||||||
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
|
|
||||||
|
/* Keep in sync with data/org.freedesktop.bolt.xml */
|
||||||
|
|
||||||
|
const BoltClientInterface = '<node> \
|
||||||
|
<interface name="org.freedesktop.bolt1.Manager"> \
|
||||||
|
<property name="Probing" type="b" access="read"></property> \
|
||||||
|
<method name="EnrollDevice"> \
|
||||||
|
<arg type="s" name="uid" direction="in"> </arg> \
|
||||||
|
<arg type="u" name="policy" direction="in"> </arg> \
|
||||||
|
<arg type="u" name="flags" direction="in"> </arg> \
|
||||||
|
<arg name="device" direction="out" type="o"> </arg> \
|
||||||
|
</method> \
|
||||||
|
<signal name="DeviceAdded"> \
|
||||||
|
<arg name="device" type="o"> </arg> \
|
||||||
|
</signal> \
|
||||||
|
</interface> \
|
||||||
|
</node>';
|
||||||
|
|
||||||
|
const BoltDeviceInterface = '<node> \
|
||||||
|
<interface name="org.freedesktop.bolt1.Device"> \
|
||||||
|
<property name="Uid" type="s" access="read"></property> \
|
||||||
|
<property name="Name" type="s" access="read"></property> \
|
||||||
|
<property name="Vendor" type="s" access="read"></property> \
|
||||||
|
<property name="Status" type="u" access="read"></property> \
|
||||||
|
<property name="SysfsPath" type="s" access="read"></property> \
|
||||||
|
<property name="Security" type="u" access="read"></property> \
|
||||||
|
<property name="Parent" type="s" access="read"></property> \
|
||||||
|
<property name="Stored" type="b" access="read"></property> \
|
||||||
|
<property name="Policy" type="u" access="read"></property> \
|
||||||
|
<property name="Key" type="u" access="read"></property> \
|
||||||
|
</interface> \
|
||||||
|
</node>';
|
||||||
|
|
||||||
|
const BoltClientProxy = Gio.DBusProxy.makeProxyWrapper(BoltClientInterface);
|
||||||
|
const BoltDeviceProxy = Gio.DBusProxy.makeProxyWrapper(BoltDeviceInterface);
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
var Status = {
|
||||||
|
DISCONNECTED: 0,
|
||||||
|
CONNECTED: 1,
|
||||||
|
AUTHORIZING: 2,
|
||||||
|
AUTH_ERROR: 3,
|
||||||
|
AUTHORIZED: 4,
|
||||||
|
AUTHORIZED_SECURE: 5,
|
||||||
|
AUTHORIZED_NEWKY: 6
|
||||||
|
};
|
||||||
|
|
||||||
|
var Policy = {
|
||||||
|
DEFAULT: 0,
|
||||||
|
MANUAL: 1,
|
||||||
|
AUTO:2
|
||||||
|
};
|
||||||
|
|
||||||
|
var AuthFlags = {
|
||||||
|
NONE: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
const BOLT_DBUS_NAME = 'org.freedesktop.bolt';
|
||||||
|
const BOLT_DBUS_PATH = '/org/freedesktop/bolt';
|
||||||
|
|
||||||
|
var Client = new Lang.Class({
|
||||||
|
Name: 'BoltClient',
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
|
||||||
|
this._proxy = null;
|
||||||
|
new BoltClientProxy(
|
||||||
|
Gio.DBus.system,
|
||||||
|
BOLT_DBUS_NAME,
|
||||||
|
BOLT_DBUS_PATH,
|
||||||
|
Lang.bind(this, this._onProxyReady)
|
||||||
|
);
|
||||||
|
|
||||||
|
this.probing = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
_onProxyReady: function(proxy, error) {
|
||||||
|
if (error !== null) {
|
||||||
|
log('error creating bolt proxy: %s'.format(error.message));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this._proxy = proxy;
|
||||||
|
this._propsChangedId = this._proxy.connect('g-properties-changed', Lang.bind(this, this._onPropertiesChanged));
|
||||||
|
this._deviceAddedId = this._proxy.connectSignal('DeviceAdded', Lang.bind(this, this._onDeviceAdded), true);
|
||||||
|
|
||||||
|
this.probing = this._proxy.Probing;
|
||||||
|
if (this.probing)
|
||||||
|
this.emit('probing-changed', this.probing);
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
_onPropertiesChanged: function(proxy, properties) {
|
||||||
|
let unpacked = properties.deep_unpack();
|
||||||
|
if (!('Probing' in unpacked))
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.probing = this._proxy.Probing;
|
||||||
|
this.emit('probing-changed', this.probing);
|
||||||
|
},
|
||||||
|
|
||||||
|
_onDeviceAdded: function(proxy, emitter, params) {
|
||||||
|
let [path] = params;
|
||||||
|
let device = new BoltDeviceProxy(Gio.DBus.system,
|
||||||
|
BOLT_DBUS_NAME,
|
||||||
|
path);
|
||||||
|
this.emit('device-added', device);
|
||||||
|
},
|
||||||
|
|
||||||
|
/* public methods */
|
||||||
|
close: function() {
|
||||||
|
if (!this._proxy)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._proxy.disconnectSignal(this._deviceAddedId);
|
||||||
|
this._proxy.disconnect(this._propsChangedId);
|
||||||
|
this._proxy = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
enrollDevice: function(id, policy, callback) {
|
||||||
|
this._proxy.EnrollDeviceRemote(id, policy, AuthFlags.NONE,
|
||||||
|
Lang.bind(this, function (res, error) {
|
||||||
|
if (error) {
|
||||||
|
callback(null, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let [path] = res;
|
||||||
|
let device = new BoltDeviceProxy(Gio.DBus.system,
|
||||||
|
BOLT_DBUS_NAME,
|
||||||
|
path);
|
||||||
|
callback(device, null);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Signals.addSignalMethods(Client.prototype);
|
||||||
|
|
||||||
|
/* helper class to automatically authorize new devices */
|
||||||
|
var AuthRobot = new Lang.Class({
|
||||||
|
Name: 'BoltAuthRobot',
|
||||||
|
|
||||||
|
_init: function(client) {
|
||||||
|
|
||||||
|
this._client = client;
|
||||||
|
|
||||||
|
this._devicesToEnroll = [];
|
||||||
|
this._enrolling = false;
|
||||||
|
|
||||||
|
this._client.connect('device-added', Lang.bind(this, this._onDeviceAdded));
|
||||||
|
},
|
||||||
|
|
||||||
|
close: function() {
|
||||||
|
this.disconnectAll();
|
||||||
|
this._client = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
/* the "device-added" signal will be emitted by boltd for every
|
||||||
|
* device that is not currently stored in the database. We are
|
||||||
|
* only interested in those devices, because all known devices
|
||||||
|
* will be handled by the user himself */
|
||||||
|
_onDeviceAdded: function(cli, dev) {
|
||||||
|
if (dev.Status !== Status.CONNECTED)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* check if we should enroll the device */
|
||||||
|
let res = [false];
|
||||||
|
this.emit('enroll-device', dev, res);
|
||||||
|
if (res[0] !== true)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* ok, we should authorize the device, add it to the back
|
||||||
|
* of the list */
|
||||||
|
this._devicesToEnroll.push(dev);
|
||||||
|
this._enrollDevices();
|
||||||
|
},
|
||||||
|
|
||||||
|
/* The enrollment queue:
|
||||||
|
* - new devices will be added to the end of the array.
|
||||||
|
* - an idle callback will be scheduled that will keep
|
||||||
|
* calling itself as long as there a devices to be
|
||||||
|
* enrolled.
|
||||||
|
*/
|
||||||
|
_enrollDevices: function() {
|
||||||
|
if (this._enrolling)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.enrolling = true;
|
||||||
|
GLib.idle_add(GLib.PRIORITY_DEFAULT,
|
||||||
|
Lang.bind(this, this._enrollDevicesIdle));
|
||||||
|
},
|
||||||
|
|
||||||
|
_onEnrollDone: function(device, error) {
|
||||||
|
if (error)
|
||||||
|
this.emit('enroll-failed', error, device);
|
||||||
|
|
||||||
|
/* TODO: scan the list of devices to be authorized for children
|
||||||
|
* of this device and remove them (and their children and
|
||||||
|
* their children and ....) from the device queue
|
||||||
|
*/
|
||||||
|
this._enrolling = this._devicesToEnroll.length > 0;
|
||||||
|
|
||||||
|
if (this._enrolling)
|
||||||
|
GLib.idle_add(GLib.PRIORITY_DEFAULT,
|
||||||
|
Lang.bind(this, this._enrollDevicesIdle));
|
||||||
|
},
|
||||||
|
|
||||||
|
_enrollDevicesIdle: function() {
|
||||||
|
let devices = this._devicesToEnroll;
|
||||||
|
|
||||||
|
let dev = devices.shift();
|
||||||
|
if (dev === undefined)
|
||||||
|
return GLib.SOURCE_REMOVE;
|
||||||
|
|
||||||
|
this._client.enrollDevice(dev.Uid,
|
||||||
|
Policy.DEFAULT,
|
||||||
|
Lang.bind(this, this._onEnrollDone));
|
||||||
|
return GLib.SOURCE_REMOVE;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Signals.addSignalMethods(AuthRobot.prototype);
|
||||||
|
|
||||||
|
/* eof client.js */
|
||||||
|
|
||||||
|
var Indicator = new Lang.Class({
|
||||||
|
Name: 'ThunderboltIndicator',
|
||||||
|
Extends: PanelMenu.SystemIndicator,
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
this.parent();
|
||||||
|
|
||||||
|
this._indicator = this._addIndicator();
|
||||||
|
this._indicator.icon_name = 'thunderbolt-symbolic';
|
||||||
|
|
||||||
|
this._client = new Client();
|
||||||
|
this._client.connect('probing-changed', Lang.bind(this, this._onProbing));
|
||||||
|
|
||||||
|
this._robot = new AuthRobot(this._client);
|
||||||
|
|
||||||
|
this._robot.connect('enroll-device', Lang.bind(this, this._onEnrollDevice));
|
||||||
|
this._robot.connect('enroll-failed', Lang.bind(this, this._onEnrollFailed));
|
||||||
|
|
||||||
|
Main.sessionMode.connect('updated', Lang.bind(this, this._sync));
|
||||||
|
this._sync();
|
||||||
|
|
||||||
|
this._source = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
_onDestroy: function() {
|
||||||
|
this._robot.close();
|
||||||
|
this._client.close();
|
||||||
|
},
|
||||||
|
|
||||||
|
_ensureSource: function() {
|
||||||
|
if (!this._source) {
|
||||||
|
this._source = new MessageTray.Source(_("Thunderbolt"),
|
||||||
|
'thunderbolt-symbolic');
|
||||||
|
this._source.connect('destroy', Lang.bind(this, function() {
|
||||||
|
this._source = null;
|
||||||
|
}));
|
||||||
|
|
||||||
|
Main.messageTray.add(this._source);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this._source;
|
||||||
|
},
|
||||||
|
|
||||||
|
_notify: function(title, body) {
|
||||||
|
if (this._notification)
|
||||||
|
this._notification.destroy();
|
||||||
|
|
||||||
|
let source = this._ensureSource();
|
||||||
|
|
||||||
|
this._notification = new MessageTray.Notification(source, title, body);
|
||||||
|
this._notification.setUrgency(MessageTray.Urgency.HIGH);
|
||||||
|
this._notification.connect('destroy', function() {
|
||||||
|
this._notification = null;
|
||||||
|
});
|
||||||
|
this._notification.connect('activated', () => {
|
||||||
|
let app = Shell.AppSystem.get_default().lookup_app('gnome-thunderbolt-panel.desktop');
|
||||||
|
if (app)
|
||||||
|
app.activate();
|
||||||
|
});
|
||||||
|
this._source.notify(this._notification);
|
||||||
|
},
|
||||||
|
|
||||||
|
/* Session callbacks */
|
||||||
|
_sync: function() {
|
||||||
|
let active = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
|
||||||
|
this._indicator.visible = active && this._client.probing;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/* Bolt.Client callbacks */
|
||||||
|
_onProbing: function(cli, probing) {
|
||||||
|
if (probing)
|
||||||
|
this._indicator.icon_name = 'thunderbolt-acquiring-symbolic';
|
||||||
|
else
|
||||||
|
this._indicator.icon_name = 'thunderbolt-symbolic';
|
||||||
|
|
||||||
|
this._sync();
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/* AuthRobot callbacks */
|
||||||
|
_onEnrollDevice: function(obj, device, policy) {
|
||||||
|
let auth = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
|
||||||
|
policy[0] = auth;
|
||||||
|
|
||||||
|
log("thunderbolt: [%s] auto enrollment: %s".format(device.Name, auth ? 'yes' : 'no'));
|
||||||
|
if (auth)
|
||||||
|
return; /* we are done */
|
||||||
|
|
||||||
|
const title = _('Unknown Thunderbolt device');
|
||||||
|
const body = _('New device has been detected while you were away. Please disconnect and reconnect the device to start using it.');
|
||||||
|
this._notify(title, body);
|
||||||
|
},
|
||||||
|
|
||||||
|
_onEnrollFailed: function (obj, device, error) {
|
||||||
|
const title = _('Thunderbolt authorization error');
|
||||||
|
const body = _('Could not authorize the thunderbolt device: %s'.format(error.message));
|
||||||
|
this._notify(title, body);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
@@ -133,6 +133,7 @@ var SwitcherPopup = new Lang.Class({
|
|||||||
this.actor.add_actor(this._switcherList.actor);
|
this.actor.add_actor(this._switcherList.actor);
|
||||||
this._switcherList.connect('item-activated', Lang.bind(this, this._itemActivated));
|
this._switcherList.connect('item-activated', Lang.bind(this, this._itemActivated));
|
||||||
this._switcherList.connect('item-entered', Lang.bind(this, this._itemEntered));
|
this._switcherList.connect('item-entered', Lang.bind(this, this._itemEntered));
|
||||||
|
this._switcherList.connect('item-removed', Lang.bind(this, this._itemRemoved));
|
||||||
|
|
||||||
// Need to force an allocation so we can figure out whether we
|
// Need to force an allocation so we can figure out whether we
|
||||||
// need to scroll when selecting
|
// need to scroll when selecting
|
||||||
@@ -247,6 +248,19 @@ var SwitcherPopup = new Lang.Class({
|
|||||||
this._itemEnteredHandler(n);
|
this._itemEnteredHandler(n);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_itemRemovedHandler: function(n) {
|
||||||
|
if (this._items.length > 0) {
|
||||||
|
let newIndex = Math.min(n, this._items.length - 1);
|
||||||
|
this._select(newIndex);
|
||||||
|
} else {
|
||||||
|
this.actor.destroy();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_itemRemoved: function(switcher, n) {
|
||||||
|
this._itemRemovedHandler(n);
|
||||||
|
},
|
||||||
|
|
||||||
_disableHover: function() {
|
_disableHover: function() {
|
||||||
this.mouseActive = false;
|
this.mouseActive = false;
|
||||||
|
|
||||||
@@ -421,6 +435,7 @@ var SwitcherList = new Lang.Class({
|
|||||||
removeItem: function(index) {
|
removeItem: function(index) {
|
||||||
let item = this._items.splice(index, 1);
|
let item = this._items.splice(index, 1);
|
||||||
item[0].destroy();
|
item[0].destroy();
|
||||||
|
this.emit('item-removed', index);
|
||||||
},
|
},
|
||||||
|
|
||||||
_onItemClicked: function (index) {
|
_onItemClicked: function (index) {
|
||||||
@@ -442,15 +457,15 @@ var SwitcherList = new Lang.Class({
|
|||||||
this._items[this._highlighted].remove_style_pseudo_class('selected');
|
this._items[this._highlighted].remove_style_pseudo_class('selected');
|
||||||
}
|
}
|
||||||
|
|
||||||
this._highlighted = index;
|
if (this._items[index]) {
|
||||||
|
|
||||||
if (this._highlighted != -1) {
|
|
||||||
if (justOutline)
|
if (justOutline)
|
||||||
this._items[this._highlighted].add_style_pseudo_class('outlined');
|
this._items[index].add_style_pseudo_class('outlined');
|
||||||
else
|
else
|
||||||
this._items[this._highlighted].add_style_pseudo_class('selected');
|
this._items[index].add_style_pseudo_class('selected');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._highlighted = index;
|
||||||
|
|
||||||
let adjustment = this._scrollView.hscroll.adjustment;
|
let adjustment = this._scrollView.hscroll.adjustment;
|
||||||
let [value, lower, upper, stepIncrement, pageIncrement, pageSize] = adjustment.get_values();
|
let [value, lower, upper, stepIncrement, pageIncrement, pageSize] = adjustment.get_values();
|
||||||
let [absItemX, absItemY] = this._items[index].get_transformed_position();
|
let [absItemX, absItemY] = this._items[index].get_transformed_position();
|
||||||
|
|||||||
@@ -606,6 +606,15 @@ var ViewSelector = new Lang.Class({
|
|||||||
// - cancel the search
|
// - cancel the search
|
||||||
this.reset();
|
this.reset();
|
||||||
}
|
}
|
||||||
|
} else if (!this._text.has_key_focus() &&
|
||||||
|
(event.type() == Clutter.EventType.KEY_PRESS ||
|
||||||
|
event.type() == Clutter.EventType.KEY_RELEASE)) {
|
||||||
|
let unichar = event.get_key_unicode();
|
||||||
|
|
||||||
|
if (GLib.unichar_isprint(unichar)) {
|
||||||
|
this._text.grab_key_focus();
|
||||||
|
return this._text.event(event, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|||||||
@@ -159,7 +159,7 @@
|
|||||||
<title>Additional Information</title>
|
<title>Additional Information</title>
|
||||||
|
|
||||||
<para>For further information, visit the website
|
<para>For further information, visit the website
|
||||||
<ulink url="http://live.gnome.org/GnomeShell">http://live.gnome.org/GnomeShell</ulink>.</para>
|
<ulink url="https://wiki.gnome.org/Projects/GnomeShell">https://wiki.gnome.org/Projects/GnomeShell</ulink>.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
</refentry>
|
</refentry>
|
||||||
|
|||||||
52
meson.build
52
meson.build
@@ -27,6 +27,7 @@ mutter_req = '>= 3.26.0'
|
|||||||
polkit_req = '>= 0.100'
|
polkit_req = '>= 0.100'
|
||||||
schemas_req = '>= 3.21.3'
|
schemas_req = '>= 3.21.3'
|
||||||
startup_req = '>= 0.11'
|
startup_req = '>= 0.11'
|
||||||
|
ibus_req = '>= 1.5.2'
|
||||||
|
|
||||||
bt_req = '>= 3.9.0'
|
bt_req = '>= 3.9.0'
|
||||||
gst_req = '>= 0.11.92'
|
gst_req = '>= 0.11.92'
|
||||||
@@ -43,7 +44,6 @@ datadir = join_paths(prefix, get_option('datadir'))
|
|||||||
libdir = join_paths(prefix, get_option('libdir'))
|
libdir = join_paths(prefix, get_option('libdir'))
|
||||||
libexecdir = join_paths(prefix, get_option('libexecdir'))
|
libexecdir = join_paths(prefix, get_option('libexecdir'))
|
||||||
mandir = join_paths(prefix, get_option('mandir'))
|
mandir = join_paths(prefix, get_option('mandir'))
|
||||||
sysconfdir = join_paths(prefix, get_option('sysconfdir'))
|
|
||||||
|
|
||||||
pkgdatadir = join_paths(datadir, meson.project_name())
|
pkgdatadir = join_paths(datadir, meson.project_name())
|
||||||
pkglibdir = join_paths(libdir, meson.project_name())
|
pkglibdir = join_paths(libdir, meson.project_name())
|
||||||
@@ -88,6 +88,7 @@ mutter_dep = dependency(libmutter_pc, version: mutter_req)
|
|||||||
polkit_dep = dependency('polkit-agent-1', version: polkit_req)
|
polkit_dep = dependency('polkit-agent-1', version: polkit_req)
|
||||||
soup_dep = dependency('libsoup-2.4')
|
soup_dep = dependency('libsoup-2.4')
|
||||||
startup_dep = dependency('libstartup-notification-1.0', version: startup_req)
|
startup_dep = dependency('libstartup-notification-1.0', version: startup_req)
|
||||||
|
ibus_dep = dependency('ibus-1.0', version: ibus_req)
|
||||||
x11_dep = dependency('x11')
|
x11_dep = dependency('x11')
|
||||||
schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req)
|
schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req)
|
||||||
|
|
||||||
@@ -102,54 +103,34 @@ if enable_recorder
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
nm_deps = []
|
nm_deps = []
|
||||||
enable_networkmanager = get_option('enable-networkmanager')
|
if get_option('networkmanager')
|
||||||
if enable_networkmanager != 'no'
|
nm_deps += dependency('libnm', version: nm_req)
|
||||||
want_networkmanager = enable_networkmanager == 'yes'
|
nm_deps += dependency('libsecret-1', version: secret_req)
|
||||||
|
|
||||||
nm_deps += dependency('libnm-glib',
|
vpndir = nm_deps[0].get_pkgconfig_variable('vpnservicedir')
|
||||||
version: nm_req, required: want_networkmanager
|
|
||||||
)
|
|
||||||
nm_deps += dependency('libnm-util',
|
|
||||||
version: nm_req, required: want_networkmanager
|
|
||||||
)
|
|
||||||
nm_deps += dependency('libnm-gtk',
|
|
||||||
version: nm_req, required: want_networkmanager
|
|
||||||
)
|
|
||||||
nm_deps += dependency('libsecret-1',
|
|
||||||
version: secret_req, required: want_networkmanager
|
|
||||||
)
|
|
||||||
|
|
||||||
have_networkmanager = true
|
have_networkmanager = true
|
||||||
foreach dep : nm_deps
|
|
||||||
have_networkmanager = have_networkmanager and dep.found()
|
|
||||||
endforeach
|
|
||||||
|
|
||||||
if not have_networkmanager
|
|
||||||
nm_deps = []
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
|
vpndir = prefix
|
||||||
|
|
||||||
have_networkmanager = false
|
have_networkmanager = false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
enable_systemd = get_option('enable-systemd')
|
if get_option('systemd')
|
||||||
if enable_systemd != 'no'
|
systemd_dep = dependency('libsystemd')
|
||||||
want_systemd = enable_systemd == 'yes'
|
|
||||||
systemd_dep = dependency('libsystemd', required: want_systemd)
|
|
||||||
have_systemd = systemd_dep.found()
|
have_systemd = systemd_dep.found()
|
||||||
else
|
else
|
||||||
systemd_dep = []
|
systemd_dep = []
|
||||||
have_systemd = false
|
have_systemd = false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
enable_plugin = get_option('enable-browser-plugin')
|
if get_option('browser_plugin')
|
||||||
if enable_plugin
|
|
||||||
json_glib_dep = dependency('json-glib-1.0', version: json_glib_req)
|
json_glib_dep = dependency('json-glib-1.0', version: json_glib_req)
|
||||||
|
|
||||||
subdir('browser-plugin')
|
subdir('browser-plugin')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
enable_man = get_option('enable-man')
|
if get_option('man')
|
||||||
if enable_man
|
|
||||||
xsltproc = find_program('xsltproc')
|
xsltproc = find_program('xsltproc')
|
||||||
|
|
||||||
subdir('man')
|
subdir('man')
|
||||||
@@ -188,12 +169,13 @@ conf_inc = include_directories('.')
|
|||||||
|
|
||||||
libgvc = subproject('gvc',
|
libgvc = subproject('gvc',
|
||||||
default_options: [
|
default_options: [
|
||||||
'package-name=' + meson.project_name(),
|
'package_name=' + meson.project_name(),
|
||||||
'package-version=' + meson.project_version(),
|
'package_version=' + meson.project_version(),
|
||||||
'pkgdatadir=' + pkgdatadir,
|
'pkgdatadir=' + pkgdatadir,
|
||||||
'pkglibdir=' + pkglibdir,
|
'pkglibdir=' + pkglibdir,
|
||||||
'static=false',
|
'static=false',
|
||||||
'with-introspection=true'
|
'introspection=true',
|
||||||
|
'alsa=false'
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
libgvc_gir = libgvc.get_variable('libgvc_gir')
|
libgvc_gir = libgvc.get_variable('libgvc_gir')
|
||||||
@@ -204,6 +186,6 @@ subdir('po')
|
|||||||
subdir('data')
|
subdir('data')
|
||||||
subdir('tests')
|
subdir('tests')
|
||||||
|
|
||||||
if get_option('enable-documentation')
|
if get_option('gtk_doc')
|
||||||
subdir('docs/reference')
|
subdir('docs/reference')
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,31 +1,29 @@
|
|||||||
option('enable-browser-plugin',
|
option('browser_plugin',
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
value: true,
|
value: true,
|
||||||
description: 'Enable extensions.gnome.org browser plugin'
|
description: 'Enable extensions.gnome.org browser plugin'
|
||||||
)
|
)
|
||||||
|
|
||||||
option('enable-documentation',
|
option('gtk_doc',
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
value: false,
|
value: false,
|
||||||
description: 'Build API reference'
|
description: 'Build API reference'
|
||||||
)
|
)
|
||||||
|
|
||||||
option('enable-man',
|
option('man',
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
value: true,
|
value: true,
|
||||||
description: 'Generate man pages'
|
description: 'Generate man pages'
|
||||||
)
|
)
|
||||||
|
|
||||||
option('enable-networkmanager',
|
option('networkmanager',
|
||||||
type: 'combo',
|
type: 'boolean',
|
||||||
choices: ['yes', 'no', 'auto'],
|
value: true,
|
||||||
value: 'auto',
|
|
||||||
description: 'Enable NetworkManager support'
|
description: 'Enable NetworkManager support'
|
||||||
)
|
)
|
||||||
|
|
||||||
option('enable-systemd',
|
option('systemd',
|
||||||
type: 'combo',
|
type: 'boolean',
|
||||||
choices: ['yes', 'no', 'auto'],
|
value: true,
|
||||||
value: 'auto',
|
|
||||||
description: 'Enable systemd integration'
|
description: 'Enable systemd integration'
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ js/ui/endSessionDialog.js
|
|||||||
js/ui/extensionDownloader.js
|
js/ui/extensionDownloader.js
|
||||||
js/ui/extensionSystem.js
|
js/ui/extensionSystem.js
|
||||||
js/ui/inhibitShortcutsDialog.js
|
js/ui/inhibitShortcutsDialog.js
|
||||||
|
js/ui/kbdA11yDialog.js
|
||||||
js/ui/keyboard.js
|
js/ui/keyboard.js
|
||||||
js/ui/lookingGlass.js
|
js/ui/lookingGlass.js
|
||||||
js/ui/main.js
|
js/ui/main.js
|
||||||
@@ -59,6 +60,7 @@ js/ui/status/nightLight.js
|
|||||||
js/ui/status/power.js
|
js/ui/status/power.js
|
||||||
js/ui/status/rfkill.js
|
js/ui/status/rfkill.js
|
||||||
js/ui/status/system.js
|
js/ui/status/system.js
|
||||||
|
js/ui/status/thunderbolt.js
|
||||||
js/ui/status/volume.js
|
js/ui/status/volume.js
|
||||||
js/ui/switchMonitor.js
|
js/ui/switchMonitor.js
|
||||||
js/ui/unlockDialog.js
|
js/ui/unlockDialog.js
|
||||||
|
|||||||
72
po/ar.po
72
po/ar.po
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2017-11-03 10:10+0200\n"
|
"POT-Creation-Date: 2017-12-10 11:28+0200\n"
|
||||||
"PO-Revision-Date: 2017-11-03 10:17+0200\n"
|
"PO-Revision-Date: 2017-12-10 11:31+0200\n"
|
||||||
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
|
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
|
||||||
"Language-Team: Arabic <doc@arabeyes.org>\n"
|
"Language-Team: Arabic <doc@arabeyes.org>\n"
|
||||||
"Language: ar\n"
|
"Language: ar\n"
|
||||||
@@ -88,7 +88,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:26
|
#: data/org.gnome.shell.gschema.xml.in:26
|
||||||
msgid "Disable user extensions"
|
msgid "Disable user extensions"
|
||||||
msgstr ""
|
msgstr "عطّل امتدادات المستخدمين"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:27
|
#: data/org.gnome.shell.gschema.xml.in:27
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -119,7 +119,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:51
|
#: data/org.gnome.shell.gschema.xml.in:51
|
||||||
msgid "App Picker View"
|
msgid "App Picker View"
|
||||||
msgstr ""
|
msgstr "منظور منتقي التطبيقات"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:52
|
#: data/org.gnome.shell.gschema.xml.in:52
|
||||||
msgid "Index of the currently selected view in the application picker."
|
msgid "Index of the currently selected view in the application picker."
|
||||||
@@ -362,18 +362,18 @@ msgstr "(أو مرر إصبع)"
|
|||||||
#. Translators: The name of the power-off action in search
|
#. Translators: The name of the power-off action in search
|
||||||
#: js/misc/systemActions.js:99
|
#: js/misc/systemActions.js:99
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Power off"
|
msgid "Power Off"
|
||||||
msgstr "أطفئ"
|
msgstr "أطفئ"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:102
|
#: js/misc/systemActions.js:102
|
||||||
msgid "power off;shutdown"
|
msgid "power off;shutdown;reboot;restart"
|
||||||
msgstr "أطفئ;أغلق"
|
msgstr "أطفئ;أغلق;أعد التشغيل"
|
||||||
|
|
||||||
#. Translators: The name of the lock screen action in search
|
#. Translators: The name of the lock screen action in search
|
||||||
#: js/misc/systemActions.js:106
|
#: js/misc/systemActions.js:106
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock screen"
|
msgid "Lock Screen"
|
||||||
msgstr "أوصد الشاشة"
|
msgstr "أوصد الشاشة"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
||||||
@@ -384,7 +384,7 @@ msgstr "أوصد الشاشة"
|
|||||||
#. Translators: The name of the logout action in search
|
#. Translators: The name of the logout action in search
|
||||||
#: js/misc/systemActions.js:113
|
#: js/misc/systemActions.js:113
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Log out"
|
msgid "Log Out"
|
||||||
msgstr "اخرج"
|
msgstr "اخرج"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
||||||
@@ -406,8 +406,8 @@ msgstr "علّق"
|
|||||||
#. Translators: The name of the switch user action in search
|
#. Translators: The name of the switch user action in search
|
||||||
#: js/misc/systemActions.js:127
|
#: js/misc/systemActions.js:127
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Switch user"
|
msgid "Switch User"
|
||||||
msgstr "بدّل المستخدم"
|
msgstr "غيّر المستخدم"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:130
|
#: js/misc/systemActions.js:130
|
||||||
@@ -417,13 +417,13 @@ msgstr "بدّل المستخدم"
|
|||||||
#. Translators: The name of the lock orientation action in search
|
#. Translators: The name of the lock orientation action in search
|
||||||
#: js/misc/systemActions.js:134
|
#: js/misc/systemActions.js:134
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock orientation"
|
msgid "Lock Orientation"
|
||||||
msgstr "أوصد الاتجاه"
|
msgstr "أوصد الاتجاه"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:137
|
#: js/misc/systemActions.js:137
|
||||||
msgid "lock orientation"
|
msgid "lock orientation;screen;rotation"
|
||||||
msgstr "أوصد الاتجاه"
|
msgstr "أوصد الاتجاه;شاشة;تدوير"
|
||||||
|
|
||||||
#: js/misc/util.js:122
|
#: js/misc/util.js:122
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
@@ -627,7 +627,7 @@ msgstr "نافذة جديدة"
|
|||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "شغل باستخدام بطاقة الرسوميات المنفصلة"
|
msgstr "شغل باستخدام بطاقة الرسوميات المنفصلة"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
#: js/ui/appDisplay.js:1956 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "أزِل من المفضّلة"
|
msgstr "أزِل من المفضّلة"
|
||||||
|
|
||||||
@@ -931,13 +931,13 @@ msgstr "غيّر %s اسمه إلى %s"
|
|||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "النوافذ"
|
msgstr "النوافذ"
|
||||||
|
|
||||||
#: js/ui/dash.js:250 js/ui/dash.js:291
|
#: js/ui/dash.js:246 js/ui/dash.js:287
|
||||||
msgid "Show Applications"
|
msgid "Show Applications"
|
||||||
msgstr "أظهر التطبيقات"
|
msgstr "أظهر التطبيقات"
|
||||||
|
|
||||||
#. Translators: this is the name of the dock/favorites area on
|
#. Translators: this is the name of the dock/favorites area on
|
||||||
#. the left of the overview
|
#. the left of the overview
|
||||||
#: js/ui/dash.js:449
|
#: js/ui/dash.js:445
|
||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "الشريط"
|
msgstr "الشريط"
|
||||||
|
|
||||||
@@ -956,15 +956,15 @@ msgstr "%e %B %Y"
|
|||||||
msgid "%A %B %e %Y"
|
msgid "%A %B %e %Y"
|
||||||
msgstr "%A %e %B %Y"
|
msgstr "%A %e %B %Y"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:145
|
#: js/ui/dateMenu.js:148
|
||||||
msgid "Add world clocks…"
|
msgid "Add world clocks…"
|
||||||
msgstr "أضف ساعات عالمية…"
|
msgstr "أضف ساعات عالمية…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:146
|
#: js/ui/dateMenu.js:149
|
||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "ساعات عالمية"
|
msgstr "ساعات عالمية"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:225
|
#: js/ui/dateMenu.js:228
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "الطقس"
|
msgstr "الطقس"
|
||||||
|
|
||||||
@@ -972,7 +972,7 @@ msgstr "الطقس"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:289
|
#: js/ui/dateMenu.js:292
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s طوال اليوم."
|
msgstr "%s طوال اليوم."
|
||||||
@@ -981,7 +981,7 @@ msgstr "%s طوال اليوم."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:295
|
#: js/ui/dateMenu.js:298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s، ثم %s فيما بعد."
|
msgstr "%s، ثم %s فيما بعد."
|
||||||
@@ -990,30 +990,30 @@ msgstr "%s، ثم %s فيما بعد."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:301
|
#: js/ui/dateMenu.js:304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s، ثم %s، و بعدها %s."
|
msgstr "%s، ثم %s، و بعدها %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:312
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "اختر موقعا…"
|
msgstr "اختر موقعا…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:315
|
#: js/ui/dateMenu.js:318
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "يحمّل…"
|
msgstr "يحمّل…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:321
|
#: js/ui/dateMenu.js:324
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "تبدو مثل %s."
|
msgstr "تبدو مثل %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:324
|
#: js/ui/dateMenu.js:327
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "اتصل بالإنترنت لمعلومات الطقس"
|
msgstr "اتصل بالإنترنت لمعلومات الطقس"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:326
|
#: js/ui/dateMenu.js:329
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "معلومات الطقس غير متاحة حاليًا"
|
msgstr "معلومات الطقس غير متاحة حاليًا"
|
||||||
|
|
||||||
@@ -1213,7 +1213,7 @@ msgstr "ارفض"
|
|||||||
msgid "Allow"
|
msgid "Allow"
|
||||||
msgstr "اسمح"
|
msgstr "اسمح"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
|
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:783
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "لوحة المفاتيح"
|
msgstr "لوحة المفاتيح"
|
||||||
|
|
||||||
@@ -1564,7 +1564,7 @@ msgstr "أوقف"
|
|||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "السطوع"
|
msgstr "السطوع"
|
||||||
|
|
||||||
#: js/ui/status/keyboard.js:805
|
#: js/ui/status/keyboard.js:806
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "أظهر تخطيط لوحة المفاتيح"
|
msgstr "أظهر تخطيط لوحة المفاتيح"
|
||||||
|
|
||||||
@@ -2128,6 +2128,18 @@ msgstr[5] "%u مدخل"
|
|||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "أصوات النظام"
|
msgstr "أصوات النظام"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Power off"
|
||||||
|
#~ msgstr "أطفئ"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Log out"
|
||||||
|
#~ msgstr "اخرج"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Switch user"
|
||||||
|
#~ msgstr "بدّل المستخدم"
|
||||||
|
|
||||||
#~ msgid "Hide tray"
|
#~ msgid "Hide tray"
|
||||||
#~ msgstr "أخفِ الصينية"
|
#~ msgstr "أخفِ الصينية"
|
||||||
|
|
||||||
|
|||||||
328
po/ca.po
328
po/ca.po
@@ -3,7 +3,7 @@
|
|||||||
# This file is distributed under the same license as the gnome-shell package.
|
# This file is distributed under the same license as the gnome-shell package.
|
||||||
# Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>, 2009.
|
# Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>, 2009.
|
||||||
# Jordi Serratosa <jordis@softcatala.cat>, 2012, 2017.
|
# Jordi Serratosa <jordis@softcatala.cat>, 2012, 2017.
|
||||||
# Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014, 2016.
|
# Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014, 2016, 2018.
|
||||||
# Jordi Mas i Hernàndez <jmas@softcatala.org>, 2017
|
# Jordi Mas i Hernàndez <jmas@softcatala.org>, 2017
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -11,16 +11,16 @@ msgstr ""
|
|||||||
"Project-Id-Version: HEAD\n"
|
"Project-Id-Version: HEAD\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2017-08-23 08:01+0000\n"
|
"POT-Creation-Date: 2018-01-20 21:10+0000\n"
|
||||||
"PO-Revision-Date: 2017-08-23 09:48+0200\n"
|
"PO-Revision-Date: 2018-01-22 00:20+0100\n"
|
||||||
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
|
"Last-Translator: Gil Forcada Codinachs <gil.gnome@gmail.com>\n"
|
||||||
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
||||||
"Language: ca\n"
|
"Language: ca\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Poedit 2.0.1\n"
|
"X-Generator: Gtranslator 2.91.6\n"
|
||||||
|
|
||||||
#: data/50-gnome-shell-system.xml:6
|
#: data/50-gnome-shell-system.xml:6
|
||||||
msgid "System"
|
msgid "System"
|
||||||
@@ -199,10 +199,10 @@ msgid ""
|
|||||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||||
"devices associated to it."
|
"devices associated to it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"El Shell només mostrà una entrada de menú Bluetooth si un adaptador Bluetooth "
|
"El Shell només mostrà una entrada de menú Bluetooth si un adaptador "
|
||||||
"està engegat, o si hi ha dispositius configurats associats a l'adaptador "
|
"Bluetooth està engegat, o si hi ha dispositius configurats associats a "
|
||||||
"predeterminat. Això es reiniciarà si l'adaptador predeterminat té "
|
"l'adaptador predeterminat. Això es reiniciarà si l'adaptador predeterminat "
|
||||||
"dispositius associats."
|
"té dispositius associats."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:101
|
#: data/org.gnome.shell.gschema.xml.in:101
|
||||||
msgid "Keybinding to open the application menu"
|
msgid "Keybinding to open the application menu"
|
||||||
@@ -318,8 +318,8 @@ msgstr ""
|
|||||||
#: data/org.gnome.shell.gschema.xml.in:206
|
#: data/org.gnome.shell.gschema.xml.in:206
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Habilita la tessel·lització a les vores en deixar anar les finestres a les "
|
"Habilita el mòsaic a les vores en deixar anar les finestres a les vores de "
|
||||||
"vores de la pantalla"
|
"la pantalla"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:214
|
#: data/org.gnome.shell.gschema.xml.in:214
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
@@ -352,7 +352,7 @@ msgstr "S'ha produït un error en carregar el diàleg de preferències de %s:"
|
|||||||
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:925
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancel·la"
|
msgstr "Cancel·la"
|
||||||
|
|
||||||
@@ -416,18 +416,18 @@ msgstr "(o passeu el dit)"
|
|||||||
#. Translators: The name of the power-off action in search
|
#. Translators: The name of the power-off action in search
|
||||||
#: js/misc/systemActions.js:99
|
#: js/misc/systemActions.js:99
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Power off"
|
msgid "Power Off"
|
||||||
msgstr "Apaga"
|
msgstr "Apaga"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:102
|
#: js/misc/systemActions.js:102
|
||||||
msgid "power off;shutdown"
|
msgid "power off;shutdown;reboot;restart"
|
||||||
msgstr "apaga;atura"
|
msgstr "apaga;atura;reinicia"
|
||||||
|
|
||||||
#. Translators: The name of the lock screen action in search
|
#. Translators: The name of the lock screen action in search
|
||||||
#: js/misc/systemActions.js:106
|
#: js/misc/systemActions.js:106
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock screen"
|
msgid "Lock Screen"
|
||||||
msgstr "Bloqueja la pantalla"
|
msgstr "Bloqueja la pantalla"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
||||||
@@ -438,8 +438,8 @@ msgstr "bloca la pantalla"
|
|||||||
#. Translators: The name of the logout action in search
|
#. Translators: The name of the logout action in search
|
||||||
#: js/misc/systemActions.js:113
|
#: js/misc/systemActions.js:113
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Log out"
|
msgid "Log Out"
|
||||||
msgstr "Desconnecta"
|
msgstr "Surt"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:116
|
#: js/misc/systemActions.js:116
|
||||||
@@ -460,7 +460,7 @@ msgstr "atura temporalment;dorm"
|
|||||||
#. Translators: The name of the switch user action in search
|
#. Translators: The name of the switch user action in search
|
||||||
#: js/misc/systemActions.js:127
|
#: js/misc/systemActions.js:127
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Switch user"
|
msgid "Switch User"
|
||||||
msgstr "Canvia d'usuari"
|
msgstr "Canvia d'usuari"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
||||||
@@ -471,13 +471,13 @@ msgstr "canvia d'usuari"
|
|||||||
#. Translators: The name of the lock orientation action in search
|
#. Translators: The name of the lock orientation action in search
|
||||||
#: js/misc/systemActions.js:134
|
#: js/misc/systemActions.js:134
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock orientation"
|
msgid "Lock Orientation"
|
||||||
msgstr "Bloqueja l'orientació"
|
msgstr "Bloqueja l'orientació"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:137
|
#: js/misc/systemActions.js:137
|
||||||
msgid "lock orientation"
|
msgid "lock orientation;screen;rotation"
|
||||||
msgstr "bloqueja l'orientació"
|
msgstr "bloqueja l'orientació;pantalla;rotació"
|
||||||
|
|
||||||
#: js/misc/util.js:122
|
#: js/misc/util.js:122
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
@@ -650,32 +650,32 @@ msgstr "Freqüent"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Totes"
|
msgstr "Totes"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1915
|
#: js/ui/appDisplay.js:1918
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Finestra nova"
|
msgstr "Finestra nova"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1929
|
#: js/ui/appDisplay.js:1932
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Inicia usant una targeta gràfica dedicada"
|
msgstr "Inicia usant una targeta gràfica dedicada"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
#: js/ui/appDisplay.js:1959 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Suprimeix dels preferits"
|
msgstr "Suprimeix dels preferits"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1962
|
#: js/ui/appDisplay.js:1965
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Afegeix als preferits"
|
msgstr "Afegeix als preferits"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1972
|
#: js/ui/appDisplay.js:1975
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Mostra els detalls"
|
msgstr "Mostra els detalls"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:141
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "S'ha afegit %s als preferits."
|
msgstr "S'ha afegit %s als preferits."
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:175
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "S'ha suprimit %s dels preferits."
|
msgstr "S'ha suprimit %s dels preferits."
|
||||||
@@ -764,51 +764,51 @@ msgctxt "grid saturday"
|
|||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "Ds"
|
msgstr "Ds"
|
||||||
|
|
||||||
#: js/ui/calendar.js:442
|
#: js/ui/calendar.js:449
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Mes anterior"
|
msgstr "Mes anterior"
|
||||||
|
|
||||||
#: js/ui/calendar.js:452
|
#: js/ui/calendar.js:459
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Mes següent"
|
msgstr "Mes següent"
|
||||||
|
|
||||||
#: js/ui/calendar.js:605
|
#: js/ui/calendar.js:612
|
||||||
#, no-javascript-format
|
#, no-javascript-format
|
||||||
msgctxt "date day number format"
|
msgctxt "date day number format"
|
||||||
msgid "%d"
|
msgid "%d"
|
||||||
msgstr "%d"
|
msgstr "%d"
|
||||||
|
|
||||||
#: js/ui/calendar.js:660
|
#: js/ui/calendar.js:667
|
||||||
msgid "Week %V"
|
msgid "Week %V"
|
||||||
msgstr "Setmana %V"
|
msgstr "Setmana %V"
|
||||||
|
|
||||||
#. Translators: Shown in calendar event list for all day events
|
#. Translators: Shown in calendar event list for all day events
|
||||||
#. * Keep it short, best if you can use less then 10 characters
|
#. * Keep it short, best if you can use less then 10 characters
|
||||||
#.
|
#.
|
||||||
#: js/ui/calendar.js:729
|
#: js/ui/calendar.js:736
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Tot el dia"
|
msgstr "Tot el dia"
|
||||||
|
|
||||||
#: js/ui/calendar.js:862
|
#: js/ui/calendar.js:869
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A %d de %B"
|
msgstr "%A %d de %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:873
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A %d de %B de %Y"
|
msgstr "%A %d de %B de %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1086
|
#: js/ui/calendar.js:1093
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Cap notificació"
|
msgstr "Cap notificació"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1089
|
#: js/ui/calendar.js:1096
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Cap cita"
|
msgstr "Cap cita"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1117
|
#: js/ui/calendar.js:1124
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Neteja-ho tot"
|
msgstr "Neteja-ho tot"
|
||||||
|
|
||||||
@@ -842,7 +842,7 @@ msgstr "S'ha connectat un dispositiu extern"
|
|||||||
msgid "External drive disconnected"
|
msgid "External drive disconnected"
|
||||||
msgstr "S'ha desconnectat un dispositiu extern"
|
msgstr "S'ha desconnectat un dispositiu extern"
|
||||||
|
|
||||||
#: js/ui/components/autorunManager.js:354
|
#: js/ui/components/autorunManager.js:358
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Obre amb %s"
|
msgstr "Obre amb %s"
|
||||||
@@ -855,8 +855,8 @@ msgstr "Contrasenya:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Torneu a escriure-la:"
|
msgstr "Torneu a escriure-la:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:245
|
||||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
#: js/ui/status/network.js:338 js/ui/status/network.js:928
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Connecta"
|
msgstr "Connecta"
|
||||||
|
|
||||||
@@ -884,11 +884,11 @@ msgstr "Contrasenya de la clau privada:"
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Servei:"
|
msgstr "Servei:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "La xarxa sense fil requereix autenticació"
|
msgstr "La xarxa sense fil requereix autenticació"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:639
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -897,7 +897,7 @@ msgstr ""
|
|||||||
"Per accedir a la xarxa sense fil «%s» calen les contrasenyes o les claus "
|
"Per accedir a la xarxa sense fil «%s» calen les contrasenyes o les claus "
|
||||||
"d'encriptació."
|
"d'encriptació."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:642
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Autenticació 802.1X amb fil"
|
msgstr "Autenticació 802.1X amb fil"
|
||||||
|
|
||||||
@@ -905,15 +905,15 @@ msgstr "Autenticació 802.1X amb fil"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Nom de la xarxa: "
|
msgstr "Nom de la xarxa: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Autenticació DSL"
|
msgstr "Autenticació DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:652
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Cal que introduïu el codi PIN"
|
msgstr "Cal que introduïu el codi PIN"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:653
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
|
msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
|
||||||
|
|
||||||
@@ -921,17 +921,17 @@ msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Contrasenya de la xarxa de banda ampla mòbil"
|
msgstr "Contrasenya de la xarxa de banda ampla mòbil"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:643
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:647 js/ui/components/networkAgent.js:660
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Cal introduir una contrasenya per connectar-vos a «%s»."
|
msgstr "Cal introduir una contrasenya per connectar-vos a «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1699
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Gestor de connexions de xarxa"
|
msgstr "Gestor de connexions de xarxa"
|
||||||
|
|
||||||
@@ -966,20 +966,20 @@ msgstr "En/na %s ara es diu %s"
|
|||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Finestres"
|
msgstr "Finestres"
|
||||||
|
|
||||||
#: js/ui/dash.js:250 js/ui/dash.js:291
|
#: js/ui/dash.js:246 js/ui/dash.js:287
|
||||||
msgid "Show Applications"
|
msgid "Show Applications"
|
||||||
msgstr "Mostra les aplicacions"
|
msgstr "Mostra les aplicacions"
|
||||||
|
|
||||||
#. Translators: this is the name of the dock/favorites area on
|
#. Translators: this is the name of the dock/favorites area on
|
||||||
#. the left of the overview
|
#. the left of the overview
|
||||||
#: js/ui/dash.js:449
|
#: js/ui/dash.js:445
|
||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Quadre d'aplicacions"
|
msgstr "Quadre d'aplicacions"
|
||||||
|
|
||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. Translators: This is the date format to use when the calendar popup is
|
||||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:75
|
#: js/ui/dateMenu.js:76
|
||||||
msgid "%B %e %Y"
|
msgid "%B %e %Y"
|
||||||
msgstr "%e de %B de %Y"
|
msgstr "%e de %B de %Y"
|
||||||
|
|
||||||
@@ -987,19 +987,19 @@ msgstr "%e de %B de %Y"
|
|||||||
#. * below the time in the shell; it should combine the weekday and the
|
#. * below the time in the shell; it should combine the weekday and the
|
||||||
#. * date, e.g. "Tuesday February 17 2015".
|
#. * date, e.g. "Tuesday February 17 2015".
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:82
|
#: js/ui/dateMenu.js:83
|
||||||
msgid "%A %B %e %Y"
|
msgid "%A %B %e %Y"
|
||||||
msgstr "%A, %e de %B de %Y"
|
msgstr "%A, %e de %B de %Y"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:144
|
#: js/ui/dateMenu.js:148
|
||||||
msgid "Add world clocks…"
|
msgid "Add world clocks…"
|
||||||
msgstr "Afegeix rellotges del món…"
|
msgstr "Afegeix rellotges del món…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:145
|
#: js/ui/dateMenu.js:149
|
||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Rellotges del món"
|
msgstr "Rellotges del món"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:224
|
#: js/ui/dateMenu.js:228
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "El temps"
|
msgstr "El temps"
|
||||||
|
|
||||||
@@ -1007,7 +1007,7 @@ msgstr "El temps"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:286
|
#: js/ui/dateMenu.js:292
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s tot el dia."
|
msgstr "%s tot el dia."
|
||||||
@@ -1016,7 +1016,7 @@ msgstr "%s tot el dia."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:292
|
#: js/ui/dateMenu.js:298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, llavors %s més tard."
|
msgstr "%s, llavors %s més tard."
|
||||||
@@ -1025,30 +1025,30 @@ msgstr "%s, llavors %s més tard."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:298
|
#: js/ui/dateMenu.js:304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, llavors %s, seguit per %s més tard."
|
msgstr "%s, llavors %s, seguit per %s més tard."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:309
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Trieu una ubicació…"
|
msgstr "Trieu una ubicació…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:312
|
#: js/ui/dateMenu.js:318
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "S'està carregant…"
|
msgstr "S'està carregant…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:318
|
#: js/ui/dateMenu.js:324
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Sensació tèrmica de %s."
|
msgstr "Sensació tèrmica de %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:321
|
#: js/ui/dateMenu.js:327
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Vés en línia per a informació sobre el temps"
|
msgstr "Vés en línia per a informació sobre el temps"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:329
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "La informació sobre el temps no està disponible"
|
msgstr "La informació sobre el temps no està disponible"
|
||||||
|
|
||||||
@@ -1237,7 +1237,72 @@ msgstr "Denega"
|
|||||||
msgid "Allow"
|
msgid "Allow"
|
||||||
msgstr "Permet"
|
msgstr "Permet"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
|
#: js/ui/kbdA11yDialog.js:33
|
||||||
|
msgid "Slow Keys Turned On"
|
||||||
|
msgstr "Tecles lentes actives"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:34
|
||||||
|
msgid "Slow Keys Turned Off"
|
||||||
|
msgstr "Tecles lentes inactives"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:35
|
||||||
|
msgid ""
|
||||||
|
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
|
||||||
|
"Slow Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Heu mantingut premuda la tecla de majúscules durant 8 segons. Aquesta és la "
|
||||||
|
"drecera per a la funcionalitat «tecles lentes», que afecta la forma de "
|
||||||
|
"funcionar del teclat."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:42
|
||||||
|
msgid "Sticky Keys Turned On"
|
||||||
|
msgstr "Tecles enganxoses actives"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:43
|
||||||
|
msgid "Sticky Keys Turned Off"
|
||||||
|
msgstr "Tecles enganxoses inactives"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:45
|
||||||
|
msgid ""
|
||||||
|
"You just pressed the Shift key 5 times in a row. This is the shortcut for "
|
||||||
|
"the Sticky Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Heu premut la tecla de majúscules 5 cops seguides. Aquesta és la drecera per "
|
||||||
|
"la funcionalitat de les tecles enganxoses, que afecta la manera en què "
|
||||||
|
"funciona el teclat."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:47
|
||||||
|
msgid ""
|
||||||
|
"You just pressed two keys at once, or pressed the Shift key 5 times in a "
|
||||||
|
"row. This turns off the Sticky Keys feature, which affects the way your "
|
||||||
|
"keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Heu premut dos tecles juntes, o la tecla de majúscules 5 cops seguides. Això "
|
||||||
|
"desactiva la funcionalitat de les tecles enganxoses, que afecta la manera en "
|
||||||
|
"què funciona el teclat."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59
|
||||||
|
msgid "Leave On"
|
||||||
|
msgstr "Deixa-ho actiu"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:1287
|
||||||
|
msgid "Turn On"
|
||||||
|
msgstr "Activa"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:154 js/ui/status/network.js:339
|
||||||
|
#: js/ui/status/network.js:1287 js/ui/status/network.js:1402
|
||||||
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
|
#: js/ui/status/rfkill.js:117
|
||||||
|
msgid "Turn Off"
|
||||||
|
msgstr "Desactiva"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67
|
||||||
|
msgid "Leave Off"
|
||||||
|
msgstr "Deixa-ho desactivat"
|
||||||
|
|
||||||
|
#: js/ui/keyboard.js:739 js/ui/status/keyboard.js:783
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "Teclat"
|
msgstr "Teclat"
|
||||||
|
|
||||||
@@ -1289,7 +1354,7 @@ msgstr "Mostra el codi font"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Pàgina web"
|
msgstr "Pàgina web"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1493
|
#: js/ui/messageTray.js:1494
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Informació de l'ordinador"
|
msgstr "Informació de l'ordinador"
|
||||||
|
|
||||||
@@ -1533,46 +1598,35 @@ msgstr "Alt contrast"
|
|||||||
msgid "Large Text"
|
msgid "Large Text"
|
||||||
msgstr "Text gran"
|
msgstr "Text gran"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:47
|
#: js/ui/status/bluetooth.js:48
|
||||||
msgid "Bluetooth"
|
msgid "Bluetooth"
|
||||||
msgstr "Bluetooth"
|
msgstr "Bluetooth"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:616
|
||||||
msgid "Bluetooth Settings"
|
msgid "Bluetooth Settings"
|
||||||
msgstr "Paràmetres del Bluetooth"
|
msgstr "Paràmetres del Bluetooth"
|
||||||
|
|
||||||
#. Translators: this is the number of connected bluetooth devices
|
#. Translators: this is the number of connected bluetooth devices
|
||||||
#: js/ui/status/bluetooth.js:136
|
#: js/ui/status/bluetooth.js:137
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d Connected"
|
msgid "%d Connected"
|
||||||
msgid_plural "%d Connected"
|
msgid_plural "%d Connected"
|
||||||
msgstr[0] "%d connectat"
|
msgstr[0] "%d connectat"
|
||||||
msgstr[1] "%d connectats"
|
msgstr[1] "%d connectats"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:138
|
#: js/ui/status/bluetooth.js:139
|
||||||
msgid "Off"
|
msgid "Off"
|
||||||
msgstr "Desactivat"
|
msgstr "Desactivat"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:140
|
#: js/ui/status/bluetooth.js:141
|
||||||
msgid "On"
|
msgid "On"
|
||||||
msgstr "Activat"
|
msgstr "Activat"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
|
||||||
msgid "Turn On"
|
|
||||||
msgstr "Activa"
|
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
|
|
||||||
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
|
|
||||||
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
|
|
||||||
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
|
|
||||||
msgid "Turn Off"
|
|
||||||
msgstr "Desactiva"
|
|
||||||
|
|
||||||
#: js/ui/status/brightness.js:44
|
#: js/ui/status/brightness.js:44
|
||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "Brillantor"
|
msgstr "Brillantor"
|
||||||
|
|
||||||
#: js/ui/status/keyboard.js:805
|
#: js/ui/status/keyboard.js:806
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "Mostra la disposició del teclat"
|
msgstr "Mostra la disposició del teclat"
|
||||||
|
|
||||||
@@ -1612,19 +1666,19 @@ msgstr ""
|
|||||||
"Podeu canviar la configuració de l'accés a la ubicació sempre que vulgueu "
|
"Podeu canviar la configuració de l'accés a la ubicació sempre que vulgueu "
|
||||||
"des de la configuració de la privacitat."
|
"des de la configuració de la privacitat."
|
||||||
|
|
||||||
#: js/ui/status/network.js:104
|
#: js/ui/status/network.js:90
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<desconegut>"
|
msgstr "<desconegut>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
#: js/ui/status/network.js:443 js/ui/status/network.js:1316
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s apagat"
|
msgstr "%s apagat"
|
||||||
|
|
||||||
# N.T.: p. ex. Connectat amb fil
|
# N.T.: p. ex. Connectat amb fil
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:457
|
#: js/ui/status/network.js:446
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connected"
|
msgid "%s Connected"
|
||||||
msgstr "Connectat %s"
|
msgstr "Connectat %s"
|
||||||
@@ -1632,189 +1686,189 @@ msgstr "Connectat %s"
|
|||||||
#. Translators: this is for network devices that are physically present but are not
|
#. Translators: this is for network devices that are physically present but are not
|
||||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||||
#. %s is a network identifier
|
#. %s is a network identifier
|
||||||
#: js/ui/status/network.js:462
|
#: js/ui/status/network.js:451
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unmanaged"
|
msgid "%s Unmanaged"
|
||||||
msgstr "%s no gestionat"
|
msgstr "%s no gestionat"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:465
|
#: js/ui/status/network.js:454
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disconnecting"
|
msgid "%s Disconnecting"
|
||||||
msgstr "%s s'està desconnectant"
|
msgstr "%s s'està desconnectant"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:461 js/ui/status/network.js:1308
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "%s s'està connectant"
|
msgstr "%s s'està connectant"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||||
#: js/ui/status/network.js:475
|
#: js/ui/status/network.js:464
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Requires Authentication"
|
msgid "%s Requires Authentication"
|
||||||
msgstr "%s requereix autenticació"
|
msgstr "%s requereix autenticació"
|
||||||
|
|
||||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||||
#. module, which is missing; %s is a network identifier
|
#. module, which is missing; %s is a network identifier
|
||||||
#: js/ui/status/network.js:483
|
#: js/ui/status/network.js:472
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Firmware Missing For %s"
|
msgid "Firmware Missing For %s"
|
||||||
msgstr "Manca el microprogramari per %s"
|
msgstr "Manca el microprogramari per %s"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||||
#: js/ui/status/network.js:487
|
#: js/ui/status/network.js:476
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unavailable"
|
msgid "%s Unavailable"
|
||||||
msgstr "%s no disponible"
|
msgstr "%s no disponible"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:490
|
#: js/ui/status/network.js:479
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connection Failed"
|
msgid "%s Connection Failed"
|
||||||
msgstr "%s ha fallat la connexió"
|
msgstr "%s ha fallat la connexió"
|
||||||
|
|
||||||
#: js/ui/status/network.js:506
|
#: js/ui/status/network.js:495
|
||||||
msgid "Wired Settings"
|
msgid "Wired Settings"
|
||||||
msgstr "Paràmetres de la xarxa amb fil"
|
msgstr "Paràmetres de la xarxa amb fil"
|
||||||
|
|
||||||
#: js/ui/status/network.js:548
|
#: js/ui/status/network.js:537
|
||||||
msgid "Mobile Broadband Settings"
|
msgid "Mobile Broadband Settings"
|
||||||
msgstr "Configuració de la xarxa de banda ampla mòbil"
|
msgstr "Configuració de la xarxa de banda ampla mòbil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
#: js/ui/status/network.js:580 js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s maquinari inhabilitat"
|
msgstr "%s maquinari inhabilitat"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated
|
#. Translators: this is for a network device that cannot be activated
|
||||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||||
#: js/ui/status/network.js:595
|
#: js/ui/status/network.js:584
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disabled"
|
msgid "%s Disabled"
|
||||||
msgstr "%s Inhabilitat"
|
msgstr "%s Inhabilitat"
|
||||||
|
|
||||||
#: js/ui/status/network.js:635
|
#: js/ui/status/network.js:624
|
||||||
msgid "Connect to Internet"
|
msgid "Connect to Internet"
|
||||||
msgstr "Connecta a Internet"
|
msgstr "Connecta a Internet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:833
|
#: js/ui/status/network.js:822
|
||||||
msgid "Airplane Mode is On"
|
msgid "Airplane Mode is On"
|
||||||
msgstr "El mode d'avió és actiu"
|
msgstr "El mode d'avió és actiu"
|
||||||
|
|
||||||
#: js/ui/status/network.js:834
|
#: js/ui/status/network.js:823
|
||||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||||
msgstr "Quan el mode d'avió és actiu es desactiva la xarxa sense fil."
|
msgstr "Quan el mode d'avió és actiu es desactiva la xarxa sense fil."
|
||||||
|
|
||||||
#: js/ui/status/network.js:835
|
#: js/ui/status/network.js:824
|
||||||
msgid "Turn Off Airplane Mode"
|
msgid "Turn Off Airplane Mode"
|
||||||
msgstr "Desactiva el mode d'avió"
|
msgstr "Desactiva el mode d'avió"
|
||||||
|
|
||||||
#: js/ui/status/network.js:844
|
#: js/ui/status/network.js:833
|
||||||
msgid "Wi-Fi is Off"
|
msgid "Wi-Fi is Off"
|
||||||
msgstr "La xarxa sense fil està desactivada"
|
msgstr "La xarxa sense fil està desactivada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:845
|
#: js/ui/status/network.js:834
|
||||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||||
msgstr "S'ha d'activar la xarxa sense fil per poder-se connectar a una xarxa."
|
msgstr "S'ha d'activar la xarxa sense fil per poder-se connectar a una xarxa."
|
||||||
|
|
||||||
#: js/ui/status/network.js:846
|
#: js/ui/status/network.js:835
|
||||||
msgid "Turn On Wi-Fi"
|
msgid "Turn On Wi-Fi"
|
||||||
msgstr "Activa la xarxa sense fil"
|
msgstr "Activa la xarxa sense fil"
|
||||||
|
|
||||||
#: js/ui/status/network.js:871
|
#: js/ui/status/network.js:860
|
||||||
msgid "Wi-Fi Networks"
|
msgid "Wi-Fi Networks"
|
||||||
msgstr "Xarxes sense fil"
|
msgstr "Xarxes sense fil"
|
||||||
|
|
||||||
#: js/ui/status/network.js:873
|
#: js/ui/status/network.js:862
|
||||||
msgid "Select a network"
|
msgid "Select a network"
|
||||||
msgstr "Trieu una xarxa"
|
msgstr "Trieu una xarxa"
|
||||||
|
|
||||||
#: js/ui/status/network.js:903
|
#: js/ui/status/network.js:892
|
||||||
msgid "No Networks"
|
msgid "No Networks"
|
||||||
msgstr "Cap xarxa"
|
msgstr "Cap xarxa"
|
||||||
|
|
||||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
#: js/ui/status/network.js:913 js/ui/status/rfkill.js:115
|
||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Utilitza l'interruptor de maquinari per desactivar-la"
|
msgstr "Utilitza l'interruptor de maquinari per desactivar-la"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1191
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Trieu una xarxa"
|
msgstr "Trieu una xarxa"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1197
|
#: js/ui/status/network.js:1185
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Paràmetres de la xarxa sense fil"
|
msgstr "Paràmetres de la xarxa sense fil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1316
|
#: js/ui/status/network.js:1304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Hostpot %s actiu"
|
msgstr "Hostpot %s actiu"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1331
|
#: js/ui/status/network.js:1319
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s no està connectat"
|
msgstr "%s no està connectat"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1435
|
#: js/ui/status/network.js:1419
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "s'està connectant..."
|
msgstr "s'està connectant..."
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1438
|
#: js/ui/status/network.js:1422
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "cal autenticació"
|
msgstr "cal autenticació"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1440
|
#: js/ui/status/network.js:1424
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "ha fallat la connexió"
|
msgstr "ha fallat la connexió"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1494
|
#: js/ui/status/network.js:1478
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Paràmetres de la VPN"
|
msgstr "Paràmetres de la VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1491
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1501
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN apagada"
|
msgstr "VPN apagada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Paràmetres de xarxa"
|
msgstr "Paràmetres de xarxa"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1603
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s connexió amb fil"
|
msgstr[0] "%s connexió amb fil"
|
||||||
msgstr[1] "%s connexions amb fil"
|
msgstr[1] "%s connexions amb fil"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1607
|
#: js/ui/status/network.js:1600
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s connexió Wifi"
|
msgstr[0] "%s connexió Wifi"
|
||||||
msgstr[1] "%s connexions Wifi"
|
msgstr[1] "%s connexions Wifi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1611
|
#: js/ui/status/network.js:1604
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s connexió mòdem"
|
msgstr[0] "%s connexió mòdem"
|
||||||
msgstr[1] "%s connexions mòdem"
|
msgstr[1] "%s connexions mòdem"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1759
|
#: js/ui/status/network.js:1738
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Ha fallat la connexió"
|
msgstr "Ha fallat la connexió"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1760
|
#: js/ui/status/network.js:1739
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Ha fallat l'activació de la connexió de xarxa"
|
msgstr "Ha fallat l'activació de la connexió de xarxa"
|
||||||
|
|
||||||
@@ -2055,19 +2109,19 @@ msgstr "Calendari de l'Evolution"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:380
|
#: src/main.c:437
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Mostra la versió"
|
msgstr "Mostra la versió"
|
||||||
|
|
||||||
#: src/main.c:386
|
#: src/main.c:443
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
|
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
|
||||||
|
|
||||||
#: src/main.c:392
|
#: src/main.c:449
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
|
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
|
||||||
|
|
||||||
#: src/main.c:398
|
#: src/main.c:455
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Llista els modes possibles"
|
msgstr "Llista els modes possibles"
|
||||||
|
|
||||||
@@ -2115,6 +2169,18 @@ msgstr[1] "%u entrades"
|
|||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Sons del sistema"
|
msgstr "Sons del sistema"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Power off"
|
||||||
|
#~ msgstr "Apaga"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Log out"
|
||||||
|
#~ msgstr "Desconnecta"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Switch user"
|
||||||
|
#~ msgstr "Canvia d'usuari"
|
||||||
|
|
||||||
#~ msgid "Hide tray"
|
#~ msgid "Hide tray"
|
||||||
#~ msgstr "Oculta la Safata"
|
#~ msgstr "Oculta la Safata"
|
||||||
|
|
||||||
|
|||||||
303
po/de.po
303
po/de.po
@@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
# Hendrik Brandt <heb@gnome-de.org>, 2009.
|
# Hendrik Brandt <heb@gnome-de.org>, 2009.
|
||||||
# Hendrik Richter <hendrikr@gnome.org>, 2009-2011.
|
# Hendrik Richter <hendrikr@gnome.org>, 2009-2011.
|
||||||
# Mario Blättermann <mario.blaettermann@gmail.com>, 2009-2013, 2015-2017.
|
# Mario Blättermann <mario.blaettermann@gmail.com>, 2009-2013, 2015-2018.
|
||||||
# Mario Klug <mario@klug.me>, 2010.
|
# Mario Klug <mario@klug.me>, 2010.
|
||||||
# Jakob Kramer <jakob.kramer@gmx.de>, 2010.
|
# Jakob Kramer <jakob.kramer@gmx.de>, 2010.
|
||||||
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2010-2011.
|
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2010-2011.
|
||||||
@@ -16,22 +16,23 @@
|
|||||||
# Benjamin Steinwender <b@stbe.at>, 2013-2014.
|
# Benjamin Steinwender <b@stbe.at>, 2013-2014.
|
||||||
# Bernd Homuth <dev@hmt.im>, 2014-2015, 2016.
|
# Bernd Homuth <dev@hmt.im>, 2014-2015, 2016.
|
||||||
# Franco Della-Monica <franco.della.monica@gmail.com>, 2016.
|
# Franco Della-Monica <franco.della.monica@gmail.com>, 2016.
|
||||||
|
# Tim Sabsch <tim@sabsch.com>, 2018.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2017-08-26 17:18+0000\n"
|
"POT-Creation-Date: 2018-01-17 18:05+0000\n"
|
||||||
"PO-Revision-Date: 2017-08-30 16:48+0200\n"
|
"PO-Revision-Date: 2018-01-19 22:18+0100\n"
|
||||||
"Last-Translator: Wolfgang Stoeggl <c72578@yahoo.de>\n"
|
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
|
||||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
|
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Poedit 2.0.3\n"
|
"X-Generator: Poedit 2.0.5\n"
|
||||||
|
|
||||||
#: data/50-gnome-shell-system.xml:6
|
#: data/50-gnome-shell-system.xml:6
|
||||||
msgid "System"
|
msgid "System"
|
||||||
@@ -355,7 +356,7 @@ msgstr "Beim Laden des Einstellungsdialogs für %s ist ein Fehler aufgetreten:"
|
|||||||
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:925
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
@@ -419,18 +420,18 @@ msgstr "(oder wischen Sie mit einem Finger)"
|
|||||||
#. Translators: The name of the power-off action in search
|
#. Translators: The name of the power-off action in search
|
||||||
#: js/misc/systemActions.js:99
|
#: js/misc/systemActions.js:99
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Power off"
|
msgid "Power Off"
|
||||||
msgstr "Ausschalten"
|
msgstr "Ausschalten"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:102
|
#: js/misc/systemActions.js:102
|
||||||
msgid "power off;shutdown"
|
msgid "power off;shutdown;reboot;restart"
|
||||||
msgstr "ausschalten;herunterfahren"
|
msgstr "ausschalten;herunterfahren;neustarten"
|
||||||
|
|
||||||
#. Translators: The name of the lock screen action in search
|
#. Translators: The name of the lock screen action in search
|
||||||
#: js/misc/systemActions.js:106
|
#: js/misc/systemActions.js:106
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock screen"
|
msgid "Lock Screen"
|
||||||
msgstr "Bildschirm sperren"
|
msgstr "Bildschirm sperren"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
||||||
@@ -441,7 +442,7 @@ msgstr "Bildschirm sperren"
|
|||||||
#. Translators: The name of the logout action in search
|
#. Translators: The name of the logout action in search
|
||||||
#: js/misc/systemActions.js:113
|
#: js/misc/systemActions.js:113
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Log out"
|
msgid "Log Out"
|
||||||
msgstr "Abmelden"
|
msgstr "Abmelden"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
||||||
@@ -463,7 +464,7 @@ msgstr "Bereitschaft;Schlafen"
|
|||||||
#. Translators: The name of the switch user action in search
|
#. Translators: The name of the switch user action in search
|
||||||
#: js/misc/systemActions.js:127
|
#: js/misc/systemActions.js:127
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Switch user"
|
msgid "Switch User"
|
||||||
msgstr "Benutzer wechseln"
|
msgstr "Benutzer wechseln"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
||||||
@@ -474,13 +475,13 @@ msgstr "Benutzer wechseln"
|
|||||||
#. Translators: The name of the lock orientation action in search
|
#. Translators: The name of the lock orientation action in search
|
||||||
#: js/misc/systemActions.js:134
|
#: js/misc/systemActions.js:134
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock orientation"
|
msgid "Lock Orientation"
|
||||||
msgstr "Hoch-/Querformats-Fixierung"
|
msgstr "Hoch-/Querformats-Fixierung"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:137
|
#: js/misc/systemActions.js:137
|
||||||
msgid "lock orientation"
|
msgid "lock orientation;screen;rotation"
|
||||||
msgstr "Hochformat;Querformat;sperren"
|
msgstr "Hochformat;Querformat;sperren;Bildschirm;Drehung;drehen"
|
||||||
|
|
||||||
#: js/misc/util.js:122
|
#: js/misc/util.js:122
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
@@ -654,32 +655,32 @@ msgstr "Häufig"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1915
|
#: js/ui/appDisplay.js:1918
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Neues Fenster"
|
msgstr "Neues Fenster"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1929
|
#: js/ui/appDisplay.js:1932
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Mit dedizierter Grafikkarte starten"
|
msgstr "Mit dedizierter Grafikkarte starten"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
#: js/ui/appDisplay.js:1959 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Aus Favoriten entfernen"
|
msgstr "Aus Favoriten entfernen"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1962
|
#: js/ui/appDisplay.js:1965
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Zu Favoriten hinzufügen"
|
msgstr "Zu Favoriten hinzufügen"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1972
|
#: js/ui/appDisplay.js:1975
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Details anzeigen"
|
msgstr "Details anzeigen"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:141
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "%s wurde zu Ihren Favoriten hinzugefügt"
|
msgstr "%s wurde zu Ihren Favoriten hinzugefügt"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:175
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s wurde aus Ihren Favoriten entfernt"
|
msgstr "%s wurde aus Ihren Favoriten entfernt"
|
||||||
@@ -768,51 +769,51 @@ msgctxt "grid saturday"
|
|||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#: js/ui/calendar.js:442
|
#: js/ui/calendar.js:449
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Vorheriger Monat"
|
msgstr "Vorheriger Monat"
|
||||||
|
|
||||||
#: js/ui/calendar.js:452
|
#: js/ui/calendar.js:459
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Nächster Monat"
|
msgstr "Nächster Monat"
|
||||||
|
|
||||||
#: js/ui/calendar.js:605
|
#: js/ui/calendar.js:612
|
||||||
#, no-javascript-format
|
#, no-javascript-format
|
||||||
msgctxt "date day number format"
|
msgctxt "date day number format"
|
||||||
msgid "%d"
|
msgid "%d"
|
||||||
msgstr "%d"
|
msgstr "%d"
|
||||||
|
|
||||||
#: js/ui/calendar.js:660
|
#: js/ui/calendar.js:667
|
||||||
msgid "Week %V"
|
msgid "Week %V"
|
||||||
msgstr "Woche %V"
|
msgstr "Woche %V"
|
||||||
|
|
||||||
#. Translators: Shown in calendar event list for all day events
|
#. Translators: Shown in calendar event list for all day events
|
||||||
#. * Keep it short, best if you can use less then 10 characters
|
#. * Keep it short, best if you can use less then 10 characters
|
||||||
#.
|
#.
|
||||||
#: js/ui/calendar.js:729
|
#: js/ui/calendar.js:736
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Ganztägig"
|
msgstr "Ganztägig"
|
||||||
|
|
||||||
#: js/ui/calendar.js:862
|
#: js/ui/calendar.js:869
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d. %B"
|
msgstr "%A, %d. %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:873
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%a, %d. %B %Y"
|
msgstr "%a, %d. %B %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1086
|
#: js/ui/calendar.js:1093
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Keine Benachrichtigungen"
|
msgstr "Keine Benachrichtigungen"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1089
|
#: js/ui/calendar.js:1096
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Keine Termine"
|
msgstr "Keine Termine"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1117
|
#: js/ui/calendar.js:1124
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Alles leeren"
|
msgstr "Alles leeren"
|
||||||
|
|
||||||
@@ -846,7 +847,7 @@ msgstr "Externes Laufwerk verbunden"
|
|||||||
msgid "External drive disconnected"
|
msgid "External drive disconnected"
|
||||||
msgstr "Externes Laufwerk getrennt"
|
msgstr "Externes Laufwerk getrennt"
|
||||||
|
|
||||||
#: js/ui/components/autorunManager.js:354
|
#: js/ui/components/autorunManager.js:358
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Öffnen mit %s"
|
msgstr "Öffnen mit %s"
|
||||||
@@ -859,8 +860,8 @@ msgstr "Passwort:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Erneut eingeben:"
|
msgstr "Erneut eingeben:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:245
|
||||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
#: js/ui/status/network.js:338 js/ui/status/network.js:928
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Verbinden"
|
msgstr "Verbinden"
|
||||||
|
|
||||||
@@ -888,11 +889,11 @@ msgstr "Passwort für geheimen Schlüssel: "
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Dienst: "
|
msgstr "Dienst: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "Anmeldung für Drahtlosnetzwerk wird benötigt"
|
msgstr "Anmeldung für Drahtlosnetzwerk wird benötigt"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:639
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -901,7 +902,7 @@ msgstr ""
|
|||||||
"Passwörter oder Schlüssel sind erforderlich, um auf das Drahtlosnetzwerk "
|
"Passwörter oder Schlüssel sind erforderlich, um auf das Drahtlosnetzwerk "
|
||||||
"»%s« zuzugreifen."
|
"»%s« zuzugreifen."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:642
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Kabelgebundene 802.1X-Anmeldung"
|
msgstr "Kabelgebundene 802.1X-Anmeldung"
|
||||||
|
|
||||||
@@ -909,15 +910,15 @@ msgstr "Kabelgebundene 802.1X-Anmeldung"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Netzwerkname: "
|
msgstr "Netzwerkname: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "DSL-Anmeldung"
|
msgstr "DSL-Anmeldung"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:652
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "PIN-Code ist erforderlich"
|
msgstr "PIN-Code ist erforderlich"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:653
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt."
|
msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt."
|
||||||
|
|
||||||
@@ -925,17 +926,17 @@ msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt."
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Passwort der mobilen Breitbandverbindung"
|
msgstr "Passwort der mobilen Breitbandverbindung"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:643
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:647 js/ui/components/networkAgent.js:660
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden."
|
msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1699
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Netzwerk-Verwaltung"
|
msgstr "Netzwerk-Verwaltung"
|
||||||
|
|
||||||
@@ -971,21 +972,21 @@ msgstr "%s heißt jetzt %s"
|
|||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Fenster"
|
msgstr "Fenster"
|
||||||
|
|
||||||
#: js/ui/dash.js:250 js/ui/dash.js:291
|
#: js/ui/dash.js:246 js/ui/dash.js:287
|
||||||
msgid "Show Applications"
|
msgid "Show Applications"
|
||||||
msgstr "Anwendungen anzeigen"
|
msgstr "Anwendungen anzeigen"
|
||||||
|
|
||||||
# Würde ich so übernehmen, oder evtl. »Dock«.
|
# Würde ich so übernehmen, oder evtl. »Dock«.
|
||||||
#. Translators: this is the name of the dock/favorites area on
|
#. Translators: this is the name of the dock/favorites area on
|
||||||
#. the left of the overview
|
#. the left of the overview
|
||||||
#: js/ui/dash.js:449
|
#: js/ui/dash.js:445
|
||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Dash"
|
msgstr "Dash"
|
||||||
|
|
||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. Translators: This is the date format to use when the calendar popup is
|
||||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:75
|
#: js/ui/dateMenu.js:76
|
||||||
msgid "%B %e %Y"
|
msgid "%B %e %Y"
|
||||||
msgstr "%e. %B %Y"
|
msgstr "%e. %B %Y"
|
||||||
|
|
||||||
@@ -993,19 +994,19 @@ msgstr "%e. %B %Y"
|
|||||||
#. * below the time in the shell; it should combine the weekday and the
|
#. * below the time in the shell; it should combine the weekday and the
|
||||||
#. * date, e.g. "Tuesday February 17 2015".
|
#. * date, e.g. "Tuesday February 17 2015".
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:82
|
#: js/ui/dateMenu.js:83
|
||||||
msgid "%A %B %e %Y"
|
msgid "%A %B %e %Y"
|
||||||
msgstr "%A, %e. %B %Y"
|
msgstr "%A, %e. %B %Y"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:144
|
#: js/ui/dateMenu.js:148
|
||||||
msgid "Add world clocks…"
|
msgid "Add world clocks…"
|
||||||
msgstr "Weltuhren hinzufügen …"
|
msgstr "Weltuhren hinzufügen …"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:145
|
#: js/ui/dateMenu.js:149
|
||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Weltuhren"
|
msgstr "Weltuhren"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:224
|
#: js/ui/dateMenu.js:228
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "Wetter"
|
msgstr "Wetter"
|
||||||
|
|
||||||
@@ -1013,7 +1014,7 @@ msgstr "Wetter"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:286
|
#: js/ui/dateMenu.js:292
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "Ganztägig %s."
|
msgstr "Ganztägig %s."
|
||||||
@@ -1022,7 +1023,7 @@ msgstr "Ganztägig %s."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:292
|
#: js/ui/dateMenu.js:298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, später %s."
|
msgstr "%s, später %s."
|
||||||
@@ -1031,30 +1032,30 @@ msgstr "%s, später %s."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:298
|
#: js/ui/dateMenu.js:304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, später %s, gefolgt von %s."
|
msgstr "%s, später %s, gefolgt von %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:309
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Ort auswählen …"
|
msgstr "Ort auswählen …"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:312
|
#: js/ui/dateMenu.js:318
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "Wird geladen …"
|
msgstr "Wird geladen …"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:318
|
#: js/ui/dateMenu.js:324
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Gefühlt wie %s."
|
msgstr "Gefühlt wie %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:321
|
#: js/ui/dateMenu.js:327
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Gehen Sie Online, um Wetterinformationen beziehen zu können"
|
msgstr "Gehen Sie Online, um Wetterinformationen beziehen zu können"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:329
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "Wetterinformationen sind momentan nicht verfügbar"
|
msgstr "Wetterinformationen sind momentan nicht verfügbar"
|
||||||
|
|
||||||
@@ -1240,7 +1241,72 @@ msgstr "Ablehnen"
|
|||||||
msgid "Allow"
|
msgid "Allow"
|
||||||
msgstr "Zulassen"
|
msgstr "Zulassen"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
|
#: js/ui/kbdA11yDialog.js:33
|
||||||
|
msgid "Slow Keys Turned On"
|
||||||
|
msgstr "Tastenverzögerung eingeschaltet"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:34
|
||||||
|
msgid "Slow Keys Turned Off"
|
||||||
|
msgstr "Tastenverzögerung ausgeschaltet"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:35
|
||||||
|
msgid ""
|
||||||
|
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
|
||||||
|
"Slow Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Sie haben die Umschalttaste 8 Sekunden lang gedrückt gehalten. Dies ist die "
|
||||||
|
"Tastenkombination für die Tastenverzögerung, welche beeinflusst, wie Ihre "
|
||||||
|
"Tastatur funktioniert."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:42
|
||||||
|
msgid "Sticky Keys Turned On"
|
||||||
|
msgstr "Einrastfunktion eingeschaltet"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:43
|
||||||
|
msgid "Sticky Keys Turned Off"
|
||||||
|
msgstr "Einrastfunktion ausgeschaltet"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:45
|
||||||
|
msgid ""
|
||||||
|
"You just pressed the Shift key 5 times in a row. This is the shortcut for "
|
||||||
|
"the Sticky Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Sie haben die Umschalttaste 5 Mal hintereinander gedrückt. Dies ist die "
|
||||||
|
"Tastenkombination für die Einrastfunktion, welche beeinflusst, wie Ihre "
|
||||||
|
"Tastatur funktioniert."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:47
|
||||||
|
msgid ""
|
||||||
|
"You just pressed two keys at once, or pressed the Shift key 5 times in a "
|
||||||
|
"row. This turns off the Sticky Keys feature, which affects the way your "
|
||||||
|
"keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Sie haben zwei Tasten gleichzeitig oder die Umschalttaste 5 Mal "
|
||||||
|
"hintereinander gedrückt. Dies ist die Tastenkombination für die "
|
||||||
|
"Einrastfunktion, welche beeinflusst, wie Ihre Tastatur funktioniert."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59
|
||||||
|
msgid "Leave On"
|
||||||
|
msgstr "Eingeschaltet lassen"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:1287
|
||||||
|
msgid "Turn On"
|
||||||
|
msgstr "Einschalten"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:154 js/ui/status/network.js:339
|
||||||
|
#: js/ui/status/network.js:1287 js/ui/status/network.js:1402
|
||||||
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
|
#: js/ui/status/rfkill.js:117
|
||||||
|
msgid "Turn Off"
|
||||||
|
msgstr "Ausschalten"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67
|
||||||
|
msgid "Leave Off"
|
||||||
|
msgstr "Ausgeschaltet lassen"
|
||||||
|
|
||||||
|
#: js/ui/keyboard.js:739 js/ui/status/keyboard.js:783
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "Tastatur"
|
msgstr "Tastatur"
|
||||||
|
|
||||||
@@ -1292,7 +1358,7 @@ msgstr "Quelle zeigen"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Webseite"
|
msgstr "Webseite"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1493
|
#: js/ui/messageTray.js:1494
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Systeminformationen"
|
msgstr "Systeminformationen"
|
||||||
|
|
||||||
@@ -1539,46 +1605,35 @@ msgstr "Hoher Kontrast"
|
|||||||
msgid "Large Text"
|
msgid "Large Text"
|
||||||
msgstr "Große Schrift"
|
msgstr "Große Schrift"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:47
|
#: js/ui/status/bluetooth.js:48
|
||||||
msgid "Bluetooth"
|
msgid "Bluetooth"
|
||||||
msgstr "Bluetooth"
|
msgstr "Bluetooth"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:616
|
||||||
msgid "Bluetooth Settings"
|
msgid "Bluetooth Settings"
|
||||||
msgstr "Bluetooth-Einstellungen"
|
msgstr "Bluetooth-Einstellungen"
|
||||||
|
|
||||||
#. Translators: this is the number of connected bluetooth devices
|
#. Translators: this is the number of connected bluetooth devices
|
||||||
#: js/ui/status/bluetooth.js:136
|
#: js/ui/status/bluetooth.js:137
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d Connected"
|
msgid "%d Connected"
|
||||||
msgid_plural "%d Connected"
|
msgid_plural "%d Connected"
|
||||||
msgstr[0] "%d verbunden"
|
msgstr[0] "%d verbunden"
|
||||||
msgstr[1] "%d verbunden"
|
msgstr[1] "%d verbunden"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:138
|
#: js/ui/status/bluetooth.js:139
|
||||||
msgid "Off"
|
msgid "Off"
|
||||||
msgstr "Aus"
|
msgstr "Aus"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:140
|
#: js/ui/status/bluetooth.js:141
|
||||||
msgid "On"
|
msgid "On"
|
||||||
msgstr "An"
|
msgstr "An"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
|
||||||
msgid "Turn On"
|
|
||||||
msgstr "Einschalten"
|
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
|
|
||||||
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
|
|
||||||
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
|
|
||||||
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
|
|
||||||
msgid "Turn Off"
|
|
||||||
msgstr "Ausschalten"
|
|
||||||
|
|
||||||
#: js/ui/status/brightness.js:44
|
#: js/ui/status/brightness.js:44
|
||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "Helligkeit"
|
msgstr "Helligkeit"
|
||||||
|
|
||||||
#: js/ui/status/keyboard.js:805
|
#: js/ui/status/keyboard.js:806
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "Tastaturbelegung anzeigen"
|
msgstr "Tastaturbelegung anzeigen"
|
||||||
|
|
||||||
@@ -1618,18 +1673,18 @@ msgstr ""
|
|||||||
"Standortzugriff kann in den Einstellungen zur Privatsphäre jederzeit "
|
"Standortzugriff kann in den Einstellungen zur Privatsphäre jederzeit "
|
||||||
"geändert werden."
|
"geändert werden."
|
||||||
|
|
||||||
#: js/ui/status/network.js:104
|
#: js/ui/status/network.js:90
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<Unbekannt>"
|
msgstr "<Unbekannt>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
#: js/ui/status/network.js:443 js/ui/status/network.js:1316
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s ausgeschaltet"
|
msgstr "%s ausgeschaltet"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:457
|
#: js/ui/status/network.js:446
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connected"
|
msgid "%s Connected"
|
||||||
msgstr "%s verbunden"
|
msgstr "%s verbunden"
|
||||||
@@ -1637,93 +1692,93 @@ msgstr "%s verbunden"
|
|||||||
#. Translators: this is for network devices that are physically present but are not
|
#. Translators: this is for network devices that are physically present but are not
|
||||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||||
#. %s is a network identifier
|
#. %s is a network identifier
|
||||||
#: js/ui/status/network.js:462
|
#: js/ui/status/network.js:451
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unmanaged"
|
msgid "%s Unmanaged"
|
||||||
msgstr "%s nicht verwaltet"
|
msgstr "%s nicht verwaltet"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:465
|
#: js/ui/status/network.js:454
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disconnecting"
|
msgid "%s Disconnecting"
|
||||||
msgstr "%s wird getrennt"
|
msgstr "%s wird getrennt"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:461 js/ui/status/network.js:1308
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "%s wird verbunden"
|
msgstr "%s wird verbunden"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||||
#: js/ui/status/network.js:475
|
#: js/ui/status/network.js:464
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Requires Authentication"
|
msgid "%s Requires Authentication"
|
||||||
msgstr "%s erfordert eine Anmeldung"
|
msgstr "%s erfordert eine Anmeldung"
|
||||||
|
|
||||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||||
#. module, which is missing; %s is a network identifier
|
#. module, which is missing; %s is a network identifier
|
||||||
#: js/ui/status/network.js:483
|
#: js/ui/status/network.js:472
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Firmware Missing For %s"
|
msgid "Firmware Missing For %s"
|
||||||
msgstr "Firmware fehlt für %s"
|
msgstr "Firmware fehlt für %s"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||||
#: js/ui/status/network.js:487
|
#: js/ui/status/network.js:476
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unavailable"
|
msgid "%s Unavailable"
|
||||||
msgstr "%s nicht verfügbar"
|
msgstr "%s nicht verfügbar"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:490
|
#: js/ui/status/network.js:479
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connection Failed"
|
msgid "%s Connection Failed"
|
||||||
msgstr "Verbindung von %s gescheitert"
|
msgstr "Verbindung von %s gescheitert"
|
||||||
|
|
||||||
#: js/ui/status/network.js:506
|
#: js/ui/status/network.js:495
|
||||||
msgid "Wired Settings"
|
msgid "Wired Settings"
|
||||||
msgstr "LAN-Einstellungen"
|
msgstr "LAN-Einstellungen"
|
||||||
|
|
||||||
#: js/ui/status/network.js:548
|
#: js/ui/status/network.js:537
|
||||||
msgid "Mobile Broadband Settings"
|
msgid "Mobile Broadband Settings"
|
||||||
msgstr "Einstellungen der mobilen Breitbandverbindung"
|
msgstr "Einstellungen der mobilen Breitbandverbindung"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
#: js/ui/status/network.js:580 js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s-Hardware ausgeschaltet"
|
msgstr "%s-Hardware ausgeschaltet"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated
|
#. Translators: this is for a network device that cannot be activated
|
||||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||||
#: js/ui/status/network.js:595
|
#: js/ui/status/network.js:584
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disabled"
|
msgid "%s Disabled"
|
||||||
msgstr "%s ausgeschaltet"
|
msgstr "%s ausgeschaltet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:635
|
#: js/ui/status/network.js:624
|
||||||
msgid "Connect to Internet"
|
msgid "Connect to Internet"
|
||||||
msgstr "Mit dem Internet verbinden"
|
msgstr "Mit dem Internet verbinden"
|
||||||
|
|
||||||
#: js/ui/status/network.js:833
|
#: js/ui/status/network.js:822
|
||||||
msgid "Airplane Mode is On"
|
msgid "Airplane Mode is On"
|
||||||
msgstr "Flugmodus ist eingeschaltet"
|
msgstr "Flugmodus ist eingeschaltet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:834
|
#: js/ui/status/network.js:823
|
||||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Drahtlosnetzwerk ist ausgeschaltet, wenn sich Ihr Gerät im Flugmodus "
|
"Drahtlosnetzwerk ist ausgeschaltet, wenn sich Ihr Gerät im Flugmodus "
|
||||||
"befindet."
|
"befindet."
|
||||||
|
|
||||||
#: js/ui/status/network.js:835
|
#: js/ui/status/network.js:824
|
||||||
msgid "Turn Off Airplane Mode"
|
msgid "Turn Off Airplane Mode"
|
||||||
msgstr "Flugmodus ausschalten"
|
msgstr "Flugmodus ausschalten"
|
||||||
|
|
||||||
#: js/ui/status/network.js:844
|
#: js/ui/status/network.js:833
|
||||||
msgid "Wi-Fi is Off"
|
msgid "Wi-Fi is Off"
|
||||||
msgstr "Drahtlosnetzwerk ist ausgeschaltet"
|
msgstr "Drahtlosnetzwerk ist ausgeschaltet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:845
|
#: js/ui/status/network.js:834
|
||||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Drahtlosnetzwerk muss eingeschaltet werden, um eine Netzwerkverbindung "
|
"Drahtlosnetzwerk muss eingeschaltet werden, um eine Netzwerkverbindung "
|
||||||
@@ -1732,101 +1787,101 @@ msgstr ""
|
|||||||
# Wi-Fi einschalten
|
# Wi-Fi einschalten
|
||||||
# oder
|
# oder
|
||||||
# Schalten sie Wi-Fi ein
|
# Schalten sie Wi-Fi ein
|
||||||
#: js/ui/status/network.js:846
|
#: js/ui/status/network.js:835
|
||||||
msgid "Turn On Wi-Fi"
|
msgid "Turn On Wi-Fi"
|
||||||
msgstr "Drahtlosnetzwerk einschalten"
|
msgstr "Drahtlosnetzwerk einschalten"
|
||||||
|
|
||||||
#: js/ui/status/network.js:871
|
#: js/ui/status/network.js:860
|
||||||
msgid "Wi-Fi Networks"
|
msgid "Wi-Fi Networks"
|
||||||
msgstr "Drahtlosnetzwerke"
|
msgstr "Drahtlosnetzwerke"
|
||||||
|
|
||||||
#: js/ui/status/network.js:873
|
#: js/ui/status/network.js:862
|
||||||
msgid "Select a network"
|
msgid "Select a network"
|
||||||
msgstr "Wählen Sie ein Netzwerk"
|
msgstr "Wählen Sie ein Netzwerk"
|
||||||
|
|
||||||
#: js/ui/status/network.js:903
|
#: js/ui/status/network.js:892
|
||||||
msgid "No Networks"
|
msgid "No Networks"
|
||||||
msgstr "Keine Netzwerke"
|
msgstr "Keine Netzwerke"
|
||||||
|
|
||||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
#: js/ui/status/network.js:913 js/ui/status/rfkill.js:115
|
||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Benutzen Sie zum Ausschalten den Gehäuseschalter"
|
msgstr "Benutzen Sie zum Ausschalten den Gehäuseschalter"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1191
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Wählen Sie ein Netzwerk aus"
|
msgstr "Wählen Sie ein Netzwerk aus"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1197
|
#: js/ui/status/network.js:1185
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Drahtlosnetzwerk-Einstellungen"
|
msgstr "Drahtlosnetzwerk-Einstellungen"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1316
|
#: js/ui/status/network.js:1304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Hotspot %s eingeschaltet"
|
msgstr "Hotspot %s eingeschaltet"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1331
|
#: js/ui/status/network.js:1319
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s nicht verbunden"
|
msgstr "%s nicht verbunden"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1435
|
#: js/ui/status/network.js:1419
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "Verbindungsaufbau …"
|
msgstr "Verbindungsaufbau …"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1438
|
#: js/ui/status/network.js:1422
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "Anmeldung erforderlich"
|
msgstr "Anmeldung erforderlich"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1440
|
#: js/ui/status/network.js:1424
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "Verbindung gescheitert"
|
msgstr "Verbindung gescheitert"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1494
|
#: js/ui/status/network.js:1478
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "VPN-Einstellungen"
|
msgstr "VPN-Einstellungen"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1491
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1501
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN ausgeschaltet"
|
msgstr "VPN ausgeschaltet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Netzwerkeinstellungen"
|
msgstr "Netzwerkeinstellungen"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1603
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s Kabelverbindung"
|
msgstr[0] "%s Kabelverbindung"
|
||||||
msgstr[1] "%s Kabelverbindungen"
|
msgstr[1] "%s Kabelverbindungen"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1607
|
#: js/ui/status/network.js:1600
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s Funknetzwerkverbindung"
|
msgstr[0] "%s Funknetzwerkverbindung"
|
||||||
msgstr[1] "%s Funknetzwerkverbindungen"
|
msgstr[1] "%s Funknetzwerkverbindungen"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1611
|
#: js/ui/status/network.js:1604
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s Modem-Verbindung"
|
msgstr[0] "%s Modem-Verbindung"
|
||||||
msgstr[1] "%s Modem-Verbindungen"
|
msgstr[1] "%s Modem-Verbindungen"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1759
|
#: js/ui/status/network.js:1738
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Verbindung gescheitert"
|
msgstr "Verbindung gescheitert"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1760
|
#: js/ui/status/network.js:1739
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
|
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
|
||||||
|
|
||||||
@@ -2068,21 +2123,21 @@ msgstr "Evolution-Kalender"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:380
|
#: src/main.c:437
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Version ausgeben"
|
msgstr "Version ausgeben"
|
||||||
|
|
||||||
#: src/main.c:386
|
#: src/main.c:443
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Der durch GDM im Anmeldefenster verwendete Modus"
|
msgstr "Der durch GDM im Anmeldefenster verwendete Modus"
|
||||||
|
|
||||||
#: src/main.c:392
|
#: src/main.c:449
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Verwenden Sie einen spezifischen Modus wie z.B. »gdm« für den "
|
"Verwenden Sie einen spezifischen Modus wie z.B. »gdm« für den "
|
||||||
"Anmeldebildschirm"
|
"Anmeldebildschirm"
|
||||||
|
|
||||||
#: src/main.c:398
|
#: src/main.c:455
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Die möglichen Modi auflisten"
|
msgstr "Die möglichen Modi auflisten"
|
||||||
|
|
||||||
|
|||||||
370
po/es.po
370
po/es.po
@@ -3,15 +3,14 @@
|
|||||||
# This file is distributed under the same license as the gnome-shell package.
|
# This file is distributed under the same license as the gnome-shell package.
|
||||||
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
|
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
|
||||||
# Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011.
|
# Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011.
|
||||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010-2017, 2017.
|
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010-2017, 2017, 2018.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell.master\n"
|
"Project-Id-Version: gnome-shell.master\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"POT-Creation-Date: 2018-02-06 01:15+0000\n"
|
||||||
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
|
"PO-Revision-Date: 2018-02-06 13:22+0100\n"
|
||||||
"PO-Revision-Date: 2017-08-22 13:38+0200\n"
|
|
||||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||||
"Language-Team: es <gnome-es-list@gnome.org>\n"
|
"Language-Team: es <gnome-es-list@gnome.org>\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@@ -349,7 +348,7 @@ msgstr "Hubo un error al lanzar el diálogo de preferencias para %s:"
|
|||||||
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:925
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
@@ -412,34 +411,30 @@ msgstr "(o pase el dedo)"
|
|||||||
|
|
||||||
#. Translators: The name of the power-off action in search
|
#. Translators: The name of the power-off action in search
|
||||||
#: js/misc/systemActions.js:99
|
#: js/misc/systemActions.js:99
|
||||||
#| msgid "Power Off"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Power off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:102
|
#: js/misc/systemActions.js:102
|
||||||
msgid "power off;shutdown"
|
msgid "power off;shutdown;reboot;restart"
|
||||||
msgstr "apagar;apagado"
|
msgstr "apagar;apagado;reinicio;reiniciar"
|
||||||
|
|
||||||
#. Translators: The name of the lock screen action in search
|
#. Translators: The name of the lock screen action in search
|
||||||
#: js/misc/systemActions.js:106
|
#: js/misc/systemActions.js:106
|
||||||
#| msgid "Lock Screen"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock screen"
|
msgid "Lock Screen"
|
||||||
msgstr "Bloquear la pantalla"
|
msgstr "Bloquear la pantalla"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:109
|
#: js/misc/systemActions.js:109
|
||||||
#| msgid "Lock Screen"
|
|
||||||
msgid "lock screen"
|
msgid "lock screen"
|
||||||
msgstr "bloquear;pantalla"
|
msgstr "bloquear;pantalla"
|
||||||
|
|
||||||
#. Translators: The name of the logout action in search
|
#. Translators: The name of the logout action in search
|
||||||
#: js/misc/systemActions.js:113
|
#: js/misc/systemActions.js:113
|
||||||
#| msgid "Log Out"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Log out"
|
msgid "Log Out"
|
||||||
msgstr "Cerrar la sesión"
|
msgstr "Cerrar la sesión"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
||||||
@@ -449,42 +444,36 @@ msgstr "cerrar;sesión;salir"
|
|||||||
|
|
||||||
#. Translators: The name of the suspend action in search
|
#. Translators: The name of the suspend action in search
|
||||||
#: js/misc/systemActions.js:120
|
#: js/misc/systemActions.js:120
|
||||||
#| msgid "Suspend"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Suspender"
|
msgstr "Suspender"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the suspend action, separated by semicolons
|
#. Translators: A list of keywords that match the suspend action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:123
|
#: js/misc/systemActions.js:123
|
||||||
#| msgid "Suspend"
|
|
||||||
msgid "suspend;sleep"
|
msgid "suspend;sleep"
|
||||||
msgstr "suspender;dormir"
|
msgstr "suspender;dormir"
|
||||||
|
|
||||||
#. Translators: The name of the switch user action in search
|
#. Translators: The name of the switch user action in search
|
||||||
#: js/misc/systemActions.js:127
|
#: js/misc/systemActions.js:127
|
||||||
#| msgid "Switch User"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Switch user"
|
msgid "Switch User"
|
||||||
msgstr "Cambiar de usuario"
|
msgstr "Cambiar de usuario"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:130
|
#: js/misc/systemActions.js:130
|
||||||
#| msgid "Switch User"
|
|
||||||
msgid "switch user"
|
msgid "switch user"
|
||||||
msgstr "cambiar;usuario"
|
msgstr "cambiar;usuario"
|
||||||
|
|
||||||
#. Translators: The name of the lock orientation action in search
|
#. Translators: The name of the lock orientation action in search
|
||||||
#: js/misc/systemActions.js:134
|
#: js/misc/systemActions.js:134
|
||||||
#| msgid "Orientation Lock"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock orientation"
|
msgid "Lock Orientation"
|
||||||
msgstr "Bloqueo de orientación"
|
msgstr "Bloquear la orientación"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:137
|
#: js/misc/systemActions.js:137
|
||||||
#| msgid "Clock Format"
|
msgid "lock orientation;screen;rotation"
|
||||||
msgid "lock orientation"
|
msgstr "bloqueo;orientación;pantalla"
|
||||||
msgstr "bloqueo;orientación"
|
|
||||||
|
|
||||||
#: js/misc/util.js:122
|
#: js/misc/util.js:122
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
@@ -656,32 +645,32 @@ msgstr "Frecuentes"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todas"
|
msgstr "Todas"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1915
|
#: js/ui/appDisplay.js:1918
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Ventana nueva"
|
msgstr "Ventana nueva"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1929
|
#: js/ui/appDisplay.js:1932
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Lanzar usando la tarjeta gráfica dedicada"
|
msgstr "Lanzar usando la tarjeta gráfica dedicada"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
#: js/ui/appDisplay.js:1959 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Quitar de los favoritos"
|
msgstr "Quitar de los favoritos"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1962
|
#: js/ui/appDisplay.js:1965
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Añadir a los favoritos"
|
msgstr "Añadir a los favoritos"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1972
|
#: js/ui/appDisplay.js:1975
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Mostrar detalles"
|
msgstr "Mostrar detalles"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:141
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "Se ha añadido %s a sus favoritos."
|
msgstr "Se ha añadido %s a sus favoritos."
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:175
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "Se ha quitado %s de sus favoritos."
|
msgstr "Se ha quitado %s de sus favoritos."
|
||||||
@@ -770,51 +759,51 @@ msgctxt "grid saturday"
|
|||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#: js/ui/calendar.js:442
|
#: js/ui/calendar.js:449
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Mes anterior"
|
msgstr "Mes anterior"
|
||||||
|
|
||||||
#: js/ui/calendar.js:452
|
#: js/ui/calendar.js:459
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Siguiente mes"
|
msgstr "Siguiente mes"
|
||||||
|
|
||||||
#: js/ui/calendar.js:605
|
#: js/ui/calendar.js:612
|
||||||
#, no-javascript-format
|
#, no-javascript-format
|
||||||
msgctxt "date day number format"
|
msgctxt "date day number format"
|
||||||
msgid "%d"
|
msgid "%d"
|
||||||
msgstr "%d"
|
msgstr "%d"
|
||||||
|
|
||||||
#: js/ui/calendar.js:660
|
#: js/ui/calendar.js:667
|
||||||
msgid "Week %V"
|
msgid "Week %V"
|
||||||
msgstr "Semana %V"
|
msgstr "Semana %V"
|
||||||
|
|
||||||
#. Translators: Shown in calendar event list for all day events
|
#. Translators: Shown in calendar event list for all day events
|
||||||
#. * Keep it short, best if you can use less then 10 characters
|
#. * Keep it short, best if you can use less then 10 characters
|
||||||
#.
|
#.
|
||||||
#: js/ui/calendar.js:729
|
#: js/ui/calendar.js:736
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Todo el día"
|
msgstr "Todo el día"
|
||||||
|
|
||||||
#: js/ui/calendar.js:862
|
#: js/ui/calendar.js:869
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d de %B"
|
msgstr "%A, %d de %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:873
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %d de %B de %Y"
|
msgstr "%A, %d de %B de %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1086
|
#: js/ui/calendar.js:1093
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "No hay notificaciones"
|
msgstr "No hay notificaciones"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1089
|
#: js/ui/calendar.js:1096
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "No hay eventos"
|
msgstr "No hay eventos"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1117
|
#: js/ui/calendar.js:1124
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Limpiar todo"
|
msgstr "Limpiar todo"
|
||||||
|
|
||||||
@@ -848,7 +837,7 @@ msgstr "Dispositivo externo conectado"
|
|||||||
msgid "External drive disconnected"
|
msgid "External drive disconnected"
|
||||||
msgstr "Dispositivo externo desconectado"
|
msgstr "Dispositivo externo desconectado"
|
||||||
|
|
||||||
#: js/ui/components/autorunManager.js:354
|
#: js/ui/components/autorunManager.js:358
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Abrir con %s"
|
msgstr "Abrir con %s"
|
||||||
@@ -861,8 +850,8 @@ msgstr "Contraseña:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Escriba de nuevo:"
|
msgstr "Escriba de nuevo:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:245
|
||||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
#: js/ui/status/network.js:338 js/ui/status/network.js:928
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Conectar"
|
msgstr "Conectar"
|
||||||
|
|
||||||
@@ -890,11 +879,11 @@ msgstr "Contraseña de la clave privada:"
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Servicio:"
|
msgstr "Servicio:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "La red inalámbrica requiere autenticación"
|
msgstr "La red inalámbrica requiere autenticación"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:639
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -903,7 +892,7 @@ msgstr ""
|
|||||||
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
|
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
|
||||||
"inalámbrica «%s»."
|
"inalámbrica «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:642
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Autenticación 802.1X cableada"
|
msgstr "Autenticación 802.1X cableada"
|
||||||
|
|
||||||
@@ -911,15 +900,15 @@ msgstr "Autenticación 802.1X cableada"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Nombre de la red: "
|
msgstr "Nombre de la red: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Autenticación DSL"
|
msgstr "Autenticación DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:652
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Código PIN requerido"
|
msgstr "Código PIN requerido"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:653
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
|
msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
|
||||||
|
|
||||||
@@ -927,17 +916,17 @@ msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Contraseña de la red de banda ancha móvil"
|
msgstr "Contraseña de la red de banda ancha móvil"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:643
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:647 js/ui/components/networkAgent.js:660
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Se requiere una contraseña para conectarse a «%s»."
|
msgstr "Se requiere una contraseña para conectarse a «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1699
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Gestor de la red"
|
msgstr "Gestor de la red"
|
||||||
|
|
||||||
@@ -972,20 +961,20 @@ msgstr "Ahora %s se llama %s"
|
|||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Ventanas"
|
msgstr "Ventanas"
|
||||||
|
|
||||||
#: js/ui/dash.js:250 js/ui/dash.js:291
|
#: js/ui/dash.js:246 js/ui/dash.js:287
|
||||||
msgid "Show Applications"
|
msgid "Show Applications"
|
||||||
msgstr "Mostrar aplicaciones"
|
msgstr "Mostrar aplicaciones"
|
||||||
|
|
||||||
#. Translators: this is the name of the dock/favorites area on
|
#. Translators: this is the name of the dock/favorites area on
|
||||||
#. the left of the overview
|
#. the left of the overview
|
||||||
#: js/ui/dash.js:449
|
#: js/ui/dash.js:445
|
||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Tablero"
|
msgstr "Tablero"
|
||||||
|
|
||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. Translators: This is the date format to use when the calendar popup is
|
||||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:75
|
#: js/ui/dateMenu.js:76
|
||||||
msgid "%B %e %Y"
|
msgid "%B %e %Y"
|
||||||
msgstr "%B %e %Y"
|
msgstr "%B %e %Y"
|
||||||
|
|
||||||
@@ -993,19 +982,19 @@ msgstr "%B %e %Y"
|
|||||||
#. * below the time in the shell; it should combine the weekday and the
|
#. * below the time in the shell; it should combine the weekday and the
|
||||||
#. * date, e.g. "Tuesday February 17 2015".
|
#. * date, e.g. "Tuesday February 17 2015".
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:82
|
#: js/ui/dateMenu.js:83
|
||||||
msgid "%A %B %e %Y"
|
msgid "%A %B %e %Y"
|
||||||
msgstr "%A %e de %B de %Y"
|
msgstr "%A %e de %B de %Y"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:144
|
#: js/ui/dateMenu.js:148
|
||||||
msgid "Add world clocks…"
|
msgid "Add world clocks…"
|
||||||
msgstr "Añadir relojes del mundo…"
|
msgstr "Añadir relojes del mundo…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:145
|
#: js/ui/dateMenu.js:149
|
||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Relojes del mundo"
|
msgstr "Relojes del mundo"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:224
|
#: js/ui/dateMenu.js:228
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "Meteorología"
|
msgstr "Meteorología"
|
||||||
|
|
||||||
@@ -1013,7 +1002,7 @@ msgstr "Meteorología"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:286
|
#: js/ui/dateMenu.js:292
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s todo el día."
|
msgstr "%s todo el día."
|
||||||
@@ -1022,7 +1011,7 @@ msgstr "%s todo el día."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:292
|
#: js/ui/dateMenu.js:298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, luego %s."
|
msgstr "%s, luego %s."
|
||||||
@@ -1031,30 +1020,30 @@ msgstr "%s, luego %s."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:298
|
#: js/ui/dateMenu.js:304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, luego %s seguido de %s."
|
msgstr "%s, luego %s seguido de %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:309
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Seleccionar ubicación…"
|
msgstr "Seleccionar ubicación…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:312
|
#: js/ui/dateMenu.js:318
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "Cargando…"
|
msgstr "Cargando…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:318
|
#: js/ui/dateMenu.js:324
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Sensación térmica de %s."
|
msgstr "Sensación térmica de %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:321
|
#: js/ui/dateMenu.js:327
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Conectarse para obtener la información meteorológica"
|
msgstr "Conectarse para obtener la información meteorológica"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:329
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "La información meteorológica no está disponible actualmente."
|
msgstr "La información meteorológica no está disponible actualmente."
|
||||||
|
|
||||||
@@ -1240,9 +1229,74 @@ msgstr "Denegar"
|
|||||||
msgid "Allow"
|
msgid "Allow"
|
||||||
msgstr "Permitir"
|
msgstr "Permitir"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
|
#: js/ui/kbdA11yDialog.js:33
|
||||||
msgid "Keyboard"
|
msgid "Slow Keys Turned On"
|
||||||
msgstr "Teclado"
|
msgstr "Teclas lentas activadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:34
|
||||||
|
msgid "Slow Keys Turned Off"
|
||||||
|
msgstr "Teclas lentas desactivadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:35
|
||||||
|
msgid ""
|
||||||
|
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
|
||||||
|
"Slow Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Acaba de pulsar la tecla «Mayúsculas» durante 8 segundos. Ésta es la "
|
||||||
|
"combinación de teclas para la característica «Teclas lentas», que afecta la "
|
||||||
|
"forma en que funciona el teclado."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:42
|
||||||
|
msgid "Sticky Keys Turned On"
|
||||||
|
msgstr "Teclas persistentes activadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:43
|
||||||
|
msgid "Sticky Keys Turned Off"
|
||||||
|
msgstr "Teclas persistentes desactivadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:45
|
||||||
|
msgid ""
|
||||||
|
"You just pressed the Shift key 5 times in a row. This is the shortcut for "
|
||||||
|
"the Sticky Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Acaba de pulsar la tecla «Mayúsculas» 5 veces. Este es el acceso rápido para "
|
||||||
|
"la característica «Teclas persistentes», que afecta la manera en que "
|
||||||
|
"funciona el teclado."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:47
|
||||||
|
msgid ""
|
||||||
|
"You just pressed two keys at once, or pressed the Shift key 5 times in a "
|
||||||
|
"row. This turns off the Sticky Keys feature, which affects the way your "
|
||||||
|
"keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Acaba de pulsar dos teclas a la vez, o ha pulsado la tecla «Mayúsculas» 5 "
|
||||||
|
"veces seguidas. Esto desactiva la característica de «Teclas persistentes», "
|
||||||
|
"lo cual afecta a la forma en que funciona su teclado."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59
|
||||||
|
msgid "Leave On"
|
||||||
|
msgstr "Dejar activada"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:1287
|
||||||
|
msgid "Turn On"
|
||||||
|
msgstr "Encender"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:154 js/ui/status/network.js:339
|
||||||
|
#: js/ui/status/network.js:1287 js/ui/status/network.js:1402
|
||||||
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
|
#: js/ui/status/rfkill.js:117
|
||||||
|
msgid "Turn Off"
|
||||||
|
msgstr "Apagar"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67
|
||||||
|
msgid "Leave Off"
|
||||||
|
msgstr "Dejar desactivada"
|
||||||
|
|
||||||
|
#: js/ui/keyboard.js:198
|
||||||
|
msgid "Region & Language Settings"
|
||||||
|
msgstr "Configuración de región e idioma"
|
||||||
|
|
||||||
#: js/ui/lookingGlass.js:642
|
#: js/ui/lookingGlass.js:642
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
@@ -1292,7 +1346,7 @@ msgstr "Ver fuente"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Página web"
|
msgstr "Página web"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1493
|
#: js/ui/messageTray.js:1494
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Información del sistema"
|
msgstr "Información del sistema"
|
||||||
|
|
||||||
@@ -1381,7 +1435,7 @@ msgctxt "System menu in the top bar"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: js/ui/panel.js:812
|
#: js/ui/panel.js:814
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Barra superior"
|
msgstr "Barra superior"
|
||||||
|
|
||||||
@@ -1463,7 +1517,6 @@ msgstr "No se encontraron resultados."
|
|||||||
|
|
||||||
#: js/ui/search.js:777
|
#: js/ui/search.js:777
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
#| msgid "%d more"
|
|
||||||
msgid "%d more"
|
msgid "%d more"
|
||||||
msgid_plural "%d more"
|
msgid_plural "%d more"
|
||||||
msgstr[0] "%d más"
|
msgstr[0] "%d más"
|
||||||
@@ -1537,46 +1590,39 @@ msgstr "Contraste alto"
|
|||||||
msgid "Large Text"
|
msgid "Large Text"
|
||||||
msgstr "Texto grande"
|
msgstr "Texto grande"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:47
|
#: js/ui/status/bluetooth.js:48
|
||||||
msgid "Bluetooth"
|
msgid "Bluetooth"
|
||||||
msgstr "Bluetooth"
|
msgstr "Bluetooth"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:616
|
||||||
msgid "Bluetooth Settings"
|
msgid "Bluetooth Settings"
|
||||||
msgstr "Configuración de Bluetooth"
|
msgstr "Configuración de Bluetooth"
|
||||||
|
|
||||||
#. Translators: this is the number of connected bluetooth devices
|
#. Translators: this is the number of connected bluetooth devices
|
||||||
#: js/ui/status/bluetooth.js:136
|
#: js/ui/status/bluetooth.js:137
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d Connected"
|
msgid "%d Connected"
|
||||||
msgid_plural "%d Connected"
|
msgid_plural "%d Connected"
|
||||||
msgstr[0] "%d conectado"
|
msgstr[0] "%d conectado"
|
||||||
msgstr[1] "%d conectados"
|
msgstr[1] "%d conectados"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:138
|
#: js/ui/status/bluetooth.js:139
|
||||||
msgid "Off"
|
msgid "Off"
|
||||||
msgstr "Desconectado"
|
msgstr "Desconectado"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:140
|
#: js/ui/status/bluetooth.js:141
|
||||||
msgid "On"
|
msgid "On"
|
||||||
msgstr "Encender"
|
msgstr "Encender"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
|
||||||
msgid "Turn On"
|
|
||||||
msgstr "Encender"
|
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
|
|
||||||
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
|
|
||||||
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
|
|
||||||
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
|
|
||||||
msgid "Turn Off"
|
|
||||||
msgstr "Apagar"
|
|
||||||
|
|
||||||
#: js/ui/status/brightness.js:44
|
#: js/ui/status/brightness.js:44
|
||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "Brillo"
|
msgstr "Brillo"
|
||||||
|
|
||||||
#: js/ui/status/keyboard.js:805
|
#: js/ui/status/keyboard.js:783
|
||||||
|
msgid "Keyboard"
|
||||||
|
msgstr "Teclado"
|
||||||
|
|
||||||
|
#: js/ui/status/keyboard.js:806
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "Mostrar la distribución del teclado"
|
msgstr "Mostrar la distribución del teclado"
|
||||||
|
|
||||||
@@ -1616,18 +1662,18 @@ msgstr ""
|
|||||||
"Los servicios de ubicación se pueden cambiar en cualquier momento desde la "
|
"Los servicios de ubicación se pueden cambiar en cualquier momento desde la "
|
||||||
"configuración de privacidad."
|
"configuración de privacidad."
|
||||||
|
|
||||||
#: js/ui/status/network.js:104
|
#: js/ui/status/network.js:90
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<desconocido>"
|
msgstr "<desconocido>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
#: js/ui/status/network.js:443 js/ui/status/network.js:1316
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s apagada"
|
msgstr "%s apagada"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:457
|
#: js/ui/status/network.js:446
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connected"
|
msgid "%s Connected"
|
||||||
msgstr "%s conectada"
|
msgstr "%s conectada"
|
||||||
@@ -1635,189 +1681,189 @@ msgstr "%s conectada"
|
|||||||
#. Translators: this is for network devices that are physically present but are not
|
#. Translators: this is for network devices that are physically present but are not
|
||||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||||
#. %s is a network identifier
|
#. %s is a network identifier
|
||||||
#: js/ui/status/network.js:462
|
#: js/ui/status/network.js:451
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unmanaged"
|
msgid "%s Unmanaged"
|
||||||
msgstr "%s sin gestionar"
|
msgstr "%s sin gestionar"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:465
|
#: js/ui/status/network.js:454
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disconnecting"
|
msgid "%s Disconnecting"
|
||||||
msgstr "Desconectando %s"
|
msgstr "Desconectando %s"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:461 js/ui/status/network.js:1308
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "Conectando %s"
|
msgstr "Conectando %s"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||||
#: js/ui/status/network.js:475
|
#: js/ui/status/network.js:464
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Requires Authentication"
|
msgid "%s Requires Authentication"
|
||||||
msgstr "%s requiere autenticación"
|
msgstr "%s requiere autenticación"
|
||||||
|
|
||||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||||
#. module, which is missing; %s is a network identifier
|
#. module, which is missing; %s is a network identifier
|
||||||
#: js/ui/status/network.js:483
|
#: js/ui/status/network.js:472
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Firmware Missing For %s"
|
msgid "Firmware Missing For %s"
|
||||||
msgstr "Falta el «firmware» para %s"
|
msgstr "Falta el «firmware» para %s"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||||
#: js/ui/status/network.js:487
|
#: js/ui/status/network.js:476
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unavailable"
|
msgid "%s Unavailable"
|
||||||
msgstr "%s no disponible"
|
msgstr "%s no disponible"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:490
|
#: js/ui/status/network.js:479
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connection Failed"
|
msgid "%s Connection Failed"
|
||||||
msgstr "Falló la conexión %s"
|
msgstr "Falló la conexión %s"
|
||||||
|
|
||||||
#: js/ui/status/network.js:506
|
#: js/ui/status/network.js:495
|
||||||
msgid "Wired Settings"
|
msgid "Wired Settings"
|
||||||
msgstr "Configuración de red cableada"
|
msgstr "Configuración de red cableada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:548
|
#: js/ui/status/network.js:537
|
||||||
msgid "Mobile Broadband Settings"
|
msgid "Mobile Broadband Settings"
|
||||||
msgstr "Configuración de banda ancha móvil"
|
msgstr "Configuración de banda ancha móvil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
#: js/ui/status/network.js:580 js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "Hardware %s desactivado"
|
msgstr "Hardware %s desactivado"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated
|
#. Translators: this is for a network device that cannot be activated
|
||||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||||
#: js/ui/status/network.js:595
|
#: js/ui/status/network.js:584
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disabled"
|
msgid "%s Disabled"
|
||||||
msgstr "%s desactivado"
|
msgstr "%s desactivado"
|
||||||
|
|
||||||
#: js/ui/status/network.js:635
|
#: js/ui/status/network.js:624
|
||||||
msgid "Connect to Internet"
|
msgid "Connect to Internet"
|
||||||
msgstr "Conectar a Internet"
|
msgstr "Conectar a Internet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:833
|
#: js/ui/status/network.js:822
|
||||||
msgid "Airplane Mode is On"
|
msgid "Airplane Mode is On"
|
||||||
msgstr "El modo avión está activado"
|
msgstr "El modo avión está activado"
|
||||||
|
|
||||||
#: js/ui/status/network.js:834
|
#: js/ui/status/network.js:823
|
||||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||||
msgstr "La Wi-Fi se desactiva cuando se activa el modo avión."
|
msgstr "La Wi-Fi se desactiva cuando se activa el modo avión."
|
||||||
|
|
||||||
#: js/ui/status/network.js:835
|
#: js/ui/status/network.js:824
|
||||||
msgid "Turn Off Airplane Mode"
|
msgid "Turn Off Airplane Mode"
|
||||||
msgstr "Apagar el modo avión"
|
msgstr "Apagar el modo avión"
|
||||||
|
|
||||||
#: js/ui/status/network.js:844
|
#: js/ui/status/network.js:833
|
||||||
msgid "Wi-Fi is Off"
|
msgid "Wi-Fi is Off"
|
||||||
msgstr "La Wi-Fi está desactivada"
|
msgstr "La Wi-Fi está desactivada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:845
|
#: js/ui/status/network.js:834
|
||||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||||
msgstr "Se debe activar la Wi-Fi para poder conectarse a la red."
|
msgstr "Se debe activar la Wi-Fi para poder conectarse a la red."
|
||||||
|
|
||||||
#: js/ui/status/network.js:846
|
#: js/ui/status/network.js:835
|
||||||
msgid "Turn On Wi-Fi"
|
msgid "Turn On Wi-Fi"
|
||||||
msgstr "Activar la Wi-Fi"
|
msgstr "Activar la Wi-Fi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:871
|
#: js/ui/status/network.js:860
|
||||||
msgid "Wi-Fi Networks"
|
msgid "Wi-Fi Networks"
|
||||||
msgstr "Redes Wi-Fi"
|
msgstr "Redes Wi-Fi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:873
|
#: js/ui/status/network.js:862
|
||||||
msgid "Select a network"
|
msgid "Select a network"
|
||||||
msgstr "Seleccionar una red"
|
msgstr "Seleccionar una red"
|
||||||
|
|
||||||
#: js/ui/status/network.js:903
|
#: js/ui/status/network.js:892
|
||||||
msgid "No Networks"
|
msgid "No Networks"
|
||||||
msgstr "No hay redes"
|
msgstr "No hay redes"
|
||||||
|
|
||||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
#: js/ui/status/network.js:913 js/ui/status/rfkill.js:115
|
||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Usar el interruptor hardware para apagar"
|
msgstr "Usar el interruptor hardware para apagar"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1191
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Seleccionar red"
|
msgstr "Seleccionar red"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1197
|
#: js/ui/status/network.js:1185
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Configuración de Wi-Fi"
|
msgstr "Configuración de Wi-Fi"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1316
|
#: js/ui/status/network.js:1304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Punto de acceso %s activo"
|
msgstr "Punto de acceso %s activo"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1331
|
#: js/ui/status/network.js:1319
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s no conectado"
|
msgstr "%s no conectado"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1435
|
#: js/ui/status/network.js:1419
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "conectando…"
|
msgstr "conectando…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1438
|
#: js/ui/status/network.js:1422
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "se necesita autenticación"
|
msgstr "se necesita autenticación"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1440
|
#: js/ui/status/network.js:1424
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "falló la conexión"
|
msgstr "falló la conexión"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1494
|
#: js/ui/status/network.js:1478
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Configuración de VPN"
|
msgstr "Configuración de VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1491
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1501
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN apagada"
|
msgstr "VPN apagada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Configuración de la red"
|
msgstr "Configuración de la red"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1603
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s conexión cableada"
|
msgstr[0] "%s conexión cableada"
|
||||||
msgstr[1] "%s conexiones cableadas"
|
msgstr[1] "%s conexiones cableadas"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1607
|
#: js/ui/status/network.js:1600
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s conexión inalámbrica"
|
msgstr[0] "%s conexión inalámbrica"
|
||||||
msgstr[1] "%s conexiones inalámbricas"
|
msgstr[1] "%s conexiones inalámbricas"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1611
|
#: js/ui/status/network.js:1604
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s conexión por módem"
|
msgstr[0] "%s conexión por módem"
|
||||||
msgstr[1] "%s conexiones por módem"
|
msgstr[1] "%s conexiones por módem"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1759
|
#: js/ui/status/network.js:1738
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Falló la conexión"
|
msgstr "Falló la conexión"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1760
|
#: js/ui/status/network.js:1739
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Falló la activación de la conexión de red"
|
msgstr "Falló la activación de la conexión de red"
|
||||||
|
|
||||||
@@ -1899,6 +1945,32 @@ msgstr "Suspender"
|
|||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:272
|
||||||
|
msgid "Thunderbolt"
|
||||||
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
|
#. we are done
|
||||||
|
#: js/ui/status/thunderbolt.js:330
|
||||||
|
msgid "Unknown Thunderbolt device"
|
||||||
|
msgstr "Dispositivo Thunderbolt desconocido"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:331
|
||||||
|
msgid ""
|
||||||
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
|
"reconnect the device to start using it."
|
||||||
|
msgstr ""
|
||||||
|
"Se ha detectado un dispositivo nuevo mientras estaba fuera. Desconéctelo y "
|
||||||
|
"vuélvalo a conectar para empezar a usarlo."
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:336
|
||||||
|
msgid "Thunderbolt authorization error"
|
||||||
|
msgstr "Error de autorización de Thunderbolt"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:337
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Could not authorize the thunderbolt device: %s"
|
||||||
|
msgstr "No se pudo autorizar el dispositivo Thunderbolt: %s"
|
||||||
|
|
||||||
#: js/ui/status/volume.js:128
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "Volumen modificado"
|
msgstr "Volumen modificado"
|
||||||
@@ -1911,7 +1983,6 @@ msgstr "Volumen"
|
|||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
#: js/ui/switchMonitor.js:21
|
#: js/ui/switchMonitor.js:21
|
||||||
#| msgid "Error"
|
|
||||||
msgid "Mirror"
|
msgid "Mirror"
|
||||||
msgstr "Espejo"
|
msgstr "Espejo"
|
||||||
|
|
||||||
@@ -1919,7 +1990,6 @@ msgstr "Espejo"
|
|||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
#: js/ui/switchMonitor.js:26
|
#: js/ui/switchMonitor.js:26
|
||||||
#| msgid "Panel Display"
|
|
||||||
msgid "Join Displays"
|
msgid "Join Displays"
|
||||||
msgstr "Unir pantallas"
|
msgstr "Unir pantallas"
|
||||||
|
|
||||||
@@ -2060,21 +2130,21 @@ msgstr "Calendario de Evolution"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:380
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Imprimir versión"
|
msgstr "Imprimir versión"
|
||||||
|
|
||||||
#: src/main.c:386
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Modo usado por GDM para la pantalla de inicio"
|
msgstr "Modo usado por GDM para la pantalla de inicio"
|
||||||
|
|
||||||
#: src/main.c:392
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
|
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
|
||||||
"sesión"
|
"sesión"
|
||||||
|
|
||||||
#: src/main.c:398
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Listar los modos posibles"
|
msgstr "Listar los modos posibles"
|
||||||
|
|
||||||
@@ -2122,6 +2192,21 @@ msgstr[1] "%u entradas"
|
|||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Sonidos del sistema"
|
msgstr "Sonidos del sistema"
|
||||||
|
|
||||||
|
#~| msgid "Power Off"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Power off"
|
||||||
|
#~ msgstr "Apagar"
|
||||||
|
|
||||||
|
#~| msgid "Log Out"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Log out"
|
||||||
|
#~ msgstr "Cerrar la sesión"
|
||||||
|
|
||||||
|
#~| msgid "Switch User"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Switch user"
|
||||||
|
#~ msgstr "Cambiar de usuario"
|
||||||
|
|
||||||
#~ msgid "Hide tray"
|
#~ msgid "Hide tray"
|
||||||
#~ msgstr "Ocultar bandeja"
|
#~ msgstr "Ocultar bandeja"
|
||||||
|
|
||||||
@@ -2658,9 +2743,6 @@ msgstr "Sonidos del sistema"
|
|||||||
#~ msgid "Mouse Settings"
|
#~ msgid "Mouse Settings"
|
||||||
#~ msgstr "Configuración del ratón…"
|
#~ msgstr "Configuración del ratón…"
|
||||||
|
|
||||||
#~ msgid "Region & Language Settings"
|
|
||||||
#~ msgstr "Configuración de región e idioma"
|
|
||||||
|
|
||||||
#~ msgid "%d hour remaining"
|
#~ msgid "%d hour remaining"
|
||||||
#~ msgid_plural "%d hours remaining"
|
#~ msgid_plural "%d hours remaining"
|
||||||
#~ msgstr[0] "Queda %d hora"
|
#~ msgstr[0] "Queda %d hora"
|
||||||
|
|||||||
368
po/fi.po
368
po/fi.po
@@ -24,10 +24,9 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell\n"
|
"Project-Id-Version: gnome-shell\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"POT-Creation-Date: 2018-02-06 01:15+0000\n"
|
||||||
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
|
"PO-Revision-Date: 2018-02-06 23:41+0200\n"
|
||||||
"PO-Revision-Date: 2017-08-29 11:23+0300\n"
|
|
||||||
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
|
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
|
||||||
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
|
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
|
||||||
"Language: fi\n"
|
"Language: fi\n"
|
||||||
@@ -35,7 +34,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Gtranslator 2.91.7\n"
|
"X-Generator: Poedit 1.8.7.1\n"
|
||||||
"X-DamnedLies-Scope: partial\n"
|
"X-DamnedLies-Scope: partial\n"
|
||||||
"X-Project-Style: gnome\n"
|
"X-Project-Style: gnome\n"
|
||||||
"X-POT-Import-Date: 2012-03-05 15:06:10+0000\n"
|
"X-POT-Import-Date: 2012-03-05 15:06:10+0000\n"
|
||||||
@@ -359,7 +358,7 @@ msgstr "Kohteen %s asetusikkunaa ladataessa tapahtui virhe:"
|
|||||||
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:925
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Peru"
|
msgstr "Peru"
|
||||||
|
|
||||||
@@ -422,34 +421,30 @@ msgstr "(tai pyyhkäise sormella)"
|
|||||||
|
|
||||||
#. Translators: The name of the power-off action in search
|
#. Translators: The name of the power-off action in search
|
||||||
#: js/misc/systemActions.js:99
|
#: js/misc/systemActions.js:99
|
||||||
#| msgid "Power Off"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Power off"
|
msgid "Power Off"
|
||||||
msgstr "Sammuta"
|
msgstr "Sammuta"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:102
|
#: js/misc/systemActions.js:102
|
||||||
msgid "power off;shutdown"
|
msgid "power off;shutdown;reboot;restart"
|
||||||
msgstr "power off;shutdown;sammuta;sammutus;lopeta;"
|
msgstr "power off;shutdown;reboot;restart;sammuta;käynnistä uudelleen;"
|
||||||
|
|
||||||
#. Translators: The name of the lock screen action in search
|
#. Translators: The name of the lock screen action in search
|
||||||
#: js/misc/systemActions.js:106
|
#: js/misc/systemActions.js:106
|
||||||
#| msgid "Lock Screen"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock screen"
|
msgid "Lock Screen"
|
||||||
msgstr "Lukitse näyttö"
|
msgstr "Lukitse näyttö"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:109
|
#: js/misc/systemActions.js:109
|
||||||
#| msgid "Lock Screen"
|
|
||||||
msgid "lock screen"
|
msgid "lock screen"
|
||||||
msgstr "lock screen"
|
msgstr "lock screen"
|
||||||
|
|
||||||
#. Translators: The name of the logout action in search
|
#. Translators: The name of the logout action in search
|
||||||
#: js/misc/systemActions.js:113
|
#: js/misc/systemActions.js:113
|
||||||
#| msgid "Log Out"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Log out"
|
msgid "Log Out"
|
||||||
msgstr "Kirjaudu ulos"
|
msgstr "Kirjaudu ulos"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
||||||
@@ -459,42 +454,36 @@ msgstr "logout;sign off;kirjaudu ulos;uloskirjautuminen;poistu;"
|
|||||||
|
|
||||||
#. Translators: The name of the suspend action in search
|
#. Translators: The name of the suspend action in search
|
||||||
#: js/misc/systemActions.js:120
|
#: js/misc/systemActions.js:120
|
||||||
#| msgid "Suspend"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Valmiustila"
|
msgstr "Valmiustila"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the suspend action, separated by semicolons
|
#. Translators: A list of keywords that match the suspend action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:123
|
#: js/misc/systemActions.js:123
|
||||||
#| msgid "Suspend"
|
|
||||||
msgid "suspend;sleep"
|
msgid "suspend;sleep"
|
||||||
msgstr "suspend;sleep"
|
msgstr "suspend;sleep"
|
||||||
|
|
||||||
#. Translators: The name of the switch user action in search
|
#. Translators: The name of the switch user action in search
|
||||||
#: js/misc/systemActions.js:127
|
#: js/misc/systemActions.js:127
|
||||||
#| msgid "Switch User"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Switch user"
|
msgid "Switch User"
|
||||||
msgstr "Vaihda käyttäjää"
|
msgstr "Vaihda käyttäjää"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:130
|
#: js/misc/systemActions.js:130
|
||||||
#| msgid "Switch User"
|
|
||||||
msgid "switch user"
|
msgid "switch user"
|
||||||
msgstr "switch user"
|
msgstr "switch user"
|
||||||
|
|
||||||
#. Translators: The name of the lock orientation action in search
|
#. Translators: The name of the lock orientation action in search
|
||||||
#: js/misc/systemActions.js:134
|
#: js/misc/systemActions.js:134
|
||||||
#| msgid "Orientation Lock"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock orientation"
|
msgid "Lock Orientation"
|
||||||
msgstr "Lukitse näytön kierto"
|
msgstr "Lukitse näytön kierto"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:137
|
#: js/misc/systemActions.js:137
|
||||||
#| msgid "Orientation Lock"
|
msgid "lock orientation;screen;rotation"
|
||||||
msgid "lock orientation"
|
msgstr "lock orientation;screen;rotation;lukitse kierto;lukitse suunta;suunta;"
|
||||||
msgstr "lock orientation"
|
|
||||||
|
|
||||||
#: js/misc/util.js:122
|
#: js/misc/util.js:122
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
@@ -666,32 +655,32 @@ msgstr "Käytetyimmät"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Kaikki"
|
msgstr "Kaikki"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1915
|
#: js/ui/appDisplay.js:1918
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Uusi ikkuna"
|
msgstr "Uusi ikkuna"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1929
|
#: js/ui/appDisplay.js:1932
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Käynnistä erillisnäytönohjainta käyttäen"
|
msgstr "Käynnistä erillisnäytönohjainta käyttäen"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
#: js/ui/appDisplay.js:1959 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Poista suosikeista"
|
msgstr "Poista suosikeista"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1962
|
#: js/ui/appDisplay.js:1965
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Lisää suosikkeihin"
|
msgstr "Lisää suosikkeihin"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1972
|
#: js/ui/appDisplay.js:1975
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Näytä tiedot"
|
msgstr "Näytä tiedot"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:141
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "%s on lisätty suosikkeihin."
|
msgstr "%s on lisätty suosikkeihin."
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:175
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s on poistettu suosikeista."
|
msgstr "%s on poistettu suosikeista."
|
||||||
@@ -780,58 +769,57 @@ msgctxt "grid saturday"
|
|||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "L"
|
msgstr "L"
|
||||||
|
|
||||||
#: js/ui/calendar.js:442
|
#: js/ui/calendar.js:449
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Edellinen kuukausi"
|
msgstr "Edellinen kuukausi"
|
||||||
|
|
||||||
#: js/ui/calendar.js:452
|
#: js/ui/calendar.js:459
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Seuraava kuukausi"
|
msgstr "Seuraava kuukausi"
|
||||||
|
|
||||||
#: js/ui/calendar.js:605
|
#: js/ui/calendar.js:612
|
||||||
#, no-javascript-format
|
#, no-javascript-format
|
||||||
msgctxt "date day number format"
|
msgctxt "date day number format"
|
||||||
msgid "%d"
|
msgid "%d"
|
||||||
msgstr "%d"
|
msgstr "%d"
|
||||||
|
|
||||||
#: js/ui/calendar.js:660
|
#: js/ui/calendar.js:667
|
||||||
msgid "Week %V"
|
msgid "Week %V"
|
||||||
msgstr "Viikko %V"
|
msgstr "Viikko %V"
|
||||||
|
|
||||||
#. Translators: Shown in calendar event list for all day events
|
#. Translators: Shown in calendar event list for all day events
|
||||||
#. * Keep it short, best if you can use less then 10 characters
|
#. * Keep it short, best if you can use less then 10 characters
|
||||||
#.
|
#.
|
||||||
#: js/ui/calendar.js:729
|
#: js/ui/calendar.js:736
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Koko päivä"
|
msgstr "Koko päivä"
|
||||||
|
|
||||||
#: js/ui/calendar.js:862
|
#: js/ui/calendar.js:869
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %e. %Bta"
|
msgstr "%A, %e. %Bta"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:873
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %e. %Bta %Y"
|
msgstr "%A, %e. %Bta %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1086
|
#: js/ui/calendar.js:1093
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Ei ilmoituksia"
|
msgstr "Ei ilmoituksia"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1089
|
#: js/ui/calendar.js:1096
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Ei tapahtumia"
|
msgstr "Ei tapahtumia"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1117
|
#: js/ui/calendar.js:1124
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Tyhjennä kaikki"
|
msgstr "Tyhjennä kaikki"
|
||||||
|
|
||||||
#. Translators: %s is an application name
|
#. Translators: %s is an application name
|
||||||
#: js/ui/closeDialog.js:44
|
#: js/ui/closeDialog.js:44
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
#| msgid "“%s” is ready"
|
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "“%s” ei vastaa"
|
msgstr "“%s” ei vastaa"
|
||||||
|
|
||||||
@@ -859,7 +847,7 @@ msgstr "Erillinen asema yhdistetty"
|
|||||||
msgid "External drive disconnected"
|
msgid "External drive disconnected"
|
||||||
msgstr "Erillinen asema irrotettu"
|
msgstr "Erillinen asema irrotettu"
|
||||||
|
|
||||||
#: js/ui/components/autorunManager.js:354
|
#: js/ui/components/autorunManager.js:358
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Avaa käyttäen sovellusta %s"
|
msgstr "Avaa käyttäen sovellusta %s"
|
||||||
@@ -872,8 +860,8 @@ msgstr "Salasana:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Uudelleen:"
|
msgstr "Uudelleen:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:245
|
||||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
#: js/ui/status/network.js:338 js/ui/status/network.js:928
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Yhdistä"
|
msgstr "Yhdistä"
|
||||||
|
|
||||||
@@ -901,18 +889,18 @@ msgstr "Salaisen avaimen salasana: "
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Palvelu: "
|
msgstr "Palvelu: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "Langaton verkko vaatii tunnistautumisen"
|
msgstr "Langaton verkko vaatii tunnistautumisen"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:639
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
"“%s”."
|
"“%s”."
|
||||||
msgstr "Langaton verkko \"%s\" vaatii salasanan tai salausavaimia."
|
msgstr "Langaton verkko \"%s\" vaatii salasanan tai salausavaimia."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:642
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Kiinteän 802.1X-yhteyden tunnistautuminen"
|
msgstr "Kiinteän 802.1X-yhteyden tunnistautuminen"
|
||||||
|
|
||||||
@@ -920,15 +908,15 @@ msgstr "Kiinteän 802.1X-yhteyden tunnistautuminen"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Verkon nimi: "
|
msgstr "Verkon nimi: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "DSL-tunnistautuminen"
|
msgstr "DSL-tunnistautuminen"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:652
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "PIN-koodi vaaditaan"
|
msgstr "PIN-koodi vaaditaan"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:653
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Mobiililaajakaista vaatii PIN-koodin"
|
msgstr "Mobiililaajakaista vaatii PIN-koodin"
|
||||||
|
|
||||||
@@ -936,17 +924,17 @@ msgstr "Mobiililaajakaista vaatii PIN-koodin"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Mobiililaajakaistan verkkosalasana"
|
msgstr "Mobiililaajakaistan verkkosalasana"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:643
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:647 js/ui/components/networkAgent.js:660
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Salasana vaaditaan kohteeseen \"%s\" yhdistämiseksi."
|
msgstr "Salasana vaaditaan kohteeseen \"%s\" yhdistämiseksi."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1699
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Verkon hallinta"
|
msgstr "Verkon hallinta"
|
||||||
|
|
||||||
@@ -981,20 +969,20 @@ msgstr "%s on nyt nimeltään %s"
|
|||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Ikkunat"
|
msgstr "Ikkunat"
|
||||||
|
|
||||||
#: js/ui/dash.js:250 js/ui/dash.js:291
|
#: js/ui/dash.js:246 js/ui/dash.js:287
|
||||||
msgid "Show Applications"
|
msgid "Show Applications"
|
||||||
msgstr "Näytä sovellukset"
|
msgstr "Näytä sovellukset"
|
||||||
|
|
||||||
#. Translators: this is the name of the dock/favorites area on
|
#. Translators: this is the name of the dock/favorites area on
|
||||||
#. the left of the overview
|
#. the left of the overview
|
||||||
#: js/ui/dash.js:449
|
#: js/ui/dash.js:445
|
||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Pikavalikko"
|
msgstr "Pikavalikko"
|
||||||
|
|
||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. Translators: This is the date format to use when the calendar popup is
|
||||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:75
|
#: js/ui/dateMenu.js:76
|
||||||
msgid "%B %e %Y"
|
msgid "%B %e %Y"
|
||||||
msgstr "%e. %b %Y"
|
msgstr "%e. %b %Y"
|
||||||
|
|
||||||
@@ -1002,19 +990,19 @@ msgstr "%e. %b %Y"
|
|||||||
#. * below the time in the shell; it should combine the weekday and the
|
#. * below the time in the shell; it should combine the weekday and the
|
||||||
#. * date, e.g. "Tuesday February 17 2015".
|
#. * date, e.g. "Tuesday February 17 2015".
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:82
|
#: js/ui/dateMenu.js:83
|
||||||
msgid "%A %B %e %Y"
|
msgid "%A %B %e %Y"
|
||||||
msgstr "%A, %e. %Bta %Y"
|
msgstr "%A, %e. %Bta %Y"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:144
|
#: js/ui/dateMenu.js:148
|
||||||
msgid "Add world clocks…"
|
msgid "Add world clocks…"
|
||||||
msgstr "Lisää maailmankelloja…"
|
msgstr "Lisää maailmankelloja…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:145
|
#: js/ui/dateMenu.js:149
|
||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Maailmankellot"
|
msgstr "Maailmankellot"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:224
|
#: js/ui/dateMenu.js:228
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "Sää"
|
msgstr "Sää"
|
||||||
|
|
||||||
@@ -1022,7 +1010,7 @@ msgstr "Sää"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:286
|
#: js/ui/dateMenu.js:292
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s koko päivän."
|
msgstr "%s koko päivän."
|
||||||
@@ -1031,7 +1019,7 @@ msgstr "%s koko päivän."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:292
|
#: js/ui/dateMenu.js:298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s. %s myöhemmin."
|
msgstr "%s. %s myöhemmin."
|
||||||
@@ -1040,30 +1028,30 @@ msgstr "%s. %s myöhemmin."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:298
|
#: js/ui/dateMenu.js:304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s. Sen jälkeen %s. Myöhemmin %s."
|
msgstr "%s. Sen jälkeen %s. Myöhemmin %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:309
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Valitse sijainti…"
|
msgstr "Valitse sijainti…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:312
|
#: js/ui/dateMenu.js:318
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "Ladataan…"
|
msgstr "Ladataan…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:318
|
#: js/ui/dateMenu.js:324
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Tuntuu kuin %s."
|
msgstr "Tuntuu kuin %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:321
|
#: js/ui/dateMenu.js:327
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Yhdistä verkkoon saadaksesi säätietoja"
|
msgstr "Yhdistä verkkoon saadaksesi säätietoja"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:329
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "Säätiedot eivät ole juuri nyt saatavilla"
|
msgstr "Säätiedot eivät ole juuri nyt saatavilla"
|
||||||
|
|
||||||
@@ -1252,9 +1240,74 @@ msgstr "Kiellä"
|
|||||||
msgid "Allow"
|
msgid "Allow"
|
||||||
msgstr "Salli"
|
msgstr "Salli"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
|
#: js/ui/kbdA11yDialog.js:33
|
||||||
msgid "Keyboard"
|
msgid "Slow Keys Turned On"
|
||||||
msgstr "Näppäimistö"
|
msgstr "Hitaat näppäimet otettu käyttöön"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:34
|
||||||
|
msgid "Slow Keys Turned Off"
|
||||||
|
msgstr "Hitaat näppäimet poistettu käytöstä"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:35
|
||||||
|
msgid ""
|
||||||
|
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
|
||||||
|
"Slow Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Pidit juuri Shift-näppäintä pohjassa kahdeksan sekuntia. Se toimii "
|
||||||
|
"pikanäppäimenä hitaiden näppäinten ominaisuudelle, joka taasen vaikuttaa "
|
||||||
|
"näppäimistön toimintatapaan."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:42
|
||||||
|
msgid "Sticky Keys Turned On"
|
||||||
|
msgstr "Pohjaan jäävät näppäimet otettu käyttöön"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:43
|
||||||
|
msgid "Sticky Keys Turned Off"
|
||||||
|
msgstr "Pohjaan jäävät näppäimet poistettu käytöstä"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:45
|
||||||
|
msgid ""
|
||||||
|
"You just pressed the Shift key 5 times in a row. This is the shortcut for "
|
||||||
|
"the Sticky Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Painoit juuri Shift-näppäintä viisi kertaa peräkkäin. Se toimii "
|
||||||
|
"pikanäppäimenä pohjaan jäävien näppäinten ominaisuudelle, joka taasen "
|
||||||
|
"vaikuttaa näppäimistön toimintatapaan."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:47
|
||||||
|
msgid ""
|
||||||
|
"You just pressed two keys at once, or pressed the Shift key 5 times in a "
|
||||||
|
"row. This turns off the Sticky Keys feature, which affects the way your "
|
||||||
|
"keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Painoit juuri kahta näppäintä samanaikaisesti, tai painoit Shift-näppäintä "
|
||||||
|
"viisi kertaa peräkkäin. Tämä kytkee pohjaan jäävien näppäinten ominaisuuden "
|
||||||
|
"pois käytöstä, joka taasen vaikuttaa näppäimistön toimintatapaan."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59
|
||||||
|
msgid "Leave On"
|
||||||
|
msgstr "Jätä käyttöön"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:1287
|
||||||
|
msgid "Turn On"
|
||||||
|
msgstr "Ota käyttöön"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:154 js/ui/status/network.js:339
|
||||||
|
#: js/ui/status/network.js:1287 js/ui/status/network.js:1402
|
||||||
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
|
#: js/ui/status/rfkill.js:117
|
||||||
|
msgid "Turn Off"
|
||||||
|
msgstr "Sammuta"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67
|
||||||
|
msgid "Leave Off"
|
||||||
|
msgstr "Poista käytöstä"
|
||||||
|
|
||||||
|
#: js/ui/keyboard.js:198
|
||||||
|
msgid "Region & Language Settings"
|
||||||
|
msgstr "Kielen & alueen asetukset"
|
||||||
|
|
||||||
#: js/ui/lookingGlass.js:642
|
#: js/ui/lookingGlass.js:642
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
@@ -1304,7 +1357,7 @@ msgstr "Näytä lähde"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Verkkosivusto"
|
msgstr "Verkkosivusto"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1493
|
#: js/ui/messageTray.js:1494
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Järjestelmän tiedot"
|
msgstr "Järjestelmän tiedot"
|
||||||
|
|
||||||
@@ -1395,7 +1448,7 @@ msgctxt "System menu in the top bar"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Järjestelmä"
|
msgstr "Järjestelmä"
|
||||||
|
|
||||||
#: js/ui/panel.js:812
|
#: js/ui/panel.js:814
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Yläpalkki"
|
msgstr "Yläpalkki"
|
||||||
|
|
||||||
@@ -1550,46 +1603,39 @@ msgstr "Korkea kontrasti"
|
|||||||
msgid "Large Text"
|
msgid "Large Text"
|
||||||
msgstr "Suuri tekstin koko"
|
msgstr "Suuri tekstin koko"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:47
|
#: js/ui/status/bluetooth.js:48
|
||||||
msgid "Bluetooth"
|
msgid "Bluetooth"
|
||||||
msgstr "Bluetooth"
|
msgstr "Bluetooth"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:616
|
||||||
msgid "Bluetooth Settings"
|
msgid "Bluetooth Settings"
|
||||||
msgstr "Bluetooth-asetukset"
|
msgstr "Bluetooth-asetukset"
|
||||||
|
|
||||||
#. Translators: this is the number of connected bluetooth devices
|
#. Translators: this is the number of connected bluetooth devices
|
||||||
#: js/ui/status/bluetooth.js:136
|
#: js/ui/status/bluetooth.js:137
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d Connected"
|
msgid "%d Connected"
|
||||||
msgid_plural "%d Connected"
|
msgid_plural "%d Connected"
|
||||||
msgstr[0] "%d yhdistetty"
|
msgstr[0] "%d yhdistetty"
|
||||||
msgstr[1] "%d yhdistetty"
|
msgstr[1] "%d yhdistetty"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:138
|
#: js/ui/status/bluetooth.js:139
|
||||||
msgid "Off"
|
msgid "Off"
|
||||||
msgstr "Pois"
|
msgstr "Pois"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:140
|
#: js/ui/status/bluetooth.js:141
|
||||||
msgid "On"
|
msgid "On"
|
||||||
msgstr "Päällä"
|
msgstr "Päällä"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
|
||||||
msgid "Turn On"
|
|
||||||
msgstr "Ota käyttöön"
|
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
|
|
||||||
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
|
|
||||||
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
|
|
||||||
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
|
|
||||||
msgid "Turn Off"
|
|
||||||
msgstr "Sammuta"
|
|
||||||
|
|
||||||
#: js/ui/status/brightness.js:44
|
#: js/ui/status/brightness.js:44
|
||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "Kirkkaus"
|
msgstr "Kirkkaus"
|
||||||
|
|
||||||
#: js/ui/status/keyboard.js:805
|
#: js/ui/status/keyboard.js:783
|
||||||
|
msgid "Keyboard"
|
||||||
|
msgstr "Näppäimistö"
|
||||||
|
|
||||||
|
#: js/ui/status/keyboard.js:806
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "Näytä näppäimistön asettelu"
|
msgstr "Näytä näppäimistön asettelu"
|
||||||
|
|
||||||
@@ -1629,18 +1675,18 @@ msgstr ""
|
|||||||
"Sijaintitiedon käyttöoikeuksia voi muuttaa milloin tahansa "
|
"Sijaintitiedon käyttöoikeuksia voi muuttaa milloin tahansa "
|
||||||
"yksityisyysasetuksista."
|
"yksityisyysasetuksista."
|
||||||
|
|
||||||
#: js/ui/status/network.js:104
|
#: js/ui/status/network.js:90
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<tuntematon>"
|
msgstr "<tuntematon>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
#: js/ui/status/network.js:443 js/ui/status/network.js:1316
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s pois"
|
msgstr "%s pois"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:457
|
#: js/ui/status/network.js:446
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connected"
|
msgid "%s Connected"
|
||||||
msgstr "%s - Yhdistetty"
|
msgstr "%s - Yhdistetty"
|
||||||
@@ -1648,189 +1694,189 @@ msgstr "%s - Yhdistetty"
|
|||||||
#. Translators: this is for network devices that are physically present but are not
|
#. Translators: this is for network devices that are physically present but are not
|
||||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||||
#. %s is a network identifier
|
#. %s is a network identifier
|
||||||
#: js/ui/status/network.js:462
|
#: js/ui/status/network.js:451
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unmanaged"
|
msgid "%s Unmanaged"
|
||||||
msgstr "%s - Ei hallinnassa"
|
msgstr "%s - Ei hallinnassa"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:465
|
#: js/ui/status/network.js:454
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disconnecting"
|
msgid "%s Disconnecting"
|
||||||
msgstr "%s - Katkaistaan yhteyttä"
|
msgstr "%s - Katkaistaan yhteyttä"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:461 js/ui/status/network.js:1308
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "%s - Yhdistetään"
|
msgstr "%s - Yhdistetään"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||||
#: js/ui/status/network.js:475
|
#: js/ui/status/network.js:464
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Requires Authentication"
|
msgid "%s Requires Authentication"
|
||||||
msgstr "%s vaatii tunnistautumisen"
|
msgstr "%s vaatii tunnistautumisen"
|
||||||
|
|
||||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||||
#. module, which is missing; %s is a network identifier
|
#. module, which is missing; %s is a network identifier
|
||||||
#: js/ui/status/network.js:483
|
#: js/ui/status/network.js:472
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Firmware Missing For %s"
|
msgid "Firmware Missing For %s"
|
||||||
msgstr "%s - Laiteohjelmisto puuttuu"
|
msgstr "%s - Laiteohjelmisto puuttuu"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||||
#: js/ui/status/network.js:487
|
#: js/ui/status/network.js:476
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unavailable"
|
msgid "%s Unavailable"
|
||||||
msgstr "%s - Ei saatavilla"
|
msgstr "%s - Ei saatavilla"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:490
|
#: js/ui/status/network.js:479
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connection Failed"
|
msgid "%s Connection Failed"
|
||||||
msgstr "%s - Yhteys epäonnistui"
|
msgstr "%s - Yhteys epäonnistui"
|
||||||
|
|
||||||
#: js/ui/status/network.js:506
|
#: js/ui/status/network.js:495
|
||||||
msgid "Wired Settings"
|
msgid "Wired Settings"
|
||||||
msgstr "Kiinteän yhteyden asetukset"
|
msgstr "Kiinteän yhteyden asetukset"
|
||||||
|
|
||||||
#: js/ui/status/network.js:548
|
#: js/ui/status/network.js:537
|
||||||
msgid "Mobile Broadband Settings"
|
msgid "Mobile Broadband Settings"
|
||||||
msgstr "Mobiililaajakaistan asetukset"
|
msgstr "Mobiililaajakaistan asetukset"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
#: js/ui/status/network.js:580 js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s - Laite poistettu käytöstä"
|
msgstr "%s - Laite poistettu käytöstä"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated
|
#. Translators: this is for a network device that cannot be activated
|
||||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||||
#: js/ui/status/network.js:595
|
#: js/ui/status/network.js:584
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disabled"
|
msgid "%s Disabled"
|
||||||
msgstr "%s - Poistettu käytöstä"
|
msgstr "%s - Poistettu käytöstä"
|
||||||
|
|
||||||
#: js/ui/status/network.js:635
|
#: js/ui/status/network.js:624
|
||||||
msgid "Connect to Internet"
|
msgid "Connect to Internet"
|
||||||
msgstr "Yhdistä internetiin"
|
msgstr "Yhdistä internetiin"
|
||||||
|
|
||||||
#: js/ui/status/network.js:833
|
#: js/ui/status/network.js:822
|
||||||
msgid "Airplane Mode is On"
|
msgid "Airplane Mode is On"
|
||||||
msgstr "Lentokonetila on päällä"
|
msgstr "Lentokonetila on päällä"
|
||||||
|
|
||||||
#: js/ui/status/network.js:834
|
#: js/ui/status/network.js:823
|
||||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||||
msgstr "Wifi on pois päältä lentokonetilan ollessa päällä."
|
msgstr "Wifi on pois päältä lentokonetilan ollessa päällä."
|
||||||
|
|
||||||
#: js/ui/status/network.js:835
|
#: js/ui/status/network.js:824
|
||||||
msgid "Turn Off Airplane Mode"
|
msgid "Turn Off Airplane Mode"
|
||||||
msgstr "Käytä lentokonetilaa"
|
msgstr "Käytä lentokonetilaa"
|
||||||
|
|
||||||
#: js/ui/status/network.js:844
|
#: js/ui/status/network.js:833
|
||||||
msgid "Wi-Fi is Off"
|
msgid "Wi-Fi is Off"
|
||||||
msgstr "Wifi on pois"
|
msgstr "Wifi on pois"
|
||||||
|
|
||||||
#: js/ui/status/network.js:845
|
#: js/ui/status/network.js:834
|
||||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||||
msgstr "Wifin tulee olla päällä, jotta yhteys verkkoon on mahdollinen."
|
msgstr "Wifin tulee olla päällä, jotta yhteys verkkoon on mahdollinen."
|
||||||
|
|
||||||
#: js/ui/status/network.js:846
|
#: js/ui/status/network.js:835
|
||||||
msgid "Turn On Wi-Fi"
|
msgid "Turn On Wi-Fi"
|
||||||
msgstr "Ota wifi käyttöön"
|
msgstr "Ota wifi käyttöön"
|
||||||
|
|
||||||
#: js/ui/status/network.js:871
|
#: js/ui/status/network.js:860
|
||||||
msgid "Wi-Fi Networks"
|
msgid "Wi-Fi Networks"
|
||||||
msgstr "Wifi-verkot"
|
msgstr "Wifi-verkot"
|
||||||
|
|
||||||
#: js/ui/status/network.js:873
|
#: js/ui/status/network.js:862
|
||||||
msgid "Select a network"
|
msgid "Select a network"
|
||||||
msgstr "Valitse verkko"
|
msgstr "Valitse verkko"
|
||||||
|
|
||||||
#: js/ui/status/network.js:903
|
#: js/ui/status/network.js:892
|
||||||
msgid "No Networks"
|
msgid "No Networks"
|
||||||
msgstr "Ei verkkoja"
|
msgstr "Ei verkkoja"
|
||||||
|
|
||||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
#: js/ui/status/network.js:913 js/ui/status/rfkill.js:115
|
||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Käytä laitepainiketta sammuttaaksesi"
|
msgstr "Käytä laitepainiketta sammuttaaksesi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1191
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Valitse verkko"
|
msgstr "Valitse verkko"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1197
|
#: js/ui/status/network.js:1185
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Wifin asetukset"
|
msgstr "Wifin asetukset"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1316
|
#: js/ui/status/network.js:1304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "%s - Yhteyspiste aktiivisena"
|
msgstr "%s - Yhteyspiste aktiivisena"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1331
|
#: js/ui/status/network.js:1319
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s - Ei yhdistetty"
|
msgstr "%s - Ei yhdistetty"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1435
|
#: js/ui/status/network.js:1419
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "yhdistetään…"
|
msgstr "yhdistetään…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1438
|
#: js/ui/status/network.js:1422
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "tunnistautuminen vaaditaan"
|
msgstr "tunnistautuminen vaaditaan"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1440
|
#: js/ui/status/network.js:1424
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "yhteys katkesi"
|
msgstr "yhteys katkesi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1494
|
#: js/ui/status/network.js:1478
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "VPN-asetukset"
|
msgstr "VPN-asetukset"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1491
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1501
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN pois"
|
msgstr "VPN pois"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Verkkoasetukset"
|
msgstr "Verkkoasetukset"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1603
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s kiinteä yhteys"
|
msgstr[0] "%s kiinteä yhteys"
|
||||||
msgstr[1] "%s kiinteää yhteyttä"
|
msgstr[1] "%s kiinteää yhteyttä"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1607
|
#: js/ui/status/network.js:1600
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s wifi-yhteys"
|
msgstr[0] "%s wifi-yhteys"
|
||||||
msgstr[1] "%s wifi-yhteyttä"
|
msgstr[1] "%s wifi-yhteyttä"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1611
|
#: js/ui/status/network.js:1604
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s modeemiyhteys"
|
msgstr[0] "%s modeemiyhteys"
|
||||||
msgstr[1] "%s modeemiyhteyttä"
|
msgstr[1] "%s modeemiyhteyttä"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1759
|
#: js/ui/status/network.js:1738
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Yhteys epäonnistui"
|
msgstr "Yhteys epäonnistui"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1760
|
#: js/ui/status/network.js:1739
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Verkkoyhteyden aktivointi epäonnistui"
|
msgstr "Verkkoyhteyden aktivointi epäonnistui"
|
||||||
|
|
||||||
@@ -1912,6 +1958,32 @@ msgstr "Valmiustila"
|
|||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Sammuta"
|
msgstr "Sammuta"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:272
|
||||||
|
msgid "Thunderbolt"
|
||||||
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
|
#. we are done
|
||||||
|
#: js/ui/status/thunderbolt.js:330
|
||||||
|
msgid "Unknown Thunderbolt device"
|
||||||
|
msgstr "Tuntematon Thunderbolt-laite"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:331
|
||||||
|
msgid ""
|
||||||
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
|
"reconnect the device to start using it."
|
||||||
|
msgstr ""
|
||||||
|
"Uusi laite havaittiin, kun olit pois. Katkaise laitteen yhteys ja yhdistä se "
|
||||||
|
"uudelleen, jotta voit aloittaa sen käyttämisen."
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:336
|
||||||
|
msgid "Thunderbolt authorization error"
|
||||||
|
msgstr "Thunderbolt-valtuutusvirhe"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:337
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Could not authorize the thunderbolt device: %s"
|
||||||
|
msgstr "Ei voitu valtuuttaa thunderbolt-laitetta: %s"
|
||||||
|
|
||||||
#: js/ui/status/volume.js:128
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "Äänenvoimakkuutta muutettu"
|
msgstr "Äänenvoimakkuutta muutettu"
|
||||||
@@ -1924,7 +1996,6 @@ msgstr "Äänenvoimakkuus"
|
|||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
#: js/ui/switchMonitor.js:21
|
#: js/ui/switchMonitor.js:21
|
||||||
#| msgid "Error"
|
|
||||||
msgid "Mirror"
|
msgid "Mirror"
|
||||||
msgstr "Peili"
|
msgstr "Peili"
|
||||||
|
|
||||||
@@ -2072,19 +2143,19 @@ msgstr "Evolution-kalenteri"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:380
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Tulosta versio"
|
msgstr "Tulosta versio"
|
||||||
|
|
||||||
#: src/main.c:386
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "GDM:n kirjautumisruudussa käyttämä tila"
|
msgstr "GDM:n kirjautumisruudussa käyttämä tila"
|
||||||
|
|
||||||
#: src/main.c:392
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr "Käytä tiettyä tilaa (esim. “gdm”) kirjautumisnäkymää varten"
|
msgstr "Käytä tiettyä tilaa (esim. “gdm”) kirjautumisnäkymää varten"
|
||||||
|
|
||||||
#: src/main.c:398
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Listaa mahdolliset tilat"
|
msgstr "Listaa mahdolliset tilat"
|
||||||
|
|
||||||
@@ -2132,6 +2203,21 @@ msgstr[1] "%u sisääntuloa"
|
|||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Järjestelmän äänet"
|
msgstr "Järjestelmän äänet"
|
||||||
|
|
||||||
|
#~| msgid "Power Off"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Power off"
|
||||||
|
#~ msgstr "Sammuta"
|
||||||
|
|
||||||
|
#~| msgid "Log Out"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Log out"
|
||||||
|
#~ msgstr "Kirjaudu ulos"
|
||||||
|
|
||||||
|
#~| msgid "Switch User"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Switch user"
|
||||||
|
#~ msgstr "Vaihda käyttäjää"
|
||||||
|
|
||||||
#~ msgid "Hide tray"
|
#~ msgid "Hide tray"
|
||||||
#~ msgstr "Piilota palkki"
|
#~ msgstr "Piilota palkki"
|
||||||
|
|
||||||
@@ -2631,10 +2717,6 @@ msgstr "Järjestelmän äänet"
|
|||||||
#~ msgid "Mouse Settings"
|
#~ msgid "Mouse Settings"
|
||||||
#~ msgstr "Hiiren asetukset"
|
#~ msgstr "Hiiren asetukset"
|
||||||
|
|
||||||
#~| msgid "Region and Language Settings"
|
|
||||||
#~ msgid "Region & Language Settings"
|
|
||||||
#~ msgstr "Kielen & alueen asetukset"
|
|
||||||
|
|
||||||
#~ msgid "Volume, network, battery"
|
#~ msgid "Volume, network, battery"
|
||||||
#~ msgstr "Äänenvoimakkuus, verkko, akku"
|
#~ msgstr "Äänenvoimakkuus, verkko, akku"
|
||||||
|
|
||||||
|
|||||||
350
po/fur.po
350
po/fur.po
@@ -6,10 +6,9 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: video-subtitles master\n"
|
"Project-Id-Version: video-subtitles master\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"POT-Creation-Date: 2018-02-06 01:15+0000\n"
|
||||||
"POT-Creation-Date: 2017-10-04 18:03+0000\n"
|
"PO-Revision-Date: 2018-02-06 22:38+0100\n"
|
||||||
"PO-Revision-Date: 2017-10-11 08:34+0200\n"
|
|
||||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
||||||
"Language-Team: Friulian <fur@li.org>\n"
|
"Language-Team: Friulian <fur@li.org>\n"
|
||||||
"Language: fur\n"
|
"Language: fur\n"
|
||||||
@@ -341,7 +340,7 @@ msgstr ""
|
|||||||
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:925
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Anule"
|
msgstr "Anule"
|
||||||
|
|
||||||
@@ -405,29 +404,29 @@ msgstr "(o passe cul dêt)"
|
|||||||
#. Translators: The name of the power-off action in search
|
#. Translators: The name of the power-off action in search
|
||||||
#: js/misc/systemActions.js:99
|
#: js/misc/systemActions.js:99
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Power off"
|
msgid "Power Off"
|
||||||
msgstr "Distudâ"
|
msgstr "Distudâ"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:102
|
#: js/misc/systemActions.js:102
|
||||||
msgid "power off;shutdown"
|
msgid "power off;shutdown;reboot;restart"
|
||||||
msgstr "distudâ;studâ"
|
msgstr "distudâ;studâ;tornâ a inviâ"
|
||||||
|
|
||||||
#. Translators: The name of the lock screen action in search
|
#. Translators: The name of the lock screen action in search
|
||||||
#: js/misc/systemActions.js:106
|
#: js/misc/systemActions.js:106
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock screen"
|
msgid "Lock Screen"
|
||||||
msgstr "Blocâ il schermi"
|
msgstr "Bloc schermi"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:109
|
#: js/misc/systemActions.js:109
|
||||||
msgid "lock screen"
|
msgid "lock screen"
|
||||||
msgstr "blocâ schermi;blocâ"
|
msgstr "bloc schermi"
|
||||||
|
|
||||||
#. Translators: The name of the logout action in search
|
#. Translators: The name of the logout action in search
|
||||||
#: js/misc/systemActions.js:113
|
#: js/misc/systemActions.js:113
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Log out"
|
msgid "Log Out"
|
||||||
msgstr "Jessî"
|
msgstr "Jessî"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
||||||
@@ -449,8 +448,8 @@ msgstr "sospindi;polse"
|
|||||||
#. Translators: The name of the switch user action in search
|
#. Translators: The name of the switch user action in search
|
||||||
#: js/misc/systemActions.js:127
|
#: js/misc/systemActions.js:127
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Switch user"
|
msgid "Switch User"
|
||||||
msgstr "Cambiâ utent"
|
msgstr "Cambi Utent"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:130
|
#: js/misc/systemActions.js:130
|
||||||
@@ -460,13 +459,13 @@ msgstr "cambiâ utent"
|
|||||||
#. Translators: The name of the lock orientation action in search
|
#. Translators: The name of the lock orientation action in search
|
||||||
#: js/misc/systemActions.js:134
|
#: js/misc/systemActions.js:134
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock orientation"
|
msgid "Lock Orientation"
|
||||||
msgstr "Blocâ orientament"
|
msgstr "Bloc orientament"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:137
|
#: js/misc/systemActions.js:137
|
||||||
msgid "lock orientation"
|
msgid "lock orientation;screen;rotation"
|
||||||
msgstr "blocâ orientament"
|
msgstr "bloc orientament;schermi;rotazion"
|
||||||
|
|
||||||
#: js/misc/util.js:122
|
#: js/misc/util.js:122
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
@@ -639,23 +638,23 @@ msgstr "Dispès"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Dutis"
|
msgstr "Dutis"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1915
|
#: js/ui/appDisplay.js:1918
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Gnûf barcon"
|
msgstr "Gnûf barcon"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1929
|
#: js/ui/appDisplay.js:1932
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Invie doprant une schede grafiche dedicade"
|
msgstr "Invie doprant une schede grafiche dedicade"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
#: js/ui/appDisplay.js:1959 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Gjave dai preferîts"
|
msgstr "Gjave dai preferîts"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1962
|
#: js/ui/appDisplay.js:1965
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Zonte tai preferîts"
|
msgstr "Zonte tai preferîts"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1972
|
#: js/ui/appDisplay.js:1975
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Mostre Detais"
|
msgstr "Mostre Detais"
|
||||||
|
|
||||||
@@ -691,7 +690,7 @@ msgstr "Microfon"
|
|||||||
|
|
||||||
#: js/ui/backgroundMenu.js:19
|
#: js/ui/backgroundMenu.js:19
|
||||||
msgid "Change Background…"
|
msgid "Change Background…"
|
||||||
msgstr "Cambie sfont..."
|
msgstr "Cambie sfont…"
|
||||||
|
|
||||||
#: js/ui/backgroundMenu.js:21 js/ui/status/nightLight.js:51
|
#: js/ui/backgroundMenu.js:21 js/ui/status/nightLight.js:51
|
||||||
msgid "Display Settings"
|
msgid "Display Settings"
|
||||||
@@ -844,8 +843,8 @@ msgstr "Password:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Scîf di gnûf:"
|
msgstr "Scîf di gnûf:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:245
|
||||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
#: js/ui/status/network.js:338 js/ui/status/network.js:928
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Conet"
|
msgstr "Conet"
|
||||||
|
|
||||||
@@ -873,11 +872,11 @@ msgstr "Password di clâf privade:"
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Servizi:"
|
msgstr "Servizi:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "La rêt cence fîl e domande autenticazion"
|
msgstr "La rêt cence fîl e domande autenticazion"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:639
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -886,7 +885,7 @@ msgstr ""
|
|||||||
"Si scugne meti une password o une clâf di cifradure par jentrâ te rêt cence "
|
"Si scugne meti une password o une clâf di cifradure par jentrâ te rêt cence "
|
||||||
"fîl \"%s\"."
|
"fîl \"%s\"."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:642
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Autenticazion vie fîl 802.1X"
|
msgstr "Autenticazion vie fîl 802.1X"
|
||||||
|
|
||||||
@@ -894,15 +893,15 @@ msgstr "Autenticazion vie fîl 802.1X"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Non rêt:"
|
msgstr "Non rêt:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Autenticazion DSL"
|
msgstr "Autenticazion DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:652
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Si pretint un codiç PIN"
|
msgstr "Si pretint un codiç PIN"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:653
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Si scugne meti un codiç PIN pal dispositîf a bande largje mobil"
|
msgstr "Si scugne meti un codiç PIN pal dispositîf a bande largje mobil"
|
||||||
|
|
||||||
@@ -910,17 +909,17 @@ msgstr "Si scugne meti un codiç PIN pal dispositîf a bande largje mobil"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Passowrd rêt mobil a bande largje"
|
msgstr "Passowrd rêt mobil a bande largje"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:643
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:647 js/ui/components/networkAgent.js:660
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "A covente une password par tacâsi a '%s'."
|
msgstr "A covente une password par tacâsi a '%s'."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1699
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Ministradôr di rêt"
|
msgstr "Ministradôr di rêt"
|
||||||
|
|
||||||
@@ -955,13 +954,13 @@ msgstr "L'utent %s al è cognossût cumò come %s"
|
|||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Barcons"
|
msgstr "Barcons"
|
||||||
|
|
||||||
#: js/ui/dash.js:250 js/ui/dash.js:291
|
#: js/ui/dash.js:246 js/ui/dash.js:287
|
||||||
msgid "Show Applications"
|
msgid "Show Applications"
|
||||||
msgstr "Mostre Aplicazions"
|
msgstr "Mostre Aplicazions"
|
||||||
|
|
||||||
#. Translators: this is the name of the dock/favorites area on
|
#. Translators: this is the name of the dock/favorites area on
|
||||||
#. the left of the overview
|
#. the left of the overview
|
||||||
#: js/ui/dash.js:449
|
#: js/ui/dash.js:445
|
||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Dash"
|
msgstr "Dash"
|
||||||
|
|
||||||
@@ -980,15 +979,15 @@ msgstr "%e di %B dal %Y"
|
|||||||
msgid "%A %B %e %Y"
|
msgid "%A %B %e %Y"
|
||||||
msgstr "%A %e di %B dal %Y"
|
msgstr "%A %e di %B dal %Y"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:145
|
#: js/ui/dateMenu.js:148
|
||||||
msgid "Add world clocks…"
|
msgid "Add world clocks…"
|
||||||
msgstr "Zonte orlois mondiâi..."
|
msgstr "Zonte orlois mondiâi…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:146
|
#: js/ui/dateMenu.js:149
|
||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Orlois mondiâi"
|
msgstr "Orlois mondiâi"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:225
|
#: js/ui/dateMenu.js:228
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "Timp"
|
msgstr "Timp"
|
||||||
|
|
||||||
@@ -996,7 +995,7 @@ msgstr "Timp"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:289
|
#: js/ui/dateMenu.js:292
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s dut il dì."
|
msgstr "%s dut il dì."
|
||||||
@@ -1005,7 +1004,7 @@ msgstr "%s dut il dì."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:295
|
#: js/ui/dateMenu.js:298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, plui tart %s."
|
msgstr "%s, plui tart %s."
|
||||||
@@ -1014,30 +1013,30 @@ msgstr "%s, plui tart %s."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:301
|
#: js/ui/dateMenu.js:304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, chi di un pôc %s, e plui tart %s."
|
msgstr "%s, chi di un pôc %s, e plui tart %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:312
|
|
||||||
msgid "Select a location…"
|
|
||||||
msgstr "Selezione une posizion..."
|
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:315
|
#: js/ui/dateMenu.js:315
|
||||||
|
msgid "Select a location…"
|
||||||
|
msgstr "Selezione une posizion…"
|
||||||
|
|
||||||
|
#: js/ui/dateMenu.js:318
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "Daûr a cjariâ..."
|
msgstr "Daûr a cjariâ…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:321
|
#: js/ui/dateMenu.js:324
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Si sint %s."
|
msgstr "Si sint %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:324
|
#: js/ui/dateMenu.js:327
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Va in rêt pes informazions sul timp"
|
msgstr "Va in rêt pes informazions sul timp"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:326
|
#: js/ui/dateMenu.js:329
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "Lis informazions sul timp al moment no son disponibilis"
|
msgstr "Lis informazions sul timp al moment no son disponibilis"
|
||||||
|
|
||||||
@@ -1224,9 +1223,73 @@ msgstr "Dinee"
|
|||||||
msgid "Allow"
|
msgid "Allow"
|
||||||
msgstr "Pemet"
|
msgstr "Pemet"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
|
#: js/ui/kbdA11yDialog.js:33
|
||||||
msgid "Keyboard"
|
msgid "Slow Keys Turned On"
|
||||||
msgstr "Tastiere"
|
msgstr "Tascj lents ativâts"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:34
|
||||||
|
msgid "Slow Keys Turned Off"
|
||||||
|
msgstr "Tascj lents disativâts"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:35
|
||||||
|
msgid ""
|
||||||
|
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
|
||||||
|
"Slow Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Si à apene tignût fracât par 8 seconts il tast Maiusc. Chê e je la scurte pe "
|
||||||
|
"funzion tascj lents, che e determine il mût di lavorâ de tastiere."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:42
|
||||||
|
msgid "Sticky Keys Turned On"
|
||||||
|
msgstr "Tascj tacadiçs ativâts"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:43
|
||||||
|
msgid "Sticky Keys Turned Off"
|
||||||
|
msgstr "Tascj tacadiçs disativâts"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:45
|
||||||
|
msgid ""
|
||||||
|
"You just pressed the Shift key 5 times in a row. This is the shortcut for "
|
||||||
|
"the Sticky Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Si à apene fracât par 5 voltis, une daûr di chê altre, il tast Maiusc. Chê e "
|
||||||
|
"je la scurte pe funzion Tascj singui/tacadiçs, che e determine il mût di "
|
||||||
|
"lavorâ de tastiere."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:47
|
||||||
|
msgid ""
|
||||||
|
"You just pressed two keys at once, or pressed the Shift key 5 times in a "
|
||||||
|
"row. This turns off the Sticky Keys feature, which affects the way your "
|
||||||
|
"keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"A son stâts fracâts doi tascj adun o cinc voltis in file il tast Maiusc. "
|
||||||
|
"Chest al disative la funzion tascj singui/tacadiçs, che al determine il mût "
|
||||||
|
"di lavorâ de tastiere."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59
|
||||||
|
msgid "Leave On"
|
||||||
|
msgstr "Lasse ativât"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:1287
|
||||||
|
msgid "Turn On"
|
||||||
|
msgstr "Impie"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:154 js/ui/status/network.js:339
|
||||||
|
#: js/ui/status/network.js:1287 js/ui/status/network.js:1402
|
||||||
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
|
#: js/ui/status/rfkill.js:117
|
||||||
|
msgid "Turn Off"
|
||||||
|
msgstr "Distude"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67
|
||||||
|
msgid "Leave Off"
|
||||||
|
msgstr "Lasse disativât"
|
||||||
|
|
||||||
|
#: js/ui/keyboard.js:198
|
||||||
|
msgid "Region & Language Settings"
|
||||||
|
msgstr "Impostazions regjon e lenghe"
|
||||||
|
|
||||||
#: js/ui/lookingGlass.js:642
|
#: js/ui/lookingGlass.js:642
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
@@ -1304,11 +1367,11 @@ msgstr "Panoramiche"
|
|||||||
#. characters.
|
#. characters.
|
||||||
#: js/ui/overview.js:240
|
#: js/ui/overview.js:240
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Scrîf par cirî..."
|
msgstr "Scrîf par cirî…"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:103
|
#: js/ui/padOsd.js:103
|
||||||
msgid "New shortcut…"
|
msgid "New shortcut…"
|
||||||
msgstr "Gnove scurte..."
|
msgstr "Gnove scurte…"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:152
|
#: js/ui/padOsd.js:152
|
||||||
msgid "Application defined"
|
msgid "Application defined"
|
||||||
@@ -1332,7 +1395,7 @@ msgstr "Fat"
|
|||||||
|
|
||||||
#: js/ui/padOsd.js:734
|
#: js/ui/padOsd.js:734
|
||||||
msgid "Edit…"
|
msgid "Edit…"
|
||||||
msgstr "Modifiche..."
|
msgstr "Modifiche…"
|
||||||
|
|
||||||
# masculin o feminin
|
# masculin o feminin
|
||||||
#: js/ui/padOsd.js:774 js/ui/padOsd.js:879
|
#: js/ui/padOsd.js:774 js/ui/padOsd.js:879
|
||||||
@@ -1366,7 +1429,7 @@ msgctxt "System menu in the top bar"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sisteme"
|
msgstr "Sisteme"
|
||||||
|
|
||||||
#: js/ui/panel.js:812
|
#: js/ui/panel.js:814
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Sbare parsore"
|
msgstr "Sbare parsore"
|
||||||
|
|
||||||
@@ -1394,7 +1457,7 @@ msgstr "Il tornâ a tacâ nol è disponibil in Wayland"
|
|||||||
|
|
||||||
#: js/ui/runDialog.js:282
|
#: js/ui/runDialog.js:282
|
||||||
msgid "Restarting…"
|
msgid "Restarting…"
|
||||||
msgstr "Daûr a tornâ a inviâ..."
|
msgstr "Daûr a tornâ a inviâ…"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
@@ -1422,7 +1485,7 @@ msgstr "Bloche"
|
|||||||
|
|
||||||
#: js/ui/screenShield.js:715
|
#: js/ui/screenShield.js:715
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "GNOME al scugne blocâ il visôr"
|
msgstr "GNOME al à di blocâ il visôr"
|
||||||
|
|
||||||
#. We could not become modal, so we can't activate the
|
#. We could not become modal, so we can't activate the
|
||||||
#. screenshield. The user is probably very upset at this
|
#. screenshield. The user is probably very upset at this
|
||||||
@@ -1441,7 +1504,7 @@ msgstr "Il bloc al è stât dineât di une aplicazion"
|
|||||||
|
|
||||||
#: js/ui/search.js:651
|
#: js/ui/search.js:651
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Daûr a cirî..."
|
msgstr "Daûr a cirî…"
|
||||||
|
|
||||||
#: js/ui/search.js:653
|
#: js/ui/search.js:653
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
@@ -1523,46 +1586,39 @@ msgstr "Contrast elevât"
|
|||||||
msgid "Large Text"
|
msgid "Large Text"
|
||||||
msgstr "Test Larc"
|
msgstr "Test Larc"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:47
|
#: js/ui/status/bluetooth.js:48
|
||||||
msgid "Bluetooth"
|
msgid "Bluetooth"
|
||||||
msgstr "Bluetooth"
|
msgstr "Bluetooth"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:616
|
||||||
msgid "Bluetooth Settings"
|
msgid "Bluetooth Settings"
|
||||||
msgstr "Impostazions Bluetooth"
|
msgstr "Impostazions Bluetooth"
|
||||||
|
|
||||||
#. Translators: this is the number of connected bluetooth devices
|
#. Translators: this is the number of connected bluetooth devices
|
||||||
#: js/ui/status/bluetooth.js:136
|
#: js/ui/status/bluetooth.js:137
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d Connected"
|
msgid "%d Connected"
|
||||||
msgid_plural "%d Connected"
|
msgid_plural "%d Connected"
|
||||||
msgstr[0] "%d tacât"
|
msgstr[0] "%d tacât"
|
||||||
msgstr[1] "%d tacâts"
|
msgstr[1] "%d tacâts"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:138
|
#: js/ui/status/bluetooth.js:139
|
||||||
msgid "Off"
|
msgid "Off"
|
||||||
msgstr "Distudât"
|
msgstr "Distudât"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:140
|
#: js/ui/status/bluetooth.js:141
|
||||||
msgid "On"
|
msgid "On"
|
||||||
msgstr "Impiât"
|
msgstr "Impiât"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
|
||||||
msgid "Turn On"
|
|
||||||
msgstr "Impie"
|
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
|
|
||||||
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
|
|
||||||
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
|
|
||||||
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
|
|
||||||
msgid "Turn Off"
|
|
||||||
msgstr "Distude"
|
|
||||||
|
|
||||||
#: js/ui/status/brightness.js:44
|
#: js/ui/status/brightness.js:44
|
||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "Luminositât"
|
msgstr "Luminositât"
|
||||||
|
|
||||||
#: js/ui/status/keyboard.js:805
|
#: js/ui/status/keyboard.js:783
|
||||||
|
msgid "Keyboard"
|
||||||
|
msgstr "Tastiere"
|
||||||
|
|
||||||
|
#: js/ui/status/keyboard.js:806
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "Mostre la disposizion de tastiere"
|
msgstr "Mostre la disposizion de tastiere"
|
||||||
|
|
||||||
@@ -1602,18 +1658,18 @@ msgstr ""
|
|||||||
"L'acès ae posizion al pues jessi cambiât cuant che tu vuelis su impostazions "
|
"L'acès ae posizion al pues jessi cambiât cuant che tu vuelis su impostazions "
|
||||||
"privacy."
|
"privacy."
|
||||||
|
|
||||||
#: js/ui/status/network.js:104
|
#: js/ui/status/network.js:90
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<no cognossût>"
|
msgstr "<no cognossût>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
#: js/ui/status/network.js:443 js/ui/status/network.js:1316
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s distudât"
|
msgstr "%s distudât"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:457
|
#: js/ui/status/network.js:446
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connected"
|
msgid "%s Connected"
|
||||||
msgstr "%s tacât"
|
msgstr "%s tacât"
|
||||||
@@ -1621,189 +1677,189 @@ msgstr "%s tacât"
|
|||||||
#. Translators: this is for network devices that are physically present but are not
|
#. Translators: this is for network devices that are physically present but are not
|
||||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||||
#. %s is a network identifier
|
#. %s is a network identifier
|
||||||
#: js/ui/status/network.js:462
|
#: js/ui/status/network.js:451
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unmanaged"
|
msgid "%s Unmanaged"
|
||||||
msgstr "%s no ministrât"
|
msgstr "%s no ministrât"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:465
|
#: js/ui/status/network.js:454
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disconnecting"
|
msgid "%s Disconnecting"
|
||||||
msgstr "%s daûr a disconeti"
|
msgstr "%s daûr a disconeti"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:461 js/ui/status/network.js:1308
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "%s in conession"
|
msgstr "%s in conession"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||||
#: js/ui/status/network.js:475
|
#: js/ui/status/network.js:464
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Requires Authentication"
|
msgid "%s Requires Authentication"
|
||||||
msgstr "%s al à dibisugne di autenticazion"
|
msgstr "%s al à dibisugne di autenticazion"
|
||||||
|
|
||||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||||
#. module, which is missing; %s is a network identifier
|
#. module, which is missing; %s is a network identifier
|
||||||
#: js/ui/status/network.js:483
|
#: js/ui/status/network.js:472
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Firmware Missing For %s"
|
msgid "Firmware Missing For %s"
|
||||||
msgstr "Al mancje il firmware par %s"
|
msgstr "Al mancje il firmware par %s"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||||
#: js/ui/status/network.js:487
|
#: js/ui/status/network.js:476
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unavailable"
|
msgid "%s Unavailable"
|
||||||
msgstr "%s no disponibil"
|
msgstr "%s no disponibil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:490
|
#: js/ui/status/network.js:479
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connection Failed"
|
msgid "%s Connection Failed"
|
||||||
msgstr "Conession falide su %s"
|
msgstr "Conession falide su %s"
|
||||||
|
|
||||||
#: js/ui/status/network.js:506
|
#: js/ui/status/network.js:495
|
||||||
msgid "Wired Settings"
|
msgid "Wired Settings"
|
||||||
msgstr "Impostazions rêt vie fîl"
|
msgstr "Impostazions rêt vie fîl"
|
||||||
|
|
||||||
#: js/ui/status/network.js:548
|
#: js/ui/status/network.js:537
|
||||||
msgid "Mobile Broadband Settings"
|
msgid "Mobile Broadband Settings"
|
||||||
msgstr "Impostazions bande largje mobil"
|
msgstr "Impostazions bande largje mobil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
#: js/ui/status/network.js:580 js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s disabilitât vie hardware "
|
msgstr "%s disabilitât vie hardware "
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated
|
#. Translators: this is for a network device that cannot be activated
|
||||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||||
#: js/ui/status/network.js:595
|
#: js/ui/status/network.js:584
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disabled"
|
msgid "%s Disabled"
|
||||||
msgstr "%s disabilitât"
|
msgstr "%s disabilitât"
|
||||||
|
|
||||||
#: js/ui/status/network.js:635
|
#: js/ui/status/network.js:624
|
||||||
msgid "Connect to Internet"
|
msgid "Connect to Internet"
|
||||||
msgstr "Conet a internet"
|
msgstr "Conet a internet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:833
|
#: js/ui/status/network.js:822
|
||||||
msgid "Airplane Mode is On"
|
msgid "Airplane Mode is On"
|
||||||
msgstr "Modalitât avion piade"
|
msgstr "Modalitât avion piade"
|
||||||
|
|
||||||
#: js/ui/status/network.js:834
|
#: js/ui/status/network.js:823
|
||||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||||
msgstr "Il Wi-Fi al è disabilitât cuant che la modalitât avion e je impiade."
|
msgstr "Il Wi-Fi al è disabilitât cuant che la modalitât avion e je impiade."
|
||||||
|
|
||||||
#: js/ui/status/network.js:835
|
#: js/ui/status/network.js:824
|
||||||
msgid "Turn Off Airplane Mode"
|
msgid "Turn Off Airplane Mode"
|
||||||
msgstr "Distude modalitât avion"
|
msgstr "Distude modalitât avion"
|
||||||
|
|
||||||
#: js/ui/status/network.js:844
|
#: js/ui/status/network.js:833
|
||||||
msgid "Wi-Fi is Off"
|
msgid "Wi-Fi is Off"
|
||||||
msgstr "Il Wi-Fi al è distudât"
|
msgstr "Il Wi-Fi al è distudât"
|
||||||
|
|
||||||
#: js/ui/status/network.js:845
|
#: js/ui/status/network.js:834
|
||||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||||
msgstr "Il Wi-Fi al scugne jessi impiât par podêsi tacâ a une rêt."
|
msgstr "Il Wi-Fi al scugne jessi impiât par podêsi tacâ a une rêt."
|
||||||
|
|
||||||
#: js/ui/status/network.js:846
|
#: js/ui/status/network.js:835
|
||||||
msgid "Turn On Wi-Fi"
|
msgid "Turn On Wi-Fi"
|
||||||
msgstr "Impie il Wi-Fi"
|
msgstr "Impie il Wi-Fi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:871
|
#: js/ui/status/network.js:860
|
||||||
msgid "Wi-Fi Networks"
|
msgid "Wi-Fi Networks"
|
||||||
msgstr "Rêts Wi-Fi"
|
msgstr "Rêts Wi-Fi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:873
|
#: js/ui/status/network.js:862
|
||||||
msgid "Select a network"
|
msgid "Select a network"
|
||||||
msgstr "Selezione une rêt"
|
msgstr "Selezione une rêt"
|
||||||
|
|
||||||
#: js/ui/status/network.js:903
|
#: js/ui/status/network.js:892
|
||||||
msgid "No Networks"
|
msgid "No Networks"
|
||||||
msgstr "Nissune rêt"
|
msgstr "Nissune rêt"
|
||||||
|
|
||||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
#: js/ui/status/network.js:913 js/ui/status/rfkill.js:115
|
||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Dopre interutôr fisic par distudâ"
|
msgstr "Dopre interutôr fisic par distudâ"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1191
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Selezione rêt"
|
msgstr "Selezione rêt"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1197
|
#: js/ui/status/network.js:1185
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Impostazions Wi-Fi"
|
msgstr "Impostazions Wi-Fi"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1316
|
#: js/ui/status/network.js:1304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Hotspot %s atîf"
|
msgstr "Hotspot %s atîf"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1331
|
#: js/ui/status/network.js:1319
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s distacât"
|
msgstr "%s distacât"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1435
|
#: js/ui/status/network.js:1419
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "daûr a coneti…"
|
msgstr "daûr a coneti…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1438
|
#: js/ui/status/network.js:1422
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "autenticazion necessarie"
|
msgstr "autenticazion necessarie"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1440
|
#: js/ui/status/network.js:1424
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "conession falide"
|
msgstr "conession falide"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1494
|
#: js/ui/status/network.js:1478
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Impostazions VPN"
|
msgstr "Impostazions VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1491
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1501
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN distudât"
|
msgstr "VPN distudât"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Impostazions rêt"
|
msgstr "Impostazions rêt"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1603
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s conession cablade"
|
msgstr[0] "%s conession cablade"
|
||||||
msgstr[1] "%s conessions cabladis"
|
msgstr[1] "%s conessions cabladis"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1607
|
#: js/ui/status/network.js:1600
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s conession cence fîi"
|
msgstr[0] "%s conession cence fîi"
|
||||||
msgstr[1] "%s conessions cence fîi"
|
msgstr[1] "%s conessions cence fîi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1611
|
#: js/ui/status/network.js:1604
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s conession modem"
|
msgstr[0] "%s conession modem"
|
||||||
msgstr[1] "%s conessions modem"
|
msgstr[1] "%s conessions modem"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1759
|
#: js/ui/status/network.js:1738
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Conession falide"
|
msgstr "Conession falide"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1760
|
#: js/ui/status/network.js:1739
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Ativazion de conession di rêt falide"
|
msgstr "Ativazion de conession di rêt falide"
|
||||||
|
|
||||||
@@ -1835,7 +1891,7 @@ msgstr "Cjarie"
|
|||||||
#. to estimate battery life
|
#. to estimate battery life
|
||||||
#: js/ui/status/power.js:84 js/ui/status/power.js:90
|
#: js/ui/status/power.js:84 js/ui/status/power.js:90
|
||||||
msgid "Estimating…"
|
msgid "Estimating…"
|
||||||
msgstr "In stime..."
|
msgstr "In stime…"
|
||||||
|
|
||||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||||
#: js/ui/status/power.js:98
|
#: js/ui/status/power.js:98
|
||||||
@@ -1875,7 +1931,7 @@ msgstr "Impostazions account"
|
|||||||
|
|
||||||
#: js/ui/status/system.js:269
|
#: js/ui/status/system.js:269
|
||||||
msgid "Orientation Lock"
|
msgid "Orientation Lock"
|
||||||
msgstr "Bloche Orientament"
|
msgstr "Bloc Orientament"
|
||||||
|
|
||||||
#: js/ui/status/system.js:295
|
#: js/ui/status/system.js:295
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
@@ -1885,6 +1941,32 @@ msgstr "Sospindi"
|
|||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Distude"
|
msgstr "Distude"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:272
|
||||||
|
msgid "Thunderbolt"
|
||||||
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
|
#. we are done
|
||||||
|
#: js/ui/status/thunderbolt.js:330
|
||||||
|
msgid "Unknown Thunderbolt device"
|
||||||
|
msgstr "Dispositîf Thunderbolt no cognossût"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:331
|
||||||
|
msgid ""
|
||||||
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
|
"reconnect the device to start using it."
|
||||||
|
msgstr ""
|
||||||
|
"Un gnûf dispositîf al è stât rilevât intant che tu jeris vie. Par plasê "
|
||||||
|
"disconet e torne conet il dispositîf par tacâ a doprâlu."
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:336
|
||||||
|
msgid "Thunderbolt authorization error"
|
||||||
|
msgstr "Erôr di autorizazion di Thunderbolt"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:337
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Could not authorize the thunderbolt device: %s"
|
||||||
|
msgstr "Impussibil autorizâ il dispositîf thunderbolt: %s"
|
||||||
|
|
||||||
#: js/ui/status/volume.js:128
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "Volum modificât"
|
msgstr "Volum modificât"
|
||||||
@@ -1940,7 +2022,7 @@ msgstr "Cîr"
|
|||||||
#: js/ui/windowAttentionHandler.js:20
|
#: js/ui/windowAttentionHandler.js:20
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "“%s” is ready"
|
msgid "“%s” is ready"
|
||||||
msgstr "'%s' al è pront"
|
msgstr "“%s” al è pront"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:72
|
#: js/ui/windowManager.js:72
|
||||||
msgid "Do you want to keep these display settings?"
|
msgid "Do you want to keep these display settings?"
|
||||||
@@ -2046,19 +2128,19 @@ msgstr "Calendari di Evolution"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:380
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Stampe version"
|
msgstr "Stampe version"
|
||||||
|
|
||||||
#: src/main.c:386
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Modalitât doprade da GDM pe videade di acès"
|
msgstr "Modalitât doprade da GDM pe videade di acès"
|
||||||
|
|
||||||
#: src/main.c:392
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr "Dopre une modalitât specifiche, par esempli “gdm” pe videade di acès"
|
msgstr "Dopre une modalitât specifiche, par esempli “gdm” pe videade di acès"
|
||||||
|
|
||||||
#: src/main.c:398
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Liste modalitâts pussibilis"
|
msgstr "Liste modalitâts pussibilis"
|
||||||
|
|
||||||
@@ -2106,6 +2188,18 @@ msgstr[1] "%u jentradis"
|
|||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Suns di sisteme"
|
msgstr "Suns di sisteme"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Power off"
|
||||||
|
#~ msgstr "Distudâ"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Log out"
|
||||||
|
#~ msgstr "Jessî"
|
||||||
|
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Switch user"
|
||||||
|
#~ msgstr "Cambiâ utent"
|
||||||
|
|
||||||
#~ msgid "Hide tray"
|
#~ msgid "Hide tray"
|
||||||
#~ msgstr "Plate casset"
|
#~ msgstr "Plate casset"
|
||||||
|
|
||||||
|
|||||||
417
po/gl.po
417
po/gl.po
@@ -6,14 +6,13 @@
|
|||||||
# Antón Méixome <meixome@certima.net>, 2009.
|
# Antón Méixome <meixome@certima.net>, 2009.
|
||||||
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
|
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
|
||||||
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
|
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
|
||||||
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015, 2016, 2017.
|
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015, 2016, 2017, 2018.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"POT-Creation-Date: 2018-02-08 16:48+0000\n"
|
||||||
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
|
"PO-Revision-Date: 2018-02-09 12:15+0200\n"
|
||||||
"PO-Revision-Date: 2017-08-22 15:09+0200\n"
|
|
||||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||||
"Language-Team: Galician\n"
|
"Language-Team: Galician\n"
|
||||||
"Language: gl\n"
|
"Language: gl\n"
|
||||||
@@ -341,7 +340,7 @@ msgstr "Produciuse un erro ao cargar o diálogo de preferenzas para %s:"
|
|||||||
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:925
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
@@ -406,24 +405,25 @@ msgstr "(ou pase o dedo)"
|
|||||||
#: js/misc/systemActions.js:99
|
#: js/misc/systemActions.js:99
|
||||||
#| msgid "Power Off"
|
#| msgid "Power Off"
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Power off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
#. Translators: A list of keywords that match the power-off action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:102
|
#: js/misc/systemActions.js:102
|
||||||
msgid "power off;shutdown"
|
#| msgid "power off;shutdown"
|
||||||
msgstr "apagar;"
|
msgid "power off;shutdown;reboot;restart"
|
||||||
|
msgstr "apagar;reiniciar;"
|
||||||
|
|
||||||
#. Translators: The name of the lock screen action in search
|
#. Translators: The name of the lock screen action in search
|
||||||
#: js/misc/systemActions.js:106
|
#: js/misc/systemActions.js:106
|
||||||
#| msgid "Lock Screen"
|
#| msgctxt "search-result"
|
||||||
|
#| msgid "Lock screen"
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock screen"
|
msgid "Lock Screen"
|
||||||
msgstr "Bloquear a pantalla"
|
msgstr "Bloquear a pantalla"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:109
|
#: js/misc/systemActions.js:109
|
||||||
#| msgid "Lock Screen"
|
|
||||||
msgid "lock screen"
|
msgid "lock screen"
|
||||||
msgstr "bloquear pantalla;bloquear"
|
msgstr "bloquear pantalla;bloquear"
|
||||||
|
|
||||||
@@ -431,7 +431,7 @@ msgstr "bloquear pantalla;bloquear"
|
|||||||
#: js/misc/systemActions.js:113
|
#: js/misc/systemActions.js:113
|
||||||
#| msgid "Log Out"
|
#| msgid "Log Out"
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Log out"
|
msgid "Log Out"
|
||||||
msgstr "Saír da sesión"
|
msgstr "Saír da sesión"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
#. Translators: A list of keywords that match the logout action, separated by semicolons
|
||||||
@@ -441,14 +441,12 @@ msgstr "pechar a sesión;desloguearse;saír da sesión"
|
|||||||
|
|
||||||
#. Translators: The name of the suspend action in search
|
#. Translators: The name of the suspend action in search
|
||||||
#: js/misc/systemActions.js:120
|
#: js/misc/systemActions.js:120
|
||||||
#| msgid "Suspend"
|
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Suspender"
|
msgstr "Suspender"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the suspend action, separated by semicolons
|
#. Translators: A list of keywords that match the suspend action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:123
|
#: js/misc/systemActions.js:123
|
||||||
#| msgid "Suspend"
|
|
||||||
msgid "suspend;sleep"
|
msgid "suspend;sleep"
|
||||||
msgstr "Suspender;durmir"
|
msgstr "Suspender;durmir"
|
||||||
|
|
||||||
@@ -456,27 +454,27 @@ msgstr "Suspender;durmir"
|
|||||||
#: js/misc/systemActions.js:127
|
#: js/misc/systemActions.js:127
|
||||||
#| msgid "Switch User"
|
#| msgid "Switch User"
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Switch user"
|
msgid "Switch User"
|
||||||
msgstr "Cambiar de usuario"
|
msgstr "Cambiar de usuario"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
#. Translators: A list of keywords that match the switch user action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:130
|
#: js/misc/systemActions.js:130
|
||||||
#| msgid "Switch User"
|
|
||||||
msgid "switch user"
|
msgid "switch user"
|
||||||
msgstr "cambiar de usuario"
|
msgstr "cambiar de usuario"
|
||||||
|
|
||||||
#. Translators: The name of the lock orientation action in search
|
#. Translators: The name of the lock orientation action in search
|
||||||
#: js/misc/systemActions.js:134
|
#: js/misc/systemActions.js:134
|
||||||
#| msgid "Orientation Lock"
|
#| msgctxt "search-result"
|
||||||
|
#| msgid "Lock orientation"
|
||||||
msgctxt "search-result"
|
msgctxt "search-result"
|
||||||
msgid "Lock orientation"
|
msgid "Lock Orientation"
|
||||||
msgstr "Bloquear orientación"
|
msgstr "Bloquear orientación"
|
||||||
|
|
||||||
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
|
||||||
#: js/misc/systemActions.js:137
|
#: js/misc/systemActions.js:137
|
||||||
#| msgid "Clock Format"
|
#| msgid "lock orientation"
|
||||||
msgid "lock orientation"
|
msgid "lock orientation;screen;rotation"
|
||||||
msgstr "bloquear orientación"
|
msgstr "bloquear orientación;pantalla;rotación"
|
||||||
|
|
||||||
#: js/misc/util.js:122
|
#: js/misc/util.js:122
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
@@ -649,32 +647,32 @@ msgstr "Frecuentes"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1915
|
#: js/ui/appDisplay.js:1918
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Xanela nova"
|
msgstr "Xanela nova"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1929
|
#: js/ui/appDisplay.js:1932
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Iniciar usando a Tarxeta Gráfica Adicada"
|
msgstr "Iniciar usando a Tarxeta Gráfica Adicada"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
#: js/ui/appDisplay.js:1959 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Retirar dos marcadores"
|
msgstr "Retirar dos marcadores"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1962
|
#: js/ui/appDisplay.js:1965
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Engadir aos favoritos"
|
msgstr "Engadir aos favoritos"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1972
|
#: js/ui/appDisplay.js:1975
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Mostrar detalles"
|
msgstr "Mostrar detalles"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:141
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "%s foi engadido aos seus favoritos."
|
msgstr "%s foi engadido aos seus favoritos."
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:175
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s retirouse dos seus marcadores."
|
msgstr "%s retirouse dos seus marcadores."
|
||||||
@@ -712,7 +710,7 @@ msgid "Settings"
|
|||||||
msgstr "Preferencias"
|
msgstr "Preferencias"
|
||||||
|
|
||||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||||
#: js/ui/calendar.js:47
|
#: js/ui/calendar.js:44
|
||||||
msgctxt "calendar-no-work"
|
msgctxt "calendar-no-work"
|
||||||
msgid "06"
|
msgid "06"
|
||||||
msgstr "06"
|
msgstr "06"
|
||||||
@@ -722,92 +720,115 @@ msgstr "06"
|
|||||||
#. * NOTE: These grid abbreviations are always shown together
|
#. * NOTE: These grid abbreviations are always shown together
|
||||||
#. * and in order, e.g. "S M T W T F S".
|
#. * and in order, e.g. "S M T W T F S".
|
||||||
#.
|
#.
|
||||||
#: js/ui/calendar.js:76
|
#: js/ui/calendar.js:73
|
||||||
msgctxt "grid sunday"
|
msgctxt "grid sunday"
|
||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "D"
|
msgstr "D"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Monday
|
#. Translators: Calendar grid abbreviation for Monday
|
||||||
#: js/ui/calendar.js:78
|
#: js/ui/calendar.js:75
|
||||||
msgctxt "grid monday"
|
msgctxt "grid monday"
|
||||||
msgid "M"
|
msgid "M"
|
||||||
msgstr "L"
|
msgstr "L"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Tuesday
|
#. Translators: Calendar grid abbreviation for Tuesday
|
||||||
#: js/ui/calendar.js:80
|
#: js/ui/calendar.js:77
|
||||||
msgctxt "grid tuesday"
|
msgctxt "grid tuesday"
|
||||||
msgid "T"
|
msgid "T"
|
||||||
msgstr "M"
|
msgstr "M"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Wednesday
|
#. Translators: Calendar grid abbreviation for Wednesday
|
||||||
#: js/ui/calendar.js:82
|
#: js/ui/calendar.js:79
|
||||||
msgctxt "grid wednesday"
|
msgctxt "grid wednesday"
|
||||||
msgid "W"
|
msgid "W"
|
||||||
msgstr "W"
|
msgstr "W"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Thursday
|
#. Translators: Calendar grid abbreviation for Thursday
|
||||||
#: js/ui/calendar.js:84
|
#: js/ui/calendar.js:81
|
||||||
msgctxt "grid thursday"
|
msgctxt "grid thursday"
|
||||||
msgid "T"
|
msgid "T"
|
||||||
msgstr "X"
|
msgstr "X"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Friday
|
#. Translators: Calendar grid abbreviation for Friday
|
||||||
#: js/ui/calendar.js:86
|
#: js/ui/calendar.js:83
|
||||||
msgctxt "grid friday"
|
msgctxt "grid friday"
|
||||||
msgid "F"
|
msgid "F"
|
||||||
msgstr "V"
|
msgstr "V"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Saturday
|
#. Translators: Calendar grid abbreviation for Saturday
|
||||||
#: js/ui/calendar.js:88
|
#: js/ui/calendar.js:85
|
||||||
msgctxt "grid saturday"
|
msgctxt "grid saturday"
|
||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#: js/ui/calendar.js:442
|
#. *
|
||||||
|
#. * Translators: The header displaying just the month name
|
||||||
|
#. * standalone, when this is a month of the current year.
|
||||||
|
#. * "%OB" is the new format specifier introduced in glibc 2.27,
|
||||||
|
#. * in most cases you should not change it.
|
||||||
|
#.
|
||||||
|
#: js/ui/calendar.js:382
|
||||||
|
msgid "%OB"
|
||||||
|
msgstr "%OB"
|
||||||
|
|
||||||
|
#. *
|
||||||
|
#. * Translators: The header displaying the month name and the year
|
||||||
|
#. * number, when this is a month of a different year. You can
|
||||||
|
#. * reorder the format specifiers or add other modifications
|
||||||
|
#. * according to the requirements of your language.
|
||||||
|
#. * "%OB" is the new format specifier introduced in glibc 2.27,
|
||||||
|
#. * in most cases you should not use the old "%B" here unless you
|
||||||
|
#. * absolutely know what you are doing.
|
||||||
|
#.
|
||||||
|
#: js/ui/calendar.js:392
|
||||||
|
msgid "%OB %Y"
|
||||||
|
msgstr "%B de %Y"
|
||||||
|
|
||||||
|
#: js/ui/calendar.js:449
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Anterior mes"
|
msgstr "Anterior mes"
|
||||||
|
|
||||||
#: js/ui/calendar.js:452
|
#: js/ui/calendar.js:459
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Seguinte mes"
|
msgstr "Seguinte mes"
|
||||||
|
|
||||||
#: js/ui/calendar.js:605
|
#: js/ui/calendar.js:612
|
||||||
#, no-javascript-format
|
#, no-javascript-format
|
||||||
msgctxt "date day number format"
|
msgctxt "date day number format"
|
||||||
msgid "%d"
|
msgid "%d"
|
||||||
msgstr "%d"
|
msgstr "%d"
|
||||||
|
|
||||||
#: js/ui/calendar.js:660
|
#: js/ui/calendar.js:667
|
||||||
msgid "Week %V"
|
msgid "Week %V"
|
||||||
msgstr "Semana %V"
|
msgstr "Semana %V"
|
||||||
|
|
||||||
#. Translators: Shown in calendar event list for all day events
|
#. Translators: Shown in calendar event list for all day events
|
||||||
#. * Keep it short, best if you can use less then 10 characters
|
#. * Keep it short, best if you can use less then 10 characters
|
||||||
#.
|
#.
|
||||||
#: js/ui/calendar.js:729
|
#: js/ui/calendar.js:736
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Todo o día"
|
msgstr "Todo o día"
|
||||||
|
|
||||||
#: js/ui/calendar.js:862
|
#: js/ui/calendar.js:869
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d de %B"
|
msgstr "%A, %d de %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:873
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %d de %B de %Y"
|
msgstr "%A, %d de %B de %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1086
|
#: js/ui/calendar.js:1093
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Non hai notificacións"
|
msgstr "Non hai notificacións"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1089
|
#: js/ui/calendar.js:1096
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Non hai eventos"
|
msgstr "Non hai eventos"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1117
|
#: js/ui/calendar.js:1124
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Limpar todo"
|
msgstr "Limpar todo"
|
||||||
|
|
||||||
@@ -841,7 +862,7 @@ msgstr "Unidade externa conectada"
|
|||||||
msgid "External drive disconnected"
|
msgid "External drive disconnected"
|
||||||
msgstr "Unidade externa desconectada"
|
msgstr "Unidade externa desconectada"
|
||||||
|
|
||||||
#: js/ui/components/autorunManager.js:354
|
#: js/ui/components/autorunManager.js:358
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Abrir con %s"
|
msgstr "Abrir con %s"
|
||||||
@@ -854,8 +875,8 @@ msgstr "Contrasinal:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Escriba de novo:"
|
msgstr "Escriba de novo:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:245
|
||||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
#: js/ui/status/network.js:338 js/ui/status/network.js:928
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "Conectar"
|
msgstr "Conectar"
|
||||||
|
|
||||||
@@ -883,11 +904,11 @@ msgstr "Contrasinal da chave privada: "
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Servizo: "
|
msgstr "Servizo: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "A rede sen fíos require autenticación"
|
msgstr "A rede sen fíos require autenticación"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:639
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -896,7 +917,7 @@ msgstr ""
|
|||||||
"Requírense contrasinais ou chaves de cifrado para acceder á rede sen fíos "
|
"Requírense contrasinais ou chaves de cifrado para acceder á rede sen fíos "
|
||||||
"«%s»."
|
"«%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:642
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Autenticación con fíos 802.1X"
|
msgstr "Autenticación con fíos 802.1X"
|
||||||
|
|
||||||
@@ -904,15 +925,15 @@ msgstr "Autenticación con fíos 802.1X"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Nome da rede:"
|
msgstr "Nome da rede:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Autenticación DSL"
|
msgstr "Autenticación DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:652
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Requírese un código PIN"
|
msgstr "Requírese un código PIN"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:653
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "É necesario un código PIN para o dispositivo de banda larga móbil"
|
msgstr "É necesario un código PIN para o dispositivo de banda larga móbil"
|
||||||
|
|
||||||
@@ -920,17 +941,17 @@ msgstr "É necesario un código PIN para o dispositivo de banda larga móbil"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN:"
|
msgstr "PIN:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Contrasinal da rede de banda larga móbil"
|
msgstr "Contrasinal da rede de banda larga móbil"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:643
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:647 js/ui/components/networkAgent.js:660
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Requírese un contrasinal para conectarse a «%s»."
|
msgstr "Requírese un contrasinal para conectarse a «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1699
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Xestor da rede"
|
msgstr "Xestor da rede"
|
||||||
|
|
||||||
@@ -965,20 +986,20 @@ msgstr "Agora %s chámase %s"
|
|||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Xanelas"
|
msgstr "Xanelas"
|
||||||
|
|
||||||
#: js/ui/dash.js:250 js/ui/dash.js:291
|
#: js/ui/dash.js:246 js/ui/dash.js:287
|
||||||
msgid "Show Applications"
|
msgid "Show Applications"
|
||||||
msgstr "Mostrar aplicativos"
|
msgstr "Mostrar aplicativos"
|
||||||
|
|
||||||
#. Translators: this is the name of the dock/favorites area on
|
#. Translators: this is the name of the dock/favorites area on
|
||||||
#. the left of the overview
|
#. the left of the overview
|
||||||
#: js/ui/dash.js:449
|
#: js/ui/dash.js:445
|
||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Taboleiro"
|
msgstr "Taboleiro"
|
||||||
|
|
||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. Translators: This is the date format to use when the calendar popup is
|
||||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:75
|
#: js/ui/dateMenu.js:76
|
||||||
msgid "%B %e %Y"
|
msgid "%B %e %Y"
|
||||||
msgstr "%e de %B de %Y"
|
msgstr "%e de %B de %Y"
|
||||||
|
|
||||||
@@ -986,19 +1007,19 @@ msgstr "%e de %B de %Y"
|
|||||||
#. * below the time in the shell; it should combine the weekday and the
|
#. * below the time in the shell; it should combine the weekday and the
|
||||||
#. * date, e.g. "Tuesday February 17 2015".
|
#. * date, e.g. "Tuesday February 17 2015".
|
||||||
#.
|
#.
|
||||||
#: js/ui/dateMenu.js:82
|
#: js/ui/dateMenu.js:83
|
||||||
msgid "%A %B %e %Y"
|
msgid "%A %B %e %Y"
|
||||||
msgstr "%A, %e de %B de %Y"
|
msgstr "%A, %e de %B de %Y"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:144
|
#: js/ui/dateMenu.js:148
|
||||||
msgid "Add world clocks…"
|
msgid "Add world clocks…"
|
||||||
msgstr "Engadir reloxos do mundo…"
|
msgstr "Engadir reloxos do mundo…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:145
|
#: js/ui/dateMenu.js:149
|
||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Reloxos do mundo"
|
msgstr "Reloxos do mundo"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:224
|
#: js/ui/dateMenu.js:228
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "Tempo"
|
msgstr "Tempo"
|
||||||
|
|
||||||
@@ -1006,7 +1027,7 @@ msgstr "Tempo"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:286
|
#: js/ui/dateMenu.js:292
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s todo o día"
|
msgstr "%s todo o día"
|
||||||
@@ -1015,7 +1036,7 @@ msgstr "%s todo o día"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:292
|
#: js/ui/dateMenu.js:298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, entón %s máis tarde."
|
msgstr "%s, entón %s máis tarde."
|
||||||
@@ -1024,30 +1045,30 @@ msgstr "%s, entón %s máis tarde."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:298
|
#: js/ui/dateMenu.js:304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, entón %s, seguido de %s máis tarde."
|
msgstr "%s, entón %s, seguido de %s máis tarde."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:309
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Seleccione unha localizacion…"
|
msgstr "Seleccione unha localizacion…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:312
|
#: js/ui/dateMenu.js:318
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "Cargando…"
|
msgstr "Cargando…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:318
|
#: js/ui/dateMenu.js:324
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Sensación de %s."
|
msgstr "Sensación de %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:321
|
#: js/ui/dateMenu.js:327
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Conectarse para var a información do tempo"
|
msgstr "Conectarse para var a información do tempo"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:329
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "A información do tempo non está dispoñíbel actualmente"
|
msgstr "A información do tempo non está dispoñíbel actualmente"
|
||||||
|
|
||||||
@@ -1232,9 +1253,78 @@ msgstr "Denegar"
|
|||||||
msgid "Allow"
|
msgid "Allow"
|
||||||
msgstr "Permitir"
|
msgstr "Permitir"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
|
#: js/ui/kbdA11yDialog.js:33
|
||||||
msgid "Keyboard"
|
#| msgid "Slow Keys"
|
||||||
msgstr "Teclado"
|
msgid "Slow Keys Turned On"
|
||||||
|
msgstr "Teclas lentas activadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:34
|
||||||
|
#| msgid "Slow Keys"
|
||||||
|
msgid "Slow Keys Turned Off"
|
||||||
|
msgstr "Teclas lentas desactivadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:35
|
||||||
|
msgid ""
|
||||||
|
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
|
||||||
|
"Slow Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Acabas de manter a tecla Maiús durante 8 segundos. Isto é un atallo para a "
|
||||||
|
"característica de Teclas lentas, o cal afecta á forma na que funciona o "
|
||||||
|
"teclado."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:42
|
||||||
|
#| msgid "Sticky Keys"
|
||||||
|
msgid "Sticky Keys Turned On"
|
||||||
|
msgstr "Teclas persistentes activadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:43
|
||||||
|
#| msgid "Sticky Keys"
|
||||||
|
msgid "Sticky Keys Turned Off"
|
||||||
|
msgstr "Teclas persistentes desactivadas"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:45
|
||||||
|
msgid ""
|
||||||
|
"You just pressed the Shift key 5 times in a row. This is the shortcut for "
|
||||||
|
"the Sticky Keys feature, which affects the way your keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Acabas de manter a tecla Maiús durante 5 segundos. Isto é un atallo para a "
|
||||||
|
"característica de Teclas persistentes, o cal afecta á forma na que funciona "
|
||||||
|
"o teclado."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:47
|
||||||
|
msgid ""
|
||||||
|
"You just pressed two keys at once, or pressed the Shift key 5 times in a "
|
||||||
|
"row. This turns off the Sticky Keys feature, which affects the way your "
|
||||||
|
"keyboard works."
|
||||||
|
msgstr ""
|
||||||
|
"Acabas de premer dúas teclas á vez, ou presionado a tecla Maiús 5 veces "
|
||||||
|
"seguidas. Isto é un atallo para a característica de Teclas persistentes, o "
|
||||||
|
"cal afecta á forma na que funciona o teclado."
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59
|
||||||
|
msgid "Leave On"
|
||||||
|
msgstr "Deixar activado"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:1287
|
||||||
|
msgid "Turn On"
|
||||||
|
msgstr "Activar"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
|
#: js/ui/status/network.js:154 js/ui/status/network.js:339
|
||||||
|
#: js/ui/status/network.js:1287 js/ui/status/network.js:1402
|
||||||
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
|
#: js/ui/status/rfkill.js:117
|
||||||
|
msgid "Turn Off"
|
||||||
|
msgstr "Apagar"
|
||||||
|
|
||||||
|
#: js/ui/kbdA11yDialog.js:67
|
||||||
|
msgid "Leave Off"
|
||||||
|
msgstr "Deixar desactivado"
|
||||||
|
|
||||||
|
#: js/ui/keyboard.js:198
|
||||||
|
msgid "Region & Language Settings"
|
||||||
|
msgstr "Preferencias de rexión e idioma"
|
||||||
|
|
||||||
#: js/ui/lookingGlass.js:642
|
#: js/ui/lookingGlass.js:642
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
@@ -1284,7 +1374,7 @@ msgstr "Ver fonte"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Páxina web"
|
msgstr "Páxina web"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1493
|
#: js/ui/messageTray.js:1494
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Información do sistema"
|
msgstr "Información do sistema"
|
||||||
|
|
||||||
@@ -1373,7 +1463,7 @@ msgctxt "System menu in the top bar"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: js/ui/panel.js:812
|
#: js/ui/panel.js:814
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Barra superior"
|
msgstr "Barra superior"
|
||||||
|
|
||||||
@@ -1437,11 +1527,11 @@ msgstr "GNOME precisa bloquear a pantalla"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: js/ui/screenShield.js:836 js/ui/screenShield.js:1308
|
#: js/ui/screenShield.js:836 js/ui/screenShield.js:1311
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Non foi posíbel bloquear"
|
msgstr "Non foi posíbel bloquear"
|
||||||
|
|
||||||
#: js/ui/screenShield.js:837 js/ui/screenShield.js:1309
|
#: js/ui/screenShield.js:837 js/ui/screenShield.js:1312
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Un aplicativo impediu o bloqueo"
|
msgstr "Un aplicativo impediu o bloqueo"
|
||||||
|
|
||||||
@@ -1528,46 +1618,39 @@ msgstr "Contraste alto"
|
|||||||
msgid "Large Text"
|
msgid "Large Text"
|
||||||
msgstr "Texto grande"
|
msgstr "Texto grande"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:47
|
#: js/ui/status/bluetooth.js:48
|
||||||
msgid "Bluetooth"
|
msgid "Bluetooth"
|
||||||
msgstr "Bluetooth"
|
msgstr "Bluetooth"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:616
|
||||||
msgid "Bluetooth Settings"
|
msgid "Bluetooth Settings"
|
||||||
msgstr "Preferencias do Bluetooth"
|
msgstr "Preferencias do Bluetooth"
|
||||||
|
|
||||||
#. Translators: this is the number of connected bluetooth devices
|
#. Translators: this is the number of connected bluetooth devices
|
||||||
#: js/ui/status/bluetooth.js:136
|
#: js/ui/status/bluetooth.js:137
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d Connected"
|
msgid "%d Connected"
|
||||||
msgid_plural "%d Connected"
|
msgid_plural "%d Connected"
|
||||||
msgstr[0] "%d conectado"
|
msgstr[0] "%d conectado"
|
||||||
msgstr[1] "%d conectados"
|
msgstr[1] "%d conectados"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:138
|
#: js/ui/status/bluetooth.js:139
|
||||||
msgid "Off"
|
msgid "Off"
|
||||||
msgstr "Desactivar"
|
msgstr "Desactivar"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:140
|
#: js/ui/status/bluetooth.js:141
|
||||||
msgid "On"
|
msgid "On"
|
||||||
msgstr "Activado"
|
msgstr "Activado"
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
|
||||||
msgid "Turn On"
|
|
||||||
msgstr "Activar"
|
|
||||||
|
|
||||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
|
|
||||||
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
|
|
||||||
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
|
|
||||||
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
|
|
||||||
msgid "Turn Off"
|
|
||||||
msgstr "Apagar"
|
|
||||||
|
|
||||||
#: js/ui/status/brightness.js:44
|
#: js/ui/status/brightness.js:44
|
||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "Brillo"
|
msgstr "Brillo"
|
||||||
|
|
||||||
#: js/ui/status/keyboard.js:805
|
#: js/ui/status/keyboard.js:783
|
||||||
|
msgid "Keyboard"
|
||||||
|
msgstr "Teclado"
|
||||||
|
|
||||||
|
#: js/ui/status/keyboard.js:806
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "Mostrar a distribución do teclado"
|
msgstr "Mostrar a distribución do teclado"
|
||||||
|
|
||||||
@@ -1607,18 +1690,18 @@ msgstr ""
|
|||||||
"Pode cambiar o acceso á localización en calquera momento desde as "
|
"Pode cambiar o acceso á localización en calquera momento desde as "
|
||||||
"preferencias de privacidade."
|
"preferencias de privacidade."
|
||||||
|
|
||||||
#: js/ui/status/network.js:104
|
#: js/ui/status/network.js:90
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<descoñecido>"
|
msgstr "<descoñecido>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
#: js/ui/status/network.js:443 js/ui/status/network.js:1316
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s apagado"
|
msgstr "%s apagado"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:457
|
#: js/ui/status/network.js:446
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connected"
|
msgid "%s Connected"
|
||||||
msgstr "%s conectado"
|
msgstr "%s conectado"
|
||||||
@@ -1626,189 +1709,189 @@ msgstr "%s conectado"
|
|||||||
#. Translators: this is for network devices that are physically present but are not
|
#. Translators: this is for network devices that are physically present but are not
|
||||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||||
#. %s is a network identifier
|
#. %s is a network identifier
|
||||||
#: js/ui/status/network.js:462
|
#: js/ui/status/network.js:451
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unmanaged"
|
msgid "%s Unmanaged"
|
||||||
msgstr "%s sen xestionar"
|
msgstr "%s sen xestionar"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:465
|
#: js/ui/status/network.js:454
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disconnecting"
|
msgid "%s Disconnecting"
|
||||||
msgstr "%s desconectando"
|
msgstr "%s desconectando"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:461 js/ui/status/network.js:1308
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "%s conectando"
|
msgstr "%s conectando"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||||
#: js/ui/status/network.js:475
|
#: js/ui/status/network.js:464
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Requires Authentication"
|
msgid "%s Requires Authentication"
|
||||||
msgstr "%s require autenticación"
|
msgstr "%s require autenticación"
|
||||||
|
|
||||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||||
#. module, which is missing; %s is a network identifier
|
#. module, which is missing; %s is a network identifier
|
||||||
#: js/ui/status/network.js:483
|
#: js/ui/status/network.js:472
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Firmware Missing For %s"
|
msgid "Firmware Missing For %s"
|
||||||
msgstr "Falta o firmware para %s"
|
msgstr "Falta o firmware para %s"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||||
#: js/ui/status/network.js:487
|
#: js/ui/status/network.js:476
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Unavailable"
|
msgid "%s Unavailable"
|
||||||
msgstr "%s non dispoñíbel"
|
msgstr "%s non dispoñíbel"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:490
|
#: js/ui/status/network.js:479
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connection Failed"
|
msgid "%s Connection Failed"
|
||||||
msgstr "%s conexión fallada"
|
msgstr "%s conexión fallada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:506
|
#: js/ui/status/network.js:495
|
||||||
msgid "Wired Settings"
|
msgid "Wired Settings"
|
||||||
msgstr "Preferencias da rede con fíos"
|
msgstr "Preferencias da rede con fíos"
|
||||||
|
|
||||||
#: js/ui/status/network.js:548
|
#: js/ui/status/network.js:537
|
||||||
msgid "Mobile Broadband Settings"
|
msgid "Mobile Broadband Settings"
|
||||||
msgstr "Preferencias da banda larga móbil"
|
msgstr "Preferencias da banda larga móbil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
#: js/ui/status/network.js:580 js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s hardware desactivado"
|
msgstr "%s hardware desactivado"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated
|
#. Translators: this is for a network device that cannot be activated
|
||||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||||
#: js/ui/status/network.js:595
|
#: js/ui/status/network.js:584
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Disabled"
|
msgid "%s Disabled"
|
||||||
msgstr "%s desactivado"
|
msgstr "%s desactivado"
|
||||||
|
|
||||||
#: js/ui/status/network.js:635
|
#: js/ui/status/network.js:624
|
||||||
msgid "Connect to Internet"
|
msgid "Connect to Internet"
|
||||||
msgstr "Conectarse a internet"
|
msgstr "Conectarse a internet"
|
||||||
|
|
||||||
#: js/ui/status/network.js:833
|
#: js/ui/status/network.js:822
|
||||||
msgid "Airplane Mode is On"
|
msgid "Airplane Mode is On"
|
||||||
msgstr "Modo avión activado"
|
msgstr "Modo avión activado"
|
||||||
|
|
||||||
#: js/ui/status/network.js:834
|
#: js/ui/status/network.js:823
|
||||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||||
msgstr "A Wifi está desactivada cando o modo avión está activo."
|
msgstr "A Wifi está desactivada cando o modo avión está activo."
|
||||||
|
|
||||||
#: js/ui/status/network.js:835
|
#: js/ui/status/network.js:824
|
||||||
msgid "Turn Off Airplane Mode"
|
msgid "Turn Off Airplane Mode"
|
||||||
msgstr "Desactivar o modo avión"
|
msgstr "Desactivar o modo avión"
|
||||||
|
|
||||||
#: js/ui/status/network.js:844
|
#: js/ui/status/network.js:833
|
||||||
msgid "Wi-Fi is Off"
|
msgid "Wi-Fi is Off"
|
||||||
msgstr "Wifi desactivada"
|
msgstr "Wifi desactivada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:845
|
#: js/ui/status/network.js:834
|
||||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||||
msgstr "A Wifi precisa activarse para poder conectarse á rede."
|
msgstr "A Wifi precisa activarse para poder conectarse á rede."
|
||||||
|
|
||||||
#: js/ui/status/network.js:846
|
#: js/ui/status/network.js:835
|
||||||
msgid "Turn On Wi-Fi"
|
msgid "Turn On Wi-Fi"
|
||||||
msgstr "Activar Wifi"
|
msgstr "Activar Wifi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:871
|
#: js/ui/status/network.js:860
|
||||||
msgid "Wi-Fi Networks"
|
msgid "Wi-Fi Networks"
|
||||||
msgstr "Redes WiFi"
|
msgstr "Redes WiFi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:873
|
#: js/ui/status/network.js:862
|
||||||
msgid "Select a network"
|
msgid "Select a network"
|
||||||
msgstr "Seleccione unha rede"
|
msgstr "Seleccione unha rede"
|
||||||
|
|
||||||
#: js/ui/status/network.js:903
|
#: js/ui/status/network.js:892
|
||||||
msgid "No Networks"
|
msgid "No Networks"
|
||||||
msgstr "Sen redes"
|
msgstr "Sen redes"
|
||||||
|
|
||||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
#: js/ui/status/network.js:913 js/ui/status/rfkill.js:115
|
||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Usar interruptor hardware para apagar"
|
msgstr "Usar interruptor hardware para apagar"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1191
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Seleccione unha rede"
|
msgstr "Seleccione unha rede"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1197
|
#: js/ui/status/network.js:1185
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Preferencias da WiFi"
|
msgstr "Preferencias da WiFi"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1316
|
#: js/ui/status/network.js:1304
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "%s punto wifi activo"
|
msgstr "%s punto wifi activo"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1331
|
#: js/ui/status/network.js:1319
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s non conectado"
|
msgstr "%s non conectado"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1435
|
#: js/ui/status/network.js:1419
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "conectando…"
|
msgstr "conectando…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1438
|
#: js/ui/status/network.js:1422
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "requírese autenticación"
|
msgstr "requírese autenticación"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1440
|
#: js/ui/status/network.js:1424
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "conexión fallada"
|
msgstr "conexión fallada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1494
|
#: js/ui/status/network.js:1478
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Preferencias de VPN"
|
msgstr "Preferencias de VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1491
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1501
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN desactivada"
|
msgstr "VPN desactivada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Preferencias da rede"
|
msgstr "Preferencias da rede"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1603
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s conectando con fíos"
|
msgstr[0] "%s conectando con fíos"
|
||||||
msgstr[1] "%s conectando con fíos"
|
msgstr[1] "%s conectando con fíos"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1607
|
#: js/ui/status/network.js:1600
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s conectando sen fíos"
|
msgstr[0] "%s conectando sen fíos"
|
||||||
msgstr[1] "%s con fíos conectando"
|
msgstr[1] "%s con fíos conectando"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1611
|
#: js/ui/status/network.js:1604
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s con módem conectando"
|
msgstr[0] "%s con módem conectando"
|
||||||
msgstr[1] "%s conectando sen fíos"
|
msgstr[1] "%s conectando sen fíos"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1759
|
#: js/ui/status/network.js:1738
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Produciuse un fallo na conexión"
|
msgstr "Produciuse un fallo na conexión"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1760
|
#: js/ui/status/network.js:1739
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Produciuse un fallo na activación da conexión de rede"
|
msgstr "Produciuse un fallo na activación da conexión de rede"
|
||||||
|
|
||||||
@@ -1890,6 +1973,32 @@ msgstr "Suspender"
|
|||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:272
|
||||||
|
msgid "Thunderbolt"
|
||||||
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
|
#. we are done
|
||||||
|
#: js/ui/status/thunderbolt.js:330
|
||||||
|
msgid "Unknown Thunderbolt device"
|
||||||
|
msgstr "Dispositivo Thunderbolt descoñecido"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:331
|
||||||
|
msgid ""
|
||||||
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
|
"reconnect the device to start using it."
|
||||||
|
msgstr ""
|
||||||
|
"Detectouse un novo dispositivo mentres non estabas. Por favor desconecte e "
|
||||||
|
"reconecte o dispositivo para comezar a usalo."
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:336
|
||||||
|
msgid "Thunderbolt authorization error"
|
||||||
|
msgstr "Erro de autorización de Thunderbolt"
|
||||||
|
|
||||||
|
#: js/ui/status/thunderbolt.js:337
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Could not authorize the thunderbolt device: %s"
|
||||||
|
msgstr "Non foi posíbel autorizar o dispositivo thunderbolt: %s"
|
||||||
|
|
||||||
#: js/ui/status/volume.js:128
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "Volume cambiado"
|
msgstr "Volume cambiado"
|
||||||
@@ -1902,7 +2011,6 @@ msgstr "Volume"
|
|||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
#: js/ui/switchMonitor.js:21
|
#: js/ui/switchMonitor.js:21
|
||||||
#| msgid "Error"
|
|
||||||
msgid "Mirror"
|
msgid "Mirror"
|
||||||
msgstr "Espello"
|
msgstr "Espello"
|
||||||
|
|
||||||
@@ -1910,7 +2018,6 @@ msgstr "Espello"
|
|||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
#: js/ui/switchMonitor.js:26
|
#: js/ui/switchMonitor.js:26
|
||||||
#| msgid "Panel Display"
|
|
||||||
msgid "Join Displays"
|
msgid "Join Displays"
|
||||||
msgstr "Unir pantallas"
|
msgstr "Unir pantallas"
|
||||||
|
|
||||||
@@ -2051,21 +2158,21 @@ msgstr "Calendario de Evolution"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:380
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Imprimir versión"
|
msgstr "Imprimir versión"
|
||||||
|
|
||||||
#: src/main.c:386
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Modo usado por GDM para a pantalla de inicio"
|
msgstr "Modo usado por GDM para a pantalla de inicio"
|
||||||
|
|
||||||
#: src/main.c:392
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
|
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
|
||||||
"sesión"
|
"sesión"
|
||||||
|
|
||||||
#: src/main.c:398
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Listar os modos posíbeis"
|
msgstr "Listar os modos posíbeis"
|
||||||
|
|
||||||
@@ -2113,6 +2220,21 @@ msgstr[1] "%u entradas"
|
|||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Sons do sistema"
|
msgstr "Sons do sistema"
|
||||||
|
|
||||||
|
#~| msgid "Power Off"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Power off"
|
||||||
|
#~ msgstr "Apagar"
|
||||||
|
|
||||||
|
#~| msgid "Log Out"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Log out"
|
||||||
|
#~ msgstr "Saír da sesión"
|
||||||
|
|
||||||
|
#~| msgid "Switch User"
|
||||||
|
#~ msgctxt "search-result"
|
||||||
|
#~ msgid "Switch user"
|
||||||
|
#~ msgstr "Cambiar de usuario"
|
||||||
|
|
||||||
#~ msgid "Hide tray"
|
#~ msgid "Hide tray"
|
||||||
#~ msgstr "Ocultar bandexa"
|
#~ msgstr "Ocultar bandexa"
|
||||||
|
|
||||||
@@ -2652,9 +2774,6 @@ msgstr "Sons do sistema"
|
|||||||
#~ msgid "Mouse Settings"
|
#~ msgid "Mouse Settings"
|
||||||
#~ msgstr "Preferencias do rato"
|
#~ msgstr "Preferencias do rato"
|
||||||
|
|
||||||
#~ msgid "Region & Language Settings"
|
|
||||||
#~ msgstr "Preferencias de rexión e idioma"
|
|
||||||
|
|
||||||
#~ msgid "Wi-Fi"
|
#~ msgid "Wi-Fi"
|
||||||
#~ msgstr "Wifi"
|
#~ msgstr "Wifi"
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user