Compare commits

..

291 Commits

Author SHA1 Message Date
Jules Aguillon
1aaf427883 Release 1.22.0 2023-04-02 17:27:44 +02:00
Jules Aguillon
a662934afc Bump targetSdkVersion to 33
No change needed.
2023-04-02 17:16:56 +02:00
Jules Aguillon
351355b3a7 Launcher activity: Input box
For trying the keyboard without having to mess with an other app.
2023-04-02 13:29:53 +02:00
Jules Aguillon
3caca59ff4 Refactor: Remove unecessary method KeyboardData.load_pin_entry 2023-03-28 11:55:24 +02:00
Jules Aguillon
35b4e442ab Add a launchable explanatory activity
This activity points to the system settings page for enabling input
methods. This is purely a shortcut but is expected by many users.

It could be made more useful in the future or hidden whenever the
keyboard is enabled.
2023-03-28 11:22:17 +02:00
Jules Aguillon
c4de1ec267 sync_translations.py: Output sub-elements 2023-03-28 11:11:41 +02:00
Chasm Solacer
59b0b60f3f Updated pl (Polish) translation (#316) 2023-03-24 01:26:14 +01:00
Jules Aguillon
2f938dc6f4 Correct pointer direction
The previous algorithm did not cut the circle into 16 equal parts.
The division by 2pi yielded numbers smaller than 16, which no longer
made sense after the cast to int.
2023-03-13 03:06:43 +01:00
Mostafa Ayesh
ce51df6f5a Add Arabic layout (#314)
* add arabic keyboard
* use unicode values for special characters
* add alternate layout
* use arabic numbers
2023-03-11 16:54:20 +01:00
Luke Videckis
6aaa497393 New Hindi layout (#313)
* New Hindi layout
* Update default layout for Marathi, Nepali
* Consistent naming for Devanagari layouts
2023-03-11 16:43:17 +01:00
Jules Aguillon
bac228e6fb Add extra keys for Ukrainian 2023-03-05 23:36:15 +01:00
Jules Aguillon
d7e4840f4d Add support for Belarusian
It uses the russian layout with placed extra keys.
2023-03-05 23:34:26 +01:00
Jules Aguillon
18d3fd3c84 Refactor: Remove KeyboardData.Corner
The Corner class is removed. The "localized" flag for all the corners is
held in a bitfield.
2023-03-05 23:08:35 +01:00
Jules Aguillon
c56ad425f6 Remove the 'edgekeys' attribute 2023-03-05 20:08:56 +01:00
Jules Aguillon
a6fe5cae00 Allow 8 symbols per key
'Keyboard.Key' now contains an array of size 9, giving each keyvalue an
index. The algorithm for finding the nearest key during a swipe now
needs 16 segments, which are now calculated as an angle.

The algorithm does one more interation instead of 2 more, slightly
reducing the sensitivity of corner values. The 'getAtDirection' function
is moved into the Pointers class to clearly separate the two systems.

The 'edgekey' attribute is now obsolete but is kept for compatibility.
The flag is removed internally, key index are simply translated.
Similarly, the 'slider' attribute now act on keys at index 5 and 6
instead of 2 and 3.
2023-03-03 19:44:05 +01:00
Jules Aguillon
1f9e92ed60 Fix caps lock stopped by auto-capitalisation
Auto-capitalisation triggers when the backspace key is used. Make sure
to not remove a locked shift pointer.
2023-03-02 11:40:22 +01:00
Jules Aguillon
0da02d60c4 Do not remove numpad keys from the layout
This removes keys like '.' and '-' from their usual place, which is
pretty annoying.

The feature is retained for the number row.
2023-03-02 10:57:58 +01:00
Edgars
70754aa3eb Update LV translation 2023-03-02 10:41:46 +01:00
Jules Aguillon
2244c46af1 Allow key and keyboard opacity to be 0 2023-02-26 11:52:10 +01:00
Jules Aguillon
798494e701 Fix miscalculated keyboard height with number row
The 'keysHeight' field needs to be updated. As this class is not
intended to be mutable, copy the list of rows and call the constructor.

Also remove an unecessary component of the keyboard height calculation.
2023-02-26 11:31:08 +01:00
mscheidemann
0d902aa334 Update values-de/strings.xml (#295)
Missing German translation completed
2023-02-26 09:54:47 +01:00
Jules Aguillon
91f27a1432 Update translations
Outdated since 0f62b30
2023-02-26 09:49:06 +01:00
JackDotJS
9523b158b3 Add theme "Alternative Black" (#297)
* Add alternative black theme
2023-02-26 09:47:31 +01:00
Jules Aguillon
2ca7b4427d Release 1.21.0 (32) 2023-02-12 23:38:37 +01:00
Jules Aguillon
0f62b3044c Option to switch to the previous input method
A new option changes the "change_method" into the new
"change_method_prev". It switch to the previously used input method.

A long press on "change_method_prev" sends "change_method".

A new section is added in the settings and existing options are moved.
2023-02-12 23:20:11 +01:00
Jules Aguillon
c46e3b6c61 Modify keys after a long press 2023-02-12 23:14:57 +01:00
Kazoku
5fac3459aa Added missing accent that can combine with horn_accent (#293) 2023-02-09 23:38:55 +01:00
Kazoku
b54f9c5797 Vietnamese keyboard (#291)
Added missing accent (horn, hook, dot below)
Added layout
Added accent font svg (by modified existing accent)
2023-02-09 18:40:48 +01:00
Jules Aguillon
72249b8a42 Fix arrow keys not repeating
The special handling of arrow keys have been removed in 854eff2. Key
repeat was not starting when the key0 was empty.
2023-02-08 22:38:01 +01:00
rVnPower
82b2bf6dfb Complete Vietnamese translation (#292) 2023-02-08 16:35:44 +01:00
Ram Kromberg
0fe27ef486 Add theme 'ePaper' (#287)
* Add theme 'ePaper'
2023-01-31 20:11:36 +01:00
Ram Kromberg
51ce2ccdf1 Add layouts 'he_il_1452_1' and 'he_il_1452_2' 2023-01-31 20:07:30 +01:00
Jules Aguillon
eb0df72ba1 Update French translation 2023-01-31 00:07:17 +01:00
Jules Aguillon
540384bb0a Add optional number row
An option is added to enable an extra number row at the top of the
keyboard. Digits are removed from the keyboard while the number row is
visible.
2023-01-30 23:58:47 +01:00
Jules Aguillon
c7184303e9 Remove the digits when numpad is visible 2023-01-30 23:54:39 +01:00
Jules Aguillon
78a461f740 Modification step for the special layout
Refactor, follow up of 90b7944. Add a modification step to the "special"
layouts: numpad, greekmath, pin entry.

Remove the apply_key0 function, which is not expressive enough.
Add an enum instead of yet an other "switch_" function.
2023-01-30 23:46:02 +01:00
Jules Aguillon
90b7944129 Apply modify_layout to text layout only
Refactor. Allows to remove the 'extra_keys' and 'num_pad' flags and to
implement more complicated transformations to the layouts.
2023-01-30 22:33:01 +01:00
Jules Aguillon
2539feadcd Fix placeholder key not replaced
Since fecc4dd, placeholder keys can't be compared by reference.
Add a placeholder kind and defined placeholder values.
2023-01-30 21:29:59 +01:00
Jules Aguillon
5f283cd0cd Slightly increase the width of the spacebar
The left and right arrows are less often needed and the key can be
shorter.
2023-01-29 19:46:56 +01:00
Jules Aguillon
fecc4dd70a Remove the explicit hashmap in KeyValue
Refactoring. Predefined keys are represented by a big switch statement
rather than added into a hashmap.
2023-01-29 19:38:54 +01:00
Jules Aguillon
7bc93c470e Don't send event at end of sliding
A sliding pointer going up must not cause a key event to be sent. This
caused an extra cursor movement and cleared the latched modifiers.
2023-01-29 18:49:44 +01:00
Jules Aguillon
854eff211d Move cursor by sliding on the space bar
Send key events for the left or right arrow as the finger slides on the
space bar.
Can be used to select text by holding shift. Works under Termux.

Events are sent linearly as the finger travels. The distance between
each events is defined from the swiping distance divided by 4.

'slider="true"' can be set on a key that have 'edgekeys="true"'.
'key2' and 'key3' represent the right and left keys.
2023-01-22 23:21:21 +01:00
Jules Aguillon
f4032e3be9 Remove the modulated repeat
It allowed to modulate the repeat speed of some keys (arrow, backspace,
delete) by move the finger farther or closer to the key.

In practice, this wasn't pratical and doesn't seem popular. It is
removed in favor of a better mechanism for moving the cursor.
2023-01-22 23:20:04 +01:00
Maki Nishikino
f7f4d4d6aa Update russian strings.xml (#280) 2023-01-21 15:56:32 +01:00
Jules Aguillon
de5571d428 Release 1.20.2 (31) 2023-01-15 23:34:04 +01:00
Jules Aguillon
6126578111 Avoid switching back from secondary layout automatically
Stay on the secondary layout after a config refresh or onStartInputView.
The information is kept until the keyboard is restarted.

Additionally, move tweaking the secondary layout to the Config class now
that physical equality is not needed.
2023-01-15 23:19:09 +01:00
Jules Aguillon
046416389a Present the "keyboard height" option similarly to the margin options 2023-01-15 19:37:03 +01:00
Jules Aguillon
fd0f0d5476 Separate option for bottom margin in landscape mode
A large margin in portrait mode is desirable but generally not in
landscape mode.
2023-01-15 19:19:07 +01:00
Jules Aguillon
a199962117 Separate option for horizontal margin in landscape mode
A separate option is needed, the +25dp offset wasn't enough.
2023-01-15 19:11:08 +01:00
Maki Nishikino
8a3c0566e7 Update Russian translation and add Russain description (#279)
* Add ru-RU market description

* Add russian settings translate
2023-01-15 17:20:04 +01:00
Jules Aguillon
e190394b47 Add layout 'qwertz_sk'
Co-authored-by: Jozef Kundlak <ingjozefkundlak@gmail.com>
2023-01-14 23:31:37 +01:00
Jules Aguillon
dcc4a640f7 Remove borders on the black theme 2023-01-07 14:55:43 +01:00
Jules Aguillon
c5f5a23d75 Fix dimensions going off after rotation
Values like 'characterSize' and 'horizontalMargin' can't be fed back into the default value because they are not of the same unit.
To avoid this happening again, change the way the default value is defined for every options.
The 'key_height' dimension was no longer used.
2022-12-31 14:00:38 +01:00
Jules Aguillon
73ef7c6765 Improve the description of the app
"swipe gesture" is not clearly defined and can be confused with the
one from the Swype keyboard. Also remove the useless part that is
repeated below.
2022-12-31 13:47:38 +01:00
Jules Aguillon
e333eb06fd Add keys for every context menu actions
The most requested keys are undo and redo. Unfortunatly redo doesn't
work reliably.

The other context menu actions like share, assist and autofill are added
even thought they are rarely useful or implemented.
2022-12-30 15:29:18 +01:00
Jules Aguillon
764cd882d2 Fix inaccessible text layout from pin
The "main" layout can now be pin layout. 'SWITCH_TEXT' and
'SWITCH_SECOND_BACK' don't mean to use that.
2022-12-29 12:43:02 +01:00
Jules Aguillon
a891a3a99b Release 1.20.1 2022-12-14 15:36:04 +01:00
Jules Aguillon
8f972113ca Fix pin entry layout not showing up
The regular text layout was showing instead of the pin entry due to a
misuse of the 'switch' syntax.
2022-12-14 15:33:44 +01:00
Jules Aguillon
c61b31168c Fix a crash on API < 12
'extra_keys_subtype' can be none on API level < 12 when the "accents"
option is tweaked.
2022-12-14 15:09:46 +01:00
Chasm Solacer
c182f3d829 qwerty_pl layout is default for Polish language (#253) 2022-12-14 15:07:40 +01:00
Jules Aguillon
7d6306fbc9 Fix keyboard not showing up after rotation
'setInputView()' must be called on every 'onStartInputView()', not just
when the view is re-created.

This is broken since bf31872.
2022-12-14 15:04:11 +01:00
Jules Aguillon
cb2ea83f8a Release 1.20.0 2022-12-11 22:17:20 +01:00
Chasm Solacer
90cad963ec Make the keyboard transparent (#252)
* Add option for keyboard opacity (transparency). Keyboard background, keys and pressed keys can be adjusted separately.

* Make the borders transparent as well

* Moved setAlphas outside drawKeyFrame to top of onDraw method
2022-12-11 22:10:00 +01:00
Jules Aguillon
bf31872955 Handle configuration change quickly
setInputView() was not called when the view was re-created through
refresh_config(). Also, the refresh_config() function was not able to
properly set the current layout.

Now keep the default layout (_localeTextLayout) and the current non-text
layout (if any, _currentSpecialLayout) separately to be able to refresh
them later.

setInputView() is called everytime the view is created instead of by
onStartInputView() specifically.

The setting activity now save the preferences to the protected storage
in onStop() instead of listening for onSharedPreferenceChanged.
2022-12-11 21:57:40 +01:00
Jules Aguillon
199ca5cf03 Improve emoji pane layout
The measurement function was wrong in some situations. Set a width for
columns and properly configure the GridView.
2022-12-11 16:26:50 +01:00
Jules Aguillon
87d21685ca Fix keyboard not reacting to changed preferences
The callback might not be called if the "default" shared preferences is
different from the shared preferences actually used. This is unexpected
but seems to happen half of the time on Android 12.

Since f1ce6ab, this callback is critical to update the keyboard.
Restarting the application can no longer solve these issues.
2022-12-11 14:55:32 +01:00
Chasm Solacer
8665d002bf Added qwerty_pl layout (#251)
* Updated pl translation

* Added qwerty_pl.xml – QWERTY (Polski) layout
2022-12-11 14:49:22 +01:00
Jules Aguillon
f0fcd791ec Fix syntax error in values-fr 2022-12-11 14:47:28 +01:00
Jules Aguillon
cd2c2357ed Update translation: fr 2022-12-10 20:10:12 +01:00
Jules Aguillon
c17b53ce7f Add option 'numpad_layout'
Allow choosing whether to show the high or the low digits first. The
numeric pane and the numpad are affected by the option.
2022-12-10 19:39:22 +01:00
Chasm Solacer
940fc81193 Added pl_PL (Polish) translation (#250) 2022-12-10 19:01:42 +01:00
Jules Aguillon
523de040be Settings: Allow the keyboard to be smaller
Some users reported that 25% of the screen height is too high on their
screen. This doesn't seem to be a good way to define the height but
until it is improved, allow smaller values.
2022-12-10 18:46:05 +01:00
Jules Aguillon
804ea84981 Correctly handle pointer cancel events
The cancel event ends the motion, it doesn't apply to a single pointer
like it was previously expected.
2022-12-04 18:21:59 +01:00
Jules Aguillon
aaf3d8b630 Update French translation
Also, sync all the translations since the added option.
2022-11-26 23:13:04 +01:00
Jules Aguillon
19c38ca6a2 Improve glyph of accent_bar
The small bar on the middle of the dotted circle looked like a small
arrow. Make the bar span the whole circle, not on the middle.
2022-11-26 23:05:55 +01:00
Jules Aguillon
e745c81269 Allow using a custom layout
Add an option for specifying an XML layout description as a string.

The option is a bit rough at the moment:

- No documentation, users have to be aware of the keyboard's code to use
  this option.
- No error are shown, the layout will fallback to qwerty on error.
2022-11-26 22:30:45 +01:00
Jules Aguillon
09d984a1ab Refactor: Use XmlPullParser directly
XmlResourceParser is convenient but cannot be easily instantiated.
2022-11-26 22:16:48 +01:00
Jules Aguillon
69994a55c5 Refactor: Pass layout as a KeyboardData instead of ID
Parse layouts sooner.
2022-11-26 22:14:29 +01:00
Jules Aguillon
ebdacbc2b2 Make sure translation are in sync
The new script makes sure that strings files don't contain obsolete
strings but also ease the job of contributors by adding missing
translations as comments.

A Github Action ensures that translations stay in sync over time.
2022-11-26 18:11:28 +01:00
Jules Aguillon
122a9c23d0 Make fake pointers not lockable
Especially annoying now that modifiers are not locked by a double tap.
2022-11-26 17:22:31 +01:00
Jules Aguillon
6fb15b3f16 Stop using deprecated 'shouldOfferSwitchingToNextInputMethod'
This function has been introduced in API 19 and deprecated in API 28.
There was no version check for API 19 but instead of adding these,
simply remove the feature for API under 28.
2022-11-26 15:46:45 +01:00
six-6
9a0e03f644 Update Simplified Chinese translation (#245) 2022-11-26 15:39:01 +01:00
Jules Aguillon
f7e16c0345 Fix missing version check
setSystemGestureExclusionRects is API 29. Broken since d644d2b, which
almost got into the release!
2022-11-13 20:59:40 +01:00
Jules Aguillon
64c7c8ce20 Draw borders and update themes
Themes can define the color of each borders independently. Every borders
must have the same width for now. It's possible to set a different width
when the key is activated, thought this is only used to remove borders.

The 4 themes are updated to take advantage of borders.
2022-11-13 20:53:06 +01:00
Jules Aguillon
c1751578ef Highlight activated keys label
Rendering change only.
2022-11-13 18:03:01 +01:00
Jules Aguillon
2aa98de7aa Add editing keys: copy, paste, cut, select all 2022-11-13 16:45:57 +01:00
Jules Aguillon
078dbcd5ff Refactor: Move editing code from to KeyEventHandler
Remove the code dealing with InputMethodConnection from 'Keyboard2' and
move it into 'KeyEventHandler', where more editing actions can now be
implemented.

Autocapitalisation is also moved, the IReceiver interface is simplified.
2022-11-13 16:28:39 +01:00
Jules Aguillon
22a7df6632 Refactor: Use enum values in KeyValue.Kind
instead of maintaining a separate set of constants and a conversion
function.
2022-11-13 15:19:50 +01:00
Jules Aguillon
e213834f67 Don't depend on dpi values in swipe distance
The dpi values "xdpi" and "ydpi" can have wildly different values on
different devices.

The new computation defines a baseline and only take into account the
dpi values as a ratio.

On a 480dpi screen (in both directions), this decrease the value by
about 18%. This new distance felt better during testing.
2022-11-13 14:43:53 +01:00
Jules Aguillon
b102ad9078 Fix localized keys appearing on secondary layout 2022-11-13 00:39:31 +01:00
Jules Aguillon
51b330c616 Allow switching quickly between two layouts
A new option allow to choose a secondary layout, the switching key is
placed on the top edge of the space bar.

The "Programming layout" option was basically doing that but it was
possible to choose from a few layouts only. It is improved and renamed.

The 'LayoutListPreference' allows setting the string for the first entry
but otherwise share the rest of the array.

Add nice icons from materialdesignicons.
2022-11-13 00:24:23 +01:00
Jules Aguillon
815e30a505 Add option for brightness of labels
The brightness value is used as the alpha value when drawing the labels.
2022-11-11 19:47:37 +01:00
Jules Aguillon
4d99bd4f4b Dim secondary keys
Reduce the constrast of "secondary" labels. Modifiers (except
diacritics), event and keyevent keys are considered secondary.
2022-11-11 19:18:22 +01:00
Jules Aguillon
d644d2bf0e Disable the back-gesture on the keyboard area
as well as other system gestures that would interfere with the
keyboard's own swipe gesture.
2022-11-11 16:14:44 +01:00
Jules Aguillon
fc68f2e07d Relase 1.19.1 2022-11-11 15:51:51 +01:00
Edgars
8350efaa83 Add missing Latvian translations 2022-11-11 15:43:34 +01:00
Jules Aguillon
ef34303c7e Avoid crashing in direct-boot mode
The settings activity can't open in direct-boot mode. The emoji pane
opens without the "last used" data.
2022-11-11 15:39:28 +01:00
Jules Aguillon
f1ce6abe5a Direct-boot aware preferences
Store preferences in device protected storage, which is available before
the device is unlocked.
The keyboard was crashing when trying to access the encrypted
preferences.

The emoji pane uses a separate preferences file, the old data is lost.

The SettingsActivity can't easily use the new preferences storage.
Instead, it continues to use the "default" preferences store, which is
copied back to the protected storage when needed.
2022-11-11 14:27:02 +01:00
Jules Aguillon
29fbb27a8a Increase the targetSdkVersion to 31 2022-11-11 10:17:47 +01:00
Jules Aguillon
fdebae929b Release 1.19.0 2022-11-06 21:20:15 +01:00
Jules Aguillon
25cefc5890 Allow to type password on boot
The "android.permission.RECEIVE_BOOT_COMPLETED" permission doesn't seem
useful on Android 12 but is added just in case.
2022-11-06 21:06:04 +01:00
Jules Aguillon
30198acddd Enable pin layout for decimal and signed inputs
Decimal and signed inputs are more common than expected. Adding a few
keys is enough to support these.
2022-11-06 19:54:55 +01:00
Jules Aguillon
96db0397f0 Fix adding two pointers for the same key 2022-11-06 19:49:30 +01:00
Jules Aguillon
d2128e777e Remove option "Lockable modifiers" 2022-11-06 19:34:57 +01:00
Jules Aguillon
6a7fbf5e50 Add combinations to 'accent_slash' and show in settings
The 'accent_slash' was missing in the extra keys setting.

Allow to type more latin letters "with oblique stroke" or "with stroke"
that visually have an oblique bar, that were not added to 'accent_bar'.
2022-11-05 19:33:46 +01:00
Jules Aguillon
1e067c9863 Add the bar diacritic dead key
Allows to type many of the "with stroke" or "with bar" latin letters.
2022-11-05 19:26:49 +01:00
Jules Aguillon
ebe66eb740 Apply Fn first
It's otherwise impossible to type Ctrl+F keys.
2022-11-05 10:29:36 +01:00
Jules Aguillon
d2328d4b9a Automatic day night theme in settings activity
There seems to be no "DayNight" theme compatible with older version of
android outside of the androidx library.

Using 'Theme.DeviceDefault' which is a dark theme, even if it doesn't
sounds like. Detect if a light theme should be used at activity
creation.
2022-11-05 10:13:35 +01:00
Jules Aguillon
7edfd81db1 Use '₹' instead of '₨' in Hindi
₨ is Shift+₹.
2022-11-01 21:44:49 +01:00
Jules Aguillon
67e46e2da3 Add 'qwertz_cs' to the settings
The layout was added in 5169472d but was not present in the settings.
2022-11-01 21:32:58 +01:00
Jules Aguillon
4f3fcfe64b Add the 'qwertz_de' layout
Similar to 'qwertz' but is wider to show äöü on dedicated keys. Some
punctuations are rebalanced to use the space better.
The default layout for de_DE is changed.
2022-11-01 21:29:18 +01:00
Jules Aguillon
2e598a4d47 Draw letter indication on the pin layout
There is no way to type letters on the pin layout, the indication are
decoration only.
Use the E.161 standard.
2022-10-24 00:27:49 +02:00
Jules Aguillon
e01a2733b1 Add the pin entry layout
The layout is used for phone number and datetime input boxes as well as
some numbers.
It is easier to use when the full numeric layout is not needed.
2022-10-24 00:17:55 +02:00
Jules Aguillon
e1145d3851 Disable Alt and Meta by default
The Meta key is not useful.
The Alt key can be used in a terminal but is not useful to a part of
terminal users.
2022-10-23 23:09:58 +02:00
Gero Streng
baec5a76ee Add optional NumPad
Shows a NumPad depending on preference:
   Never/Landscape/Always
2022-10-23 22:51:36 +02:00
Jules Aguillon
ea0b873dd8 Make the shift symbol bigger 2022-10-23 22:02:41 +02:00
Jules Aguillon
6aa4740702 Clarify the double tap option text
Also update a bit the README.
2022-10-23 22:01:43 +02:00
Jules Aguillon
ff0c0354d6 Show keys description in settings
The symbols alone might be hard to understand when scrolling through the
"extra keys" option.
2022-10-23 21:51:43 +02:00
Jules Aguillon
344df4c5c1 Refactor: Remove boilerplate for symbol keys 2022-10-23 21:42:03 +02:00
Jules Aguillon
36e10a792f Add the capslock key
The key enable caps lock immediately. It does nothing if caps lock is
already enabled.

It is not present on the keyboard by default but a place is defined on
every layout, top-right of the shift key. It can be enabled in the
settings.

The icon is from materialdesignicons.com.
2022-10-23 21:37:04 +02:00
Jules Aguillon
55cece7965 Remove cruft
This old script will not help to upgrade to the newer unicode standards.
2022-10-16 22:55:01 +02:00
Jules Aguillon
167c63ee25 Release 1.18.0 2022-10-16 22:42:14 +02:00
Jules Aguillon
f56b926857 Autocapitalisation: Avoid trigerring when Ctrl+Del
Autocapitalisation could trigger while repeatedly typing Ctrl+Del to
remove several words.
2022-10-16 22:34:21 +02:00
Jules Aguillon
75df3afda6 Allow to disable Alt and Meta keys
The keys are marked "loc" in the layouts and are handled like the other
extra keys.
The only difference is that they are enabled by default (for now).
2022-10-16 01:07:24 +02:00
Rapha
7fb5c992b6 Rename resulting CI artifact (#180)
* Rename resulting CI artifact
Add details to the name of the artifact, to distiguish downloads of it between multiple branches while testing

* Update CI to nodejs16 and improve artifact naming
2022-10-16 00:53:04 +02:00
Jules Aguillon
158a3577be Disable fullscreen mode
This mode is annoying to some users and is disabled in most text views.

The keyboard has a fixed sized relative to the height of the screen in
landscape mode. The keyboard can't take more space than expected,
currently.

This might cause problems in the future and might be hidden behind an
option if one is found. Every text views so far seemed to behave fine.
2022-10-16 00:42:28 +02:00
Jules Aguillon
138e59f13a Fix literal tab key
Broken since 31d6a70d.
2022-10-16 00:04:06 +02:00
Jules Aguillon
db347c665c Add the breve diacritic 2022-10-15 23:28:36 +02:00
lpv
8be80eecd4 Basic greek layout. (#207)
* Basic greek layout.
2022-10-15 23:22:19 +02:00
Jules Aguillon
d9a8688237 Fix crash due to auto capitalisation
It is unclear how _autocap.started is not called first but nothing is
preventing to initialize things earlier.
2022-10-15 16:19:27 +02:00
Jules Aguillon
7f51cf001a Mention long press in lockable modifiers option
More documentation about this feature would be appropriate.
2022-10-15 15:55:48 +02:00
Raj9039852537
1909f2fcb4 Added Hindi language layout (#211)
* Hindi Keyboard Layout

Hindi keyboard layout added
Basic symbols like brackets, colons etc are useful. This includes ( ) { } [ ] \ / ÷ - + = ! % : ; . , ?
2022-10-11 22:13:40 +02:00
Jules Aguillon
fc8bb3a539 Allow to type İ on the Turkish layout
In Turkish, upper case of 'iı' is 'İI' but Java's toUpperCase will
return 'II'.
To make 'İ' accessible, make it the shift of 'ı'. This has the
inconvenient of swapping i and ı on the keyboard.
2022-10-04 10:12:22 +02:00
Jules Aguillon
dda8f0314d Contributing: clarify layouts 2022-10-04 10:12:22 +02:00
polyctena
5873b7315d German translation (#208)
Co-authored-by: Benjamin <f.weiss@stud.uni-goettingen.de>
2022-10-04 09:56:15 +02:00
Jules Aguillon
64e263a1af Fix an unexplained crash encountered in the wild
For some reason, 'subtype' can be null. Perhaps because the keyboard is
started before the IMM is ready.
2022-09-24 23:34:50 +02:00
Jules Aguillon
90b9b0e399 Release 1.17.0 2022-09-24 23:07:02 +02:00
Validbit
5169472dfc Added Czech translation and layout (#198)
* Added Czech translation and layout

Translated keyboard and created Czech multilingual "practical" layout for faster typing and typing in commonly used languages (German, Slovak + French w/accents)

* Update (Rephrase) full_description.txt

... to better suit the language and naturally promote keyboard's features and possibilities to a wider audience.
2022-09-24 22:44:10 +02:00
Jules Aguillon
3081af5190 Improve the auto capitalisation
- Detect when the input box is cleared
- Avoid looking up keys on the keyboard every time the shift state needs
  to change.
2022-09-24 22:36:06 +02:00
Jules Aguillon
c778b4e8a2 Fix autocapitalisation randomly not triggered
The autocapitalisation is asking the editor about whether to enable
shift and must make sure to ask after the editor is done processing the
events.
2022-09-24 18:53:37 +02:00
Quantenzitrone
65210fb14f Bone keyboard layout (#155) 2022-09-24 16:17:10 +02:00
Jules Aguillon
d8882c87ae Add support for Polish 2022-09-24 16:08:24 +02:00
Jules Aguillon
2fc40512c6 Add switch_greekmath to the extra keys
The Fn+switch_numeric shortcut might be hard to discover or too slow for
heavy users.

A location is allocated for the key so it has a consistent placement.
2022-09-24 16:02:54 +02:00
Jules Aguillon
5811643562 Add more possible locations for extra keys
Avoid dropping some keys on crowded layouts.
2022-09-24 16:02:54 +02:00
Piotrek Marciniak
a365fdc6a3 Add white e-ink oriented theme (#193)
* Add white e-ing oriented theme

Co-authored-by: Jules Aguillon <jules@j3s.fr>
2022-09-24 13:13:51 +02:00
Edgars
9fc1565065 Add missing Latvian translations (#203) 2022-09-24 11:45:24 +02:00
ChristianGynnild
b0a2298899 Added Norwegian keyboard layout (#202) 2022-09-24 11:44:01 +02:00
Md Rasel Hossain
81f07b427f Bengali Keyboard Layout (#201)
* Bangla Layout
2022-09-24 11:40:10 +02:00
Jules Aguillon
0b388b93c7 Add translations for Russian
Co-authored-by: @94KONG
2022-09-24 11:31:25 +02:00
Jules Aguillon
25a6e71ee8 Add the Extra Keys option
Allows to add more keys to the keyboard from a predefined list.
The implementation doesn't use MultiSelectListPreference because it
doesn't seem possible to change the item layout to properly show the
rendered symbols.
2022-09-19 11:41:18 +02:00
castix
617f0878bc italian translation 2022-09-03 17:33:35 +02:00
igorSilCar
773194ca4a Brazilian portuguese translations (#187)
* Translations for new setting, lockable modifier keys

Co-authored-by: Igor da Silva de Carvalho <igu@coiso.meanhouse>
2022-09-03 12:06:47 +02:00
Jules Aguillon
bc8bcce82a Fix crash when auto-capitalisation runs too soon
This is unexpected but happens once.
2022-07-30 18:19:28 +02:00
Jules Aguillon
4f5ce66347 Fix auto-capitalisation interfering with caps lock
Add a flag to recognize fake pointers and avoid clearing the
intentionally locked shift key.
2022-07-30 18:14:05 +02:00
Jules Aguillon
85d798299e Standard auto-capitalisation only after space
Change the capitalisation algorithm to use Android's
'getCursorCapsMode'. This requires a bit of cursor calculations but
should feel more standard.

The auto completion only triggers after a space is typed or backspace is
pressed.
2022-07-30 17:56:31 +02:00
Jules Aguillon
dec0a7471b Option "Lockable modifiers" is deprecated
Mark that it is planned to be removed, remove corresponding translations.
2022-07-24 23:57:32 +02:00
Jules Aguillon
53b9afa973 Hold any modifier to lock
Modifiers can be locked with a long press. The key repeat mechanism is re-used
and the press timeout is the same.
Every modifiers can be locked that way, not only the "lockable" ones.

The previous behavior can be enabled in the settings (for shift only)
but the default is changed.
2022-07-24 23:55:00 +02:00
Jules Aguillon
081e9a6e53 Add an option to control auto capitalisation 2022-07-24 23:44:37 +02:00
Jules Aguillon
bfde31da6e Avoid automatic capitalisation when using arrows
Disable capitalisation just after an arrow kind is pressed to avoid
interrupting navigation.
2022-07-24 23:32:14 +02:00
Jules Aguillon
324756535e Automatic capitalisation at beginning of sentences
Keep track of end-of-sentence characters while typing and automatically
enable shift when appropriate.

The last few characters just before the cursor need to be queried in
some cases: Begin of input, cursor has moved or text is deleted.
This might have a performance cost.

This normally only enable shift but it also needs to disable shift when
the cursor moves.
2022-07-24 20:02:48 +02:00
Jules Aguillon
2d8ed2d858 Add missing ascii characters to the Hungarian layouts
Was missing '~' and '$'.
2022-07-09 17:55:58 +02:00
Jules Aguillon
929b30f723 Add '#' to the numeric pane
On the bottom-left of the '*' key.
2022-07-09 17:50:13 +02:00
quantenzitrone
3033091f9d Add alternative greek and math symbols 2022-07-09 17:40:20 +02:00
Quantenzitrone
fdd640ef09 added uppercase ẞ of ß 2022-07-09 17:35:17 +02:00
Jules Aguillon
13a13ecbb6 Switch to greekmath with Fn+switch_numeric
Add a shortcut to switch to the greekmath pane directly from the main
layout.
2022-07-09 17:31:44 +02:00
Jules Aguillon
d5836ebb97 Add key for switching to the greekmath pane
The key is placed on the 3rd row of the numeric pane, by taking some
space from the shift key.
2022-07-09 17:30:26 +02:00
quantenzitrone
db8ebc2f4d Add the greekmath pane
The greek and math symbols from the Bone keyboard layout.
2022-07-09 17:27:23 +02:00
Andrew Cat
1d406e948f Add ukrainian layout (#172) 2022-07-03 23:07:06 +02:00
Jules Aguillon
1ddd089166 Compatibility with API level < 24
The Math.floorMod method was added on API level 24.
2022-07-03 22:59:05 +02:00
Jules Aguillon
1951448f9e Release 1.16.1 2022-06-24 22:11:53 +02:00
Jules Aguillon
ff01678ba6 Revert "Remove the vibration settings"
Bring back the "Vibration" option.

The duration option isn't added back because the vibration settings are
still handled by Android. In fact, the option has no effect if the
vibration are disabled in the system settings.

This partially reverts commit ef03dfed5c.
2022-06-24 22:00:23 +02:00
Jules Aguillon
d74e8f3b08 Fix F12 being turned into F11
The "f11_placeholder" and "f12_placeholder" keys were equals since
31d6a70.

Add an incrementing id into the unused key value to differentiate
placeholder values.
2022-06-24 20:56:04 +02:00
Jules Aguillon
ab987c776c Fix localized key not in predefined position
The "loc " prefix for predefining a place for an "extra key" was broken
since 31d6a70.

The FLAG_LOCALIZED flag cannot be used anymore, as adding it to any key
would turn it into a different key that wouldn't be recognized by parts
of the code comparing the keys (placing the extra keys).

Add an other layer in KeyboardData to store such informations.
2022-06-24 20:26:27 +02:00
Thunder-Squirrel
6e5be63e25 Move 'ъ' where it belongs and increase the width of the keys (#160) 2022-06-19 23:04:06 +02:00
Jules Aguillon
402bf4990e Remove the interval between vibrations
This is no longer necessary since repeating key no longer cause a
vibration.
2022-06-06 20:40:53 +02:00
Jules Aguillon
fda53e3952 Release 1.16.0 2022-06-06 20:23:09 +02:00
Jules Aguillon
ef03dfed5c Remove the vibration settings
Instead of using the vibrator directly, use performHapticFeedback, which
will integrate better with the system settings.
2022-06-06 17:04:50 +02:00
Jules Aguillon
e0131fa6b0 Fix inconsistent text size in landscape mode
Dimens weren't refreshed when the orientation changed. Dimens are not
the right solution anyway, use scaling factors instead.
2022-06-06 16:17:43 +02:00
Jules Aguillon
b236a74b64 Increase horizontal spacing in landscape mode
Space between the keys and margin on the left and right edges of the
screen.
2022-06-06 16:15:35 +02:00
Jules Aguillon
f6338a652b New setting: Keyboard height in landscape mode
The previous fixed value of 55% was too high. The new default value is
50% and it is customizable.
2022-06-06 15:33:39 +02:00
Jules Aguillon
9a42fa4dca Don't add extra keys to the numeric pane 2022-06-06 01:02:30 +02:00
Jules Aguillon
4d104eacf3 Remove the option "Show every accents"
This option cannot be implemented easily now that the set of "accents"
(localized keys) isn't defined.
2022-06-06 00:55:16 +02:00
Jules Aguillon
31d6a70dfb Refactor: Remove KeyValue.name
This makes KeyValue objects smaller. 'equals' and 'hashCode' are now
implemented too. Key names are still used to recognise keys with special
meaning, but not for comparing keys anymore.
2022-06-06 00:23:45 +02:00
Jules Aguillon
7462955507 Fix "REMOVED" key appearing when typing Fn and Shift
Since cc571ea
2022-06-05 20:15:11 +02:00
Jules Aguillon
9aac7900c0 Refactor: Make KeyValue final
The class has a complicated internal logic, it is no longer reasonable
to extend it.
2022-06-05 20:14:16 +02:00
Jules Aguillon
088d46d6e6 Refactor: Merge KeyValue._code and _flags fields
With a small number of flags now, it's possible to remove one more
field.
2022-06-05 19:55:55 +02:00
Jules Aguillon
5cc7fdf6d7 Refactor: Separate Events and Keyevents and use enums
Negative values for internal events are preventing further refactoring.

Add a new kind of key and split internal events (now Event) and
Android's key events (now Keyevent).

Use enums events and modifiers outside of the KeyValue class.
Internally, they are converted to and from integer.
2022-06-05 19:30:53 +02:00
Jules Aguillon
cc571ea1ca Refactor: Merge KeyValue.char and code fields
These two fields couldn't have an interesting value at the same time.

As we can no longer rely on a special value to distinguish between
what's the kind, the kind of the key is explicitly encoded in the two
most significative bits of the _flags field.

Extra nice thing: This removes the special values 'EVENT_NONE' and 'CHAR_NONE'.
2022-06-05 18:14:50 +02:00
Jules Aguillon
c1a816d3d4 Refactor: Associate key events in KeyModifier
Two advantages:
- No need to distinguish modifiers in KeyEventHandler. The KeyValue is
  enough to decide what action to do.
- Keys are never a Char and Event at the same time, fields can be
  merged.
2022-06-05 17:46:28 +02:00
Jules Aguillon
e10c587dc5 Refactor: Abstract KeyValue fields
The meaning of the public fields of KeyValue was quite complicated and
not handled consistently accross the app.

Make these fields private and add a more abstract API on top.

The meaning of these fields changed recently and it wasn't an easy
change. I plan on making more changes in the future.
2022-06-05 17:46:22 +02:00
erqan
d03e96da3e Turkish layout & translation (#151)
* Turkish layout & translation
2022-06-05 15:04:54 +02:00
draxaris1010
b3b7877a3b Added support for Dutch(Belgium) (#156) 2022-06-05 14:47:10 +02:00
Jules Aguillon
02124dd71f Add combining 'accent_arrow_right'
It's the first modifier that uses combining diacritics. Whether it
should be represented as a modifier or a new kind of key can be
reconsidered later.
2022-06-05 13:51:09 +02:00
Jules Aguillon
e4e54628b7 Add the 'accent_slash' modifier
Might be useful for some math characters.
2022-06-05 12:02:35 +02:00
Jules Aguillon
4127aa6f03 Stop using flags for modifiers
There was no free bits left to add new modifiers. Instead of increasing
the width of the 'flags' field, refactor the way modifiers are
represented and used.

Modifers are now represented as independent values and stored in the
'code' field. A flag is added to distinguish between modifiers and keys
with a key event.

The most notable change is that modifiers can no longer be or-ed into a
single value but have to be represented as an array.
2022-06-05 01:43:58 +02:00
Jules Aguillon
4f9375373e Colemak: Don't show uncessary dead keys
Hide the dead keys that don't correspond to installed languages.
2022-06-04 16:03:24 +02:00
Djuric
9b154a2495 Add colemak layout (#135) 2022-06-04 15:23:52 +02:00
Jules Aguillon
646ff4834d Move the '0' back to where it was
The '0' has been moved because it was hard to type due to being close to
the edge of the screen.
This is fixed in a more elegant way in a27c644, there's no reason to
keep the '0' in an inconsistent place anymore.
2022-05-29 17:39:48 +02:00
Jules Aguillon
815025aaa9 Add layout: QWERTY (Hungarian) 2022-05-29 17:31:12 +02:00
Jules Aguillon
d9f2fdf8bf Remove some localized keys from the layouts
These keys are not placed in a particular way, the automatic placement
will do a better job.
2022-05-29 12:34:10 +02:00
Jules Aguillon
2e81cb5cf7 Automatically place localized keys on the layouts
Layouts no longer need to mention every localized keys and dead keys.
They are now placed automatically starting from the second row on the
bottom-right corner.

The "loc " prefix is not removed to still be able to define a more
optimal and consistent placement for some extra keys (eg. 'ß' near 's').

Programming layouts no longer need to place every dead keys.
2022-05-29 12:27:46 +02:00
Anindra
89dfc782a7 Update readme (#146)
* add screenshots
2022-05-11 14:45:51 +02:00
Jules Aguillon
eb42943327 Specify localized keys in each layouts
Each layouts can chose which key are localized instead of specifying it
globally for each key.

Important keys are no longer removed from layouts if the 'extra_keys'
mechanism is not working properly. This can happen if language tags
specified in method.xml don't match the user's language.

Removed some currency symbols from some layouts. They are all in the Fn
layer.
2022-05-08 17:35:24 +02:00
Jules Aguillon
121a2ba76f Find closest key further
The previous limit was checking d-1 and d+1, the new limit also tries
d-2 and d+2.
2022-05-08 16:56:34 +02:00
Jules Aguillon
82d3290c6a Fix vibration when pointer move slightly
Fix the bug introduced in the parent commit.
2022-05-08 16:55:03 +02:00
Jules Aguillon
b15ca662c2 Better handling of removed keys and swipe geture
The "closest key" logic must be careful not to reveal keys removed by a
modifier.

Must check [_handler.onPointerSwipe] for every candidate values.
[selected_value] is changed back to [selected_direction].

This adds a new bug: When the direction change, the selected value might
not change but a vibration will be triggered anyway.
2022-05-08 16:55:03 +02:00
Jules Aguillon
9a48acfe3e Improve nearest key computation
getAtDirection was too hard to maintain and might contain bugs.
Change slightly the meaning of directions and implement a the nearest
key calculation as a loop.
2022-05-08 16:55:03 +02:00
Rodrigo Batista de Moraes
bce0a98f62 only vibrate when the swipe key changes 2022-05-08 16:55:03 +02:00
Rodrigo Batista de Moraes
a27c64479f use the closest swipe key on swipe
fix a direction
2022-05-08 16:55:03 +02:00
Jules Aguillon
7da7a5082d Set the color of the navigation bar
Since SDK 21, applications can set the background color of the
navigation bar. This is normally simply an item in a theme but it is
more complicated for keyboards.
2022-05-07 23:51:00 +02:00
Edgars
80600ed659 Add missing LV translations (#136) 2022-05-07 18:57:25 +02:00
Jules Aguillon
3b1c652370 Release 1.15.0 (22) 2022-05-01 23:06:18 +02:00
Tibor Billes
8cb1789eeb Add support for Hungarian layout (#127) 2022-05-01 22:51:11 +02:00
Jules Aguillon
04a7ec4bb8 Fix latched pointers accumulating on the same key
It was possible to latch and lock the same modifier several time at the
same time independently. Remove that.
2022-05-01 00:11:52 +02:00
Jules Aguillon
8e0d38c257 Fix crash when IME not enabled
This is unexpected but happened to a user. Perhaps because the OS
returned bogus or fake results in imm.getEnabledInputMethodList ?
2022-05-01 00:00:15 +02:00
Jules Aguillon
b72635b887 Fix modifiers not cleared when presses overlap
When typing fast, a second key might be pressed before the first is
released.

Clearing modifiers earlier would prevent this but would break modifiers
placed in corners (especially the accent keys). Instead, don't take
latched modifiers into account when registering the second press.

A new flag is needed to not interfere with holding modifers, which is
merged with the norepeat flag.
2022-04-30 23:47:09 +02:00
Jules Aguillon
84af72c222 Record activated modifiers on key down
The View no longer keeps flags for something other than rendering.
2022-04-30 23:17:20 +02:00
marciozomb13
2df4764557 Strings PT: App partially renamed to improve globalization (#134) 2022-04-30 11:01:03 +02:00
Jules Aguillon
39952f8bdf Remove build dependency on Fontforge
The required version of fontforge (from 2020!) is not available in many
distros. This is an annoying for contributors and greatly complicated
the CI and F-Droid scripts.

The generated font file is now included in the sources. Fontforge is
still needed when adding new glyphs but this is not a common operation.
2022-04-24 20:52:36 +02:00
Djuric
ab4c73f9f3 Add build instructions to the contributing page (#130) 2022-04-24 19:59:36 +02:00
matthiakl
e52e537fd7 Added neo 2 layout (#125)
* Added neo 2 layout

* Move accents away from screen edge into second row
2022-04-24 19:58:33 +02:00
Jules Aguillon
2900e8d197 Add Double acute diacritic
Will be used by the Hungarian language.
2022-04-24 01:15:41 +02:00
Jules Aguillon
d8e475467a Fix cedilla glyph is inverted 2022-04-24 00:49:48 +02:00
Jules Aguillon
fec3f109c9 Add support for Lithuanian
Requires two new diacritics: ogonek and dot_above.

The new accents are also added to the Latvian layout as the two language
can be close but not to the other localized layouts. A new mechanism is
needed to reproducibly add extra keys to layouts without manual
placement.
2022-04-24 00:41:49 +02:00
Jules Aguillon
f9f44fbd7d Update contributing guidelines
- Improve layout guidelines
- Adding a locale
- Mention character close to the edges of the screen
- Allow partially translating the app title
2022-04-24 00:41:49 +02:00
Benjamin
914599f16a German translation update 2022-04-23 20:12:52 +02:00
Jules Aguillon
65cc0c736e Release 1.14.2 (21) 2022-04-16 23:43:25 +02:00
Jules Aguillon
2cce0fed67 Makefile: Pass -r to adb install
Fails to update on some versions of Android without it.
2022-04-16 23:38:16 +02:00
Jules Aguillon
9a8c4f291d Fix compatibility with Android 6
Android 6 uses Java 1.7, the only incompatible feature in use was
lambdas.
2022-04-16 23:36:54 +02:00
marciozomb13
14cc318a0e Update PT strings (#121)
Tiny fixes and improvements.
2022-04-16 23:17:17 +02:00
Jules Aguillon
8d8a58462c Release 1.14.1 (20) 2022-04-06 09:50:33 +02:00
Jules Aguillon
5562ee1391 Fix mismatch layout name
The Korean layout id was not consistent and this caused a crash.
2022-04-06 09:50:33 +02:00
Jules Aguillon
120c0a9d23 Fix compat with older version of Android
Resources.getFloat is new from API 29.
2022-04-06 09:50:33 +02:00
Jules Aguillon
aaff8689e3 Release 1.14.0 (19) 2022-04-03 20:59:42 +02:00
Jules Aguillon
2b348b7a31 Revert "Swap Ctrl and switch_numeric keys"
This reverts commit b85b67c2f0.

The Ctrl key was too hard to use in the new position, especially in
combination with arrows or backspace.

Leave the switching key in the numeric layout however, where the Ctrl
key is not very useful. Put Ctrl on the top-right because bottom-right
is where the switching key is in the other layouts.
2022-04-03 20:27:25 +02:00
Jules Aguillon
19289bec27 Update screenshots
Many things changed since: new keys, better font, sizes and colors
changed, keys moved.
2022-04-03 18:09:23 +02:00
Jules Aguillon
aa78229b2a Add the Programming Layout option
Allow specifying a layout for programming and add a key for switching to
it easily.

The switching key is placed on the top edge of the space bar.

The option has no effect by default because the ergonomic isn't ideal,
it needs to be enabled explicitly.
Users of Latin-script languages certainly prefer to use one layout (for
programming or not). This feature might be removed in favor of a better
language-switching mechanisms in the future.
2022-04-03 17:15:12 +02:00
Jules Aguillon
d62e7647e0 Move keys away from the edges of the screen
These keys are harder to hit as the finger might exit the screen before
traveling enough to hit a corner. It might be particularly harder for
people that use a phone case.

Every layouts are changed, the notable changes are:

- The Escape key is in the bottom-right corner of the first key.
  This position looks weird at first but is a lot easier to type.

- The 0 key is on the top-left of the last key on the first row.
  It is not like the other digits.

- The Tab key is on the top-right. This might be hard to re-learn.

- Some layouts had more changes to accomodate these new positions.

Co-authored-by: Raphael <rapha.a.r@gmail.com>
2022-04-03 13:30:24 +02:00
Jules Aguillon
9411f59ed5 Rename the Meta key
The symbol isn't clear enough.
2022-04-03 12:49:14 +02:00
Jules Aguillon
b85b67c2f0 Swap Ctrl and switch_numeric keys
The switch_numeric key is generally more important, especially in the
numeric pane.
2022-04-03 12:48:29 +02:00
Jules Aguillon
695f5b4371 Swap Fn and Alt
Fn is increasingly more important while Alt is generally not.
2022-04-03 12:42:50 +02:00
Raphael
b995da9985 Update Space Glyph
Revert to previous version, the original google material icon,
which is not rounded, and it looks better with the rest of the keyboard,
also more correct to represent the open box unicode space char,
instead of a smile
2022-04-02 17:36:10 +02:00
Jules Aguillon
5f47beb5b0 Add currency symbols under the Fn key
Fn+e = €
Fn+l = £
Fn+r = ₹
Fn+y = ¥
Fn+c = ¢
Fn+p = ₱
2022-04-02 16:56:40 +02:00
Raphael
2dda39f453 Arrows and Box system (#114)
* Add `Arrows` and `Box` accent system
2022-04-02 16:42:40 +02:00
nickid
fbf8901bdb Add Korean layout (#115)
* Add Korean layout
2022-04-02 16:33:32 +02:00
Raphael
723c7e9aec Upgrade CI workflow (#111)
* Cache dependencies on CI workflow

* Use available fontforge version for CI action
Avoid a dirty OS upgrade to get a newer version of FontForge,
use what is available at Ubuntu 20.04

* Upgrade CI Workflow
By using an appimage of FontForge, it's easier to install the latest version, to cache it, and there is no extra dependencies clashes with  Ubuntu 20.04

* Make paths for fontforge absolute in makefile
It's necessary because fontforge is an AppImage and requires it

* Improve cache step on CI

wget don't download a duplicate if file already exists

* Generate base64 ascii encoded debug keystore

That can be used to transfer the keystore to a Github Secret

* Restore debug.keystore from github secrets

Get the asc encoded keystore from github secrets, 
and decode it back to a bynary file inside the CI run.

* Cleanup redundant lines and add explanation comment

* runs-on  ubuntu-latest

Co-authored-by: Jules Aguillon <jules@j3s.fr>

* add *.keystore.asc to .gitignore

* Clean up lines, adjust documentation

* use CURDIR automatic makefile variable

Co-authored-by: Jules Aguillon <jules@j3s.fr>
2022-04-02 16:33:12 +02:00
Jules Aguillon
2b6c2b98e0 Compute the swipe distance from the physical dpi
The previous computation was very different depending on the device's
screen and accessibility options.
Given that the keyboard is supposed to fill all the space in one
dimension, the dpi unit makes little sense.

The formula doesn't mean anything in particular, it takes into account
both dimensions (x and y) and should be close to the dpi in the
diagonals (which is the direction of swipe).

This changes the actual value, on a 1920x1080 480dpi screen, the value
is increased by 20%.
2022-04-02 16:16:24 +02:00
ArenaL5
281f779121 µ, æ and œ also generated by Fn 2022-03-31 19:05:40 +02:00
ArenaL5
6b3123090c Add arrows
Add simple arrows to the numeric keypad. Using the Fn key with these arrows will
output double arrows.
2022-03-31 19:05:40 +02:00
ArenaL5
363a65223c Add non-breaking space as Fn+Space 2022-03-31 19:05:40 +02:00
ArenaL5
4355225646 Add extra symbols to Fn
Also removed almost all combinations of diacritics and symbols to create extra
symbols.
2022-03-31 19:05:40 +02:00
ArenaL5
21c76b5b41 Add interpunct and move Tab in Spanish keyboard
Added the middle dot (·) to the Spanish keyboard, in order to be able to type
Catalan words and names. Catalan is spoken in Eastern Spain, and the middle top
is therefore included in standard PC Spanish keyboards.

Also changed the Tab key to an upwards-leftwards swipe, as to follow more closely
the programmer's layout qwerty.xml
2022-03-31 19:05:40 +02:00
Jules Aguillon
ed2dea9630 CI: Install fontforge with Nix
And cache the nix store.
2022-03-27 16:26:58 +02:00
Jules Aguillon
67487d0ef0 Fix CI since recent font changes
Requires the latest version of fontforge.
Re-order the steps to improve caching.
2022-03-25 00:51:11 +01:00
Michael Levi
611f2c8111 More reliable CI without Nix 2022-03-25 00:16:40 +01:00
Jules Aguillon
6db57500ee Add glyphs for Tab, Backspace and Delete
Tab is from IcoMoon. Backspace and Delete are from materialdesignicons.
2022-03-25 00:12:41 +01:00
Jules Aguillon
1b6deb7fed Improve glyphs for accents
The accents are taken from the Roboto Regular font (Apache 2.0), added
the dotted circle and exported with FontForge.

The argument to FontForge's Import function are changed, the fifth
argument controls the accuracy and needed to be lowered otherwise the
grave accent wouldn't be rendered at all.
2022-03-24 23:55:20 +01:00
Raphael
94751bae3e Update Home and End glyphs
Revert them to previous version, but now using SVG icons
instead of a ttf font file
2022-03-24 18:54:41 +01:00
Jules Aguillon
0fb7150a06 Revert to the previous CI
The new CI script doesn't work on forks.

This reverts commit f3aa218de4.
This reverts commit 3373c59b90.
2022-03-24 18:43:09 +01:00
Jules Aguillon
f3aa218de4 Improve CI script
Upgrade nixbuild-action to put back spaces in the workflow name.
Improve the script for retrieving the result, thanks to @rickynils.
2022-03-23 16:27:07 +01:00
nickid
c093b45c96 Korean translations 2022-03-23 15:47:14 +01:00
Jules Aguillon
3373c59b90 CI: Use nixbuild.net
The build takes place on the remote, which takes advantage of Nix's
caching.
The previous workflow used a remote cache but in order to build locally,
all the dependencies needed to be downloaded from the cache everytime.
The dependencies are 462M, downloading took most of the time.
2022-03-23 13:02:38 +01:00
six-6
0d1ddcce3f Translate into Chinese-Simplified 2022-03-21 00:44:57 +01:00
ArenaL5
f736a169a4 Update Spanish translation
and fix a couple typos
2022-03-21 00:39:40 +01:00
ArenaL5
743f6cbc91 Add dead macron to Spanish layout
This is only to make this layout more similar to the default English layout.
Macrons are not actually used in any language spoken in Spain, but they
appear to be used in some varieties of Nahuatl?

Also added C-cedilla to the N-tilde key. Even if both C-cedilla and N-tilde
are redundant in this keyboard, both letters are a staple of Spain keyboards,
and Spaniards are used to have a dedicated key for C-cedilla in PC keyboards.
2022-03-21 00:39:40 +01:00
ArenaL5
47f9043096 Correct displayed value when cancelling settings modification
When changing any numeric setting and cancelling this change, the change would not
be persisted, but the summary in the setting screen would show the last position
of the slider instead of the correct unchanged value.

This commit fixes this on the most simple way by resetting the slider position to
the persisted value.
2022-03-21 00:39:40 +01:00
ArenaL5
a516246e52 Increase vibration maximum from 50 ms to 100 ms 2022-03-21 00:39:40 +01:00
Jules Aguillon
ba6d62dee2 Add F11 and F12
These keys are shown only when Fn is activated, "placeholder" keys are
placed in the layouts.
2022-03-19 16:27:57 +01:00
Jules Aguillon
e872c58788 Allow modifiers to hide keys
Modifiers can temporarily remove a key from the layout by returning
'null'.
Make sure pointer handling code handle these modified keys gracefully
and doesn't trigger a key event and a vibration for the removed key.
2022-03-19 15:39:20 +01:00
Jules Aguillon
57c6208b50 Add glyphs for accent keys
The "dotted circle" character combined with the accent was badly
rendered on many devices.
2022-03-18 17:31:23 +01:00
Jules Aguillon
d733f8c78c Build all special glyphs from SVG
Recover the provenance of each glyphs and remove the base_font.ttf file.
2022-03-18 12:55:08 +01:00
Jules Aguillon
e63ff8f837 Stateless build of the special font file
Keep the glyphs in SVG format and build the font using a FontForge
script.
A part of the previous font is kept because the sources is lost.

This adds a new dependency to the build system, fontforge.
2022-03-17 20:23:28 +01:00
Jules Aguillon
fe35d5fd5a Avoid ghost touches while holding modulated keys
On some devices, bogus touch events can be sent while holding a key.
With modulated keys, it can happens on top of other keys.
Ignore every new pointers when a modulated key is pressed.
2022-03-17 11:24:33 +01:00
Jules Aguillon
2eb615dbf6 Show the switching key if there's several languages
Ensure the switching key is shown when there's several subtypes enabled,
even if Android says not to show it.
2022-03-16 13:09:10 +01:00
igorSilCar
2dae2105b2 Brazilian portuguese layout (#91)
* Providing a comprehensible Brazilian Portuguese keyboard layout

removed cedille as it is already provided by an independent key;
changed layout to correspond to the locale
2022-03-15 21:05:16 +01:00
Jules Aguillon
d53ee811d9 Handle CANCEL touch events
Handling this event is part of the API but was never done. This caused
unstoppable key-repeat.

This event isn't common, the only way I found on Android 10 is to switch
to the emoji keyboard while holding a key. Some apps might cause this
event more often.
2022-03-15 20:44:02 +01:00
Jacob Strömgren
fadedfd58f Add Swedish layout 2022-03-15 18:42:29 +01:00
Jules Aguillon
f9cd4ca2d8 Log editor infos while debugging
Useful when debugging why the keyboard doesn't work as expected with a
specific app.
2022-03-15 18:42:29 +01:00
Jules Aguillon
9bb7c7e66f Identify debug version in app name
Using the --product option of aapt.

Remove the app name from translations because it is never translated. It
is still possible to translate it by specifying 'product="default"'.
2022-03-14 18:37:37 +01:00
Jules Aguillon
f4978f5266 Fix crash since 2ea256e 2022-03-13 00:45:16 +01:00
Jules Aguillon
a0d90496c1 Improve symbols for Sup, Sub and Ord 2022-03-13 00:43:11 +01:00
Jules Aguillon
7aa241b10a Make superscript and subscript modifiers lockable 2022-03-13 00:40:39 +01:00
Jules Aguillon
a57bdf8cfb Avoid showing some symbols twice in Fn mode 2022-03-13 00:35:15 +01:00
Jules Aguillon
ee6e892ef4 Define localized keys as a set instead of flags
Using flags for removing keys like € and ß need too many flags and won't
scale to more localized keys.
2022-03-13 00:14:18 +01:00
Jules Aguillon
2ea256e769 Fix inconsistent highlighting of lockable keys
Pointers.getKeyFlags might receive a different KeyValue than what's
stored in the pointer due to caching. Compare names instead.
2022-03-12 21:38:47 +01:00
igorSilCar
5665d6a7c5 Brazilian portuguese translations (#100)
* Translations for new setting, lockable modifier keys

Co-authored-by: Igor da Silva de Carvalho <igu@coiso.meanhouse>
2022-03-09 10:49:13 +01:00
Jules Aguillon
534e4cb843 Make the font smaller for the action key 2022-03-06 19:36:09 +01:00
Jules Aguillon
e303008e66 Fix action key not updating when switching field
The keyboard was updated before the action key is.
2022-03-05 20:21:37 +01:00
Raphael
5404e7432d Clicking twice on CTRL or ALT will lock them in 'ON' state (#72)
* Clicking twice on CTRL or ALT will lock them in 'ON' state

* Make Locking behaviour optional, configurable in preferences

* Nest the new settings into a different page

To avoid spamming the settings page and repetition in the summaries.
Cannot be a popup unfortunately because that would require API >= 11.

* Add Fn and Meta

Co-authored-by: Jules Aguillon <jules@j3s.fr>
2022-03-05 20:17:45 +01:00
Jules Aguillon
e92504ae92 Improve the code for dynamic updates of the layout 2022-03-05 19:22:01 +01:00
igorSilCar
4964bfb87f Brazilian portuguese translations (#87)
* Added brazilian portuguese translations for app description and settings

* making the swiping option more intelligible

* fix typo on full_description pt-BR translation

Co-authored-by: Igor da Silva de Carvalho <igu@coiso.meanhouse>
2022-03-05 17:33:04 +01:00
179 changed files with 6373 additions and 2242 deletions

View File

@@ -0,0 +1,16 @@
name: Check translations
on:
workflow_dispatch:
push:
pull_request:
jobs:
check-translations:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- run: python3 sync_translations.py
- name: Check that strings files are uptodate, run python3 sync_translations.py otherwise
run: git diff --exit-code

View File

@@ -9,28 +9,39 @@ jobs:
Build-Apk: Build-Apk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install nix - uses: actions/setup-java@v3
uses: cachix/install-nix-action@v15
with: with:
nix_path: nixpkgs=channel:nixos-unstable distribution: 'zulu' # See 'Supported distributions' for available options
- uses: cachix/cachix-action@v10 java-version: '11'
with: - name: Checkout repo
name: julow uses: actions/checkout@v3
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Checkout Repo
uses: actions/checkout@v2
- name: Cache debug certificate - name: Cache debug certificate
uses: actions/cache@v2 uses: actions/cache@v3
with: with:
path: _build/debug.keystore path: _build/debug.keystore
key: debug-keystore key: debug-keystore
- name: Run nix-shell and Make - name: Restore debug keystore from github Secrets
uses: ZenithalHourlyRate/nix-shell-action@v4 run: |
with: mkdir -p _build
file: shell.nix cd "_build"
script: make # Check if exist and use the secret named DEBUG_KEYSTORE
# The contents of the secret can be obtained -
# from the debug.keystore.asc from you local _build folder
if [[ ! "${{ secrets.DEBUG_KEYSTORE }}" = "" ]]; then
echo "${{ secrets.DEBUG_KEYSTORE }}" > "debug.keystore.asc"
if [[ -s "debug.keystore.asc" ]]; then
gpg -d --passphrase "debug0" --batch "debug.keystore.asc" > "debug.keystore"
fi
fi
- name: Build
run: make
- name: Artifact naming
run: |
artifact="${{github.repository_owner}} ${{github.ref_name}}"
artifact="${artifact//\//-}" # replace slashes
echo "artifact=${artifact}" >> $GITHUB_ENV
- name: Save debug apk - name: Save debug apk
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: debug apk name: "${{env.artifact}} debug_apk"
path: _build/*.apk path: _build/*.apk

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
*.keystore *.keystore
*.keystore.asc
_build _build
/*-keystore.conf /*-keystore.conf

View File

@@ -1,18 +1,25 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="juloo.keyboard2" android:versionCode="18" android:versionName="1.13.1" android:hardwareAccelerated="false"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="juloo.keyboard2" android:versionCode="33" android:versionName="1.22.0" android:hardwareAccelerated="false">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="30"/> <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="33"/>
<application android:label="@string/app_name" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:hardwareAccelerated="false"> <application android:label="@string/app_name" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:hardwareAccelerated="false">
<service android:name="juloo.keyboard2.Keyboard2" android:label="@string/app_name" android:permission="android.permission.BIND_INPUT_METHOD"> <service android:name="juloo.keyboard2.Keyboard2" android:label="@string/app_name" android:permission="android.permission.BIND_INPUT_METHOD" android:exported="true" android:directBootAware="true">
<intent-filter> <intent-filter>
<action android:name="android.view.InputMethod"/> <action android:name="android.view.InputMethod"/>
</intent-filter> </intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method"/> <meta-data android:name="android.view.im" android:resource="@xml/method"/>
</service> </service>
<activity android:name="juloo.keyboard2.SettingsActivity" android:icon="@drawable/ic_launcher" android:label="@string/settings_activity_label" android:theme="@style/android:Theme.Material"> <activity android:name="juloo.keyboard2.SettingsActivity" android:icon="@drawable/ic_launcher" android:label="@string/settings_activity_label" android:theme="@style/android:Theme.DeviceDefault" android:exported="true" android:directBootAware="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="juloo.keyboard2.LauncherActivity" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/android:Theme.DeviceDefault" android:exported="true" android:directBootAware="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application> </application>
<uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
</manifest> </manifest>

View File

@@ -12,7 +12,8 @@ Fortunately, there's not many dependencies:
- Android SDK: build tools (minimum `28.0.1`), platform `30` - Android SDK: build tools (minimum `28.0.1`), platform `30`
- Make sure to have the `$ANDROID_HOME` environment variable set. - Make sure to have the `$ANDROID_HOME` environment variable set.
For Nix users, there's a `shell.nix` for setting-up the right environment. For Nix users, the right environment can be obtained with `nix-shell ./shell.nix`.
Instructions to install Nix are [here](https://nixos.wiki/wiki/Nix_Installation_Guide).
Building the debug apk: Building the debug apk:
@@ -20,8 +21,25 @@ Building the debug apk:
make make
``` ```
If the build succeed, the debug apk is located in If the build succeed, the debug apk is located in `_build/juloo.keyboard2.debug.apk`.
`_build/juloo.keyboard2.debug.apk`.
## Using the local debug.keystore on the Github CI actions
It's possible to save the local debug.keystore into a github secret, so the same keystore is utilized to build the debug apk in the CI github actions.
Doing this, they wil have the same signature, thus the debug apk can be updated without having to uninstall it first.
After you sucessfully run `make`, (thus a debug.keystore exists) you can use this second command to generate a base64 stringified version of it
```sh
cd _build
gpg -c --armor --pinentry-mode loopback --passphrase debug0 --yes "debug.keystore"
```
A file will be generated inside the local `_build/` folder, called `debug.keystore.asc`
You can copy the content of this file, and with that, paste it into a new github secret in your repo settings.
The secret must be named `DEBUG_KEYSTORE`
## Debugging on your phone ## Debugging on your phone
@@ -60,26 +78,59 @@ make installd
## Guidelines ## Guidelines
### Add a localized layout ### Adding a layout
Localized layouts (a layout specific to a language) are generally accepted. Layouts are defined in XML, see `res/xml/qwerty.xml`.
An entry must be added to the layout option in `res/values/arrays.xml`, to both
`pref_layout_values` (correspond to the file name) and `pref_layout_entries`
(display name).
The layout must also be referenced in `srcs/juloo.keyboard2/Config.java` in
`layoutId_of_string`.
#### Adding a programming layout
A programming layout must contains every ASCII characters.
The current programming layouts are: QWERTY, Dvorak and Colemak.
Keys with a name starting in `loc ` are hidden unless they are configured for
the user's installed languages in `res/xml/method.xml`. These keys are optional
and will be added automatically when necessary.
Some users cannot easily type the characters close the the edges of the screen
due to a bulky phone case. It is best to avoid placing important characters
there (such as the digits or punctuation).
#### Adding a localized layout
Localized layouts (a layout specific to a language) are gladly accepted.
See for example: 4333575 (Bulgarian), 88e2175 (Latvian), 133b6ec (German). See for example: 4333575 (Bulgarian), 88e2175 (Latvian), 133b6ec (German).
This keyboard is intended for programmers. If your language uses the Latin script, make sure it is possible to type every letters on the QWERTY keyboard. They don't need to contain every ASCII characters (although it's useful in
This is generally done using dead-keys, for example: 0bf7ff5 (Latvian), 573c13f (Swedish). passwords) and dead-keys.
It is also possible to add some characters that are hidden in other languages, for example 93e84ba (ß), though the space is limited.
### Add a programming layout ### Adding support for a language
A programming layout must contains every ASCII characters as well as every dead-keys. Supported locales are defined in `res/xml/method.xml`.
Currently, the only example is QWERTY.
The attributes `languageTag` and `imeSubtypeLocale` define a locale, the
attribute `imeSubtypeExtraValue` defines the default layout and the dead-keys
and other extra keys to show.
### Translations ### Translations
Translations are always welcome ! See for example: 1723288 (Latvian), baf867a (French). Translations are always welcome !
The app can be translated by writing `res/values-<language code>/strings.xml` (for example `values-fr`, `values-lv`), based on the default: `res/values/strings.xml` (English).
The store description is found in `metadata/android/<locale>/`, `short_description.txt` and `full_description.txt`. See for example: 1723288 (Latvian), baf867a (French).
The full description changes very infrequently (it was changed once in 6 years). But if it changes too much, outdated translation might be removed. The app can be translated by writing `res/values-<language code>/strings.xml`
(for example `values-fr`, `values-lv`), based on the default:
`res/values/strings.xml` (English).
Translating changelogs is not useful because they evolve too fast. Changelogs are generally written entirely just before a release, translating them would delay releases too much. Old changelogs are not shown to anyone currently. The store description is found in `metadata/android/<locale>/`,
`short_description.txt` and `full_description.txt`.
Translating changelogs is not useful. Changelogs are written quickly just
before a release and older ones are never shown to anyone currently.
The app name might be partially translated, the "unexpected" word should remain
untranslated.

View File

@@ -6,7 +6,6 @@ ANDROID_PLATFORM_VERSION = android-30
JAVA_VERSION = 1.7 JAVA_VERSION = 1.7
SRC_DIR = srcs SRC_DIR = srcs
ASSETS_DIR = assets
RES_DIR = res RES_DIR = res
EXTRA_JARS = EXTRA_JARS =
@@ -17,9 +16,16 @@ debug: _build/$(PACKAGE_NAME).debug.apk
release: _build/$(PACKAGE_NAME).apk release: _build/$(PACKAGE_NAME).apk
installd: _build/$(PACKAGE_NAME).debug.apk installd: _build/$(PACKAGE_NAME).debug.apk
adb install "$<" adb install -r "$<"
.PHONY: release debug installd clean:
rm -rf _build/*.dex _build/class _build/gen _build/*.apk _build/*.unsigned-apk \
_build/*.idsig _build/assets
rebuild_special_font:
cd srcs/special_font && fontforge -lang=ff -script build.pe *.svg
.PHONY: release debug installd clean rebuild_special_font
$(shell mkdir -p _build) $(shell mkdir -p _build)
@@ -42,7 +48,6 @@ JAVAC_FLAGS = -source $(JAVA_VERSION) -target $(JAVA_VERSION) -encoding utf8
MANIFEST_FILE = AndroidManifest.xml MANIFEST_FILE = AndroidManifest.xml
JAVA_FILES = $(shell find $(SRC_DIR) -name '*.java') JAVA_FILES = $(shell find $(SRC_DIR) -name '*.java')
RES_FILES = $(shell find $(RES_DIR) -type f) RES_FILES = $(shell find $(RES_DIR) -type f)
ASSETS_FILES = $(shell find $(ASSETS_DIR) -type f 2>/dev/null)
# Debug signing # Debug signing
@@ -60,7 +65,7 @@ _build/%.debug.apk: _build/%.debug.unsigned-apk $(DEBUG_KEYSTORE)
# Debug apk # Debug apk
_build/$(PACKAGE_NAME).debug.unsigned-apk: AAPT_PACKAGE_FLAGS+=--rename-manifest-package $(PACKAGE_NAME).debug _build/$(PACKAGE_NAME).debug.unsigned-apk: AAPT_PACKAGE_FLAGS+=--rename-manifest-package $(PACKAGE_NAME).debug --product debug
# Release signing # Release signing
@@ -76,11 +81,17 @@ _build/%.apk: _build/%.unsigned-apk %-keystore.conf
_build/%.unsigned-apk: _build/%.unaligned-apk _build/%.unsigned-apk: _build/%.unaligned-apk
$(ANDROID_BUILD_TOOLS)/zipalign -fp 4 "$<" "$@" $(ANDROID_BUILD_TOOLS)/zipalign -fp 4 "$<" "$@"
_build/%.unaligned-apk: _build/classes.dex $(MANIFEST_FILE) $(ASSETS_FILES) APK_EXTRA_FILES = classes.dex assets/special_font.ttf
_build/%.unaligned-apk: $(addprefix _build/,$(APK_EXTRA_FILES)) $(MANIFEST_FILE)
$(ANDROID_BUILD_TOOLS)/aapt package -f -M $(MANIFEST_FILE) -S $(RES_DIR) \ $(ANDROID_BUILD_TOOLS)/aapt package -f -M $(MANIFEST_FILE) -S $(RES_DIR) \
-I $(ANDROID_PLATFORM)/android.jar -F "$@" $(AAPT_PACKAGE_FLAGS) -I $(ANDROID_PLATFORM)/android.jar -F "$@" $(AAPT_PACKAGE_FLAGS)
[ -z "$(ASSETS_FILES)" ] || $(ANDROID_BUILD_TOOLS)/aapt add "$@" $(ASSETS_FILES) cd $(@D) && $(ANDROID_BUILD_TOOLS)/aapt add $(@F) $(APK_EXTRA_FILES)
cd $(@D) && $(ANDROID_BUILD_TOOLS)/aapt add $(@F) classes.dex
# Copy the special font file into _build because aapt requires relative paths
_build/assets/special_font.ttf: srcs/special_font/result.ttf
mkdir -p $(@D)
cp "$<" "$@"
# R.java # R.java

View File

@@ -1,24 +1,23 @@
# Unexpected Keyboard # Unexpected Keyboard
A lightweight virtual keyboard for developers. A lightweight virtual keyboard for developers.
| <img src="/metadata/android/en-US/images/phoneScreenshots/1.png" alt="Screenshot-1" /> | <img src="/metadata/android/en-US/images/phoneScreenshots/2.png" alt="Screenshot-2"/> | <img src="/metadata/android/en-US/images/phoneScreenshots/3.png" alt="Screenshot-3"/> |
| --- | --- | --- |
| <img src="/metadata/android/en-US/images/phoneScreenshots/4.png" alt="Screenshot-4" /> | <img src="/metadata/android/en-US/images/phoneScreenshots/5.png" alt="Screenshot-5" /> | <img src="/metadata/android/en-US/images/phoneScreenshots/6.png" alt="Screenshot-6" /> |
![Unexpected Keyboard](metadata/android/en-US/images/featureGraphic.png) The main feature is easy typing of more characters by swiping the keys toward the corners.
This app is a virtual keyboard for Android. The main features are easy typing of every ASCII character using the swipe gesture, dead keys for accents and modifier keys and the presence of special keys (tab, esc, arrows, etc..).
The keyboard shows up to 4 extra characters in the corners of each key. These extra characters are hit by swiping the finger on the key.
Highlight of some of the features: Highlight of some of the features:
- Every character and special keys that are also available on a PC keyboard. This is perfect for using applications like Termux. - Every character and special keys of a PC keyboard. This is perfect for using applications like Termux.
- This includes Tab, Esc, the arrows and function keys, but also Ctrl and Alt ! - This includes Tab, Esc, the arrows and function keys, but also Ctrl and Alt.
- Accented keys are accessible using dead keys. First activate the accent, then type the accented letter. - Accented keys are accessible using dead keys. First activate the accent, then type the accented letter.
- Very light and fast. Use 500x times less space than Google's keyboard and 15x times less than the default keyboard. No ad, no tracking. - Very light and fast. Use 500x times less space than Google's keyboard and 15x times less than the default keyboard. No ad, no tracking.
- Multiple layouts: QWERTY, QWERTZ, AZERTY. Themes: White, Dark, OLED Black. And many other options. - Personalizable with many options, layouts and themes.
Like any other virtual keyboards, it must be enabled in the system settings. Open the System Settings and go to: Like any other virtual keyboards, it must be enabled in the system settings. Open the System Settings and go to:
System > Languages & input > On-screen keyboard > Manage on-screen keyboards. System > Languages & input > On-screen keyboard > Manage on-screen keyboards.

View File

@@ -1,15 +0,0 @@
# Fonts
The glyphs from this font are made by:
- Home and End
Author: @sdrapha
- Cog
Copyright (C) 2016 by Dave Gandy
Author: Dave Gandy
License: SIL ()
- Emoticon, PageUp and PageDown
IcoMoon-Free is a free vector icon pack by Keyamoon.
License: Attribution 4.0 International (CC BY 4.0)

Binary file not shown.

View File

@@ -1,908 +0,0 @@
from enum import Enum
import sys
class Line(Enum):
IGNORE = 0
GROUP = 1
ENTRY = 2
def parse_line(line):
if line.startswith("# group:"):
return (Line.GROUP, line.split(":")[1].strip())
else:
lr = line.split("#", 1)
if lr[0] == "" or len(lr) != 2:
return (Line.IGNORE, line)
else:
code, status = lr[0].split(";", 1)
desc = lr[1].strip().split(" ", 2)[2]
return (Line.ENTRY, (code.strip(), status.strip(), desc))
def parse_lines(inp):
entries = {}
group = "none"
for line in inp:
tok, k = parse_line(line)
if tok == Line.GROUP:
group = k
elif tok == Line.ENTRY:
entries.setdefault(group, []).append(k)
return entries
name_map = {
"1F44D": ":+1:",
"1F44E": ":-1:",
"1F4AF": ":100:",
"1F522": ":1234:",
"1F3B1": ":8ball:",
"1F170": ":a:",
"1F18E": ":ab:",
"1F524": ":abc:",
"1F521": ":abcd:",
"1F251": ":accept:",
"1F6A1": ":aerial_tramway:",
"02708": ":airplane:",
"023F0": ":alarm_clock:",
"1F47D": ":alien:",
"1F691": ":ambulance:",
"02693": ":anchor:",
"1F47C": ":angel:",
"1F4A2": ":anger:",
"1F620": ":angry:",
"1F627": ":anguished:",
"1F41C": ":ant:",
"1F34E": ":apple:",
"02652": ":aquarius:",
"02648": ":aries:",
"025C0": ":arrow_backward:",
"023EC": ":arrow_double_down:",
"023EB": ":arrow_double_up:",
"02B07": ":arrow_down:",
"1F53D": ":arrow_down_small:",
"025B6": ":arrow_forward:",
"02935": ":arrow_heading_down:",
"02934": ":arrow_heading_up:",
"02B05": ":arrow_left:",
"02199": ":arrow_lower_left:",
"02198": ":arrow_lower_right:",
"027A1": ":arrow_right:",
"021AA": ":arrow_right_hook:",
"02B06": ":arrow_up:",
"02195": ":arrow_up_down:",
"1F53C": ":arrow_up_small:",
"02196": ":arrow_upper_left:",
"02197": ":arrow_upper_right:",
"1F503": ":arrows_clockwise:",
"1F504": ":arrows_counterclockwise:",
"1F3A8": ":art:",
"1F69B": ":articulated_lorry:",
"1F632": ":astonished:",
"1F45F": ":athletic_shoe:",
"1F3E7": ":atm:",
"1F171": ":b:",
"1F476": ":baby:",
"1F37C": ":baby_bottle:",
"1F424": ":baby_chick:",
"1F6BC": ":baby_symbol:",
"1F519": ":back:",
"1F6C4": ":baggage_claim:",
"1F388": ":balloon:",
"02611": ":ballot_box_with_check:",
"1F38D": ":bamboo:",
"1F34C": ":banana:",
"0203C": ":bangbang:",
"1F3E6": ":bank:",
"1F4CA": ":bar_chart:",
"1F488": ":barber:",
"026BE": ":baseball:",
"1F3C0": ":basketball:",
"1F6C0": ":bath:",
"1F6C1": ":bathtub:",
"1F50B": ":battery:",
"1F43B": ":bear:",
"1F41D": ":bee:",
"1F37A": ":beer:",
"1F37B": ":beers:",
"1F41E": ":beetle:",
"1F530": ":beginner:",
"1F514": ":bell:",
"1F371": ":bento:",
"1F6B4": ":bicyclist:",
"1F6B2": ":bike:",
"1F459": ":bikini:",
"1F426": ":bird:",
"1F382": ":birthday:",
"026AB": ":black_circle:",
"1F0CF": ":black_joker:",
"02B1B": ":black_large_square:",
"025FE": ":black_medium_small_square:",
"025FC": ":black_medium_square:",
"02712": ":black_nib:",
"025AA": ":black_small_square:",
"1F532": ":black_square_button:",
"1F33C": ":blossom:",
"1F421": ":blowfish:",
"1F4D8": ":blue_book:",
"1F699": ":blue_car:",
"1F499": ":blue_heart:",
"1F60A": ":blush:",
"1F417": ":boar:",
"026F5": ":boat:",
"1F4A3": ":bomb:",
"1F4D6": ":book:",
"1F516": ":bookmark:",
"1F4D1": ":bookmark_tabs:",
"1F4DA": ":books:",
"1F4A5": ":boom:",
"1F462": ":boot:",
"1F490": ":bouquet:",
"1F647": ":bow:",
"1F3B3": ":bowling:",
"1F466": ":boy:",
"1F35E": ":bread:",
"1F470": ":bride_with_veil:",
"1F309": ":bridge_at_night:",
"1F4BC": ":briefcase:",
"1F494": ":broken_heart:",
"1F41B": ":bug:",
"1F4A1": ":bulb:",
"1F685": ":bullettrain_front:",
"1F684": ":bullettrain_side:",
"1F68C": ":bus:",
"1F68F": ":busstop:",
"1F464": ":bust_in_silhouette:",
"1F465": ":busts_in_silhouette:",
"1F335": ":cactus:",
"1F370": ":cake:",
"1F4C6": ":calendar:",
"1F4F2": ":calling:",
"1F42B": ":camel:",
"1F4F7": ":camera:",
"0264B": ":cancer:",
"1F36C": ":candy:",
"1F520": ":capital_abcd:",
"02651": ":capricorn:",
"1F697": ":car:",
"1F4C7": ":card_index:",
"1F3A0": ":carousel_horse:",
"1F431": ":cat:",
"1F408": ":cat2:",
"1F4BF": ":cd:",
"1F4B9": ":chart:",
"1F4C9": ":chart_with_downwards_trend:",
"1F4C8": ":chart_with_upwards_trend:",
"1F3C1": ":checkered_flag:",
"1F352": ":cherries:",
"1F338": ":cherry_blossom:",
"1F330": ":chestnut:",
"1F414": ":chicken:",
"1F6B8": ":children_crossing:",
"1F36B": ":chocolate_bar:",
"1F384": ":christmas_tree:",
"026EA": ":church:",
"1F3A6": ":cinema:",
"1F3AA": ":circus_tent:",
"1F307": ":city_sunrise:",
"1F306": ":city_sunset:",
"1F191": ":cl:",
"1F44F": ":clap:",
"1F3AC": ":clapper:",
"1F4CB": ":clipboard:",
"1F550": ":clock1:",
"1F559": ":clock10:",
"1F565": ":clock1030:",
"1F55A": ":clock11:",
"1F566": ":clock1130:",
"1F55B": ":clock12:",
"1F567": ":clock1230:",
"1F55C": ":clock130:",
"1F551": ":clock2:",
"1F55D": ":clock230:",
"1F552": ":clock3:",
"1F55E": ":clock330:",
"1F553": ":clock4:",
"1F55F": ":clock430:",
"1F554": ":clock5:",
"1F560": ":clock530:",
"1F555": ":clock6:",
"1F561": ":clock630:",
"1F556": ":clock7:",
"1F562": ":clock730:",
"1F557": ":clock8:",
"1F563": ":clock830:",
"1F558": ":clock9:",
"1F564": ":clock930:",
"1F4D5": ":closed_book:",
"1F510": ":closed_lock_with_key:",
"1F302": ":closed_umbrella:",
"02601": ":cloud:",
"02663": ":clubs:",
"1F378": ":cocktail:",
"02615": ":coffee:",
"1F630": ":cold_sweat:",
"1F4A5": ":collision:",
"1F4BB": ":computer:",
"1F38A": ":confetti_ball:",
"1F616": ":confounded:",
"1F615": ":confused:",
"03297": ":congratulations:",
"1F6A7": ":construction:",
"1F477": ":construction_worker:",
"1F3EA": ":convenience_store:",
"1F36A": ":cookie:",
"1F192": ":cool:",
"1F46E": ":cop:",
"000A9": ":copyright:",
"1F33D": ":corn:",
"1F46B": ":couple:",
"1F491": ":couple_with_heart:",
"1F48F": ":couplekiss:",
"1F42E": ":cow:",
"1F404": ":cow2:",
"1F4B3": ":credit_card:",
"1F319": ":crescent_moon:",
"1F40A": ":crocodile:",
"1F38C": ":crossed_flags:",
"1F451": ":crown:",
"1F622": ":cry:",
"1F63F": ":crying_cat_face:",
"1F52E": ":crystal_ball:",
"1F498": ":cupid:",
"027B0": ":curly_loop:",
"1F4B1": ":currency_exchange:",
"1F35B": ":curry:",
"1F36E": ":custard:",
"1F6C3": ":customs:",
"1F300": ":cyclone:",
"1F483": ":dancer:",
"1F46F": ":dancers:",
"1F361": ":dango:",
"1F3AF": ":dart:",
"1F4A8": ":dash:",
"1F4C5": ":date:",
"1F333": ":deciduous_tree:",
"1F3EC": ":department_store:",
"1F4A0": ":diamond_shape_with_a_dot_inside:",
"02666": ":diamonds:",
"1F61E": ":disappointed:",
"1F625": ":disappointed_relieved:",
"1F4AB": ":dizzy:",
"1F635": ":dizzy_face:",
"1F6AF": ":do_not_litter:",
"1F436": ":dog:",
"1F415": ":dog2:",
"1F4B5": ":dollar:",
"1F38E": ":dolls:",
"1F42C": ":dolphin:",
"1F6AA": ":door:",
"1F369": ":doughnut:",
"1F409": ":dragon:",
"1F432": ":dragon_face:",
"1F457": ":dress:",
"1F42A": ":dromedary_camel:",
"1F4A7": ":droplet:",
"1F4C0": ":dvd:",
"1F4E7": ":e-mail:",
"1F442": ":ear:",
"1F33E": ":ear_of_rice:",
"1F30D": ":earth_africa:",
"1F30E": ":earth_americas:",
"1F30F": ":earth_asia:",
"1F373": ":egg:",
"1F346": ":eggplant:",
"02734": ":eight_pointed_black_star:",
"02733": ":eight_spoked_asterisk:",
"1F50C": ":electric_plug:",
"1F418": ":elephant:",
"02709": ":email:",
"1F51A": ":end:",
"02709": ":envelope:",
"1F4E9": ":envelope_with_arrow:",
"1F4B6": ":euro:",
"1F3F0": ":european_castle:",
"1F3E4": ":european_post_office:",
"1F332": ":evergreen_tree:",
"02757": ":exclamation:",
"1F611": ":expressionless:",
"1F453": ":eyeglasses:",
"1F440": ":eyes:",
"1F44A": ":facepunch:",
"1F3ED": ":factory:",
"1F342": ":fallen_leaf:",
"1F46A": ":family:",
"023E9": ":fast_forward:",
"1F4E0": ":fax:",
"1F628": ":fearful:",
"1F43E": ":feet:",
"1F3A1": ":ferris_wheel:",
"1F4C1": ":file_folder:",
"1F525": ":fire:",
"1F692": ":fire_engine:",
"1F386": ":fireworks:",
"1F313": ":first_quarter_moon:",
"1F31B": ":first_quarter_moon_with_face:",
"1F41F": ":fish:",
"1F365": ":fish_cake:",
"1F3A3": ":fishing_pole_and_fish:",
"0270A": ":fist:",
"1F38F": ":flags:",
"1F526": ":flashlight:",
"1F42C": ":flipper:",
"1F4BE": ":floppy_disk:",
"1F3B4": ":flower_playing_cards:",
"1F633": ":flushed:",
"1F301": ":foggy:",
"1F3C8": ":football:",
"1F463": ":footprints:",
"1F374": ":fork_and_knife:",
"026F2": ":fountain:",
"1F340": ":four_leaf_clover:",
"1F193": ":free:",
"1F364": ":fried_shrimp:",
"1F35F": ":fries:",
"1F438": ":frog:",
"1F626": ":frowning:",
"026FD": ":fuelpump:",
"1F315": ":full_moon:",
"1F31D": ":full_moon_with_face:",
"1F3B2": ":game_die:",
"1F48E": ":gem:",
"0264A": ":gemini:",
"1F47B": ":ghost:",
"1F381": ":gift:",
"1F49D": ":gift_heart:",
"1F467": ":girl:",
"1F310": ":globe_with_meridians:",
"1F410": ":goat:",
"026F3": ":golf:",
"1F347": ":grapes:",
"1F34F": ":green_apple:",
"1F4D7": ":green_book:",
"1F49A": ":green_heart:",
"02755": ":grey_exclamation:",
"02754": ":grey_question:",
"1F62C": ":grimacing:",
"1F601": ":grin:",
"1F600": ":grinning:",
"1F482": ":guardsman:",
"1F3B8": ":guitar:",
"1F52B": ":gun:",
"1F487": ":haircut:",
"1F354": ":hamburger:",
"1F528": ":hammer:",
"1F439": ":hamster:",
"0270B": ":hand:",
"1F45C": ":handbag:",
"1F4A9": ":hankey:",
"1F425": ":hatched_chick:",
"1F423": ":hatching_chick:",
"1F3A7": ":headphones:",
"1F649": ":hear_no_evil:",
"02764": ":heart:",
"1F49F": ":heart_decoration:",
"1F60D": ":heart_eyes:",
"1F63B": ":heart_eyes_cat:",
"1F493": ":heartbeat:",
"1F497": ":heartpulse:",
"02665": ":hearts:",
"02714": ":heavy_check_mark:",
"02797": ":heavy_division_sign:",
"1F4B2": ":heavy_dollar_sign:",
"02757": ":heavy_exclamation_mark:",
"02796": ":heavy_minus_sign:",
"02716": ":heavy_multiplication_x:",
"02795": ":heavy_plus_sign:",
"1F681": ":helicopter:",
"1F33F": ":herb:",
"1F33A": ":hibiscus:",
"1F506": ":high_brightness:",
"1F460": ":high_heel:",
"1F52A": ":hocho:",
"1F36F": ":honey_pot:",
"1F41D": ":honeybee:",
"1F434": ":horse:",
"1F3C7": ":horse_racing:",
"1F3E5": ":hospital:",
"1F3E8": ":hotel:",
"02668": ":hotsprings:",
"0231B": ":hourglass:",
"023F3": ":hourglass_flowing_sand:",
"1F3E0": ":house:",
"1F3E1": ":house_with_garden:",
"1F62F": ":hushed:",
"1F368": ":ice_cream:",
"1F366": ":icecream:",
"1F194": ":id:",
"1F250": ":ideograph_advantage:",
"1F47F": ":imp:",
"1F4E5": ":inbox_tray:",
"1F4E8": ":incoming_envelope:",
"1F481": ":information_desk_person:",
"02139": ":information_source:",
"1F607": ":innocent:",
"02049": ":interrobang:",
"1F4F1": ":iphone:",
"1F3EE": ":izakaya_lantern:",
"1F383": ":jack_o_lantern:",
"1F5FE": ":japan:",
"1F3EF": ":japanese_castle:",
"1F47A": ":japanese_goblin:",
"1F479": ":japanese_ogre:",
"1F456": ":jeans:",
"1F602": ":joy:",
"1F639": ":joy_cat:",
"1F511": ":key:",
"1F51F": ":keycap_ten:",
"1F458": ":kimono:",
"1F48B": ":kiss:",
"1F617": ":kissing:",
"1F63D": ":kissing_cat:",
"1F61A": ":kissing_closed_eyes:",
"1F618": ":kissing_heart:",
"1F619": ":kissing_smiling_eyes:",
"1F428": ":koala:",
"1F201": ":koko:",
"1F3EE": ":lantern:",
"1F535": ":large_blue_circle:",
"1F537": ":large_blue_diamond:",
"1F536": ":large_orange_diamond:",
"1F317": ":last_quarter_moon:",
"1F31C": ":last_quarter_moon_with_face:",
"1F606": ":laughing:",
"1F343": ":leaves:",
"1F4D2": ":ledger:",
"1F6C5": ":left_luggage:",
"02194": ":left_right_arrow:",
"021A9": ":leftwards_arrow_with_hook:",
"1F34B": ":lemon:",
"0264C": ":leo:",
"1F406": ":leopard:",
"0264E": ":libra:",
"1F688": ":light_rail:",
"1F517": ":link:",
"1F444": ":lips:",
"1F484": ":lipstick:",
"1F512": ":lock:",
"1F50F": ":lock_with_ink_pen:",
"1F36D": ":lollipop:",
"027BF": ":loop:",
"1F4E2": ":loudspeaker:",
"1F3E9": ":love_hotel:",
"1F48C": ":love_letter:",
"1F505": ":low_brightness:",
"024C2": ":m:",
"1F50D": ":mag:",
"1F50E": ":mag_right:",
"1F004": ":mahjong:",
"1F4EB": ":mailbox:",
"1F4EA": ":mailbox_closed:",
"1F4EC": ":mailbox_with_mail:",
"1F4ED": ":mailbox_with_no_mail:",
"1F468": ":man:",
"1F472": ":man_with_gua_pi_mao:",
"1F473": ":man_with_turban:",
"1F45E": ":mans_shoe:",
"1F341": ":maple_leaf:",
"1F637": ":mask:",
"1F486": ":massage:",
"1F356": ":meat_on_bone:",
"1F4E3": ":mega:",
"1F348": ":melon:",
"1F4DD": ":memo:",
"1F6B9": ":mens:",
"1F687": ":metro:",
"1F3A4": ":microphone:",
"1F52C": ":microscope:",
"1F30C": ":milky_way:",
"1F690": ":minibus:",
"1F4BD": ":minidisc:",
"1F4F4": ":mobile_phone_off:",
"1F4B8": ":money_with_wings:",
"1F4B0": ":moneybag:",
"1F412": ":monkey:",
"1F435": ":monkey_face:",
"1F69D": ":monorail:",
"1F314": ":moon:",
"1F393": ":mortar_board:",
"1F5FB": ":mount_fuji:",
"1F6B5": ":mountain_bicyclist:",
"1F6A0": ":mountain_cableway:",
"1F69E": ":mountain_railway:",
"1F42D": ":mouse:",
"1F401": ":mouse2:",
"1F3A5": ":movie_camera:",
"1F5FF": ":moyai:",
"1F4AA": ":muscle:",
"1F344": ":mushroom:",
"1F3B9": ":musical_keyboard:",
"1F3B5": ":musical_note:",
"1F3BC": ":musical_score:",
"1F507": ":mute:",
"1F485": ":nail_care:",
"1F4DB": ":name_badge:",
"1F454": ":necktie:",
"0274E": ":negative_squared_cross_mark:",
"1F610": ":neutral_face:",
"1F195": ":new:",
"1F311": ":new_moon:",
"1F31A": ":new_moon_with_face:",
"1F4F0": ":newspaper:",
"1F196": ":ng:",
"1F515": ":no_bell:",
"1F6B3": ":no_bicycles:",
"026D4": ":no_entry:",
"1F6AB": ":no_entry_sign:",
"1F645": ":no_good:",
"1F4F5": ":no_mobile_phones:",
"1F636": ":no_mouth:",
"1F6B7": ":no_pedestrians:",
"1F6AD": ":no_smoking:",
"1F6B1": ":non-potable_water:",
"1F443": ":nose:",
"1F4D3": ":notebook:",
"1F4D4": ":notebook_with_decorative_cover:",
"1F3B6": ":notes:",
"1F529": ":nut_and_bolt:",
"02B55": ":o:",
"1F17E": ":o2:",
"1F30A": ":ocean:",
"1F419": ":octopus:",
"1F362": ":oden:",
"1F3E2": ":office:",
"1F197": ":ok:",
"1F44C": ":ok_hand:",
"1F646": ":ok_woman:",
"1F474": ":older_man:",
"1F475": ":older_woman:",
"1F51B": ":on:",
"1F698": ":oncoming_automobile:",
"1F68D": ":oncoming_bus:",
"1F694": ":oncoming_police_car:",
"1F696": ":oncoming_taxi:",
"1F4D6": ":open_book:",
"1F4C2": ":open_file_folder:",
"1F450": ":open_hands:",
"1F62E": ":open_mouth:",
"026CE": ":ophiuchus:",
"1F4D9": ":orange_book:",
"1F4E4": ":outbox_tray:",
"1F402": ":ox:",
"1F4E6": ":package:",
"1F4C4": ":page_facing_up:",
"1F4C3": ":page_with_curl:",
"1F4DF": ":pager:",
"1F334": ":palm_tree:",
"1F43C": ":panda_face:",
"1F4CE": ":paperclip:",
"1F17F": ":parking:",
"0303D": ":part_alternation_mark:",
"026C5": ":partly_sunny:",
"1F6C2": ":passport_control:",
"1F43E": ":paw_prints:",
"1F351": ":peach:",
"1F350": ":pear:",
"1F4DD": ":pencil:",
"0270F": ":pencil2:",
"1F427": ":penguin:",
"1F614": ":pensive:",
"1F3AD": ":performing_arts:",
"1F623": ":persevere:",
"1F64D": ":person_frowning:",
"1F471": ":person_with_blond_hair:",
"1F64E": ":person_with_pouting_face:",
"0260E": ":phone:",
"1F437": ":pig:",
"1F416": ":pig2:",
"1F43D": ":pig_nose:",
"1F48A": ":pill:",
"1F34D": ":pineapple:",
"02653": ":pisces:",
"1F355": ":pizza:",
"1F447": ":point_down:",
"1F448": ":point_left:",
"1F449": ":point_right:",
"0261D": ":point_up:",
"1F446": ":point_up_2:",
"1F693": ":police_car:",
"1F429": ":poodle:",
"1F4A9": ":poop:",
"1F3E3": ":post_office:",
"1F4EF": ":postal_horn:",
"1F4EE": ":postbox:",
"1F6B0": ":potable_water:",
"1F45D": ":pouch:",
"1F357": ":poultry_leg:",
"1F4B7": ":pound:",
"1F63E": ":pouting_cat:",
"1F64F": ":pray:",
"1F478": ":princess:",
"1F44A": ":punch:",
"1F49C": ":purple_heart:",
"1F45B": ":purse:",
"1F4CC": ":pushpin:",
"1F6AE": ":put_litter_in_its_place:",
"02753": ":question:",
"1F430": ":rabbit:",
"1F407": ":rabbit2:",
"1F40E": ":racehorse:",
"1F4FB": ":radio:",
"1F518": ":radio_button:",
"1F621": ":rage:",
"1F683": ":railway_car:",
"1F308": ":rainbow:",
"0270B": ":raised_hand:",
"1F64C": ":raised_hands:",
"1F64B": ":raising_hand:",
"1F40F": ":ram:",
"1F35C": ":ramen:",
"1F400": ":rat:",
"0267B": ":recycle:",
"1F697": ":red_car:",
"1F534": ":red_circle:",
"000AE": ":registered:",
"0263A": ":relaxed:",
"1F60C": ":relieved:",
"1F501": ":repeat:",
"1F502": ":repeat_one:",
"1F6BB": ":restroom:",
"1F49E": ":revolving_hearts:",
"023EA": ":rewind:",
"1F380": ":ribbon:",
"1F35A": ":rice:",
"1F359": ":rice_ball:",
"1F358": ":rice_cracker:",
"1F391": ":rice_scene:",
"1F48D": ":ring:",
"1F680": ":rocket:",
"1F3A2": ":roller_coaster:",
"1F413": ":rooster:",
"1F339": ":rose:",
"1F6A8": ":rotating_light:",
"1F4CD": ":round_pushpin:",
"1F6A3": ":rowboat:",
"1F3C9": ":rugby_football:",
"1F3C3": ":runner:",
"1F3C3": ":running:",
"1F3BD": ":running_shirt_with_sash:",
"1F202": ":sa:",
"02650": ":sagittarius:",
"026F5": ":sailboat:",
"1F376": ":sake:",
"1F461": ":sandal:",
"1F385": ":santa:",
"1F4E1": ":satellite:",
"1F606": ":satisfied:",
"1F3B7": ":saxophone:",
"1F3EB": ":school:",
"1F392": ":school_satchel:",
"02702": ":scissors:",
"0264F": ":scorpius:",
"1F631": ":scream:",
"1F640": ":scream_cat:",
"1F4DC": ":scroll:",
"1F4BA": ":seat:",
"03299": ":secret:",
"1F648": ":see_no_evil:",
"1F331": ":seedling:",
"1F367": ":shaved_ice:",
"1F411": ":sheep:",
"1F41A": ":shell:",
"1F6A2": ":ship:",
"1F455": ":shirt:",
"1F4A9": ":shit:",
"1F45E": ":shoe:",
"1F6BF": ":shower:",
"1F4F6": ":signal_strength:",
"1F52F": ":six_pointed_star:",
"1F3BF": ":ski:",
"1F480": ":skull:",
"1F634": ":sleeping:",
"1F62A": ":sleepy:",
"1F3B0": ":slot_machine:",
"1F539": ":small_blue_diamond:",
"1F538": ":small_orange_diamond:",
"1F53A": ":small_red_triangle:",
"1F53B": ":small_red_triangle_down:",
"1F604": ":smile:",
"1F638": ":smile_cat:",
"1F603": ":smiley:",
"1F63A": ":smiley_cat:",
"1F608": ":smiling_imp:",
"1F60F": ":smirk:",
"1F63C": ":smirk_cat:",
"1F6AC": ":smoking:",
"1F40C": ":snail:",
"1F40D": ":snake:",
"1F3C2": ":snowboarder:",
"02744": ":snowflake:",
"026C4": ":snowman:",
"1F62D": ":sob:",
"026BD": ":soccer:",
"1F51C": ":soon:",
"1F198": ":sos:",
"1F509": ":sound:",
"1F47E": ":space_invader:",
"02660": ":spades:",
"1F35D": ":spaghetti:",
"02747": ":sparkle:",
"1F387": ":sparkler:",
"02728": ":sparkles:",
"1F496": ":sparkling_heart:",
"1F64A": ":speak_no_evil:",
"1F50A": ":speaker:",
"1F4AC": ":speech_balloon:",
"1F6A4": ":speedboat:",
"02B50": ":star:",
"1F31F": ":star2:",
"1F303": ":stars:",
"1F689": ":station:",
"1F5FD": ":statue_of_liberty:",
"1F682": ":steam_locomotive:",
"1F372": ":stew:",
"1F4CF": ":straight_ruler:",
"1F353": ":strawberry:",
"1F61B": ":stuck_out_tongue:",
"1F61D": ":stuck_out_tongue_closed_eyes:",
"1F61C": ":stuck_out_tongue_winking_eye:",
"1F31E": ":sun_with_face:",
"1F33B": ":sunflower:",
"1F60E": ":sunglasses:",
"02600": ":sunny:",
"1F305": ":sunrise:",
"1F304": ":sunrise_over_mountains:",
"1F3C4": ":surfer:",
"1F363": ":sushi:",
"1F69F": ":suspension_railway:",
"1F613": ":sweat:",
"1F4A6": ":sweat_drops:",
"1F605": ":sweat_smile:",
"1F360": ":sweet_potato:",
"1F3CA": ":swimmer:",
"1F523": ":symbols:",
"1F489": ":syringe:",
"1F389": ":tada:",
"1F38B": ":tanabata_tree:",
"1F34A": ":tangerine:",
"02649": ":taurus:",
"1F695": ":taxi:",
"1F375": ":tea:",
"0260E": ":telephone:",
"1F4DE": ":telephone_receiver:",
"1F52D": ":telescope:",
"1F3BE": ":tennis:",
"026FA": ":tent:",
"1F4AD": ":thought_balloon:",
"1F44E": ":thumbsdown:",
"1F44D": ":thumbsup:",
"1F3AB": ":ticket:",
"1F42F": ":tiger:",
"1F405": ":tiger2:",
"1F62B": ":tired_face:",
"02122": ":tm:",
"1F6BD": ":toilet:",
"1F5FC": ":tokyo_tower:",
"1F345": ":tomato:",
"1F445": ":tongue:",
"1F51D": ":top:",
"1F3A9": ":tophat:",
"1F69C": ":tractor:",
"1F6A5": ":traffic_light:",
"1F683": ":train:",
"1F686": ":train2:",
"1F68A": ":tram:",
"1F6A9": ":triangular_flag_on_post:",
"1F4D0": ":triangular_ruler:",
"1F531": ":trident:",
"1F624": ":triumph:",
"1F68E": ":trolleybus:",
"1F3C6": ":trophy:",
"1F379": ":tropical_drink:",
"1F420": ":tropical_fish:",
"1F69A": ":truck:",
"1F3BA": ":trumpet:",
"1F455": ":tshirt:",
"1F337": ":tulip:",
"1F422": ":turtle:",
"1F4FA": ":tv:",
"1F500": ":twisted_rightwards_arrows:",
"1F495": ":two_hearts:",
"1F46C": ":two_men_holding_hands:",
"1F46D": ":two_women_holding_hands:",
"1F239": ":u5272:",
"1F234": ":u5408:",
"1F23A": ":u55b6:",
"1F22F": ":u6307:",
"1F237": ":u6708:",
"1F236": ":u6709:",
"1F235": ":u6e80:",
"1F21A": ":u7121:",
"1F238": ":u7533:",
"1F232": ":u7981:",
"1F233": ":u7a7a:",
"02614": ":umbrella:",
"1F612": ":unamused:",
"1F51E": ":underage:",
"1F513": ":unlock:",
"1F199": ":up:",
"0270C": ":v:",
"1F6A6": ":vertical_traffic_light:",
"1F4FC": ":vhs:",
"1F4F3": ":vibration_mode:",
"1F4F9": ":video_camera:",
"1F3AE": ":video_game:",
"1F3BB": ":violin:",
"0264D": ":virgo:",
"1F30B": ":volcano:",
"1F19A": ":vs:",
"1F6B6": ":walking:",
"1F318": ":waning_crescent_moon:",
"1F316": ":waning_gibbous_moon:",
"026A0": ":warning:",
"0231A": ":watch:",
"1F403": ":water_buffalo:",
"1F349": ":watermelon:",
"1F44B": ":wave:",
"03030": ":wavy_dash:",
"1F312": ":waxing_crescent_moon:",
"1F314": ":waxing_gibbous_moon:",
"1F6BE": ":wc:",
"1F629": ":weary:",
"1F492": ":wedding:",
"1F433": ":whale:",
"1F40B": ":whale2:",
"0267F": ":wheelchair:",
"02705": ":white_check_mark:",
"026AA": ":white_circle:",
"1F4AE": ":white_flower:",
"02B1C": ":white_large_square:",
"025FD": ":white_medium_small_square:",
"025FB": ":white_medium_square:",
"025AB": ":white_small_square:",
"1F533": ":white_square_button:",
"1F390": ":wind_chime:",
"1F377": ":wine_glass:",
"1F609": ":wink:",
"1F43A": ":wolf:",
"1F469": ":woman:",
"1F45A": ":womans_clothes:",
"1F452": ":womans_hat:",
"1F6BA": ":womens:",
"1F61F": ":worried:",
"1F527": ":wrench:",
"0274C": ":x:",
"1F49B": ":yellow_heart:",
"1F4B4": ":yen:",
"1F60B": ":yum:",
"026A1": ":zap:",
"1F4A4": ":zzz:",
}
# Decode hex numbers separated by spaces into a string
def decode_points(code):
return "".join(map(lambda c: chr(int(c, 16)), code.split()))
def make_name(code):
return ":" + "".join(map(lambda c: "u" + c, code.split())) + ":"
# def fetch(url):
# return request.urlopen(url).read().decode().split("\n")
# https://unicode.org/Public/emoji/13.1/emoji-test.txt
with open(sys.argv[1]) as f:
entries = parse_lines(f)
def keep_emoji(e):
code, status, _ = e
code = code.split()
# Keep only interesting emojis (others are duplicates or won't render well)
# Remove skin tone variants, they are accessible through combinations
return status in [ "fully-qualified", "component" ] and \
not (len(code) > 1 and code[-1] in [ "1F3FB", "1F3FC", "1F3FD", "1F3FE", "1F3FF" ])
for group in entries.values():
group = list(filter(keep_emoji, group))
print("%d" % len(group))
for code, status, desc in group:
name = name_map[code] if code in name_map else make_name(code)
print("%s %s %s" % (name, decode_points(code), desc))

View File

@@ -0,0 +1,18 @@
Tato aplikace je virtuální klávesnící pro Android. Umožňuje rychlejší a plynulejší psaní písmen i symbolů (vč. diakritiky), a to ve vícero jazycích a vlastních rozloženích. To vše zdarma, bez reklam a bez plýtvání vašeho uložiště. Můžete psát libovolné znaky pomocí gest (ASCII i Unicode), používat mrtvé (univerzální) klávesy pro diakritická znaménka a mnohem více.
Klávesnice zobrazuje až 4 další znaky v rozích každé klávesy. Tyto znaky jsou vyvolány přejetím prstu do vybraného rohu.
No zkrátka...:
- Obsahuje každý znak a speciální klávesu, která je běžnou součástí počítačové klávesnice. To přijde vhod obzvláště při používání aplikací jako např. Termux
- Můžete používat modifikační klávesy, obohaceny o speciální klávesy (např. Tab, Esc, šipky, F klávesy, ale také Ctrl nebo Alt !)
- Můžete psát vícero jazyky rychleji a bez chyb. Diakritická znaménka mohou být vyvolána i za pomocí mrtvých kláves. Nejdříve zvolte diakritické znaménko a pak znak, který chcete obohatit o toto znaménko.
- Je vysoce nenáročná a rychlá. Zabere 500x méně místa než klávesnice od Googlu (Gboard) a 15x méně než výchozí klávesnice systému. Bez reklam, bez sledování.
- Má vícero rozložení: QWERTY, QWERTZ, AZERTY. Motivy: Bílá, Tmavá, OLED Černá. A mnoho dalších které si s drobnou znalostí programování můžete upravovat dle libosti.
Nezapomeňte... Jako každá virtuální klávesnice, i tato musí být aktivována v nastavení systému (zařízení). Otevřte (Systémové) Nastavení a přejděte na:
(Další nastavení NEBO Nastavení systému) > Jazyk & způsob zadávání > Spravovat klávesnice.

View File

@@ -0,0 +1 @@
Nenáročná virtuální klávesnice pro vývojáře.

View File

@@ -0,0 +1 @@
Klávesnice Unexpected

View File

@@ -0,0 +1,21 @@
Translations: Brazilian portuguese (@igorSilCar), Chinese-Simplified (@9-2-1), Korean (@notnickid)
New layouts: Swedish (@thabubble), Korean (@notnickid)
Improved computation of the swipe gesture and fix unstoppable key-repeat on
some devices.
Moved keys away from the edges of the screen and other improvements to the layouts.
Improved rendering of some symbols.
Added more characters to the keyboard:
- New combinations to Fn (@ArenaL5)
- Currency symbols
- Added arrow and box symbols (@sdrapha)
- F11 and F12.
Option for making modifiers lockable. (@sdrapha)
Fixes to the Spanish layout and other fixes. (@ArenaL5)
Many other fixes.
Huge thanks to the contributors: @igorSilCar, @sdrapha, @ArenaL5, @notnickid, @9-2-1, @thabubble

View File

@@ -0,0 +1,25 @@
Quick fix release.
Previously:
Translations: Brazilian portuguese (@igorSilCar), Chinese-Simplified (@9-2-1), Korean (@notnickid)
New layouts: Swedish (@thabubble), Korean (@notnickid)
Improved computation of the swipe gesture and fix unstoppable key-repeat on
some devices.
Moved keys away from the edges of the screen and other improvements to the layouts.
Improved rendering of some symbols.
Added more characters to the keyboard:
- New combinations to Fn (@ArenaL5)
- Currency symbols
- Added arrow and box symbols (@sdrapha)
- F11 and F12.
Option for making modifiers lockable. (@sdrapha)
Fixes to the Spanish layout and other fixes. (@ArenaL5)
Many other fixes.
Huge thanks to the contributors: @igorSilCar, @sdrapha, @ArenaL5, @notnickid, @9-2-1, @thabubble

View File

@@ -0,0 +1,4 @@
Fix compatibility with Android 6.
Translation improvements.
Huge thanks to the contributors: @marciozomb13

View File

@@ -0,0 +1,7 @@
Support languages: Lithuanian, Hungarian (@tbilles)
New layouts: Neo2 (@matthiakl)
Translation improvements (@polyctena, @marciozomb13)
Fix modifiers applied twice when typing quickly. Some other fixes.
Many thanks to the contributors: @matthiakl, @polyctena, @marciozomb13, @dircsem

View File

@@ -0,0 +1,9 @@
New languages: Turkish (@erqan), Dutch (Belgium) (@draxaris1010)
New layouts: Turkish (@erqan), Colemak (@dircsem), Hungarian QWERTY
Less typos: Select the closest key on swipe (@Rodrigodd)
Removed settings: Vibration, Show every accents
More tweaks to the layouts
Fixes to landscape mode, updated translations and more tweaks.
Thanks to the contributors: @erqan, @draxaris1010, @dircsem, @Rodrigodd, @meanindra

View File

@@ -0,0 +1,5 @@
Add back the vibration option.
Fix localized keys not in predefined positions.
Improvements to layouts.
Thanks to the contributors: @Thunder-Squirrel

View File

@@ -0,0 +1,12 @@
New supported languages: Polish, Ukrainian, Bengali, Norwegian
New layouts: Ukrainian, Bengali, Norwegian, Bone, Czech
New translations: Brazilian Portuguese, Italian, Russian, Czech
Hold modifiers to lock, double tap on shift disabled by default.
Option to add more keys to the keyboard.
Automatic capitalisation at beginning of sentences.
Added e-ink oriented theme.
New pane for greek letters and mathematical symbols.
Improvements to the layouts and various bug fixes.
Thanks to the contributors: @nanno, @Quantenzitrone, @eandersons, @iamrasel, @ChristianGynnild, @igorSilCar, @CastixGitHub, @94KONG, @ptrm, @Validbit

View File

@@ -0,0 +1,7 @@
New supported languages: Hindi, Greek
Disable fullscreen mode.
Improvements to layouts and translations.
Various fixes and improvements.
Thanks to the contributors: @sdrapha, @lpv11, @Raj9039852537, @polyctena

View File

@@ -0,0 +1,11 @@
New layouts: QWERTZ (Deutsch)
Add optional numpad for wide screens.
Add pin entry layout for numbers.
Remove option "Lockable modifiers".
Hide Alt and Meta keys by default.
Added more optional keys.
Allow typing password on boot.
Improvements to the layouts and bug fixes.
Thanks to the contributors: @geroxyz

View File

@@ -0,0 +1,6 @@
Updated translations: Latvian
Fix crash when typing device password
Increase target SDK version to 31
Thanks to the contributors: @eandersons

View File

@@ -0,0 +1,10 @@
New layouts: QWERTY (Polski)
Allow switching quickly between two layouts.
Allow choosing opacity of the keyboard.
Improved themes and rendering.
Updated translations.
Fixed key repeat bug when holding 3 keys.
Tweaked the swipe gesture. Added some options.
Thanks to the contributors: @9-2-1, @ChasmSolacer

View File

@@ -0,0 +1 @@
Bug fix release.

View File

@@ -0,0 +1,7 @@
New layouts: QWERTZ (Slovak)
Bugs fixed.
Updated translations.
Tweaked themes and settings.
Thanks to the contributors: Jozef Kundlak, @MAKI1LOVE

View File

@@ -0,0 +1,10 @@
New translations: Vietnamese
New layouts: Hebrew, Vietnamese
Move the cursor by sliding on the space bar.
New ePaper theme.
Added number row.
Option to switch to the previous keyboard.
Updated translations.
Thanks to the contributors: @K4zoku, @rVnPower, @RamKromberg, @MAKI1LOVE

View File

@@ -0,0 +1,7 @@
New layouts: Arabic, Devanagari
Updated translations.
Updated layouts.
Bugs fixed.
Thanks to the contributors: @ChasmSolacer, @mostafaayesh, @lrvideckis, @eandersons, @mscheidemann, @JackDotJS

View File

@@ -1,12 +1,10 @@
This app is a virtual keyboard for Android. The main features are easy typing of every ASCII character using the swipe gesture, dead keys for accents and modifier keys and the presence of special keys (tab, esc, arrows, etc..). The main feature is easy typing of more characters by swiping the keys toward the corners.
The keyboard shows up to 4 extra characters in the corners of each key. These extra characters are hit by swiping the finger on the key.
Highlight of some of the features: Highlight of some of the features:
- Every character and special keys that are also available on a PC keyboard. This is perfect for using applications like Termux. - Every character and special keys of a PC keyboard. This is perfect for using applications like Termux.
- This includes Tab, Esc, the arrows and function keys, but also Ctrl and Alt ! - This includes Tab, Esc, the arrows and function keys, but also Ctrl and Alt.
- Accented keys are accessible using dead keys. First activate the accent, then type the accented letter. - Accented keys are accessible using dead keys. First activate the accent, then type the accented letter.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,12 +1,10 @@
Cette application est un clavier virtuel pour Android. Les fonctionnalités principales sont l'accès rapide à tous les caractères ASCII en glissant le doigt, les touches mortes pour les accents et la présence des touches spéciales (Tab, Esc, les flèches, etc..). La fonctionnalité principale est l'accès rapide à plus de caractères en balayant les touches vers les coins.
Il peut y avoir un caractère supplémentaire dans chaque coin de chaque touche. Ces caractères sont tapés en glissant le doigt sur la touche.
Quelques fonctionnalités: Quelques fonctionnalités:
- Tous les caractères et toutes les touches spéciales d'un clavier PC. Idéal pour utiliser une application comme Termux. - Tous les caractères et toutes les touches spéciales d'un clavier PC. Idéal pour utiliser une application comme Termux.
- Cela comprend les touches Tab, Esc, les flèches et les touches fonctions mais aussi Ctrl et Alt ! - Cela comprend les touches Tab, Esc, les flèches et les touches fonctions mais aussi Ctrl et Alt.
- Les accents sont des touches mortes. Activez d'abord l'accent et tapez ensuite la lettre accentuée. - Les accents sont des touches mortes. Activez d'abord l'accent et tapez ensuite la lettre accentuée.

View File

@@ -0,0 +1 @@
Una Tastiera Virtuale Leggera Per La Programmazione

View File

@@ -0,0 +1 @@
Unexpected Keyboard

View File

@@ -0,0 +1,18 @@
이 앱은 안드로이드용 가상 키보드입니다. 주요 기능은 스와이프 제스처를 사용하여 모든 ASCII 문자를 쉽게 입력할 수 있다는 점과 악센트 및 수정자 키를 위한 데드 키와 특수 키(tab, esc, 방향키 등)이 있다는 것입니다.
키보드는 각 키의 모서리에 최대 4개의 추가 문자를 표시합니다. 이러한 추가 문자는 키에서 손가락을 스와이프하여 적중됩니다.
일부 하이라이트 기능:
- PC 키보드에서 사용할 수 있는 모든 문자 및 특수 키를 사요 가능합니다. 이것은 Termux와 같은 앱을 사용하는 데 효과적입니다.
- 여기에는 Tab, Esc, 방향키 및 function 키뿐만이 아닌 Ctrl 및 Alt 키도 포함되어 있습니다 !
- 악센트 키는 데드 키를 사용하여 액세스할 수 있습니다. 먼저 악센트 키를 활성화한 다음 악센트 문자를 입력합니다.
- 매우 가볍고 빠릅니다. Google 키보드보다 500배, 기본 키보드보다 15배 적은 공간을 사용합니다. 광고와 사용 기록 추적 없음.
- 다중 레이아웃: QWERTY, QWERTZ, AZERTY. 다양한 테마: White, Dark, OLED Black. 또한 다른 많은 옵션들.
다른 가상 키보드와 마찬가지로 시스템 설정에서 활성화해야 합니다. 시스템 설정을 열고 다음으로 이동합니다.
시스템 > 언어 및 입력 > 키보드 > 키보드 관리.

View File

@@ -0,0 +1 @@
개발자들을 위한 가벼운 가상 키보드.

View File

@@ -0,0 +1 @@
Unexpected Keyboard

View File

@@ -0,0 +1,16 @@
Jej główną cechą jest łatwość wprowadzania wielu znaków poprzez przesuwanie po klawiszu do rogu.
Wyróźnione funkcjonalności:
- Wszystkie znaki i klawisze specjalne dostępne na klawiaturze komputerowej. Doskonałe do korzystania z aplikacji takich jak Termux.
- Obejmują one Tab, Esc, strzałki, klawisze funkcyjne, a także Ctrl i Alt.
- Znaki akcentowane uzyskuje się za pomocą martwych klawiszy. Najpierw naciśnij akcent, a następnie wpisz akcentowaną literę.
- Bardzo lekka i szybka. Zajmuje 500x mniej miejsca niż klawiatura Google i 15x mniej niż klawiatura domyślna. Bez reklam, bez śledzenia.
- Wiele układów: QWERTY, QWERTZ, AZERTY. Motywy: Biały, Ciemny, Czarny (OLED). Oraz wiele innych ustawień.
Tak jak każda inna klawiatura ekranowa, należy ją włączyć w ustawieniach systemowych. Otwórz Ustawienia i przejdź kolejno do:
System > Języki i metody wprowadzania > Klawiatura ekranowa > Zarządzaj klawiaturami ekranowymi.

View File

@@ -0,0 +1 @@
Lekka klawiatura wirtualna dla programistów.

View File

@@ -0,0 +1,18 @@
Um teclado virtual para aparelhos Android. Os recursos principais são facilidade de digitar todos os caracteres ASCII deslizando o dedo, teclas "mortas" para acentos e teclas modificadoras e a presença de teclas especiais (tab, esc, setas, etc..).
O teclado mostra até 4 caracteres extras nos cantos de cada tecla. Esses caracteres são digitáveis com o deslizar do dedo na tecla.
Alguns dos recursos interessantes:
- Todos caracteres e teclas especiais que também estão disponíveis num teclado de PC. Perfeito para usar com aplicativos como Termux.
- Incluindo Tab, Esc, as setas e teclas de função, e também Ctrl e Alt!
- Caracteres acentuados são digitáveis usando teclas "mortas". Primeiro ative o acento e depois digite a letra.
- Muito leve e rápido. Ocupa 500x menos espaço que o teclado da Google e 15x menos espaço que o teclado padrão. Sem propaganda, sem rastreio.
- Vários layouts: QWERTY, QWERTZ, AZERTY. Temas: Branco, Escuro, Preto OLED. E muitas outras opções.
Como qualquer outro teclado virtual, tem de ser ativado nas configurações de sistema. Abra as configurações e vá para:
Sistema > Idioma e entrada > Teclado virtual > Gerenciar teclados virtuais.

View File

@@ -0,0 +1 @@
Um teclado virtual leve para desenvolvedores.

View File

@@ -0,0 +1 @@
Unexpected Keyboard

View File

@@ -0,0 +1,16 @@
Главная особенность клавиатуры - это возможность легко напечатать любой ASCII символ за счет свайпов в углы клавиш.
Основные особенности:
- Есть все символы и специальные клавиши компьютерной клавиатуры. Идеально подходит для таких приложений, как Termux.
- Включены клавиши Tab, Esc, стрелки, функциональные клавиши, Ctrl и Alt.
- Клавиши с акцентами доступны с помощью мёртвых клавиш. Сначала нажмите на акцент, затем нажмите на букву с акцентом.
- Очень легкая и быстрая. Использует в 500 раз меньше места, чем Google клавиатура и в 15 раз меньше дефолтной клавиатуры. Никакой рекламы, никаких трекеров.
- Множество раскладок: QWERTY, QWERTZ, AZERTY и т.д. Темы: белая, темная. Множество других опций.
Клавиатура, как и все виртуальные клавиатуры, должна быть активирована в настройках. Откройте Настройки и перейдите:
Язык и ввод > Блок "Клавиатура" или "Способ ввода" > поставить галочку напротив Unexpected Keyboard

View File

@@ -0,0 +1 @@
Легкая виртуальная клавиатура для разработчиков.

View File

@@ -0,0 +1 @@
Unexpected Keyboard

View File

@@ -0,0 +1,16 @@
Chức năng chính là dễ dàng gõ nhiều ký tự bằng cách kéo phím về góc của nó.
Các chức năng tiêu biểu:
- Chứa tất cả ký tự và phím cơ bản lẫn đặc biệt của một cái bàn phím máy tính. Hoàn hảo cho các ứng dụng như Termux.
- Bao gồm Tab, Esc, các phím mũi tên và phím chức năng, còn có thêm Ctrl và Alt.
- Các phím có dấu phụ có thể được sử dụng qua phím liệt. Đầu tiên là bật dấu phụ, sau đó thì gõ.
- Rất nhẹ và nhanh. Nhẹ hơn bàn phím của Google 500 lần và 15 lần bàn phím mặc định. Không quảng cáo, không theo dõi.
- Nhiều bố cục phím: QWERTY, QWERTZ, AZERTY. Nhiều chủ đề: Sáng, tối, đen OLED. Với nhiều lựa chọn khác.
Như các bàn phím ảo khác, nó phải được bật trong cài đặt. Đầu tiên là vào cài đặt hệ thống và đi đến:
Hệ thống -> Ngôn ngữ và nhập liệu -> Bàn phím ảo -> Quản lý bàn phím ảo

View File

@@ -0,0 +1 @@
Bàn phím ảo gọn nhẹ cho các nhà phát triển.

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:hardwareAccelerated="false"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:hardwareAccelerated="false">
<juloo.keyboard2.EmojiGroupButtonsBar android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <juloo.keyboard2.EmojiGroupButtonsBar android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
<juloo.keyboard2.EmojiGridView android:id="@+id/emoji_grid" android:background="?attr/colorKeyboard" android:layout_width="fill_parent" android:layout_height="@dimen/emoji_grid_height"/> <juloo.keyboard2.EmojiGridView android:id="@+id/emoji_grid" android:layout_width="fill_parent" android:layout_height="@dimen/emoji_grid_height" android:orientation="vertical" android:numColumns="auto_fit" android:columnWidth="45sp" android:background="?attr/colorKeyboard"/>
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
<juloo.keyboard2.EmojiKeyButton style="@style/emojiKeyButton" key="switch_back_emoji"/> <juloo.keyboard2.EmojiKeyButton style="@style/emojiKeyButton" key="switch_back_emoji"/>
<juloo.keyboard2.EmojiKeyButton style="@style/emojiKeyButton" android:layout_weight="4" key="space"/> <juloo.keyboard2.EmojiKeyButton style="@style/emojiKeyButton" android:layout_weight="4" key="space"/>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<TextView style="@style/paragraph" android:text="@string/launcher_description"/>
<Button style="@style/paragraph" android:text="@string/launcher_button_imesettings" android:onClick="launch_imesettings" android:layout_width="wrap_content"/>
<TextView style="@style/paragraph" android:text="@string/launcher_sourcecode" android:autoLink="web"/>
<TextView android:id="@+id/launcher_tryhere_text" style="@style/paragraph" android:text="@string/launcher_tryhere"/>
<EditText android:id="@+id/launcher_tryhere_area" style="@style/paragraph" android:inputType="text"/>
</LinearLayout>

80
res/values-cs/strings.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Klávesnice Unexpected (pro ladění)</string>
<string name="app_name" product="default">Klávesnice Unexpected</string>
<string name="settings_activity_label">Nastavení Klávesnice Unexpected</string>
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
<string name="pref_category_layout">Rozvržení</string>
<!-- <string name="pref_label_brightness">Adjust label brightness</string> -->
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
<string name="pref_layout_title">Změnit rozvržení klávesnice</string>
<string name="pref_layout_e_system">V nastavení systému</string>
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
<string name="pref_accents_title">(Univerzální) Diakritická znaménka</string>
<string name="pref_accents_e_all_installed">Zobrazovat znaménka pro všechny instalované systémové jazyky</string>
<string name="pref_accents_e_selected">Zobrazovat znaménka pouze pro současně zvolený jazyk</string>
<string name="pref_accents_e_none">Skrýt (univerzální) diakritická znaménka</string>
<!-- <string name="pref_show_numpad_title">Show NumPad</string> -->
<!-- <string name="pref_show_numpad_never">Never</string> -->
<!-- <string name="pref_show_numpad_landscape">Only in landscape mode</string> -->
<!-- <string name="pref_show_numpad_always">Always</string> -->
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
<!-- <string name="pref_extra_keys_title">Add keys to the keyboard</string> -->
<!-- <string name="pref_second_layout_title">Secondary layout</string> -->
<string name="pref_second_layout_none">Žádné</string>
<string name="pref_category_typing">Psaní</string>
<string name="pref_swipe_dist_title">Vzdálenost posunutí prstem</string>
<string name="pref_swipe_dist_summary">Jak daleko je třeba posunout prst pro napsaní znaku/diakritiky v rozích klávey (%s)</string>
<string name="pref_long_timeout_title">Časová prodleva opakování znaků</string>
<string name="pref_long_interval_title">Interval opakování znaků</string>
<string name="pref_lock_double_tap_title">Dvojklik pro aktivaci caps lock(u)</string>
<string name="pref_lock_double_tap_summary">Dvojklik namísto držení modifikačních kláves po nějakou dobu</string>
<!-- <string name="pref_category_behavior">Behavior</string> -->
<string name="pref_autocapitalisation_title">Automatická kapitalizace</string>
<string name="pref_autocapitalisation_summary">Stiskne Shift na začátku věty</string>
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">Vibrace</string>
<string name="pref_vibrate_summary">Zapnout/Vypnout vibrace při stisku klávesy</string>
<string name="pref_category_style">Styl</string>
<string name="pref_margin_bottom_title">Spodní odsazení</string>
<string name="pref_keyboard_height_title">Výška klávesnice</string>
<string name="pref_horizontal_margin_title">Boční odsazení</string>
<string name="pref_character_size_title">Velikost znaků</string>
<string name="pref_character_size_summary">Velikost znaků zobrazených na klávesnici (%.2fx)</string>
<string name="pref_theme">Motiv</string>
<string name="pref_theme_e_system">Dle systému</string>
<string name="pref_theme_e_dark">Tmavý</string>
<string name="pref_theme_e_light">Světlý</string>
<string name="pref_theme_e_black">Černý</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<!-- <string name="pref_theme_e_white">White</string> -->
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">Velmi krátká</string>
<string name="pref_swipe_dist_e_short">Krátká</string>
<string name="pref_swipe_dist_e_default">Běžná</string>
<string name="pref_swipe_dist_e_far">Dlouhá</string>
<string name="pref_swipe_dist_e_very_far">Velmi dlouhá</string>
<string name="pref_key_horizontal_space">Horizontální mezery mezi klávesami</string>
<string name="pref_key_vertical_space">Vertikální mezery mezi klávesami</string>
<!-- <string name="pref_category_advanced">Advanced</string> -->
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
<!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> -->
<string name="key_action_next">Další</string>
<string name="key_action_done">Dokončit</string>
<string name="key_action_go">Spustit</string>
<string name="key_action_prev">Předchozí</string>
<string name="key_action_search">Hledat</string>
<string name="key_action_send">Odeslat</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

View File

@@ -1,37 +1,62 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Unexpected Keyboard</string> <string name="app_name" product="debug">Unexpected Keyboard (Debug)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Unexpected Keyboard - Einstellungen</string> <string name="settings_activity_label">Unexpected Keyboard - Einstellungen</string>
<string name="pref_portrait">Im Hochformatmodus</string>
<string name="pref_landscape">Im Querformatmodus</string>
<string name="pref_category_layout">Layout</string> <string name="pref_category_layout">Layout</string>
<string name="pref_label_brightness">Helligkeit der Beschriftung anpassen</string>
<string name="pref_keyboard_opacity">Deckkraft des Tastaturhintergrunds anpassen</string>
<string name="pref_key_opacity">Deckkraft der Tasten anpassen</string>
<string name="pref_key_activated_opacity">Deckkraft gedrückter Tasten anpassen</string>
<string name="pref_layout_title">Tastaturlayout ändern</string> <string name="pref_layout_title">Tastaturlayout ändern</string>
<string name="pref_layout_e_system">Systemeinstellung</string> <string name="pref_layout_e_system">Systemeinstellung</string>
<string name="pref_layout_e_custom">Eigenes Layout</string>
<string name="pref_accents_title">Akzente</string> <string name="pref_accents_title">Akzente</string>
<string name="pref_accents_e_all_installed">Akzente für alle installierten Sprachen anzeigen</string> <string name="pref_accents_e_all_installed">Akzente für alle installierten Sprachen anzeigen</string>
<string name="pref_accents_e_selected">Akzente nur für die gewählte Sprache anzeigen</string> <string name="pref_accents_e_selected">Akzente nur für die gewählte Sprache anzeigen</string>
<string name="pref_accents_e_all">Alle Akzente anzeigen</string>
<string name="pref_accents_e_none">Akzente verbergen</string> <string name="pref_accents_e_none">Akzente verbergen</string>
<string name="pref_show_numpad_title">Ziffernblock anzeigen</string>
<string name="pref_show_numpad_never">Nie</string>
<string name="pref_show_numpad_landscape">Nur im Querformat</string>
<string name="pref_show_numpad_always">Immer</string>
<string name="pref_number_row_title">Zahlenreihe anzeigen</string>
<string name="pref_number_row_summary">Eine Zahlenreihe oben an der Tastatur hinzufügen, wenn der Ziffernblock ausgeblendet ist</string>
<string name="pref_numpad_layout">Zahlenblock-Layout</string>
<string name="pref_numpad_layout_e_high_first">Hohe Ziffern zuerst</string>
<string name="pref_numpad_layout_e_low_first">Niedrige Ziffern zuerst</string>
<string name="pref_extra_keys_title">Zusätzliche Zeichen zur Tastatur hinzufügen</string>
<string name="pref_second_layout_title">Zweites Layout</string>
<string name="pref_second_layout_none">Keines</string>
<string name="pref_category_typing">Tippen</string> <string name="pref_category_typing">Tippen</string>
<string name="pref_swipe_dist_title">Länge der Wischgeste</string> <string name="pref_swipe_dist_title">Länge der Wischgeste</string>
<string name="pref_swipe_dist_summary">Abstand der Zeichen in den Ecken der Tasten (%s)</string> <string name="pref_swipe_dist_summary">Abstand der Zeichen in den Ecken der Tasten (%s)</string>
<string name="pref_long_timeout_title">Zeitüberschreitung bei Tastenwiederholung</string> <string name="pref_long_timeout_title">Zeitüberschreitung bei Tastenwiederholung</string>
<string name="pref_long_interval_title">Intervall der Tastenwiederholung</string> <string name="pref_long_interval_title">Intervall der Tastenwiederholung</string>
<string name="pref_category_vibrate">Vibration</string> <string name="pref_lock_double_tap_title">Umschalttaste mit Doppeltippen einrasten</string>
<string name="pref_lock_double_tap_summary">Anstatt Taste längere Zeit gedrückt zu halten</string>
<string name="pref_category_behavior">Verhalten</string>
<string name="pref_autocapitalisation_title">Automatische Großschreibung</string>
<string name="pref_autocapitalisation_summary">Umschalttaste am Satzanfang aktivieren</string>
<string name="pref_switch_input_immediate_title">Sofort zur nächsten Tastatur wechseln</string>
<string name="pref_switch_input_immediate_summary">Verhalten der Tastaturumschalttaste</string>
<string name="pref_vibrate_title">Vibration</string> <string name="pref_vibrate_title">Vibration</string>
<string name="pref_vibrate_summary">Vibration bei Tastendruck ein-/ausschalten</string> <string name="pref_vibrate_summary">Vibration bei Tastendruck ein-/ausschalten</string>
<string name="pref_vibrate_duration_title">Dauer</string>
<string name="pref_precise_repeat_title">Präzise Cursorsteuerung</string>
<string name="pref_precise_repeat_summary">Geschwindigkeit der Tastenwiederholung durch weniger oder mehr Wischen anpassen</string>
<string name="pref_category_style">Design</string> <string name="pref_category_style">Design</string>
<string name="pref_margin_bottom_title">Unterer Abstand</string> <string name="pref_margin_bottom_title">Unterer Abstand</string>
<string name="pref_keyboard_height_title">Höhe der Tastatur</string> <string name="pref_keyboard_height_title">Höhe der Tastatur</string>
<string name="pref_horizontal_margin_title">Horizontaler Abstand</string> <string name="pref_horizontal_margin_title">Horizontaler Abstand</string>
<string name="pref_character_size_title">Größe der Beschriftung</string> <string name="pref_character_size_title">Größe der Beschriftung</string>
<string name="pref_character_size_summary">Größe der Buchstaben auf den Tasten (%.2fx)</string> <string name="pref_character_size_summary">Größe der Buchstaben auf den Tasten (%.2fx)</string>
<string name="pref_theme">Theme</string> <string name="pref_theme">Thema</string>
<string name="pref_theme_e_system">Systemeinstellung</string> <string name="pref_theme_e_system">Systemeinstellung</string>
<string name="pref_theme_e_dark">Dunkel</string> <string name="pref_theme_e_dark">Dunkel</string>
<string name="pref_theme_e_light">Hell</string> <string name="pref_theme_e_light">Hell</string>
<string name="pref_theme_e_black">Schwarz</string> <string name="pref_theme_e_black">Schwarz</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<string name="pref_theme_e_white">Weiß</string>
<string name="pref_theme_e_epaper">ePaper</string>
<string name="pref_swipe_dist_e_very_short">Sehr kurz</string> <string name="pref_swipe_dist_e_very_short">Sehr kurz</string>
<string name="pref_swipe_dist_e_short">Kurz</string> <string name="pref_swipe_dist_e_short">Kurz</string>
<string name="pref_swipe_dist_e_default">Normal</string> <string name="pref_swipe_dist_e_default">Normal</string>
@@ -39,10 +64,17 @@
<string name="pref_swipe_dist_e_very_far">Sehr weit</string> <string name="pref_swipe_dist_e_very_far">Sehr weit</string>
<string name="pref_key_horizontal_space">Horizontaler Abstand zwischen den Tasten</string> <string name="pref_key_horizontal_space">Horizontaler Abstand zwischen den Tasten</string>
<string name="pref_key_vertical_space">Vertikaler Abstand zwischen den Tasten</string> <string name="pref_key_vertical_space">Vertikaler Abstand zwischen den Tasten</string>
<string name="pref_category_advanced">Erweitert</string>
<string name="pref_custom_layout_title">Eigenes Layout</string>
<string name="pref_custom_layout_summary">Bitte Sourcecode ansehen. Diese Option ist nicht zur Verwendung vorgesehen.</string>
<string name="key_action_next">Nächstes</string> <string name="key_action_next">Nächstes</string>
<string name="key_action_done">Fertig</string> <string name="key_action_done">Fertig</string>
<string name="key_action_go">Los</string> <string name="key_action_go">Los</string>
<string name="key_action_prev">Vorheriges</string> <string name="key_action_prev">Vorheriges</string>
<string name="key_action_search">Suchen</string> <string name="key_action_search">Suchen</string>
<string name="key_action_send">Senden</string> <string name="key_action_send">Senden</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources> </resources>

View File

@@ -1,37 +1,62 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Unexpected Keyboard</string> <!-- <string name="app_name" product="debug">Unexpected Keyboard (debug)</string> -->
<!-- <string name="app_name" product="default">Unexpected Keyboard</string> -->
<string name="settings_activity_label">Ajustes de Unexpected Keyboard</string> <string name="settings_activity_label">Ajustes de Unexpected Keyboard</string>
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
<string name="pref_category_layout">Formato</string> <string name="pref_category_layout">Formato</string>
<!-- <string name="pref_label_brightness">Adjust label brightness</string> -->
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
<string name="pref_layout_title">Cambiar formato de teclado</string> <string name="pref_layout_title">Cambiar formato de teclado</string>
<string name="pref_layout_e_system">Ajustes del sistema</string> <string name="pref_layout_e_system">Ajustes del sistema</string>
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
<string name="pref_accents_title">Acentos</string> <string name="pref_accents_title">Acentos</string>
<string name="pref_accents_e_all_installed">Mostrar acentos para todos los lenguajes instalados</string> <string name="pref_accents_e_all_installed">Mostrar acentos para todos los lenguajes instalados</string>
<string name="pref_accents_e_selected">Solo mostrar acentos para el lenguaje seleccionado</string> <string name="pref_accents_e_selected">Solo mostrar acentos para el lenguaje seleccionado</string>
<string name="pref_accents_e_all">Mostrar todos los acentos</string>
<string name="pref_accents_e_none">Ocultar acentos</string> <string name="pref_accents_e_none">Ocultar acentos</string>
<!-- <string name="pref_show_numpad_title">Show NumPad</string> -->
<!-- <string name="pref_show_numpad_never">Never</string> -->
<!-- <string name="pref_show_numpad_landscape">Only in landscape mode</string> -->
<!-- <string name="pref_show_numpad_always">Always</string> -->
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
<!-- <string name="pref_extra_keys_title">Add keys to the keyboard</string> -->
<!-- <string name="pref_second_layout_title">Secondary layout</string> -->
<!-- <string name="pref_second_layout_none">None</string> -->
<string name="pref_category_typing">Escribiendo</string> <string name="pref_category_typing">Escribiendo</string>
<string name="pref_swipe_dist_title">Distancia para deslizar</string> <string name="pref_swipe_dist_title">Distancia para deslizar</string>
<string name="pref_swipe_dist_summary">Distancia de caractéres en las esquinas de las letras (%s)</string> <string name="pref_swipe_dist_summary">Distancia de caracteres en las esquinas de las letras (%s)</string>
<string name="pref_long_timeout_title">Tiempo de espera de repetición de tecla</string> <string name="pref_long_timeout_title">Tiempo de espera de repetición de tecla</string>
<string name="pref_long_interval_title">Intervalo de repetición de tecla</string> <string name="pref_long_interval_title">Intervalo de repetición de tecla</string>
<string name="pref_category_vibrate">Vibración</string> <!-- <string name="pref_lock_double_tap_title">Double tap on shift for caps lock</string> -->
<!-- <string name="pref_lock_double_tap_summary">You can lock any modifier by holding it</string> -->
<!-- <string name="pref_category_behavior">Behavior</string> -->
<!-- <string name="pref_autocapitalisation_title">Automatic capitalisation</string> -->
<!-- <string name="pref_autocapitalisation_summary">Press Shift at the beginning of a sentence</string> -->
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">Vibración</string> <string name="pref_vibrate_title">Vibración</string>
<string name="pref_vibrate_summary">Habilitar/deshabilitar vibración al presionar una tecla</string> <string name="pref_vibrate_summary">Habilitar/deshabilitar vibración al presionar una tecla</string>
<string name="pref_vibrate_duration_title">Duración</string>
<string name="pref_precise_repeat_title">Movimientos de cursor preciso</string>
<string name="pref_precise_repeat_summary">Modular la velocidad de repetición de teclas según si se desliza más o menos</string>
<string name="pref_category_style">Estilo</string> <string name="pref_category_style">Estilo</string>
<string name="pref_margin_bottom_title">Margen del pie</string> <string name="pref_margin_bottom_title">Margen del pie</string>
<string name="pref_keyboard_height_title">Altura del teclado</string> <string name="pref_keyboard_height_title">Altura del teclado</string>
<string name="pref_horizontal_margin_title">Margen horizontal</string> <string name="pref_horizontal_margin_title">Margen horizontal</string>
<string name="pref_character_size_title">Tamaño de etiqueta</string> <string name="pref_character_size_title">Tamaño de etiqueta</string>
<string name="pref_character_size_summary">Tamaño de caractéres mostrados en el teclado (%.2fx)</string> <string name="pref_character_size_summary">Tamaño de caracteres mostrados en el teclado (%.2fx)</string>
<string name="pref_theme">Tema</string> <string name="pref_theme">Tema</string>
<string name="pref_theme_e_system">Ajustes de sistema</string> <string name="pref_theme_e_system">Ajustes de sistema</string>
<string name="pref_theme_e_dark">Oscuro</string> <string name="pref_theme_e_dark">Oscuro</string>
<string name="pref_theme_e_light">Claro</string> <string name="pref_theme_e_light">Claro</string>
<string name="pref_theme_e_black">Negro</string> <string name="pref_theme_e_black">Negro</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<!-- <string name="pref_theme_e_white">White</string> -->
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">Muy corto</string> <string name="pref_swipe_dist_e_very_short">Muy corto</string>
<string name="pref_swipe_dist_e_short">Corto</string> <string name="pref_swipe_dist_e_short">Corto</string>
<string name="pref_swipe_dist_e_default">Normal</string> <string name="pref_swipe_dist_e_default">Normal</string>
@@ -39,10 +64,17 @@
<string name="pref_swipe_dist_e_very_far">Muy lejano</string> <string name="pref_swipe_dist_e_very_far">Muy lejano</string>
<string name="pref_key_horizontal_space">Espaciado horizontal entre las teclas</string> <string name="pref_key_horizontal_space">Espaciado horizontal entre las teclas</string>
<string name="pref_key_vertical_space">Espaciado vertical entre las teclas</string> <string name="pref_key_vertical_space">Espaciado vertical entre las teclas</string>
<!-- <string name="pref_category_advanced">Advanced</string> -->
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
<!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> -->
<string name="key_action_next">Siguiente</string> <string name="key_action_next">Siguiente</string>
<string name="key_action_done">Hecho</string> <string name="key_action_done">Hecho</string>
<string name="key_action_go">Ir</string> <string name="key_action_go">Ir</string>
<string name="key_action_prev">Anterior</string> <string name="key_action_prev">Anterior</string>
<string name="key_action_search">Buscar</string> <string name="key_action_search">Buscar</string>
<string name="key_action_send">Enviar</string> <string name="key_action_send">Enviar</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources> </resources>

View File

@@ -1,37 +1,62 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Unexpected Keyboard</string> <string name="app_name" product="debug">Unexpected Keyboard (debug)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Unexpected Keyboard Paramètres</string> <string name="settings_activity_label">Unexpected Keyboard Paramètres</string>
<string name="pref_portrait">En mode portrait</string>
<string name="pref_landscape">En mode landscape</string>
<string name="pref_category_layout">Disposition</string> <string name="pref_category_layout">Disposition</string>
<string name="pref_label_brightness">Luminosité des symboles</string>
<string name="pref_keyboard_opacity">Transparence du clavier</string>
<string name="pref_key_opacity">Transparence des touches</string>
<string name="pref_key_activated_opacity">Transparence des touches pressées</string>
<string name="pref_layout_title">Disposition des touches</string> <string name="pref_layout_title">Disposition des touches</string>
<string name="pref_layout_e_system">Paramètre système</string> <string name="pref_layout_e_system">Paramètre système</string>
<string name="pref_layout_e_custom">Disposition personnalisée</string>
<string name="pref_accents_title">Accents</string> <string name="pref_accents_title">Accents</string>
<string name="pref_accents_e_all_installed">Afficher les accents pour les langues installées</string> <string name="pref_accents_e_all_installed">Afficher les accents pour les langues installées</string>
<string name="pref_accents_e_selected">Afficher les accents pour la langue sélectionnée</string> <string name="pref_accents_e_selected">Afficher les accents pour la langue sélectionnée</string>
<string name="pref_accents_e_all">Afficher tous les accents</string>
<string name="pref_accents_e_none">Cacher les accents</string> <string name="pref_accents_e_none">Cacher les accents</string>
<string name="pref_show_numpad_title">Afficher le pavé numérique</string>
<string name="pref_show_numpad_never">Jamais</string>
<string name="pref_show_numpad_landscape">Seulement en mode paysage</string>
<string name="pref_show_numpad_always">Toujour</string>
<string name="pref_number_row_title">Rangée de nombres</string>
<string name="pref_number_row_summary">Ajoute une rangée de nombres en haut du clavier quand le pavé numérique est caché</string>
<string name="pref_numpad_layout">Disposition du pavé numérique</string>
<string name="pref_numpad_layout_e_high_first">Du plus haut au plus bas</string>
<string name="pref_numpad_layout_e_low_first">Du plus bas au plus haut</string>
<string name="pref_extra_keys_title">Ajouter des touches au clavier</string>
<string name="pref_second_layout_title">Disposition secondaire</string>
<string name="pref_second_layout_none">Aucune</string>
<string name="pref_category_typing">Saisie</string> <string name="pref_category_typing">Saisie</string>
<string name="pref_swipe_dist_title">Distance de swipe</string> <string name="pref_swipe_dist_title">Distance de swipe</string>
<string name="pref_swipe_dist_summary">La distance des caractères dans les coins (%s)</string> <string name="pref_swipe_dist_summary">La distance des caractères dans les coins (%s)</string>
<string name="pref_long_timeout_title">Délai avant répétition</string> <string name="pref_long_timeout_title">Délai avant répétition</string>
<string name="pref_long_interval_title">Écart entre répétitions</string> <string name="pref_long_interval_title">Écart entre les répétitions</string>
<string name="pref_category_vibrate">Vibration</string> <string name="pref_lock_double_tap_title">Appuyer deux fois pour bloquer la majuscule</string>
<string name="pref_lock_double_tap_summary">Un appui long bloque la majuscule</string>
<string name="pref_category_behavior">Comportement</string>
<string name="pref_autocapitalisation_title">Majuscule automatique</string>
<string name="pref_autocapitalisation_summary">Activer Shift au début des phrases</string>
<string name="pref_switch_input_immediate_title">Changer vers le clavier utilisé en dernier</string>
<string name="pref_switch_input_immediate_summary">Comportement de la touche de changement de clavier</string>
<string name="pref_vibrate_title">Vibreur</string> <string name="pref_vibrate_title">Vibreur</string>
<string name="pref_vibrate_summary">Vibration a chaque touche</string> <string name="pref_vibrate_summary">Vibration a chaque touche</string>
<string name="pref_vibrate_duration_title">Durée</string>
<string name="pref_precise_repeat_title">Mouvement précis du curseur</string>
<string name="pref_precise_repeat_summary">Modifier la vitesse de répétition en bougeant le doigt</string>
<string name="pref_category_style">Style</string> <string name="pref_category_style">Style</string>
<string name="pref_margin_bottom_title">Marge du bas</string> <string name="pref_margin_bottom_title">Marge du bas</string>
<string name="pref_keyboard_height_title">Hauteur du clavier</string> <string name="pref_keyboard_height_title">Hauteur du clavier</string>
<string name="pref_horizontal_margin_title">Marge des côtés</string> <string name="pref_horizontal_margin_title">Marge des côtés</string>
<string name="pref_character_size_title">Taille des labels</string> <string name="pref_character_size_title">Taille des symboles</string>
<string name="pref_character_size_summary">Taille des caractères affichés sur les touches (%.2fx)</string> <string name="pref_character_size_summary">Taille des caractères affichés sur les touches (%.2fx)</string>
<string name="pref_theme">Thème</string> <string name="pref_theme">Thème</string>
<string name="pref_theme_e_system">Paramètre système</string> <string name="pref_theme_e_system">Paramètre système</string>
<string name="pref_theme_e_dark">Sombre</string> <string name="pref_theme_e_dark">Sombre</string>
<string name="pref_theme_e_light">Clair</string> <string name="pref_theme_e_light">Clair</string>
<string name="pref_theme_e_black">Noir</string> <string name="pref_theme_e_black">Noir</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<string name="pref_theme_e_white">Blanc</string>
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">Très courte</string> <string name="pref_swipe_dist_e_very_short">Très courte</string>
<string name="pref_swipe_dist_e_short">Courte</string> <string name="pref_swipe_dist_e_short">Courte</string>
<string name="pref_swipe_dist_e_default">Normale</string> <string name="pref_swipe_dist_e_default">Normale</string>
@@ -39,10 +64,17 @@
<string name="pref_swipe_dist_e_very_far">Très longue</string> <string name="pref_swipe_dist_e_very_far">Très longue</string>
<string name="pref_key_horizontal_space">Espacement horizontal entre les touches</string> <string name="pref_key_horizontal_space">Espacement horizontal entre les touches</string>
<string name="pref_key_vertical_space">Espacement vertical entre les touches</string> <string name="pref_key_vertical_space">Espacement vertical entre les touches</string>
<string name="pref_category_advanced">Avancé</string>
<string name="pref_custom_layout_title">Disposition personnalisée</string>
<string name="pref_custom_layout_summary">Cette option n\'est pas faite pour être utilisée.</string>
<string name="key_action_next">Suiv.</string> <string name="key_action_next">Suiv.</string>
<string name="key_action_done">Fin</string> <string name="key_action_done">Fin</string>
<string name="key_action_go">Aller</string> <string name="key_action_go">Aller</string>
<string name="key_action_prev">Prec.</string> <string name="key_action_prev">Prec.</string>
<string name="key_action_search">Chercher</string> <string name="key_action_search">Chercher</string>
<string name="key_action_send">Envoyer</string> <string name="key_action_send">Envoyer</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources> </resources>

80
res/values-it/strings.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Unexpected Keyboard (debug)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Impostazioni di Unexpected Keyboard</string>
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
<string name="pref_category_layout">Layout</string>
<!-- <string name="pref_label_brightness">Adjust label brightness</string> -->
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
<string name="pref_layout_title">Cambia layout tastiera</string>
<string name="pref_layout_e_system">Impostazioni di sistema</string>
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
<string name="pref_accents_title">Accenti</string>
<string name="pref_accents_e_all_installed">Mostra accenti per tutte le lingue installate</string>
<string name="pref_accents_e_selected">Mostra accenti solo per le lingue selezionate</string>
<string name="pref_accents_e_none">Nascondi accenti</string>
<!-- <string name="pref_show_numpad_title">Show NumPad</string> -->
<!-- <string name="pref_show_numpad_never">Never</string> -->
<!-- <string name="pref_show_numpad_landscape">Only in landscape mode</string> -->
<!-- <string name="pref_show_numpad_always">Always</string> -->
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
<!-- <string name="pref_extra_keys_title">Add keys to the keyboard</string> -->
<!-- <string name="pref_second_layout_title">Secondary layout</string> -->
<string name="pref_second_layout_none">Nessuno</string>
<string name="pref_category_typing">Digitando</string>
<string name="pref_swipe_dist_title">Distanza swipe</string>
<string name="pref_swipe_dist_summary">Distanza dei caratteri negli angoli dei tasti (%s)</string>
<string name="pref_long_timeout_title">Timeout ripetizione tasto</string>
<string name="pref_long_interval_title">Intervallo ripetizione tasto</string>
<string name="pref_lock_double_tap_title">Doppio tocco su Shift per attivare CapsLock</string>
<string name="pref_lock_double_tap_summary">Invece di premere i modificatori a lungo</string>
<!-- <string name="pref_category_behavior">Behavior</string> -->
<string name="pref_autocapitalisation_title">Maiuscole Automatiche</string>
<string name="pref_autocapitalisation_summary">Premi Shift all\'inizio di una frase</string>
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">Vibrazione</string>
<string name="pref_vibrate_summary">Abilita/Disabilita Vibrazione alla pressione dei tasti</string>
<string name="pref_category_style">Stile</string>
<string name="pref_margin_bottom_title">Margine inferiore</string>
<string name="pref_keyboard_height_title">Altezza tastiera</string>
<string name="pref_horizontal_margin_title">Margine orizzontale</string>
<string name="pref_character_size_title">Dimensione Caratteri</string>
<string name="pref_character_size_summary">Dimensione dei caratteri mostrati sulla tastiera (%.2fx)</string>
<string name="pref_theme">Tema</string>
<string name="pref_theme_e_system">Impostazioni di sistema</string>
<string name="pref_theme_e_dark">Scuro</string>
<string name="pref_theme_e_light">Chiaro</string>
<string name="pref_theme_e_black">Nero</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<!-- <string name="pref_theme_e_white">White</string> -->
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">Veramente breve</string>
<string name="pref_swipe_dist_e_short">Breve</string>
<string name="pref_swipe_dist_e_default">Normale</string>
<string name="pref_swipe_dist_e_far">Distante</string>
<string name="pref_swipe_dist_e_very_far">Molto distante</string>
<string name="pref_key_horizontal_space">Spazio orizzontale tra i tasti</string>
<string name="pref_key_vertical_space">Spazio verticale tra i tasti</string>
<!-- <string name="pref_category_advanced">Advanced</string> -->
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
<!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> -->
<string name="key_action_next">Prossimo</string>
<string name="key_action_done">Fatto</string>
<string name="key_action_go">Vai</string>
<string name="key_action_prev">Precedente</string>
<string name="key_action_search">Cerca</string>
<string name="key_action_send">Invia</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

80
res/values-ko/strings.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- <string name="app_name" product="debug">Unexpected Keyboard (debug)</string> -->
<!-- <string name="app_name" product="default">Unexpected Keyboard</string> -->
<string name="settings_activity_label">Unexpected Keyboard 설정</string>
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
<string name="pref_category_layout">레이아웃</string>
<!-- <string name="pref_label_brightness">Adjust label brightness</string> -->
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
<string name="pref_layout_title">키보드 레이아웃 변경</string>
<string name="pref_layout_e_system">시스템 세팅</string>
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
<string name="pref_accents_title">악센트</string>
<string name="pref_accents_e_all_installed">설치된 모든 언어의 악센트 표시</string>
<string name="pref_accents_e_selected">선택한 언어의 악센트만 표시</string>
<string name="pref_accents_e_none">모든 언어의 악센트 숨기기</string>
<!-- <string name="pref_show_numpad_title">Show NumPad</string> -->
<!-- <string name="pref_show_numpad_never">Never</string> -->
<!-- <string name="pref_show_numpad_landscape">Only in landscape mode</string> -->
<!-- <string name="pref_show_numpad_always">Always</string> -->
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
<!-- <string name="pref_extra_keys_title">Add keys to the keyboard</string> -->
<!-- <string name="pref_second_layout_title">Secondary layout</string> -->
<!-- <string name="pref_second_layout_none">None</string> -->
<string name="pref_category_typing">타자</string>
<string name="pref_swipe_dist_title">스와이프 범위</string>
<string name="pref_swipe_dist_summary">키 모서리 문자의 입력 범위 (%s)</string>
<string name="pref_long_timeout_title">키 길게 누르기 지연</string>
<string name="pref_long_interval_title">키 반복 간격</string>
<!-- <string name="pref_lock_double_tap_title">Double tap on shift for caps lock</string> -->
<!-- <string name="pref_lock_double_tap_summary">You can lock any modifier by holding it</string> -->
<!-- <string name="pref_category_behavior">Behavior</string> -->
<!-- <string name="pref_autocapitalisation_title">Automatic capitalisation</string> -->
<!-- <string name="pref_autocapitalisation_summary">Press Shift at the beginning of a sentence</string> -->
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">진동</string>
<string name="pref_vibrate_summary">키 누를 때 진동 키거/끄기</string>
<string name="pref_category_style">스타일</string>
<string name="pref_margin_bottom_title">아래 넓이</string>
<string name="pref_keyboard_height_title">키보드 높이</string>
<string name="pref_horizontal_margin_title">양 옆 넓이</string>
<string name="pref_character_size_title">폰트 크기</string>
<string name="pref_character_size_summary">키보드의 표시되는 폰트 크기 (%.2fx)</string>
<string name="pref_theme">테마</string>
<string name="pref_theme_e_system">시스템 테마</string>
<string name="pref_theme_e_dark">Dark</string>
<string name="pref_theme_e_light">Light</string>
<string name="pref_theme_e_black">Black</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<!-- <string name="pref_theme_e_white">White</string> -->
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">매우 짧음</string>
<string name="pref_swipe_dist_e_short">짧음</string>
<string name="pref_swipe_dist_e_default">보통</string>
<string name="pref_swipe_dist_e_far">넓음</string>
<string name="pref_swipe_dist_e_very_far">매우 넓음</string>
<string name="pref_key_horizontal_space">키보드 양 옆 간격</string>
<string name="pref_key_vertical_space">키보드 세로 간격</string>
<!-- <string name="pref_category_advanced">Advanced</string> -->
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
<!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> -->
<string name="key_action_next">다음</string>
<string name="key_action_done">확인</string>
<string name="key_action_go">Go</string>
<string name="key_action_prev">이전</string>
<string name="key_action_search">검색</string>
<string name="key_action_send">보내기</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

View File

@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<dimen name="horizontal_margin">12dp</dimen> <dimen name="horizontal_margin">28dp</dimen>
<dimen name="margin_bottom">3dp</dimen> <dimen name="margin_bottom">3dp</dimen>
<dimen name="key_padding">3dp</dimen>
<dimen name="key_height">36dp</dimen>
<item name="label_text_size" type="integer" format="float">0.4</item>
<item name="sublabel_text_size" type="integer" format="float">0.3</item>
<dimen name="emoji_type_button_height">48dp</dimen> <dimen name="emoji_type_button_height">48dp</dimen>
<dimen name="extra_horizontal_margin">20dp</dimen>
</resources> </resources>

View File

@@ -1,26 +1,48 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Unexpected Keyboard</string> <string name="app_name" product="debug">Unexpected Keyboard (atkļūdošana)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Unexpected Keyboard iestatījumi</string> <string name="settings_activity_label">Unexpected Keyboard iestatījumi</string>
<string name="pref_portrait">Stateniski</string>
<string name="pref_landscape">Guleniski</string>
<string name="pref_category_layout">Izkārtojums</string> <string name="pref_category_layout">Izkārtojums</string>
<string name="pref_label_brightness">Pielāgot iezīmju spilgtumu</string>
<string name="pref_keyboard_opacity">Pielāgot tastatūras fona necaurredzamību</string>
<string name="pref_key_opacity">Pielāgot taustiņu necaurredzamību</string>
<string name="pref_key_activated_opacity">Pielāgot piespiesta taustiņa necaurredzamību</string>
<string name="pref_layout_title">Mainīt tastatūras izkārtojumu</string> <string name="pref_layout_title">Mainīt tastatūras izkārtojumu</string>
<string name="pref_layout_e_system">Ierīces iestatījumi</string> <string name="pref_layout_e_system">Ierīces iestatījumi</string>
<string name="pref_layout_e_custom">Pielāgots izkārtojums</string>
<string name="pref_accents_title">Uzsvara zīmes</string> <string name="pref_accents_title">Uzsvara zīmes</string>
<string name="pref_accents_e_all_installed">Rādīt uzsvara zīmes visām uzstādītajām valodām</string> <string name="pref_accents_e_all_installed">Rādīt uzsvara zīmes visām uzstādītajām valodām</string>
<string name="pref_accents_e_selected">Rādīt uzsvara zīmes tikai atlasītajām valodām</string> <string name="pref_accents_e_selected">Rādīt uzsvara zīmes tikai atlasītajām valodām</string>
<string name="pref_accents_e_all">Rādīt visas uzsvara zīmes</string>
<string name="pref_accents_e_none">Paslēpt uzsvara zīmes</string> <string name="pref_accents_e_none">Paslēpt uzsvara zīmes</string>
<string name="pref_show_numpad_title">Rādīt ciparnīcu</string>
<string name="pref_show_numpad_never">Nekad</string>
<string name="pref_show_numpad_landscape">Tikai guleniskajā skatā</string>
<string name="pref_show_numpad_always">Vienmēr</string>
<string name="pref_number_row_title">Rādīt ciparu rindu</string>
<string name="pref_number_row_summary">Pievienot ciparu rindu virs tastatūras, kad ciparnīca ir paslēpta</string>
<string name="pref_numpad_layout">Ciparnīcas izkārtojums</string>
<string name="pref_numpad_layout_e_high_first">Vispirms lielākie cipari</string>
<string name="pref_numpad_layout_e_low_first">Vispirms mazākie cipari</string>
<string name="pref_extra_keys_title">Pievienot tastatūrai taustiņus</string>
<string name="pref_second_layout_title">Otrējais izkārtojums</string>
<string name="pref_second_layout_none">Neviens</string>
<string name="pref_category_typing">Rakstīšana</string> <string name="pref_category_typing">Rakstīšana</string>
<string name="pref_swipe_dist_title">Pavilkšanas attālums</string> <string name="pref_swipe_dist_title">Pavilkšanas attālums</string>
<string name="pref_swipe_dist_summary">Taustiņu stūros esošo rakstzīmju attālums (%s)</string> <string name="pref_swipe_dist_summary">Taustiņu stūros esošo rakstzīmju attālums (%s)</string>
<string name="pref_long_timeout_title">Taustiņa atkārtošanās ātrums</string> <string name="pref_long_timeout_title">Taustiņa atkārtošanās ātrums</string>
<string name="pref_long_interval_title">Taustiņa atkārtošanās aizture</string> <string name="pref_long_interval_title">Taustiņa atkārtošanās aizture</string>
<string name="pref_category_vibrate">Trīcēšana</string> <string name="pref_lock_double_tap_title">Divkāršs piesitiens burtslēgam</string>
<string name="pref_lock_double_tap_summary">Tā vietā, lai ilstoši piespiestu pārveidotāju</string>
<string name="pref_category_behavior">Uzvedība</string>
<string name="pref_autocapitalisation_title">Automātiski lielie burti</string>
<string name="pref_autocapitalisation_summary">Piespiest Shift teikuma sākumā</string>
<string name="pref_switch_input_immediate_title">Pārslēgties uz pēdējo izmantoto tastatūru</string>
<string name="pref_switch_input_immediate_summary">Tastatūras pārslēgšanas taustiņa uzvedība</string>
<string name="pref_vibrate_title">Trīcēšana</string> <string name="pref_vibrate_title">Trīcēšana</string>
<string name="pref_vibrate_summary">Iespējot/atspējot taustiņa piespiešanas trīcēšanu</string> <string name="pref_vibrate_summary">Iespējot/atspējot taustiņa piespiešanas trīcēšanu</string>
<string name="pref_vibrate_duration_title">Ilgums</string>
<string name="pref_precise_repeat_title">Pielāgojama kursora kustība</string>
<string name="pref_precise_repeat_summary">Mainīt taustiņa atkārtošanās ātrumu ar pavilkšanas attālumu</string>
<string name="pref_category_style">Izskata pielāgojumi</string> <string name="pref_category_style">Izskata pielāgojumi</string>
<string name="pref_margin_bottom_title">Apakšējā apmale</string> <string name="pref_margin_bottom_title">Apakšējā apmale</string>
<string name="pref_keyboard_height_title">Tastatūras augstums</string> <string name="pref_keyboard_height_title">Tastatūras augstums</string>
@@ -32,15 +54,27 @@
<string name="pref_theme_e_dark">Tumšs</string> <string name="pref_theme_e_dark">Tumšs</string>
<string name="pref_theme_e_light">Gaišs</string> <string name="pref_theme_e_light">Gaišs</string>
<string name="pref_theme_e_black">Melns</string> <string name="pref_theme_e_black">Melns</string>
<string name="pref_theme_e_altblack">Citādi melns</string>
<string name="pref_theme_e_white">Balts</string>
<string name="pref_theme_e_epaper">ePapīrs</string>
<string name="pref_swipe_dist_e_very_short">Ļoti tuvs</string> <string name="pref_swipe_dist_e_very_short">Ļoti tuvs</string>
<string name="pref_swipe_dist_e_short">Tuvs</string> <string name="pref_swipe_dist_e_short">Tuvs</string>
<string name="pref_swipe_dist_e_default">Vidējs</string> <string name="pref_swipe_dist_e_default">Vidējs</string>
<string name="pref_swipe_dist_e_far">Tāls</string> <string name="pref_swipe_dist_e_far">Tāls</string>
<string name="pref_swipe_dist_e_very_far">Ļoti tāls</string> <string name="pref_swipe_dist_e_very_far">Ļoti tāls</string>
<string name="pref_key_horizontal_space">Līmeniskais attālums starp taustiņiem</string>
<string name="pref_key_vertical_space">Stateniskais attālums starp taustiņiem</string>
<string name="pref_category_advanced">Papildu</string>
<string name="pref_custom_layout_title">Pielāgots izkārtojums</string>
<string name="pref_custom_layout_summary">Skatīt pirmkodu. Šī iespēja nav paredzēta izmantošanai.</string>
<string name="key_action_next">Nākamais</string> <string name="key_action_next">Nākamais</string>
<string name="key_action_done">Darīts</string> <string name="key_action_done">Darīts</string>
<string name="key_action_go">Aiziet</string> <string name="key_action_go">Aiziet</string>
<string name="key_action_prev">Iepriekšējais</string> <string name="key_action_prev">Iepriekšējais</string>
<string name="key_action_search">Meklēt</string> <string name="key_action_search">Meklēt</string>
<string name="key_action_send">Sūtīt</string> <string name="key_action_send">Sūtīt</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources> </resources>

80
res/values-pl/strings.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Unexpected Keyboard (debug)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Ustawienia Unexpected Keyboard</string>
<string name="pref_portrait">W widoku pionowym</string>
<string name="pref_landscape">W widoku poziomym</string>
<string name="pref_category_layout">Układ</string>
<string name="pref_label_brightness">Dostosuj jasność znaków</string>
<string name="pref_keyboard_opacity">Nieprzezroczystość tła klawiatury</string>
<string name="pref_key_opacity">Nieprzezroczystość klawisza</string>
<string name="pref_key_activated_opacity">Nieprzezroczystość naciśniętego klawisza</string>
<string name="pref_layout_title">Zmień układ klawiatury</string>
<string name="pref_layout_e_system">Systemowy</string>
<string name="pref_layout_e_custom">Własny układ</string>
<string name="pref_accents_title">Znaki diakrytyczne</string>
<string name="pref_accents_e_all_installed">Pokaż znaki diakryt. dla wszystkich zainstalowanych języków</string>
<string name="pref_accents_e_selected">Pokaż znaki diakryt. tylko dla wybranego języka</string>
<string name="pref_accents_e_none">Ukryj znaki diakrytyczne</string>
<string name="pref_show_numpad_title">Pokaż klawiaturę numeryczną</string>
<string name="pref_show_numpad_never">Nigdy</string>
<string name="pref_show_numpad_landscape">Tylko w orientacji poziomej</string>
<string name="pref_show_numpad_always">Zawsze</string>
<string name="pref_number_row_title">Pokaż rząd cyfr</string>
<string name="pref_number_row_summary">Dodaj rząd cyfr na górze klawiatury, kiedy klaw. numeryczna jest schowana</string>
<string name="pref_numpad_layout">Układ klawiatury numerycznej</string>
<string name="pref_numpad_layout_e_high_first">Od największej cyfry</string>
<string name="pref_numpad_layout_e_low_first">Od najmniejszej cyfry</string>
<string name="pref_extra_keys_title">Dodaj klawisze do klawiatury</string>
<string name="pref_second_layout_title">Drugi układ</string>
<string name="pref_second_layout_none">Żaden</string>
<string name="pref_category_typing">Pisanie</string>
<string name="pref_swipe_dist_title">Odległość przesuwania</string>
<string name="pref_swipe_dist_summary">Odległość znaków od rogów klawiszy (%s)</string>
<string name="pref_long_timeout_title">Opóźnienie powtarzania naciśnięć klawisza</string>
<string name="pref_long_interval_title">Czas pomiędzy powtórzeniami</string>
<string name="pref_lock_double_tap_title">Naciśnij Shift podwójnie, aby włączyć caps lock</string>
<string name="pref_lock_double_tap_summary">Możesz zablokować modyfikator poprzez jego długie naciśnięcie</string>
<string name="pref_category_behavior">Zachowanie</string>
<string name="pref_autocapitalisation_title">Automatyczne wielkie litery</string>
<string name="pref_autocapitalisation_summary">Naciśnij Shift na początku zdania</string>
<string name="pref_switch_input_immediate_title">Przełącz na ostatnio używaną klawiaturę</string>
<string name="pref_switch_input_immediate_summary">Działanie klawisza przełączającego klawiaturę</string>
<string name="pref_vibrate_title">Wibracja</string>
<string name="pref_vibrate_summary">Wł./wył. wibrację przy naciśnięciu klawisza</string>
<string name="pref_category_style">Styl</string>
<string name="pref_margin_bottom_title">Margines dolny</string>
<string name="pref_keyboard_height_title">Wysokość klawiatury</string>
<string name="pref_horizontal_margin_title">Margines poziomy</string>
<string name="pref_character_size_title">Wielkość znaku</string>
<string name="pref_character_size_summary">Wielkość znaków widocznych na klawiaturze (%.2fx)</string>
<string name="pref_theme">Motyw</string>
<string name="pref_theme_e_system">Systemowy</string>
<string name="pref_theme_e_dark">Ciemny</string>
<string name="pref_theme_e_light">Jasny</string>
<string name="pref_theme_e_black">Czarny</string>
<string name="pref_theme_e_altblack">Alternatywny Czarny</string>
<string name="pref_theme_e_white">Biały</string>
<string name="pref_theme_e_epaper">e-paper</string>
<string name="pref_swipe_dist_e_very_short">Bardzo mała</string>
<string name="pref_swipe_dist_e_short">Mała</string>
<string name="pref_swipe_dist_e_default">Normalna</string>
<string name="pref_swipe_dist_e_far">Duża</string>
<string name="pref_swipe_dist_e_very_far">Bardzo duża</string>
<string name="pref_key_horizontal_space">Odległość pomiędzy klawiszami w poziomie</string>
<string name="pref_key_vertical_space">Odległość pomiędzy klawiszami w pionie</string>
<string name="pref_category_advanced">Zaawansowane</string>
<string name="pref_custom_layout_title">Własny układ</string>
<string name="pref_custom_layout_summary">Zobacz kod źródłowy. Ta opcja nie jest przeznaczona do użycia.</string>
<string name="key_action_next">Dalej</string>
<string name="key_action_done">OK</string>
<string name="key_action_go">Przejdź</string>
<string name="key_action_prev">Wstecz</string>
<string name="key_action_search">Szukaj</string>
<string name="key_action_send">Wyślij</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

80
res/values-pt/strings.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Teclado Unexpected</string>
<string name="app_name" product="default">Teclado Unexpected</string>
<string name="settings_activity_label">Configurar Teclado Unexpected</string>
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
<string name="pref_category_layout">Layout</string>
<!-- <string name="pref_label_brightness">Adjust label brightness</string> -->
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
<string name="pref_layout_title">Mudar layout do teclado</string>
<string name="pref_layout_e_system">Mesmo do sistema</string>
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
<string name="pref_accents_title">Acentos</string>
<string name="pref_accents_e_all_installed">Mostrar acentos para todos os idiomas instalados</string>
<string name="pref_accents_e_selected">Mostrar acentos só para o idioma selecionado</string>
<string name="pref_accents_e_none">Ocultar acentos</string>
<!-- <string name="pref_show_numpad_title">Show NumPad</string> -->
<!-- <string name="pref_show_numpad_never">Never</string> -->
<!-- <string name="pref_show_numpad_landscape">Only in landscape mode</string> -->
<!-- <string name="pref_show_numpad_always">Always</string> -->
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
<!-- <string name="pref_extra_keys_title">Add keys to the keyboard</string> -->
<!-- <string name="pref_second_layout_title">Secondary layout</string> -->
<string name="pref_second_layout_none">Nenhum</string>
<string name="pref_category_typing">Digitação</string>
<string name="pref_swipe_dist_title">Distância a deslizar</string>
<string name="pref_swipe_dist_summary">Distância até acionar os cantos das teclas (%s)</string>
<string name="pref_long_timeout_title">Tempo até repetir tecla</string>
<string name="pref_long_interval_title">Intervalo de repetição de tecla</string>
<string name="pref_lock_double_tap_title">Tecle duas vezes no shift para caixa alta</string>
<string name="pref_lock_double_tap_summary">Ao invés de apertar e segurar por um tempo</string>
<!-- <string name="pref_category_behavior">Behavior</string> -->
<string name="pref_autocapitalisation_title">Maiusculização automática</string>
<string name="pref_autocapitalisation_summary">Aciona o shift no início de cada frase</string>
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">Vibração</string>
<string name="pref_vibrate_summary">Ativar/desativar vibração ao digitar</string>
<string name="pref_category_style">Estilo</string>
<string name="pref_margin_bottom_title">Margem inferior</string>
<string name="pref_keyboard_height_title">Altura do teclado</string>
<string name="pref_horizontal_margin_title">Margem horizontal</string>
<string name="pref_character_size_title">Tamanho dos indicadores</string>
<string name="pref_character_size_summary">Tamanho dos caracteres visíveis no teclado (%.2fx)</string>
<string name="pref_theme">Tema</string>
<string name="pref_theme_e_system">Mesmo do sistema</string>
<string name="pref_theme_e_dark">Escuro</string>
<string name="pref_theme_e_light">Claro</string>
<string name="pref_theme_e_black">Preto</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<!-- <string name="pref_theme_e_white">White</string> -->
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">Muito curto</string>
<string name="pref_swipe_dist_e_short">Curto</string>
<string name="pref_swipe_dist_e_default">Normal</string>
<string name="pref_swipe_dist_e_far">Longo</string>
<string name="pref_swipe_dist_e_very_far">Muito longo</string>
<string name="pref_key_horizontal_space">Distância horizontal entre teclas</string>
<string name="pref_key_vertical_space">Distância vertical entre teclas</string>
<!-- <string name="pref_category_advanced">Advanced</string> -->
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
<!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> -->
<string name="key_action_next">Próximo</string>
<string name="key_action_done">Pronto</string>
<string name="key_action_go">Ir</string>
<string name="key_action_prev">Anterior</string>
<string name="key_action_search">Buscar</string>
<string name="key_action_send">Enviar</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

80
res/values-ru/strings.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Unexpected Keyboard (отладка)</string>
<!-- <string name="app_name" product="default">Unexpected Keyboard</string> -->
<string name="settings_activity_label">Unexpected Keyboard Настройки</string>
<string name="pref_portrait">В портретном режиме</string>
<string name="pref_landscape">В ландшафтном режиме</string>
<string name="pref_category_layout">Расположение</string>
<string name="pref_label_brightness">Изменить яркость клавиатуры</string>
<string name="pref_keyboard_opacity">Изменить прозрачность фона</string>
<string name="pref_key_opacity">Изменить прозрачность клавиш</string>
<string name="pref_key_activated_opacity">Изменить прозрачность нажатой клавиши</string>
<string name="pref_layout_title">Изменить раскладку клавиатуры</string>
<string name="pref_layout_e_system">Системные настройки</string>
<string name="pref_layout_e_custom">Пользовательская раскладка</string>
<string name="pref_accents_title">Акцент</string>
<string name="pref_accents_e_all_installed">Показывать акценты для всех установленных языков</string>
<string name="pref_accents_e_selected">Показывать акценты только для выбранного языка</string>
<string name="pref_accents_e_none">Скрыть акценты</string>
<string name="pref_show_numpad_title">Показывать NumPad</string>
<string name="pref_show_numpad_never">Никогда</string>
<string name="pref_show_numpad_landscape">Только в ландшафтном режиме</string>
<string name="pref_show_numpad_always">Всегда</string>
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<string name="pref_numpad_layout">NumPad раскладка</string>
<string name="pref_numpad_layout_e_high_first">Старшие цифры сверху</string>
<string name="pref_numpad_layout_e_low_first">Младшие цифры сверху</string>
<string name="pref_extra_keys_title">Добавить клавиши на клавиатуру</string>
<string name="pref_second_layout_title">Дополнительная раскладка</string>
<string name="pref_second_layout_none">Нет</string>
<string name="pref_category_typing">Печать</string>
<string name="pref_swipe_dist_title">Расстояние пролистывания</string>
<string name="pref_swipe_dist_summary">Расстояние между символами в углах клавиш (%s)</string>
<string name="pref_long_timeout_title">Тайм-аут повтора клавиш</string>
<string name="pref_long_interval_title">Интервал повтора клавиш</string>
<string name="pref_lock_double_tap_title">Двойное нажатие на Shift активирует Caps lock</string>
<string name="pref_lock_double_tap_summary">Вы можете активировать модификатор, удерживая клавишу</string>
<!-- <string name="pref_category_behavior">Behavior</string> -->
<string name="pref_autocapitalisation_title">Автоматическая смена регистра</string>
<string name="pref_autocapitalisation_summary">Автонажатие Shift в начале каждого предложения</string>
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">Вибрация</string>
<string name="pref_vibrate_summary">Включение/выключение вибрации при нажатии клавиши</string>
<string name="pref_category_style">Стиль</string>
<string name="pref_margin_bottom_title">Нижняя граница поля</string>
<string name="pref_keyboard_height_title">Высота клавиатуры</string>
<string name="pref_horizontal_margin_title">Горизонтальное поле</string>
<string name="pref_character_size_title">Размер символов</string>
<string name="pref_character_size_summary">Размер символов, отображаемых на клавиатуре (%.2fx)</string>
<string name="pref_theme">Тема</string>
<string name="pref_theme_e_system">Системные настройки</string>
<string name="pref_theme_e_dark">Темная</string>
<string name="pref_theme_e_light">Светлая</string>
<string name="pref_theme_e_black">Черная</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<string name="pref_theme_e_white">Белая</string>
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">Очень близко</string>
<string name="pref_swipe_dist_e_short">Близко</string>
<string name="pref_swipe_dist_e_default">Нормально</string>
<string name="pref_swipe_dist_e_far">Далеко</string>
<string name="pref_swipe_dist_e_very_far">Очень далеко</string>
<string name="pref_key_horizontal_space">Горизонтальное расстояние между клавишами</string>
<string name="pref_key_vertical_space">Расстояние по вертикали между клавишами</string>
<string name="pref_category_advanced">Расширенные настройки</string>
<string name="pref_custom_layout_title">Пользовательская раскладка</string>
<string name="pref_custom_layout_summary">Откройте исходный код. Эта параметр не предназначен для использования.</string>
<string name="key_action_next">Далее</string>
<string name="key_action_done">Ввод</string>
<string name="key_action_go">Go</string>
<string name="key_action_prev">Предыдущий</string>
<string name="key_action_search">Поиск</string>
<string name="key_action_send">Отправить</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

80
res/values-tr/strings.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Unexpected Keyboard (debug)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Unexpected Keyboard Ayarları</string>
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
<string name="pref_category_layout">Düzen</string>
<!-- <string name="pref_label_brightness">Adjust label brightness</string> -->
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
<string name="pref_layout_title">Klavye Düzenini Değiştir</string>
<string name="pref_layout_e_system">Sistem Ayarları</string>
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
<string name="pref_accents_title">Aksanlar</string>
<string name="pref_accents_e_all_installed">Yüklü tüm dillerin aksanlarını göster</string>
<string name="pref_accents_e_selected">Sadece seçili dilin aksanlarını göster</string>
<string name="pref_accents_e_none">Aksanları gizle</string>
<!-- <string name="pref_show_numpad_title">Show NumPad</string> -->
<!-- <string name="pref_show_numpad_never">Never</string> -->
<!-- <string name="pref_show_numpad_landscape">Only in landscape mode</string> -->
<!-- <string name="pref_show_numpad_always">Always</string> -->
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
<!-- <string name="pref_extra_keys_title">Add keys to the keyboard</string> -->
<!-- <string name="pref_second_layout_title">Secondary layout</string> -->
<string name="pref_second_layout_none">Hiçbiri</string>
<string name="pref_category_typing">Yazma</string>
<string name="pref_swipe_dist_title">Kaydırma mesafesi</string>
<string name="pref_swipe_dist_summary">Tuşların köşelerindeki karakterlerin uzaklıkları (%s)</string>
<string name="pref_long_timeout_title">Tuş tekrarlama beklemesi</string>
<string name="pref_long_interval_title">Tuş tekrarlama aralığı</string>
<!-- <string name="pref_lock_double_tap_title">Double tap on shift for caps lock</string> -->
<!-- <string name="pref_lock_double_tap_summary">You can lock any modifier by holding it</string> -->
<!-- <string name="pref_category_behavior">Behavior</string> -->
<!-- <string name="pref_autocapitalisation_title">Automatic capitalisation</string> -->
<!-- <string name="pref_autocapitalisation_summary">Press Shift at the beginning of a sentence</string> -->
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">Titreşim</string>
<string name="pref_vibrate_summary">Tuşa basıldığında titreşimi etkinleştir</string>
<string name="pref_category_style">Stil</string>
<string name="pref_margin_bottom_title">Alt boşluk</string>
<string name="pref_keyboard_height_title">Klavye yüksekliği</string>
<string name="pref_horizontal_margin_title">Yatay boşluk</string>
<string name="pref_character_size_title">Etiket boyutu</string>
<string name="pref_character_size_summary">Klavye üzerinde gösterilecek karakter boyutu (%.2fx)</string>
<string name="pref_theme">Tema</string>
<string name="pref_theme_e_system">Sistem Ayarları</string>
<string name="pref_theme_e_dark">Koyu</string>
<string name="pref_theme_e_light">ık</string>
<string name="pref_theme_e_black">Siyah</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<!-- <string name="pref_theme_e_white">White</string> -->
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">Çok kısa</string>
<string name="pref_swipe_dist_e_short">Kısa</string>
<string name="pref_swipe_dist_e_default">Normal</string>
<string name="pref_swipe_dist_e_far">Uzun</string>
<string name="pref_swipe_dist_e_very_far">Çok uzun</string>
<string name="pref_key_horizontal_space">Tuşlar arasındaki yatay boşluk</string>
<string name="pref_key_vertical_space">Tuşlar arasındaki dikey boşluk</string>
<!-- <string name="pref_category_advanced">Advanced</string> -->
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
<!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> -->
<string name="key_action_next">İleri</string>
<string name="key_action_done">Bitti</string>
<string name="key_action_go">İlerle</string>
<string name="key_action_prev">Geri</string>
<string name="key_action_search">Ara</string>
<string name="key_action_send">Gönder</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

82
res/values-vi/strings.xml Normal file
View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Unexpected Keyboard (gỡ lỗi)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Cài đặt Unexpected Keyboard</string>
<string name="pref_portrait">Trong chế độ chân dung</string>
<string name="pref_landscape">Trong chế độ phong cảnh</string>
<string name="pref_category_layout">Bố cục</string>
<string name="pref_label_brightness">Tùy chỉnh độ sáng của phím</string>
<string name="pref_keyboard_opacity">Tùy chỉnh độ trong suốt của bàn phím</string>
<string name="pref_key_opacity">Tùy chỉnh độ trong suốt của phím</string>
<string name="pref_key_activated_opacity">Tùy chỉnh độ trong suốt của phím khi nhấn</string>
<string name="pref_layout_title">Thay đổi bố cục bàn phím</string>
<string name="pref_layout_e_system">Hệ thống</string>
<string name="pref_layout_e_custom">Tùy chỉnh bố cục</string>
<string name="pref_accents_title">Dấu phụ</string>
<string name="pref_accents_e_all_installed">Hiển thị cho các ngôn ngữ đã cài đặt</string>
<string name="pref_accents_e_selected">Chỉ hiển thị cho các ngôn ngữ đã chọn</string>
<string name="pref_accents_e_none">
Ẩn dấu phụ
</string>
<string name="pref_show_numpad_title">Hiện NumPad</string>
<string name="pref_show_numpad_never">Không bao giờ</string>
<string name="pref_show_numpad_landscape">Chỉ trong chế độ phong cảnh</string>
<string name="pref_show_numpad_always">Luôn luôn</string>
<string name="pref_number_row_title">Hiện số dòng</string>
<string name="pref_number_row_summary">Hiện số dòng trên đầu bàn phím khi NumPad ẩn</string>
<string name="pref_numpad_layout">Bố cục NumPad</string>
<string name="pref_numpad_layout_e_high_first">Số lớn nhất trước</string>
<string name="pref_numpad_layout_e_low_first">Số nhỏ nhất trước</string>
<string name="pref_extra_keys_title">Thêm phím vào bàn phím</string>
<string name="pref_second_layout_title">Bố cục phụ</string>
<string name="pref_second_layout_none">Không</string>
<string name="pref_category_typing"></string>
<string name="pref_swipe_dist_title">Khoảng cách vuốt</string>
<string name="pref_swipe_dist_summary">Khoảng cách giữa các ký tự ở góc phím (%s)</string>
<string name="pref_long_timeout_title">Thời hạn lặp phím</string>
<string name="pref_long_interval_title">Khoảng thời gian lặp phím</string>
<string name="pref_lock_double_tap_title">Nhấn hai lần Shift để bật Caps Lock</string>
<string name="pref_lock_double_tap_summary">Bạn có thể khóa phím hỗ trợ bằng cách giữ vào nó</string>
<!-- <string name="pref_category_behavior">Behavior</string> -->
<string name="pref_autocapitalisation_title">Tự động viết hoa</string>
<string name="pref_autocapitalisation_summary">Nhấn Shift ở đầu câu</string>
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">Sự rung</string>
<string name="pref_vibrate_summary">Bật/tắt rung khi nhấn</string>
<string name="pref_category_style">Kiểu cách</string>
<string name="pref_margin_bottom_title">Căn lề dưới</string>
<string name="pref_keyboard_height_title">Chiều cao bàn phím</string>
<string name="pref_horizontal_margin_title">Căn lề chiều ngang</string>
<string name="pref_character_size_title">Kích cỡ ký tự phím</string>
<string name="pref_character_size_summary">Kích cỡ các ký tự hiển thị trên bàn phím (%.2fx)</string>
<string name="pref_theme">Chủ đề</string>
<string name="pref_theme_e_system">Hệ thống</string>
<string name="pref_theme_e_dark">Tối</string>
<string name="pref_theme_e_light">Sáng</string>
<string name="pref_theme_e_black">Đen</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<string name="pref_theme_e_white">Trắng</string>
<string name="pref_theme_e_epaper">ePaper</string>
<string name="pref_swipe_dist_e_very_short">Rất gần</string>
<string name="pref_swipe_dist_e_short">Gần</string>
<string name="pref_swipe_dist_e_default">Trungbình</string>
<string name="pref_swipe_dist_e_far">Xa</string>
<string name="pref_swipe_dist_e_very_far">Rất xa</string>
<string name="pref_key_horizontal_space">Khoảng cách giữa các phím theo chiều ngang</string>
<string name="pref_key_vertical_space">Khoảng cách giữa các phím theo chiều dọc</string>
<string name="pref_category_advanced">Nâng cao</string>
<string name="pref_custom_layout_title">Tùy chỉnh bố cục</string>
<string name="pref_custom_layout_summary">Hãy xem mã nguồn. Lựa chọn này không có mục đích sử dụng.</string>
<string name="key_action_next">Tiếp</string>
<string name="key_action_done">Xong</string>
<string name="key_action_go">Đi</string>
<string name="key_action_prev">Trước</string>
<string name="key_action_search">Tìm</string>
<string name="key_action_send">Gửi</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" product="debug">Unexpected Keyboard (debug)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Unexpected Keyboard 设置</string>
<!-- <string name="pref_portrait">In portrait mode</string> -->
<!-- <string name="pref_landscape">In landscape mode</string> -->
<string name="pref_category_layout">布局</string>
<string name="pref_label_brightness">调整字母亮度</string>
<!-- <string name="pref_keyboard_opacity">Adjust keyboard background opacity</string> -->
<!-- <string name="pref_key_opacity">Adjust key opacity</string> -->
<!-- <string name="pref_key_activated_opacity">Adjust pressed key opacity</string> -->
<string name="pref_layout_title">改变键盘布局</string>
<string name="pref_layout_e_system">系统设置</string>
<!-- <string name="pref_layout_e_custom">Custom layout</string> -->
<string name="pref_accents_title">声调</string>
<string name="pref_accents_e_all_installed">显示所有安装的语言的声调符号</string>
<string name="pref_accents_e_selected">只显示选择的语言的声调符号</string>
<string name="pref_accents_e_none">隐藏声调符号</string>
<string name="pref_show_numpad_title">显示数字小键盘</string>
<string name="pref_show_numpad_never">从不</string>
<string name="pref_show_numpad_landscape">只在横屏显示</string>
<string name="pref_show_numpad_always">一直显示</string>
<!-- <string name="pref_number_row_title">Show number row</string> -->
<!-- <string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string> -->
<!-- <string name="pref_numpad_layout">NumPad layout</string> -->
<!-- <string name="pref_numpad_layout_e_high_first">High digits first</string> -->
<!-- <string name="pref_numpad_layout_e_low_first">Low digits first</string> -->
<string name="pref_extra_keys_title">选择要显示的按键</string>
<string name="pref_second_layout_title">第二键盘布局</string>
<string name="pref_second_layout_none"></string>
<string name="pref_category_typing">输入</string>
<string name="pref_swipe_dist_title">滑动触发距离</string>
<string name="pref_swipe_dist_summary">输入按键四角的符号需要滑动的距离 (%s)</string>
<string name="pref_long_timeout_title">长按到开始重复输入的时间</string>
<string name="pref_long_interval_title">长按后每次重复输入的时间间隔</string>
<string name="pref_lock_double_tap_title">双击Shift键锁定大写</string>
<string name="pref_lock_double_tap_summary">任何时候都可以长按修改键以锁定</string>
<!-- <string name="pref_category_behavior">Behavior</string> -->
<string name="pref_autocapitalisation_title">句首自动大写</string>
<string name="pref_autocapitalisation_summary">在句子的开头自动按下Shift</string>
<!-- <string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string> -->
<!-- <string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string> -->
<string name="pref_vibrate_title">振动</string>
<string name="pref_vibrate_summary">启用或者禁用按下按键时振动</string>
<string name="pref_category_style">样式</string>
<string name="pref_margin_bottom_title">键盘下边距</string>
<string name="pref_keyboard_height_title">键盘高度</string>
<string name="pref_horizontal_margin_title">键盘左右边距</string>
<string name="pref_character_size_title">字符大小</string>
<string name="pref_character_size_summary">按键上显示的字符的大小 (%.2fx)</string>
<string name="pref_theme">主题</string>
<string name="pref_theme_e_system">跟随系统设置</string>
<string name="pref_theme_e_dark">暗色</string>
<string name="pref_theme_e_light">亮色</string>
<string name="pref_theme_e_black">黑色</string>
<!-- <string name="pref_theme_e_altblack">Alternative Black</string> -->
<string name="pref_theme_e_white">白色</string>
<!-- <string name="pref_theme_e_epaper">ePaper</string> -->
<string name="pref_swipe_dist_e_very_short">非常短</string>
<string name="pref_swipe_dist_e_short"></string>
<string name="pref_swipe_dist_e_default">中(默认)</string>
<string name="pref_swipe_dist_e_far"></string>
<string name="pref_swipe_dist_e_very_far">非常长</string>
<string name="pref_key_horizontal_space">按键的左右边距</string>
<string name="pref_key_vertical_space">按键的上下边距</string>
<!-- <string name="pref_category_advanced">Advanced</string> -->
<!-- <string name="pref_custom_layout_title">Custom layout</string> -->
<!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> -->
<string name="key_action_next">下一项</string>
<string name="key_action_done">完成</string>
<string name="key_action_go">前往</string>
<string name="key_action_prev">前一项</string>
<string name="key_action_search">搜索</string>
<string name="key_action_send">发送</string>
<!-- <string name="launcher_button_imesettings">Enable keyboard</string> -->
<!-- <string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string> -->
<!-- <string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string> -->
<!-- <string name="launcher_tryhere">After enabling, you can try the keyboard here:</string> -->
</resources>

View File

@@ -1,37 +1,103 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string-array name="pref_layout_values"> <string-array name="pref_layout_values">
<item>system</item> <item>none</item>
<item>azerty</item> <item>azerty</item>
<item>qwerty</item> <item>qwerty</item>
<item>qwerty_pt</item>
<item>qwerty_es</item> <item>qwerty_es</item>
<item>qwerty_el</item>
<item>qwerty_ko</item>
<item>qwerty_lv</item> <item>qwerty_lv</item>
<item>qwerty_no</item>
<item>qwerty_sv_se</item>
<item>qwerty_hu</item>
<item>qwerty_tr</item>
<item>qwerty_pl</item>
<item>qwerty_vi</item>
<item>ru_jcuken</item> <item>ru_jcuken</item>
<item>qwertz</item> <item>qwertz</item>
<item>qwertz_cs</item>
<item>qwertz_de</item>
<item>qwertz_hu</item>
<item>qwertz_sk</item>
<item>bgph1</item> <item>bgph1</item>
<item>dvorak</item> <item>dvorak</item>
<item>colemak</item>
<item>neo2</item>
<item>bone</item>
<item>jcuken_ua</item>
<item>bangla</item>
<item>devanagari_1</item>
<item>devanagari_2</item>
<item>he_il_1452_1</item>
<item>he_il_1452_2</item>
<item>ar_pc</item>
<item>ar_alt</item>
<item>custom</item>
</string-array> </string-array>
<string-array name="pref_layout_entries"> <string-array name="pref_layout_entries">
<item>@string/pref_layout_e_system</item> <item>None</item>
<item>AZERTY</item> <item>AZERTY</item>
<item>QWERTY</item> <item>QWERTY</item>
<item>QWERTY (Brasileiro)</item>
<item>QWERTY (Español)</item> <item>QWERTY (Español)</item>
<item>QWERTY (Greek)</item>
<item>QWERTY (Korean)</item>
<item>QWERTY (Latvian)</item> <item>QWERTY (Latvian)</item>
<item>QWERTY (Norwegian)</item>
<item>QWERTY (Swedish)</item>
<item>QWERTY (Hungarian)</item>
<item>QWERTY (Türkçe)</item>
<item>QWERTY (Polski)</item>
<item>QWERTY (Vietnamese)</item>
<item>ЙЦУКЕН (Русский)</item> <item>ЙЦУКЕН (Русский)</item>
<item>QWERTZ</item> <item>QWERTZ</item>
<item>QWERTZ (Czech)</item>
<item>QWERTZ (Deutsch)</item>
<item>QWERTZ (Hungarian)</item>
<item>QWERTZ (Slovak)</item>
<item>Bulgarian (Phonetic Traditional)</item> <item>Bulgarian (Phonetic Traditional)</item>
<item>Dvorak</item> <item>Dvorak</item>
<item>Colemak</item>
<item>Neo 2</item>
<item>Bone</item>
<item>ЙЦУКЕН (Українська)</item>
<item>বাংলা</item>
<item>देवनागरी (हिंदी)-1</item>
<item>देवनागरी (हिंदी)-2</item>
<item>Hebrew SI-1452-1</item>
<item>Hebrew SI-1452-2</item>
<item>Arabic PC</item>
<item>Arabic ALT</item>
<item>@string/pref_layout_e_custom</item>
</string-array> </string-array>
<string-array name="pref_accents_entries"> <string-array name="pref_accents_entries">
<item>@string/pref_accents_e_all_installed</item> <item>@string/pref_accents_e_all_installed</item>
<item>@string/pref_accents_e_selected</item> <item>@string/pref_accents_e_selected</item>
<item>@string/pref_accents_e_all</item>
<item>@string/pref_accents_e_none</item> <item>@string/pref_accents_e_none</item>
</string-array> </string-array>
<string-array name="pref_show_numpad_values">
<item>never</item>
<item>landscape</item>
<item>always</item>
</string-array>
<string-array name="pref_show_numpad_entries">
<item>@string/pref_show_numpad_never</item>
<item>@string/pref_show_numpad_landscape</item>
<item>@string/pref_show_numpad_always</item>
</string-array>
<string-array name="pref_numpad_layout_values">
<item>high_first</item>
<item>low_first</item>
</string-array>
<string-array name="pref_numpad_layout_entries">
<item>@string/pref_numpad_layout_e_high_first</item>
<item>@string/pref_numpad_layout_e_low_first</item>
</string-array>
<string-array name="pref_accents_values"> <string-array name="pref_accents_values">
<item>1</item> <item>1</item>
<item>2</item> <item>2</item>
<item>3</item>
<item>4</item> <item>4</item>
</string-array> </string-array>
<string-array name="pref_theme_entries"> <string-array name="pref_theme_entries">
@@ -39,12 +105,18 @@
<item>@string/pref_theme_e_dark</item> <item>@string/pref_theme_e_dark</item>
<item>@string/pref_theme_e_light</item> <item>@string/pref_theme_e_light</item>
<item>@string/pref_theme_e_black</item> <item>@string/pref_theme_e_black</item>
<item>@string/pref_theme_e_altblack</item>
<item>@string/pref_theme_e_white</item>
<item>@string/pref_theme_e_epaper</item>
</string-array> </string-array>
<string-array name="pref_theme_values"> <string-array name="pref_theme_values">
<item>system</item> <item>system</item>
<item>dark</item> <item>dark</item>
<item>light</item> <item>light</item>
<item>black</item> <item>black</item>
<item>altblack</item>
<item>white</item>
<item>epaper</item>
</string-array> </string-array>
<string-array name="pref_swipe_dist_entries"> <string-array name="pref_swipe_dist_entries">
<item>@string/pref_swipe_dist_e_very_short</item> <item>@string/pref_swipe_dist_e_very_short</item>

9
res/values/attrs.xml Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ExtraKeyCheckBoxPreference">
<attr name="index" format="integer"/>
</declare-styleable>
<declare-styleable name="LayoutListPreference">
<attr name="defaultString" format="string"/>
</declare-styleable>
</resources>

View File

@@ -1,26 +1,48 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Unexpected Keyboard</string> <string name="app_name" product="debug">Unexpected Keyboard (debug)</string>
<string name="app_name" product="default">Unexpected Keyboard</string>
<string name="settings_activity_label">Unexpected Keyboard Settings</string> <string name="settings_activity_label">Unexpected Keyboard Settings</string>
<string name="pref_portrait">In portrait mode</string>
<string name="pref_landscape">In landscape mode</string>
<string name="pref_category_layout">Layout</string> <string name="pref_category_layout">Layout</string>
<string name="pref_label_brightness">Adjust label brightness</string>
<string name="pref_keyboard_opacity">Adjust keyboard background opacity</string>
<string name="pref_key_opacity">Adjust key opacity</string>
<string name="pref_key_activated_opacity">Adjust pressed key opacity</string>
<string name="pref_layout_title">Change keyboard layout</string> <string name="pref_layout_title">Change keyboard layout</string>
<string name="pref_layout_e_system">System settings</string> <string name="pref_layout_e_system">System settings</string>
<string name="pref_layout_e_custom">Custom layout</string>
<string name="pref_accents_title">Accents</string> <string name="pref_accents_title">Accents</string>
<string name="pref_accents_e_all_installed">Show accents for all installed languages</string> <string name="pref_accents_e_all_installed">Show accents for all installed languages</string>
<string name="pref_accents_e_selected">Only show accents for the selected language</string> <string name="pref_accents_e_selected">Only show accents for the selected language</string>
<string name="pref_accents_e_all">Show all accents</string>
<string name="pref_accents_e_none">Hide accents</string> <string name="pref_accents_e_none">Hide accents</string>
<string name="pref_show_numpad_title">Show NumPad</string>
<string name="pref_show_numpad_never">Never</string>
<string name="pref_show_numpad_landscape">Only in landscape mode</string>
<string name="pref_show_numpad_always">Always</string>
<string name="pref_number_row_title">Show number row</string>
<string name="pref_number_row_summary">Add a number row at the top of the keyboard when the numpad is hidden</string>
<string name="pref_numpad_layout">NumPad layout</string>
<string name="pref_numpad_layout_e_high_first">High digits first</string>
<string name="pref_numpad_layout_e_low_first">Low digits first</string>
<string name="pref_extra_keys_title">Add keys to the keyboard</string>
<string name="pref_second_layout_title">Secondary layout</string>
<string name="pref_second_layout_none">None</string>
<string name="pref_category_typing">Typing</string> <string name="pref_category_typing">Typing</string>
<string name="pref_swipe_dist_title">Swiping distance</string> <string name="pref_swipe_dist_title">Swiping distance</string>
<string name="pref_swipe_dist_summary">Distance of characters in the corners of the keys (%s)</string> <string name="pref_swipe_dist_summary">Distance of characters in the corners of the keys (%s)</string>
<string name="pref_long_timeout_title">Key repeat timeout</string> <string name="pref_long_timeout_title">Key repeat timeout</string>
<string name="pref_long_interval_title">Key repeat interval</string> <string name="pref_long_interval_title">Key repeat interval</string>
<string name="pref_category_vibrate">Vibration</string> <string name="pref_lock_double_tap_title">Double tap on shift for caps lock</string>
<string name="pref_lock_double_tap_summary">You can lock any modifier by holding it</string>
<string name="pref_category_behavior">Behavior</string>
<string name="pref_autocapitalisation_title">Automatic capitalisation</string>
<string name="pref_autocapitalisation_summary">Press Shift at the beginning of a sentence</string>
<string name="pref_switch_input_immediate_title">Switch to the last used keyboard</string>
<string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string>
<string name="pref_vibrate_title">Vibration</string> <string name="pref_vibrate_title">Vibration</string>
<string name="pref_vibrate_summary">Enable/disable vibration on keypress</string> <string name="pref_vibrate_summary">Enable/disable vibration on keypress</string>
<string name="pref_vibrate_duration_title">Duration</string>
<string name="pref_precise_repeat_title">Precise cursor movements</string>
<string name="pref_precise_repeat_summary">Modulate key repeat speed by swiping more or less</string>
<string name="pref_category_style">Style</string> <string name="pref_category_style">Style</string>
<string name="pref_margin_bottom_title">Margin bottom</string> <string name="pref_margin_bottom_title">Margin bottom</string>
<string name="pref_keyboard_height_title">Keyboard height</string> <string name="pref_keyboard_height_title">Keyboard height</string>
@@ -32,6 +54,9 @@
<string name="pref_theme_e_dark">Dark</string> <string name="pref_theme_e_dark">Dark</string>
<string name="pref_theme_e_light">Light</string> <string name="pref_theme_e_light">Light</string>
<string name="pref_theme_e_black">Black</string> <string name="pref_theme_e_black">Black</string>
<string name="pref_theme_e_altblack">Alternative Black</string>
<string name="pref_theme_e_white">White</string>
<string name="pref_theme_e_epaper">ePaper</string>
<string name="pref_swipe_dist_e_very_short">Very short</string> <string name="pref_swipe_dist_e_very_short">Very short</string>
<string name="pref_swipe_dist_e_short">Short</string> <string name="pref_swipe_dist_e_short">Short</string>
<string name="pref_swipe_dist_e_default">Normal</string> <string name="pref_swipe_dist_e_default">Normal</string>
@@ -39,10 +64,17 @@
<string name="pref_swipe_dist_e_very_far">Very far</string> <string name="pref_swipe_dist_e_very_far">Very far</string>
<string name="pref_key_horizontal_space">Horizontal spacing between the keys</string> <string name="pref_key_horizontal_space">Horizontal spacing between the keys</string>
<string name="pref_key_vertical_space">Vertical spacing between the keys</string> <string name="pref_key_vertical_space">Vertical spacing between the keys</string>
<string name="pref_category_advanced">Advanced</string>
<string name="pref_custom_layout_title">Custom layout</string>
<string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string>
<string name="key_action_next">Next</string> <string name="key_action_next">Next</string>
<string name="key_action_done">Done</string> <string name="key_action_done">Done</string>
<string name="key_action_go">Go</string> <string name="key_action_go">Go</string>
<string name="key_action_prev">Prev</string> <string name="key_action_prev">Prev</string>
<string name="key_action_search">Search</string> <string name="key_action_search">Search</string>
<string name="key_action_send">Send</string> <string name="key_action_send">Send</string>
<string name="launcher_button_imesettings">Enable keyboard</string>
<string name="launcher_description">This application is a virtual keyboard. Go to the system settings by clicking on the button below and enable Unexpected-Keyboard.</string>
<string name="launcher_sourcecode">This is an free and open source application. You can find the source code or report bugs on <a href="https://github.com/Julow/Unexpected-Keyboard/">Github</a>.</string>
<string name="launcher_tryhere">After enabling, you can try the keyboard here:</string>
</resources> </resources>

View File

@@ -17,9 +17,18 @@
<item name="android:textColor">?attr/emoji_key_text</item> <item name="android:textColor">?attr/emoji_key_text</item>
<item name="android:textSize">18dp</item> <item name="android:textSize">18dp</item>
</style> </style>
<!-- Passed to TextView.setTextAppearance -->
<style name="emojiGridButton"> <style name="emojiGridButton">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:gravity">center</item>
<item name="android:textSize">@dimen/emoji_text_size</item> <item name="android:textSize">@dimen/emoji_text_size</item>
<item name="android:textColor">?attr/emoji_color</item> <item name="android:textColor">?attr/emoji_color</item>
</style> </style>
<style name="paragraph">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginVertical">8dp</item>
<item name="android:layout_marginHorizontal">16dp</item>
<item name="android:layout_gravity">center</item>
</style>
</resources> </resources>

View File

@@ -11,62 +11,130 @@
<attr name="colorLabel" format="color"/> <attr name="colorLabel" format="color"/>
<attr name="colorLabelActivated" format="color"/> <attr name="colorLabelActivated" format="color"/>
<attr name="colorLabelLocked" format="color"/> <attr name="colorLabelLocked" format="color"/>
<attr name="secondaryLightOffset" format="float"/>
<!-- Corner labels --> <!-- Corner labels -->
<attr name="colorSubLabel" format="color"/> <attr name="colorSubLabel" format="color"/>
<!-- Dimens --> <!-- Borders -->
<attr name="keyBorderRadius" format="dimension"/> <attr name="keyBorderRadius" format="dimension"/>
<attr name="keyBorderWidth" format="dimension"/>
<attr name="keyBorderWidthActivated" format="dimension"/>
<attr name="keyBorderColorLeft" format="color"/>
<attr name="keyBorderColorTop" format="color"/>
<attr name="keyBorderColorRight" format="color"/>
<attr name="keyBorderColorBottom" format="color"/>
<!-- Emoji panel --> <!-- Emoji panel -->
<attr name="emoji_button_bg" type="color" format="color"/> <attr name="emoji_button_bg" type="color" format="color"/>
<attr name="emoji_color" type="color" format="color"/> <attr name="emoji_color" type="color" format="color"/>
<attr name="emoji_key_bg" type="color" format="color"/> <attr name="emoji_key_bg" type="color" format="color"/>
<attr name="emoji_key_text" type="color" format="color"/> <attr name="emoji_key_text" type="color" format="color"/>
<!-- System integration -->
<attr name="navigationBarColor" format="color"/>
<attr name="windowLightNavigationBar" format="boolean"/>
</declare-styleable> </declare-styleable>
<style name="Dark"> <style name="BaseTheme">
<item name="android:isLightTheme">false</item>
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="navigationBarColor">?attr/colorKeyboard</item>
<item name="windowLightNavigationBar">?attr/android:isLightTheme</item>
<item name="keyBorderRadius">5dp</item>
<item name="keyBorderWidth">0dp</item>
<item name="keyBorderWidthActivated">0dp</item>
<item name="emoji_key_bg" type="color">?attr/emoji_button_bg</item>
<item name="emoji_key_text" type="color">?attr/colorLabel</item>
</style>
<style name="Dark" parent="BaseTheme">
<item name="android:isLightTheme">false</item>
<item name="colorKeyboard">#1b1b1b</item> <item name="colorKeyboard">#1b1b1b</item>
<item name="colorKey">#333333</item> <item name="colorKey">#333333</item>
<item name="colorKeyActivated">#1b1b1b</item> <item name="colorKeyActivated">#1b1b1b</item>
<item name="keyBorderWidth">1.2dp</item>
<item name="keyBorderWidthActivated">0dp</item>
<item name="keyBorderColorBottom">#404040</item>
<item name="colorLabel">#ffffff</item> <item name="colorLabel">#ffffff</item>
<item name="colorLabelActivated">#3399ff</item> <item name="colorLabelActivated">#3399ff</item>
<item name="colorLabelLocked">#33cc33</item> <item name="colorLabelLocked">#33cc33</item>
<item name="colorSubLabel">#cccccc</item> <item name="colorSubLabel">#cccccc</item>
<item name="keyBorderRadius">5dp</item> <item name="secondaryLightOffset">-0.2</item>
<item name="emoji_button_bg" type="color">#202020</item> <item name="emoji_button_bg" type="color">#202020</item>
<item name="emoji_color" type="color">#ffffff</item> <item name="emoji_color" type="color">#ffffff</item>
<item name="emoji_key_bg" type="color">?attr/emoji_button_bg</item>
<item name="emoji_key_text" type="color">?attr/colorLabel</item>
</style> </style>
<style name="Light"> <style name="Light" parent="BaseTheme">
<item name="android:isLightTheme">true</item> <item name="android:isLightTheme">true</item>
<item name="android:forceDarkAllowed">false</item>
<item name="colorKeyboard">#e3e3e3</item> <item name="colorKeyboard">#e3e3e3</item>
<item name="colorKey">#cccccc</item> <item name="colorKey">#cccccc</item>
<item name="colorKeyActivated">#e3e3e3</item> <item name="colorKeyActivated">#e3e3e3</item>
<item name="keyBorderWidth">0.6dp</item>
<item name="keyBorderWidthActivated">0dp</item>
<item name="keyBorderColorLeft">#cccccc</item>
<item name="keyBorderColorTop">#eeeeee</item>
<item name="keyBorderColorRight">#cccccc</item>
<item name="keyBorderColorBottom">#aaaaaa</item>
<item name="colorLabel">#000000</item> <item name="colorLabel">#000000</item>
<item name="colorLabelActivated">#0066cc</item> <item name="colorLabelActivated">#0066cc</item>
<item name="colorLabelLocked">#33cc33</item> <item name="colorLabelLocked">#33cc33</item>
<item name="colorSubLabel">#333333</item> <item name="colorSubLabel">#333333</item>
<item name="keyBorderRadius">5dp</item> <item name="secondaryLightOffset">+0.3</item>
<item name="emoji_button_bg" type="color">#dedede</item> <item name="emoji_button_bg">#dedede</item>
<item name="emoji_color" type="color">#000000</item> <item name="emoji_color">#000000</item>
<item name="emoji_key_bg" type="color">?attr/emoji_button_bg</item>
<item name="emoji_key_text" type="color">?attr/colorLabel</item>
</style> </style>
<style name="Black"> <style name="Black" parent="BaseTheme">
<item name="android:isLightTheme">false</item> <item name="android:isLightTheme">false</item>
<item name="android:forceDarkAllowed">false</item>
<item name="colorKeyboard">#000000</item> <item name="colorKeyboard">#000000</item>
<item name="colorKey">#000000</item> <item name="colorKey">#000000</item>
<item name="colorKeyActivated">#333333</item> <item name="colorKeyActivated">#333333</item>
<item name="keyBorderWidth">0dp</item>
<item name="keyBorderWidthActivated">1dp</item>
<item name="keyBorderColorLeft">#2a2a2a</item>
<item name="keyBorderColorTop">#2a2a2a</item>
<item name="keyBorderColorRight">#2a2a2a</item>
<item name="keyBorderColorBottom">#2a2a2a</item>
<item name="colorLabel">#eeeeee</item> <item name="colorLabel">#eeeeee</item>
<item name="colorLabelActivated">#009dff</item> <item name="colorLabelActivated">#009dff</item>
<item name="colorLabelLocked">#00ff26</item> <item name="colorLabelLocked">#00ff26</item>
<item name="colorSubLabel">#bbbbbb</item> <item name="colorSubLabel">#bbbbbb</item>
<item name="secondaryLightOffset">-0.25</item>
<item name="keyBorderRadius">1dp</item> <item name="keyBorderRadius">1dp</item>
<item name="emoji_button_bg" type="color">#000000</item> <item name="emoji_button_bg">#000000</item>
<item name="emoji_color" type="color">#ffffff</item> <item name="emoji_color">#ffffff</item>
<item name="emoji_key_bg" type="color">?attr/emoji_button_bg</item> </style>
<item name="emoji_key_text" type="color">?attr/colorLabel</item> <style name="AltBlack" parent="Black">
<item name="keyBorderWidth">1dp</item>
</style>
<style name="White" parent="BaseTheme">
<item name="android:isLightTheme">true</item>
<item name="colorKeyboard">#ffffff</item>
<item name="colorKey">#ffffff</item>
<item name="keyBorderWidth">1dp</item>
<item name="keyBorderWidthActivated">1dp</item>
<item name="keyBorderColorLeft">#f0f0f0</item>
<item name="keyBorderColorTop">#f0f0f0</item>
<item name="keyBorderColorRight">#eeeeee</item>
<item name="keyBorderColorBottom">#eeeeee</item>
<item name="colorKeyActivated">#ffffff</item>
<item name="colorLabel">#000000</item>
<item name="colorLabelActivated">#0066cc</item>
<item name="colorLabelLocked">#33cc33</item>
<item name="colorSubLabel">#333333</item>
<item name="secondaryLightOffset">+0.35</item>
<item name="emoji_button_bg">#ffffff</item>
<item name="emoji_color">#000000</item>
</style>
<style name="ePaper" parent="BaseTheme">
<item name="android:isLightTheme">true</item>
<item name="colorKeyboard">#ffffff</item>
<item name="colorKey">#ffffff</item>
<item name="keyBorderWidth">2dp</item>
<item name="keyBorderWidthActivated">5dp</item>
<item name="keyBorderColorLeft">#000000</item>
<item name="keyBorderColorTop">#000000</item>
<item name="keyBorderColorRight">#000000</item>
<item name="keyBorderColorBottom">#000000</item>
<item name="colorKeyActivated">#ffffff</item>
<item name="colorLabel">#000000</item>
<item name="colorLabelActivated">#000000</item>
<item name="colorLabelLocked">#33cc33</item>
<item name="colorSubLabel">#333333</item>
<item name="secondaryLightOffset">+0.35</item>
<item name="emoji_button_bg">#ffffff</item>
<item name="emoji_color">#000000</item>
</style> </style>
</resources> </resources>

View File

@@ -6,11 +6,9 @@
<dimen name="key_padding">2dp</dimen> <dimen name="key_padding">2dp</dimen>
<dimen name="key_vertical_interval">2dp</dimen> <dimen name="key_vertical_interval">2dp</dimen>
<dimen name="key_horizontal_interval">2dp</dimen> <dimen name="key_horizontal_interval">2dp</dimen>
<dimen name="key_height">51dp</dimen>
<item name="label_text_size" type="integer" format="float">0.33</item>
<item name="sublabel_text_size" type="integer" format="float">0.22</item>
<dimen name="emoji_type_button_height">56dp</dimen> <dimen name="emoji_type_button_height">56dp</dimen>
<dimen name="emoji_grid_height">250dp</dimen> <dimen name="emoji_grid_height">250dp</dimen>
<dimen name="emoji_text_size">28dp</dimen> <dimen name="emoji_text_size">28dp</dimen>
<dimen name="extra_horizontal_margin">0dp</dimen> <bool name="debug_logs" product="debug">true</bool>
<bool name="debug_logs" product="default">false</bool>
</resources> </resources>

42
res/xml/ar_alt.xml Normal file
View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="ض" key2="١" key3="`" key4="esc"/>
<key key0="ص" key2="٢" key3="\@"/>
<key key0="ث" key2="٣" key3="\#"/>
<key key0="ق" key2="٤" key3="$"/>
<key key0="ف" key2="٥" key3="%"/>
<key key0="غ" key2="٦" key3="^"/>
<key key0="ع" key2="٧" key3="&amp;"/>
<key key0="ه" key2="٨" key3="*"/>
<key key0="خ" key2="٩" key3="("/>
<key key0="ح" key2="٠" key3=")"/>
<key key0="ج"/>
</row>
<row>
<key key0="ش" key4="tab"/>
<key key0="س"/>
<key key0="ي"/>
<key key0="ب"/>
<key key0="ل"/>
<key key0="ا" key1="أ"/>
<key key0="ت"/>
<key key0="ن"/>
<key key0="م"/>
<key key0="ك"/>
<key key0="ط"/>
</row>
<row>
<key key0="ذ"/>
<key key0="ء"/>
<key key0="ؤ" key1="{"/>
<key key0="ر" key1="}"/>
<key key0="ى" key1="ئ"/>
<key key0="ة"/>
<key key0="و" key3=","/>
<key key0="ز" key3="."/>
<key key0="ظ" key3="&#1567;"/>
<key key0="د"/>
<key width="1.0" key0="backspace" key2="delete"/>
</row>
</keyboard>

44
res/xml/ar_pc.xml Normal file
View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="ض" key1="&#1614;" key2="١" key3="`" key4="esc"/>
<key key0="ص" key1="&#1611;" key2="٢" key3="\@"/>
<key key0="ث" key1="&#1615;" key2="٣" key3="\#" key4="loc €"/>
<key key0="ق" key1="&#1612;" key2="٤" key3="$" key4="loc £"/>
<key key0="ف" key1="&#1604;&#1573;" key2="٥" key3="%"/>
<key key0="غ" key1="&#1573;" key2="٦" key3="^"/>
<key key0="ع" key1="&#8216;" key2="٧" key3="&amp;"/>
<key key0="ه" key1="&#0247;" key2="٨" key3="*"/>
<key key0="خ" key1="&#0215;" key2="٩" key3="("/>
<key key0="ح" key1="&#1563;" key2="٠" key3=")"/>
<key key0="ج" key1="&gt;" key2="-" key3="_"/>
<key key0="د" key1="&lt;" key2="=" key3="ذ"/>
<!-- <key key0="ذ" key1="&#1617;" key3="\\" key4="|"/> -->
</row>
<row>
<key shift="0.5" key0="ش" key1="&#1616;" key4="tab"/>
<key key0="س" key1="&#1613;"/>
<key key0="ي" key1="["/>
<key key0="ب" key1="]"/>
<key key0="ل" key1="&#1604;&#1571;"/>
<key key0="ا" key1="أ"/>
<key key0="ت" key1="ـ"/>
<key key0="ن" key1="&#1548;"/>
<key key0="م" key1="/"/>
<key key0="ك" key1=":"/>
<key key0="ط" key1="&quot;"/>
</row>
<row>
<key shift="0.5" key0="ئ" key1="~"/>
<key key0="ء" key1="&#1618;"/>
<key key0="ؤ" key1="{"/>
<key key0="ر" key1="}"/>
<key key0="لا" key1="&#1604;&#1570;"/>
<key key0="ى" key1="&#1570;"/>
<key key0="ة" key1="&#8217;"/>
<key key0="و" key1=","/>
<key key0="ز" key1="."/>
<key key0="ظ" key1="&#1567;"/>
<key width="1.5" key0="backspace" key2="delete"/>
</row>
</keyboard>

View File

@@ -1,37 +1,37 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<keyboard> <keyboard>
<row> <row>
<key key0="a" key1="esc" key2="1" key3="&amp;"/> <key key0="a" key2="1" key4="esc"/>
<key key0="z" key2="2" key4="~"/> <key key0="z" key2="2" key3="&amp;" key4="~"/>
<key key0="e" key2="3" key3="&quot;" key4="\#"/> <key key0="e" key2="3" key3="&quot;" key4="\#"/>
<key key0="r" key2="4" key3="'"/> <key key0="r" key2="4" key3="'"/>
<key key0="t" key2="5" key3="(" key4=")"/> <key key0="t" key2="5" key3="(" key4=")"/>
<key key0="y" key2="6" key3="-" key4="|"/> <key key0="y" key2="6" key3="-" key4="|"/>
<key key0="u" key2="7" key4="`"/> <key key0="u" key2="7" key4="`"/>
<key key0="i" key2="8" key3="_" key4="\\"/> <key key0="i" key2="8" key3="_" key4="\\"/>
<key key0="o" key2="9"/> <key key0="o" key2="9" key3="\@" key4="f11_placeholder"/>
<key key0="p" key2="0" key4="\@"/> <key key0="p" key2="0" key3="f12_placeholder"/>
</row> </row>
<row> <row>
<key key0="q" key1="tab"/> <key key0="q" key2="tab"/>
<key key0="s" key1="accent_ring" key3="ß"/> <key key0="s" key3="loc ß"/>
<key key0="d" key1="accent_grave" key3="accent_aigu"/> <key key0="d" key1="accent_grave" key3="accent_aigu"/>
<key key0="f" key3="{" key4="}"/> <key key0="f" key3="{" key4="}"/>
<key key0="g" key3="[" key4="]"/> <key key0="g" key3="[" key4="]"/>
<key key0="h" key3="=" key4="+"/> <key key0="h" key3="=" key4="+"/>
<key key0="j" key1="accent_trema" key2="accent_circonflexe" key3="^"/> <key key0="j" key1="accent_trema" key2="accent_circonflexe" key3="^"/>
<key key0="k" key2="€" key3="$" key4="£"/> <key key0="k" key2="€" key3="$"/>
<key key0="l" key2="%"/> <key key0="l" key2="%"/>
<key key0="m" key4="*"/> <key key0="m" key3="*"/>
</row> </row>
<row> <row>
<key width="2.0" key0="shift"/> <key width="2.0" key0="shift" key2="loc capslock"/>
<key key0="w" key3="&lt;" key4="&gt;"/> <key key0="w" key3="&lt;" key4="&gt;"/>
<key key0="x"/> <key key0="x"/>
<key key0="c" key1="accent_cedille" key3="," key4="\?"/> <key key0="c" key1="accent_cedille" key3="," key4="\?"/>
<key key0="v" key3=";" key4="."/> <key key0="v" key3=";" key4="."/>
<key key0="b" key3=":" key4="/"/> <key key0="b" key3=":" key4="/"/>
<key key0="n" key1="accent_tilde" key2="§" key4="!"/> <key key0="n" key1="loc accent_tilde" key2="§" key4="!"/>
<key width="2.0" key0="backspace" key2="delete"/> <key width="2.0" key0="backspace" key2="delete"/>
</row> </row>
</keyboard> </keyboard>

37
res/xml/bangla.xml Normal file
View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="ঙ" key2="ং" key3="esc" key4="১"/>
<key key0="য" key2="য়" key3="¶" key4="২"/>
<key key0="ড" key2="ঢ" key3="π" key4="৩"/>
<key key0="প" key2="ফ" key3="√" key4=""/>
<key key0="ট" key2="ঠ" key3="^" key4="৫"/>
<key key0="চ" key2="ছ" key3="÷" key4="৬"/>
<key key0="জ" key2="ঝ" key3="×" key4=""/>
<key key0="হ" key2="ঞ" key3="=" key4="৮"/>
<key key0="গ" key2="ঘ" key3="+" key4="৯"/>
<key key0="ড়" key2="ঢ়" key3="-" key4=""/>
</row>
<row>
<key shift="0.5" key0="ৃ" key1="ৠ" key2="ঋ" key3="tab" key4="র্"/>
<key key0="ু" key1="ঊ" key2="উ" key3="~" key4="ূ"/>
<key key0="ি" key1="ঈ" key2="ই" key3="•" key4="ী"/>
<key key0="া" key1="ৄ" key2="আ" key3="°" key4="অ"/>
<key key0="্" key1="ৗ" key2="ঁ" key3="\\" key4="/"/>
<key key0="ব" key1="`" key2="ভ" key3="&lt;" key4="&gt;"/>
<key key0="ক" key1="|" key2="খ" key3="[" key4="]"/>
<key key0="ত" key1="ৎ" key2="থ" key3="{" key4="}"/>
<key key0="দ" key1="_" key2="ধ" key3="(" key4=")"/>
</row>
<row>
<key width="1.4" key0="shift" key2="loc capslock"/>
<key shift="0.1" key0="্র" key2="্য" key3="\#" key4="*"/>
<key key0="ো" key1="ৌ" key2="ও" key3="ঔ" key4="\@"/>
<key key0="ে" key1="ৈ" key2="এ" key3="ঐ" key4="%"/>
<key key0="র" key1="ঃ" key2="ল" key3=":" key4="&amp;"/>
<key key0="ন" key1="৳" key2="ণ" key3=";" key4="."/>
<key key0="স" key1="&quot;" key2="ষ" key3="!" key4=","/>
<key key0="ম" key1="'" key2="শ" key3="\?" key4="।"/>
<key shift="0.1" width="1.4" key0="backspace" key2="delete"/>
</row>
</keyboard>

45
res/xml/bone.xml Normal file
View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard bottom_row="false">
<row>
<key key0="j" key2="esc" key4="…"/>
<key key0="d" key2="°" key4="_"/>
<key key0="u" key2="§" key4="["/>
<key key0="a" key4="]"/>
<key key0="x" key4="^"/>
<key key0="p" key3="!" key4="7"/>
<key key0="h" key3="&lt;" key4="8"/>
<key key0="l" key1="" key3="&gt;" key4="9"/>
<key key0="m" key1="≠" key3="=" key4="f11_placeholder"/>
<key key0="w" key3="&amp;" key4="f12_placeholder"/>
</row>
<row>
<key key0="c" key2="tab" key4="\\"/>
<key key0="t" key1="accent_circonflexe" key2="accent_caron" key4="/"/>
<key key0="i" key1="accent_aigu" key2="accent_grave" key4="{"/>
<key key0="e" key1="accent_cedille" key2="accent_ogonek" key4="}"/>
<key key0="o" key1="accent_ring" key2="accent_dot_above" key4="*"/>
<key key0="b" key2="accent_macron" key3="\?" key4="4"/>
<key key0="n" key2="accent_tilde" key3="(" key4="5"/>
<key key0="r" key2="accent_trema" key3=")" key4="6"/>
<key key0="s" key2="accent_slash" key3="-"/>
<key key0="g" key1="\@" key3=":"/>
</row>
<row>
<key width="1.5" key0="shift" key4="\#" key2="loc capslock"/>
<key key0="f" key4="|"/>
<key key0="v" key4="~"/>
<key key0="ß" key4="`"/>
<key key0="y" key3="%" key4="1"/>
<key key0="z" key1="&quot;" key3="+" key4="2"/>
<key key0="q" key1="&apos;" key3="," key4="3"/>
<key key0="k" key3="."/>
<key width="1.5" key0="backspace" key1="delete" key3=";"/>
</row>
<row height="0.95">
<key width="1.8" key0="ctrl" key2="loc meta" key4="switch_numeric"/>
<key width="1.2" key0="fn" key1="loc alt" key2="change_method" key3="switch_emoji" key4="config"/>
<key width="4.0" key0="space" key7="switch_second" key8="0"/>
<key width="1.2" key7="up" key6="right" key5="left" key8="down"/>
<key width="1.8" key0="enter" key3="action"/>
</row>
</keyboard>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<row height="0.95"> <row height="0.95">
<key width="1.8" key0="ctrl" key2="meta" key3="switch_numeric"/> <key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key4="switch_numeric"/>
<key width="1.2" key0="alt" key1="fn" key2="change_method" key3="switch_emoji" key4="config"/> <key width="1.1" key0="fn" key1="loc alt" key2="change_method" key3="switch_emoji" key4="config"/>
<key width="4.0" key0="space"/> <key width="4.4" key0="space" key7="switch_second" key5="left" key6="right" slider="true"/>
<key width="1.2" key1="up" key2="right" key3="left" key4="down" edgekeys="true"/> <key width="1.1" key7="up" key6="right" key5="left" key8="down"/>
<key width="1.8" key0="enter" key2="action"/> <key width="1.7" key0="enter" key2="action"/>
</row> </row>

40
res/xml/colemak.xml Normal file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="q" key1="esc" key2="loc accent_aigu" key3="loc accent_tilde" shift="0.5"/>
<key key0="w" key1="loc accent_grave" key2=" ́" key3="~" />
<key key0="f" key1="`" key2="-" key3="+" />
<key key0="p" key2="=" key3="%"/>
<key key0="g" key1="!" key2="/" key3="\\"/>
<key key0="j" key1="loc accent_caron" key2="loc accent_trema" />
<key key0="l" key1="f11_placeholder" key2="f12_placeholder"/>
<key key0="u" key1="loc accent_double_aigu" key2="loc accent_ring" />
<key key0="y" key1="&quot;" key2="'"/>
</row>
<row>
<key key0="a" key2="1" key4="tab"/>
<key key0="r" key1="\@" key2="2" />
<key key0="s" key1="\#" key2="3" key4="loc ß"/>
<key key0="t" key1="$" key2="4" key4="loc accent_ogonek" />
<key key0="d" key1="€" key2="5" key4="loc accent_dot_above"/>
<key key0="h" key1="&amp;" key2="6" />
<key key0="n" key1="*" key2="7" />
<key key0="e" key1="loc accent_circonflexe" key2="8" key4="^"/>
<key key0="i" key1="_" key2="9" />
<key key0="o" key1="0" key3="loc accent_macron"/>
</row>
<row>
<key key0="shift" key2="loc capslock" width="1.5" />
<key key0="z" key1="," key2="."/>
<key key0="x" key1="&gt;" key2="&lt;"/>
<key key0="c" key1="{" key2="}" key3="loc accent_cedille"/>
<key key0="v" key1="[" key2="]"/>
<key key0="b" key1="(" key2=")"/>
<key key0="k" key1=";" key2=":"/>
<key key0="m" key1="|" key2="\?" />
<key key0="backspace" key1="delete" shift="0.25" width="1.25"/>
</row>
</keyboard>

37
res/xml/devanagari_1.xml Normal file
View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="ौ" key1="औ" key2="₹" key3="esc" key4="१"/>
<key key0="ै" key1="ऐ" key2="ऍ" key3="¶" key4="२"/>
<key key0="ा" key1="आ" key2="ॅ" key3="ग़" key4="३"/>
<key key0="ी" key1="ई" key2="ज्ञ" key3="ज़" key4="४"/>
<key key0="ू" key1="ऊ" key2="त्र" key3="ऩ" key4="५"/>
<key key0="ब" key1="भ" key2="क्ष" key3="÷" key4="६"/>
<key key0="ह" key1="ङ" key2="श्र" key3="×" key4="७"/>
<key key0="ग" key1="घ" key2="" key3="=" key4="८"/>
<key key0="द" key1="ध" key2="ऋ" key3="+" key4="९"/>
<key key0="ज" key1="झ" key2="ृ" key3="-" key4=""/>
</row>
<row>
<key shift="0.5" key0="ो" key1="ओ" key2="ॉ" key3="tab" key4="ऑ"/>
<key key0="े" key1="ए" key2="ञ" key3="~" key4="॰"/>
<key key0="्" key1="अ" key2="़" key3="ऽ" key4="ऺ"/>
<key key0="ि" key1="इ" key2="ढ" key3="॥" key4="ॄ"/>
<key key0="ु" key1="उ" key2="ड" key3="\\" key4="/"/>
<key key0="प" key1="फ" key2="छ" key3="&lt;" key4="&gt;"/>
<key key0="र" key1="ऱ" key2="च" key3="[" key4="]"/>
<key key0="क" key1="ख" key2="क़" key3="{" key4="}"/>
<key key0="त" key1="थ" key2="ख़" key3="(" key4=")"/>
</row>
<row>
<key width="1.4" key0="shift" key2="loc capslock"/>
<key shift="0.1" key0="ट" key1="ठ" key2="ड़" key3="\#" key4="*"/>
<key key0="ं" key1="ँ" key2="।" key3="ॐ" key4="\@"/>
<key key0="म" key1="ण" key2="य" key3="य़" key4="%"/>
<key key0="न" key1="" key2="।" key3=":" key4="&amp;"/>
<key key0="व" key1="" key2="ढ़" key3=";" key4="."/>
<key key0="ल" key1="ळ" key2="फ़" key3="!" key4=","/>
<key key0="स" key1="श" key2="ष" key3="\?" key4="।"/>
<key shift="0.1" width="1.4" key0="backspace" key2="delete"/>
</row>
</keyboard>

30
res/xml/devanagari_2.xml Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key shift="0.35" width="0.9" key0="क" key1="ख" key2="घ" key3="ङ" key4="ग"/>
<key width="0.9" key0="च" key1="छ" key2="झ" key3="ञ" key4="ज"/>
<key width="0.9" key0="ट" key1="ठ" key2="ढ" key3="ण" key4="ड"/>
<key width="0.9" key0="त" key1="थ" key2="ध" key3="न" key4="द"/>
<key width="0.9" key0="प" key1="फ" key2="भ" key3="म" key4="ब"/>
<key width="0.9" key0="र" key1="ज्ञ" key2="ल" key3="य" key4="व"/>
<key width="0.9" key0="ह" key1="श" key2="ळ" key3="स" key4="ष"/>
</row>
<row>
<key shift="0.35" width="0.9" key0="ा" key1="अ" key2="आ"/>
<key width="0.9" key0="ि" key1="इ"/>
<key width="0.9" key0="ी" key1="ई"/>
<key width="0.9" key0="ु" key1="उ" key2="ऊ" key4="ू"/>
<key width="0.9" key0="े" key1="ए" key2="ऋ" key4="ृ"/>
<key width="0.9" key0="ै" key1="ऐ" key2="ऌ" key4="ॢ"/>
<key width="0.9" key0="ो" key1="ओ" key2="औ" key4="ौ"/>
</row>
<row>
<key key0="्" key2="tab" key4="esc"/>
<key key0="ँ" key1="₹" key2="॑" key3="ॖ" key4="॓"/>
<key key0="ं" key1="ॐ" key2="ऽ" key3="" key4="&quot;"/>
<key key0="।" key1="," key2=";" key3="!" key4="\?"/>
<key key0="़" key1="॰" key2="" key3="-" key4="॒"/>
<key key0="५" key1="१" key2="३" key3="७" key4="९" key5="४" key6="६" key7="२" key8="८"/>
<key key0="backspace" key2="delete"/>
</row>
</keyboard>

View File

@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<keyboard> <keyboard>
<row> <row>
<key key0="shift" width="1.5" key1="esc" key2="tab"/> <key key0="shift" width="1.5" key2="esc" key4="tab"/>
<key key0="p" key1="accent_ring" key2="." key3="&lt;"/> <key key0="p" key1="loc accent_ring" key2="." key3="&lt;" key4="f11_placeholder"/>
<key key0="y" key1="accent_grave" key2="," key3="&gt;"/> <key key0="y" key1="loc accent_grave" key2="," key3="&gt;" key4="f12_placeholder"/>
<key key0="f" key4="€"/> <key key0="f" key4="loc €"/>
<key key0="g" key2="\\" key3="|"/> <key key0="g" key2="\\" key3="|"/>
<key key0="c" key1="accent_trema" key2="accent_circonflexe" key3="{" key4="}"/> <key key0="c" key1="loc accent_trema" key2="loc accent_circonflexe" key3="{" key4="}"/>
<key key0="r" key3="[" key4="]"/> <key key0="r" key3="[" key4="]"/>
<key key0="l" key2="=" key3="+" key4="£"/> <key key0="l" key2="=" key3="+" key4="loc £"/>
<key key0="backspace" key2="delete" width="1.5"/> <key key0="backspace" key2="delete" width="1.5"/>
</row> </row>
<row> <row>
<key key0="a" key2="1" key3="!"/> <key key0="a" key2="1" key4="!"/>
<key key0="o" key1="accent_macron" key2="2" key3="\@"/> <key key0="o" key1="loc accent_macron" key2="2" key3="\@" key4="loc accent_ogonek"/>
<key key0="e" key1="accent_caron" key2="3" key3="\#"/> <key key0="e" key1="loc accent_caron" key2="3" key3="\#" key4="loc accent_dot_above"/>
<key key0="u" key2="4" key3="$"/> <key key0="u" key2="4" key3="$" key4="loc accent_double_aigu"/>
<key key0="i" key2="5" key3="%"/> <key key0="i" key2="5" key3="%"/>
<key key0="d" key2="6" key3="^"/> <key key0="d" key2="6" key3="^"/>
<key key0="h" key2="7" key3="&amp;"/> <key key0="h" key2="7" key3="&amp;"/>
<key key0="t" key2="8" key3="*"/> <key key0="t" key2="8" key3="*"/>
<key key0="n" key2="9" key3="(" key4=")"/> <key key0="n" key2="9" key3="(" key4=")"/>
<key key0="s" key2="0" key3="ß"/> <key key0="s" key2="0" key3="loc ß"/>
</row> </row>
<row> <row>
<key key0="q" shift="0.5" key1="accent_tilde" key2="`" key3="~"/> <key key0="q" shift="0.5" key1="loc accent_tilde" key2="`" key3="~"/>
<key key0="j" key1="accent_aigu" key2="'" key3="&quot;"/> <key key0="j" key1="loc accent_aigu" key2="'" key3="&quot;"/>
<key key0="k" key2=";" key3=":"/> <key key0="k" key2=";" key3=":"/>
<key key0="x" key1="accent_cedille"/> <key key0="x" key1="loc accent_cedille"/>
<key key0="b"/> <key key0="b"/>
<key key0="m" key2="/" key3="\?"/> <key key0="m" key2="/" key3="\?"/>
<key key0="w"/> <key key0="w"/>

47
res/xml/greekmath.xml Normal file
View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard bottom_row="false">
<row>
<key key0="θ" key2="^"/>
<key key0="δ" key1="⌊" key2="" key3="↔" key4="⊂"/>
<key key0="ϛ" key1="⌋" key2="∧" key3="↑" key4="⊃"/>
<key key0="α" key1="⌈" key2="⊥" key3="↕" key4="∀"/>
<key key0="ξ" key1="⌉" key2="∡" key4="⊷"/>
<key key0="π" key1="∥" key3="≪" key4="7"/>
<key key0="ψ" key1="⌀" key2="⟨" key3="≡" key4="8"/>
<key key0="λ" key1="∞" key2="⟩" key3="≫" key4="9"/>
<key key0="μ" key1="∝" key3="□" key4="f11_placeholder"/>
<key key0="ω" key1="∅" key3="∘" key4="f12_placeholder"/>
</row>
<row>
<key key0="χ" key4=""/>
<key key0="τ" key3="←" key4="∂"/>
<key key0="ι" key3="↓" key4="∫"/>
<key key0="ε" key3="→" key4="∃"/>
<key key0="ο" key4="∈"/>
<key key0="β" key1="⊕" key4="4"/>
<key key0="ν" key1="⊖" key3="" key4="5"/>
<key key0="ρ" key1="⊙" key3="" key4="6"/>
<key key0="σ" key1="⊗"/>
<key key0="γ" key1="⌀"/>
</row>
<row>
<key width="1.5" key0="shift" key2="loc capslock"/>
<key key0="φ" key3="⇌" key4="√"/>
<key key0="η" key3="accent_arrow_right" key4=""/>
<key key0="ϡ" key4="∩"/>
<key key0="υ" key3="∇" key4="ℵ"/>
<key key0="ζ" key1="≤" key3="" key4="1"/>
<key key0="Ϟ" key1="≠" key3="" key4="2"/>
<key key0="κ" key1="≥" key3="×" key4="3"/>
<key width="1.5" key0="backspace" key3="delete"/>
</row>
<row height="0.95">
<key width="1.2" key0="switch_text" key2="esc"/>
<key width="1.2" key0="switch_numeric" key2="tab"/>
<key width="1.2" key0="fn"/>
<key width="2.8" key0="space" key1="superscript" key3="subscript"/>
<key width="1.2" key0="0" key2="."/>
<key width="1.2" key7="up" key6="right" key5="left" key8="down"/>
<key width="1.2" key0="enter" key1="=" key2="action"/>
</row>
</keyboard>

41
res/xml/he_il_1452_1.xml Normal file
View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="/" key2="1" key3="!" key4="esc"/>
<key key0="'" key2="2" key3="\@" key1=";"/>
<key key0="ק" key2="3" key3="\#" key1="€"/>
<key key0="ר" key2="4" key3="$" key1="₪"/>
<key key0="א" key2="5" key3="%"/>
<key key0="ט" key2="6" key3="^" key4="ole_placeholder"/>
<key key0="ו" key2="7" key3="&amp;" key4="meteg_placeholder"/>
<key key0="ן" key2="8" key3="*"/>
<key key0="ם" key2="9" key3="b(" key4="lrm"/>
<key key0="פ" key2="0" key3="b)" key4="rlm"/>
<key key0="backspace" key2="delete" key3="f11_placeholder" key4="f12_placeholder"/>
</row>
<row>
<key key0="ש" key2="`" key1="tab" key3="sindot_placeholder" key4="shindot_placeholder" width="1.333"/>
<key key0="ד" key1="~" width="1.0333"/>
<key key0="ג" key1="geresh" key2="gershayim" width="1.0333"/>
<key key0="כ" width="1.0333"/>
<key key0="ע" width="1.0333"/>
<key key0="י" key2="-" key3="_" key4="maqaf" width="1.0333"/>
<key key0="ח" key2="=" key3="+" width="1.0333"/>
<key key0="ל" key2="b[" key3="b{" width="1.0333"/>
<key key0="ך" key2="b]" key3="b}" width="1.0333"/>
<key key0="ף" key2="," key3="&quot;" key1=":" width="1.4006"/>
</row>
<row>
<key key0="\\" key1="|" key2="shift" key3="loc capslock"/>
<key key0="ז"/>
<key key0="ס"/>
<key key0="ב"/>
<key key0="ה"/>
<key key0="נ"/>
<key key0="מ"/>
<key key0="צ"/>
<key key0="ת" key1="blt"/>
<key key0="ץ" key1="bgt"/>
<key key0="." key1="\?"/>
</row>
</keyboard>

39
res/xml/he_il_1452_2.xml Normal file
View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="ץ" key2="1" key3="!" key4="esc"/>
<key key0="ן" key2="2" key3="\@" key1=";"/>
<key key0="ק" key2="3" key3="\#" key1="€"/>
<key key0="ר" key2="4" key3="$" key1="₪"/>
<key key0="א" key2="5" key3="%"/>
<key key0="ט" key2="6" key3="^" key4="ole_placeholder"/>
<key key0="ו" key2="7" key3="&amp;" key4="meteg_placeholder"/>
<key key0="ת" key2="8" key3="*"/>
<key key0="ם" key2="9" key3="b(" key4="lrm"/>
<key key0="פ" key2="0" key3="b)" key4="rlm" width="1.333"/>
</row>
<row>
<key key0="ש" key2="`" key1="tab" key3="sindot_placeholder" key4="shindot_placeholder" width="1.333"/>
<key key0="ד" key1="~"/>
<key key0="ג" key1="geresh" key2="gershayim"/>
<key key0="כ"/>
<key key0="ע"/>
<key key0="י" key2="-" key3="_" key4="maqaf"/>
<key key0="ח" key2="=" key3="+"/>
<key key0="ל" key2="b[" key3="b{"/>
<key key0="ך" key2="b]" key3="b}"/>
<key key0="ף" key2="'" key3="&quot;" key1=":"/>
</row>
<row>
<key key0="\\" key1="|" key2="shift" key3="loc capslock"/>
<key key0="ז"/>
<key key0="ס"/>
<key key0="ב"/>
<key key0="ה" />
<key key0="נ"/>
<key key0="מ" key1="blt" key2=","/>
<key key0="צ" key1="bgt" key2="."/>
<key key0="/" key1="\?"/>
<key key0="backspace" key2="delete" key3="f11_placeholder" key4="f12_placeholder" width="1.333"/>
</row>
</keyboard>

42
res/xml/jcuken_ua.xml Normal file
View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key shift="0.1 " key0="й" key2="1" key4="esc"/>
<key key0="ц" key1="~" key2="2" key3="\@"/>
<key key0="у" key1="!" key2="3" key3="\#" key4="loc €"/>
<key key0="к" key2="4" key3="$"/>
<key key0="е" key2="5" key3="%"/>
<key key0="н" key2="6" key3="^"/>
<key key0="г" key1="ґ" key2="7" key3="&amp;"/>
<key key0="ш" key2="8" key3="*"/>
<key key0="щ" key2="9" key3="(" key4=")"/>
<key key0="з" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
<key key0="х"/>
</row>
<row>
<key shift="0.1" key0="ф" key1="tab" key2="`"/>
<key key0="і" key2="ї"/>
<key key0="в" />
<key key0="а" />
<key key0="п" />
<key key0="р" />
<key key0="о" key2="-" key3="_"/>
<key key0="л" key2="=" key3="+"/>
<key key0="д" key4="}" key3="{"/>
<key key0="ж" key3="[" key4="]"/>
<key key0="є" key2="|" key3="\\"/>
</row>
<row>
<key width="1.1" key0="shift" key2="loc capslock"/>
<key key0="я"/>
<key key0="ч" />
<key key0="с" />
<key key0="м" key2="&lt;" key3="."/>
<key key0="и" key2="&gt;" key3=","/>
<key key0="т" key2="\?" key3="/"/>
<key key0="ь" key2=":" key3=";"/>
<key key0="б" key2="&quot;" key3="'"/>
<key key0="ю" key1="«" key2="»"/>
<key width="1.1" key0="backspace" key2="delete"/>
</row>
</keyboard>

View File

@@ -1,36 +1,36 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<keyboard> <keyboard>
<row> <row>
<key key0="я" key1="esc" key2="1" key3=" key4="!"/> <key key0="я" key2="1" key4="esc"/>
<key key0="в" key2="2" key3="\@"/> <key key0="в" key1="!" key2="2" key3="\@" key4="ч"/>
<key key0="е" key2="3" key3="\#" key4="№"/> <key key0="е" key2="3" key3="\#" key4="№"/>
<key key0="р" key2="4" key3="$"/> <key key0="р" key2="4" key3="$"/>
<key key0="т" key2="5" key3="%"/> <key key0="т" key2="5" key3="%"/>
<key key0="ъ" key2="6" key3="^" key4="€"/> <key key0="ъ" key2="6" key3="^" key4="€"/>
<key key0="у" key2="7" key3="&amp;" key4="§"/> <key key0="у" key2="7" key3="&amp;" key4="§"/>
<key key0="и" key2="8" key3="*"/> <key key0="и" key2="8" key3="*"/>
<key key0="о" key1="accent_macron" key2="9" key3="(" key4=")"/> <key key0="о" key2="9" key3="(" key4=")"/>
<key key0="п" key2="0" key3="ш" key4="/> <key key0="п" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
</row> </row>
<row> <row>
<key shift="0.5" key0="а" key1="tab" key2="`"/> <key shift="0.5" key0="а" key1="tab" key2="`"/>
<key key0="с" key2="£"/> <key key0="с"/>
<key key0="д" key1="accent_grave" key3="accent_aigu"/> <key key0="д"/>
<key key0="ф"/> <key key0="ф"/>
<key key0="г" key1="accent_caron" key2="-" key3="_"/> <key key0="г" key2="-" key3="_"/>
<key key0="х" key2="=" key3="+"/> <key key0="х" key2="=" key3="+"/>
<key key0="й" key1="accent_trema" key2="accent_circonflexe" key4="}" key3="{"/> <key key0="й" key4="}" key3="{"/>
<key key0="к" key3="[" key4="]"/> <key key0="к" key2="ш" key3="[" key4="]"/>
<key key0="л" key2="|" key3="\\" key4="ю"/> <key key0="л" key1="щ" key2="|" key3="\\" key4="ю"/>
</row> </row>
<row> <row>
<key width="1.5" key0="shift"/> <key width="1.5" key0="shift" key2="loc capslock"/>
<key key0="з"/> <key key0="з"/>
<key key0="ь" key1="accent_ring" key3="ѝ"/> <key key0="ь" key3="ѝ"/>
<key key0="ц" key1="accent_cedille" key2="&lt;" key3="."/> <key key0="ц" key2="&lt;" key3="."/>
<key key0="ж" key2="&gt;" key3=","/> <key key0="ж" key2="&gt;" key3=","/>
<key key0="б" key2="\?" key3="/"/> <key key0="б" key2="\?" key3="/"/>
<key key0="н" key1="accent_tilde" key2=":" key3=";"/> <key key0="н" key2=":" key3=";"/>
<key key0="м" key2="&quot;" key3="'"/> <key key0="м" key2="&quot;" key3="'"/>
<key width="1.5" key0="backspace" key2="delete"/> <key width="1.5" key0="backspace" key2="delete"/>
</row> </row>

View File

@@ -1,21 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<keyboard> <keyboard>
<row> <row>
<key key0="й" key1="esc" key2="1" key3="~" key4="!"/> <key key0="й" key2="1" key4="esc"/>
<key key0="ц" key2="2" key3="\@"/> <key key0="ц" key1="loc ї" key2="2" key3="\@" key4="~"/>
<key key0="у" key2="3" key3="\#"/> <key key0="у" key1="loc ў" key2="3" key3="\#" key4="!"/>
<key key0="к" key2="4" key3="$"/> <key key0="к" key2="4" key3="$"/>
<key key0="е" key1="ё" key2="5" key3="%"/> <key key0="е" key1="ё" key2="5" key3="%"/>
<key key0="н" key2="6" key3="^"/> <key key0="н" key1="loc є" key2="6" key3="^"/>
<key key0="г" key2="7" key3="&amp;"/> <key key0="г" key1="loc ґ" key2="7" key3="&amp;"/>
<key key0="ш" key2="8" key3="*"/> <key key0="ш" key2="8" key3="*"/>
<key key0="щ" key2="9" key3="(" key4=")"/> <key key0="щ" key2="9" key3="(" key4=")"/>
<key key0="з" key2="0"/> <key key0="з" key2="0" key3="{" key4="}"/>
<key key0="х" key1="{" key2="}"/> <key key0="х" key3="[" key4="]" key1="f11_placeholder" key2="f12_placeholder"/>
<key key0="ъ" key1="[" key2="]" />
</row> </row>
<row> <row>
<key shift="0.5" key0="ф" key1="tab" key2="`"/> <key key0="ф" key1="tab" key2="`"/>
<key key0="ы"/> <key key0="ы"/>
<key key0="в"/> <key key0="в"/>
<key key0="а"/> <key key0="а"/>
@@ -28,16 +27,16 @@
<key key0="э" key2="|" key3="\\"/> <key key0="э" key2="|" key3="\\"/>
</row> </row>
<row> <row>
<key width="1.5" key0="shift"/> <key width="1.18" key0="shift" key2="loc capslock"/>
<key key0="я"/> <key width="0.96" key0="я"/>
<key key0="ч"/> <key width="0.96" key0="ч"/>
<key key0="с"/> <key width="0.96" key0="с"/>
<key key0="м"/> <key width="0.96" key0="м"/>
<key key0=" key2="&lt;" key3="."/> <key width="0.96" key0="и" key1="loc і" key2="&lt;" key3="."/>
<key key0="т" key2="&gt;" key3=","/> <key width="0.96" key0="т" key2="&gt;" key3=","/>
<key key0=" key2="\?" key3="/"/> <key width="0.96" key0="ь" key1=" key2="\?" key3="/"/>
<key key0="б" key2=":" key3=";"/> <key width="0.96" key0="б" key2=":" key3=";"/>
<key key0="ю" key2="&quot;" key3="'"/> <key width="0.96" key0="ю" key2="&quot;" key3="'"/>
<key width="1.5" key0="backspace" key2="delete"/> <key width="1.18" key0="backspace" key2="delete"/>
</row> </row>
</keyboard> </keyboard>

View File

@@ -1,14 +1,33 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<input-method xmlns:android="http://schemas.android.com/apk/res/android" android:settingsActivity="juloo.keyboard2.SettingsActivity" android:supportsSwitchingToNextInputMethod="true"> <input-method xmlns:android="http://schemas.android.com/apk/res/android" android:settingsActivity="juloo.keyboard2.SettingsActivity" android:supportsSwitchingToNextInputMethod="true">
<subtype android:label="%s" android:languageTag="bg" android:imeSubtypeLocale="bg_BG" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=bgph1,extra_keys=euro"/> <subtype android:label="%s" android:languageTag="ar" android:imeSubtypeLocale="ar" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=ar_pc"/>
<subtype android:label="%s" android:languageTag="de" android:imeSubtypeLocale="de_DE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwertz,extra_keys=trema|szlig|euro"/> <subtype android:label="%s" android:languageTag="be" android:imeSubtypeLocale="be_BY" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=ru_jcuken,extra_keys=ґ|є|і|ї|ў"/>
<subtype android:label="%s" android:languageTag="en-GB" android:imeSubtypeLocale="en_GB" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=pound|euro"/> <subtype android:label="%s" android:languageTag="bg" android:imeSubtypeLocale="bg_BG" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=bgph1,extra_keys="/>
<subtype android:label="%s" android:languageTag="bn" android:imeSubtypeLocale="bn_BD" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=৳"/>
<subtype android:label="%s" android:languageTag="cs" android:imeSubtypeLocale="cs_CZ" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwertz_cs,extra_keys=a|accent_cedille|accent_circonflexe"/>
<subtype android:label="%s" android:languageTag="de" android:imeSubtypeLocale="de_DE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwertz_de,extra_keys=accent_trema|ß|€"/>
<subtype android:label="%s" android:languageTag="el" android:imeSubtypeLocale="el" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_el,extra_keys=£|€"/>
<subtype android:label="%s" android:languageTag="en-GB" android:imeSubtypeLocale="en_GB" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=£|€"/>
<subtype android:label="%s" android:languageTag="en-US" android:imeSubtypeLocale="en_US" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty"/> <subtype android:label="%s" android:languageTag="en-US" android:imeSubtypeLocale="en_US" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty"/>
<subtype android:label="%s" android:languageTag="es" android:imeSubtypeLocale="es_ES" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_es,extra_keys=grave|aigu|tilde|trema|euro"/> <subtype android:label="%s" android:languageTag="es" android:imeSubtypeLocale="es_ES" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_es,extra_keys=accent_grave|accent_aigu|accent_tilde|accent_trema|"/>
<subtype android:label="%s" android:languageTag="fr" android:imeSubtypeLocale="fr_FR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=azerty,extra_keys=grave|aigu|circonflexe|cedille|trema|euro"/> <subtype android:label="%s" android:languageTag="fr" android:imeSubtypeLocale="fr_FR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=azerty,extra_keys=accent_grave|accent_aigu|accent_circonflexe|accent_cedille|accent_trema|"/>
<subtype android:label="%s" android:languageTag="it" android:imeSubtypeLocale="it_IT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=grave|aigu|euro"/> <subtype android:label="%s" android:languageTag="he" android:imeSubtypeLocale="he_IL" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=he_il_1452_1,extra_keys=₪|€"/>
<subtype android:label="%s" android:languageTag="lv" android:imeSubtypeLocale="lv_LV" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_lv,extra_keys=caron|cedille|macron|euro"/> <subtype android:label="%s" android:languageTag="hi" android:imeSubtypeLocale="hi_IN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=devanagari_1,extra_keys=₹"/>
<subtype android:label="%s" android:languageTag="pt" android:imeSubtypeLocale="pt_BR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=aigu|cedille|circonflexe|grave|tilde|euro"/> <subtype android:label="%s" android:languageTag="mr" android:imeSubtypeLocale="mr_IN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=devanagari_1,extra_keys=₹"/>
<subtype android:label="%s" android:languageTag="ne" android:imeSubtypeLocale="ne_NE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=devanagari_1,extra_keys=₹"/>
<subtype android:label="%s" android:languageTag="hu" android:imeSubtypeLocale="hu_HU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwertz_hu,extra_keys=accent_aigu|accent_trema|accent_ogonek|€"/>
<subtype android:label="%s" android:languageTag="it" android:imeSubtypeLocale="it_IT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=accent_grave|accent_aigu|€"/>
<subtype android:label="%s" android:languageTag="ko" android:imeSubtypeLocale="ko_KR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_ko"/>
<subtype android:label="%s" android:languageTag="lt" android:imeSubtypeLocale="lt_LT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=accent_ogonek|accent_caron|accent_dot_above|accent_macron|€"/>
<subtype android:label="%s" android:languageTag="lv" android:imeSubtypeLocale="lv_LV" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_lv,extra_keys=accent_caron|accent_cedille|accent_macron|€"/>
<subtype android:label="%s" android:languageTag="nl-BE" android:imeSubtypeLocale="nl_BE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=azerty,extra_keys=accent_grave|accent_aigu|accent_circonflexe|accent_cedille|accent_trema|€"/>
<subtype android:label="%s" android:languageTag="no" android:imeSubtypeLocale="no_NO" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_no,extra_keys=accent_aigu|€"/>
<subtype android:label="%s" android:languageTag="pl" android:imeSubtypeLocale="pl_PL" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_pl"/>
<subtype android:label="%s" android:languageTag="pt" android:imeSubtypeLocale="pt_BR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_pt,extra_keys=accent_aigu|accent_cedille|accent_circonflexe|accent_grave|accent_tilde|€"/>
<subtype android:label="%s" android:languageTag="ru" android:imeSubtypeLocale="ru_RU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=ru_jcuken"/> <subtype android:label="%s" android:languageTag="ru" android:imeSubtypeLocale="ru_RU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=ru_jcuken"/>
<subtype android:label="%s" android:languageTag="sv" android:imeSubtypeLocale="sv_SE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=aigu|trema|ring|euro"/> <subtype android:label="%s" android:languageTag="sk" android:imeSubtypeLocale="sk_SK" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwertz_sk,extra_keys=é|ě|ŕ|ř|ť|ž|ü|ú|ů|í|ö|ó|ô|á|ä|ś|š|ď|ĺ|ľ|ý|č|ň"/>
<subtype android:label="%s" android:languageTag="sv" android:imeSubtypeLocale="sv_SE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_sv_se,extra_keys=accent_aigu|accent_trema|accent_ring|€"/>
<subtype android:label="%s" android:languageTag="tr" android:imeSubtypeLocale="tr_TR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_tr,extra_keys=accent_cedille|accent_trema|₺|ı|ğ"/>
<subtype android:label="%s" android:languageTag="uk" android:imeSubtypeLocale="uk_UA" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=jcuken_ua,extra_keys=ґ|є|і|ї"/>
<subtype android:label="%s" android:languageTag="vi" android:imeSubtypeLocale="vi_VN" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_vi"/>
</input-method> </input-method>

49
res/xml/neo2.xml Normal file
View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard bottom_row="false">
<row>
<key key0="x" key1="°" key2="1" key4="…"/>
<key key0="v" key1="§" key2="2" key4="_"/>
<key key0="l" key2="3" key4="["/>
<key key0="c" key2="4" key4="]"/>
<key key0="w" key2="5" key4="^"/>
<key key0="k" key2="6" key4="!"/>
<key key0="h" key2="7" key4="&lt;"/>
<key key0="g" key2="8" key4="&gt;"/>
<key key0="f" key2="9" key3="f11_placeholder" key4="="/>
<key key0="q" key2="0" key3="f12_placeholder" key4="&amp;"/>
<key key0="ß" key1="-"/>
</row>
<row>
<key key0="u" key1="tab" key4="\\"/>
<key key0="i" key4="/"/>
<key key0="a" key4="{"/>
<key key0="e" key4="}"/>
<key key0="o" key4="*"/>
<key key0="s" key4="\?"/>
<key key0="n" key4="("/>
<key key0="r" key4=")"/>
<key key0="t" key4="-"/>
<key key0="d" key4=":"/>
<key key0="y" key3="\@"/>
</row>
<row>
<key width="1.5" key0="shift" key1="esc" key2="loc capslock"/>
<key key0="ü" key4="\#"/>
<key key0="ö" key4="$"/>
<key key0="ä" key4="|"/>
<key key0="p" key4="~"/>
<key key0="z" key4="`"/>
<key key0="b" key4="+"/>
<key key0="m" key4="%"/>
<key key0="." key1="," key3="&quot;" key4="'"/>
<key width="1.5" key0="backspace" key2="delete"/>
</row>
<row height="0.95">
<key width="1.8" key0="ctrl" key2="loc meta" key4="switch_numeric"/>
<key width="1.2" key0="fn" key1="loc alt" key2="change_method" key3="switch_emoji" key4="config"/>
<key width="4.0" key0="space" key7="switch_second"/>
<key width="1.2" key7="up" key6="right" key5="left" key8="down"/>
<key key0="j" key4=";"/>
<key width="1.8" key0="enter" key2="action"/>
</row>
</keyboard>

13
res/xml/number_row.xml Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<row height="0.75">
<key key0="1"/>
<key key0="2"/>
<key key0="3"/>
<key key0="4"/>
<key key0="5"/>
<key key0="6"/>
<key key0="7"/>
<key key0="8"/>
<key key0="9"/>
<key key0="0"/>
</row>

View File

@@ -3,32 +3,33 @@
<row> <row>
<key width="0.75" key0="esc" key2="~" key4="!"/> <key width="0.75" key0="esc" key2="~" key4="!"/>
<key width="0.75" key0="(" key2="[" key4="{"/> <key width="0.75" key0="(" key2="[" key4="{"/>
<key key0="7" key3="&lt;" key4="&gt;"/> <key key0="7" key1="&lt;" key2="&gt;"/>
<key key0="8" key2="∞"/> <key key0="8" key2="∞"/>
<key key0="9" key2="π"/> <key key0="9" key2="π"/>
<key width="0.75" key0="*" key1="√" key2="×"/> <key width="0.75" key0="*" key1="√" key2="×" key3="\#"/>
<key width="0.75" key0="/" key1="%" key3="÷"/> <key width="0.75" key0="/" key1="%" key3="÷"/>
</row> </row>
<row> <row>
<key width="0.75" key0="tab" key1=";" key2="|" key4="\\"/> <key width="0.75" key0="tab" key2="|" key4="\\"/>
<key width="0.75" key0=")" key2="]" key4="}"/> <key width="0.75" key0=")" key2="]" key4="}"/>
<key key0="4"/> <key key0="4" key1="box" key3="arrows"/>
<key key0="5" key1="up" key2="right" key3="left" key4="down" edgekeys="true"/> <key key0="5" key7="up" key6="right" key5="left" key8="down"/>
<key key0="6"/> <key key0="6"/>
<key width="0.75" key0="+" key1="Σ" key2="$"/> <key width="0.75" key0="+" key1="Σ" key2="$"/>
<key width="0.75" key0="-" key2="^"/> <key width="0.75" key0="-" key1="^"/>
</row> </row>
<row> <row>
<key shift="0.35" width="1.15" key0="shift" key2="fn" key4="alt"/> <key width="0.75" key0="switch_greekmath"/>
<key width="0.75" key0="shift" key2="fn" key4="loc alt"/>
<key key0="1" key1="superscript" key2="ordinal" key3="subscript"/> <key key0="1" key1="superscript" key2="ordinal" key3="subscript"/>
<key key0="2"/> <key key0="2"/>
<key key0="3"/> <key key0="3"/>
<key width="1.15" key0="backspace" key2="delete"/> <key width="1.5" key0="backspace" key2="delete"/>
</row> </row>
<row height="0.95"> <row height="0.95">
<key width="1.5" key0="ctrl" key3="switch_text"/> <key width="1.5" key0="switch_text" key2="ctrl"/>
<key width="1.5" key0="0"/> <key width="1.5" key0="0" key3="f11_placeholder" key4="f12_placeholder"/>
<key width="0.75" key0="." key1=":" key2=","/> <key width="0.75" key0="." key1=":" key2="," key3=";"/>
<key width="0.75" key0="space" key1="&quot;" key2="'" key4="_"/> <key width="0.75" key0="space" key1="&quot;" key2="'" key4="_"/>
<key width="1.5" key0="enter" key1="±" key2="action" key3="="/> <key width="1.5" key0="enter" key1="±" key2="action" key3="="/>
</row> </row>

27
res/xml/numpad.xml Normal file
View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard bottom_row="false">
<row>
<key key0="7"/>
<key key0="8"/>
<key key0="9"/>
<key key0="/"/>
</row>
<row>
<key key0="4"/>
<key key0="5"/>
<key key0="6"/>
<key key0="*"/>
</row>
<row>
<key key0="1"/>
<key key0="2"/>
<key key0="3"/>
<key key0="-"/>
</row>
<row height="0.95">
<key key0="0"/>
<key key0="."/>
<key key0="="/>
<key key0="+"/>
</row>
</keyboard>

27
res/xml/pin.xml Normal file
View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard width="6.0" bottom_row="false">
<row>
<key shift="1.0" key0="1"/>
<key key0="2" indication="ABC"/>
<key key0="3" indication="DEF"/>
<key key0="backspace" key2="delete"/>
</row>
<row>
<key shift="1.0" key0="4" indication="GHI"/>
<key key0="5" indication="JKL"/>
<key key0="6" indication="MNO"/>
<key key0="(" key3=":" key4="-"/>
</row>
<row>
<key shift="1.0" key0="7" indication="PQRS"/>
<key key0="8" indication="TUV"/>
<key key0="9" indication="WXYZ"/>
<key key0=")" key2="," key3="/" key4="."/>
</row>
<row>
<key shift="1.0" key0="*" key1="switch_text" key3="switch_numeric"/>
<key key0="0" key3="+" key4="space"/>
<key key0="\#" key7="up" key6="right" key5="left" key8="down"/>
<key key0="enter" key2="action"/>
</row>
</keyboard>

View File

@@ -1,36 +1,57 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- This file defines the QWERTY layout.
A layout is made of keys arranged into rows. Keys can be made bigger with the
'width' attribute and blank space can be added on the left of a key with the
'shift' attribute.
'key0' assigns the symbol on the middle of the key. 'key1', 'key2', etc..
assign symbols to the corners of a key, they are arranged like this:
1 7 2
5 0 6
3 8 4
Keys prefixed with 'loc ' are not visible on the keyboard. They are used to
specify a place for a key, if it needed to be added to the layout later.
(for example, by the "Add keys to keyboard" option)
See bottom_row.xml for the definition of the bottom row and neo2.xml for a
layout that re-defines it.
See srcs/juloo.keyboard2/KeyValue.java for the keys that have a special meaning.
-->
<keyboard> <keyboard>
<row> <row>
<key key0="q" key1="esc" key2="1" key3="~" key4="!"/> <key key0="q" key2="1" key4="esc"/>
<key key0="w" key2="2" key3="\@"/> <key key0="w" key1="~" key2="2" key3="\@"/>
<key key0="e" key2="3" key3="\#" key4="€"/> <key key0="e" key1="!" key2="3" key3="\#" key4="loc €"/>
<key key0="r" key2="4" key3="$"/> <key key0="r" key2="4" key3="$" key1="loc ₪"/>
<key key0="t" key2="5" key3="%"/> <key key0="t" key2="5" key3="%"/>
<key key0="y" key2="6" key3="^"/> <key key0="y" key2="6" key3="^"/>
<key key0="u" key2="7" key3="&amp;"/> <key key0="u" key2="7" key3="&amp;"/>
<key key0="i" key2="8" key3="*"/> <key key0="i" key2="8" key3="*"/>
<key key0="o" key1="accent_macron" key2="9" key3="(" key4=")"/> <key key0="o" key1="loc accent_macron" key2="9" key3="(" key4=")"/>
<key key0="p" key2="0"/> <key key0="p" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
</row> </row>
<row> <row>
<key shift="0.5" key0="a" key1="tab" key2="`"/> <key shift="0.5" key0="a" key1="tab" key2="`"/>
<key key0="s" key1="accent_ring" key3="ß"/> <key key0="s" key1="loc accent_ring" key3="loc ß" key4="loc accent_ogonek"/>
<key key0="d" key1="accent_grave" key2="£" key3="accent_aigu"/> <key key0="d" key1="loc accent_grave" key2="loc £" key3="loc accent_aigu"/>
<key key0="f"/> <key key0="f" key1="loc accent_dot_above"/>
<key key0="g" key1="accent_caron" key2="-" key3="_"/> <key key0="g" key1="loc accent_caron" key2="-" key3="_"/>
<key key0="h" key2="=" key3="+"/> <key key0="h" key2="=" key3="+"/>
<key key0="j" key1="accent_trema" key2="accent_circonflexe" key4="}" key3="{"/> <key key0="j" key1="loc accent_trema" key2="loc accent_circonflexe" key4="}" key3="{"/>
<key key0="k" key3="[" key4="]"/> <key key0="k" key1="loc accent_double_aigu" key3="[" key4="]"/>
<key key0="l" key2="|" key3="\\"/> <key key0="l" key2="|" key3="\\"/>
</row> </row>
<row> <row>
<key width="1.5" key0="shift"/> <key width="1.5" key0="shift" key2="loc capslock"/>
<key key0="z"/> <key key0="z"/>
<key key0="x"/> <key key0="x"/>
<key key0="c" key1="accent_cedille" key2="&lt;" key3="."/> <key key0="c" key1="loc accent_cedille" key2="&lt;" key3="."/>
<key key0="v" key2="&gt;" key3=","/> <key key0="v" key2="&gt;" key3=","/>
<key key0="b" key2="\?" key3="/"/> <key key0="b" key2="\?" key3="/"/>
<key key0="n" key1="accent_tilde" key2=":" key3=";"/> <key key0="n" key1="loc accent_tilde" key2=":" key3=";"/>
<key key0="m" key2="&quot;" key3="'"/> <key key0="m" key2="&quot;" key3="'"/>
<key width="1.5" key0="backspace" key2="delete"/> <key width="1.5" key0="backspace" key2="delete"/>
</row> </row>

37
res/xml/qwerty_el.xml Normal file
View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0=";" key2="1" key4="esc"/>
<key key0="ς" key1="~" key2="2" key3="\@"/>
<key key0="ε" key1="!" key2="3" key3="\#" key4="loc €"/>
<key key0="ρ" key2="4" key3="$"/>
<key key0="τ" key2="5" key3="%"/>
<key key0="υ" key2="6" key3="^"/>
<key key0="θ" key2="7" key3="&amp;"/>
<key key0="ι" key1="accent_trema" key2="8" key3="*"/>
<key key0="ο" key2="9" key3="(" key4=")"/>
<key key0="π" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
</row>
<row>
<key shift="0.5" key0="α" key1="tab" key2="`"/>
<key key0="σ"/>
<key key0="δ" key2="loc £"/>
<key key0="φ"/>
<key key0="γ" key2="-" key3="_"/>
<key key0="η" key2="=" key3="+"/>
<key key0="ξ" key2="accent_aigu" key3="{" key4="}"/>
<key key0="κ" key2="accent_grave" key3="[" key4="]"/>
<key key0="λ" key2="|" key3="\\"/>
</row>
<row>
<key width="1.5" key0="shift" key2="loc capslock"/>
<key key0="ζ"/>
<key key0="χ"/>
<key key0="ψ" key2="&lt;" key3="."/>
<key key0="ω" key2="&gt;" key3=","/>
<key key0="β" key2="\?" key3="/"/>
<key key0="ν" key2=":" key3=";"/>
<key key0="μ" key2="&quot;" key3="'"/>
<key width="1.5" key0="backspace" key2="delete"/>
</row>
</keyboard>

View File

@@ -1,34 +1,34 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<keyboard> <keyboard>
<row> <row>
<key key0="q" key1="esc" key2="1" key3="~" key4="!"/> <key key0="q" key2="1" key4="esc"/>
<key key0="w" key2="2" key3="\@"/> <key key0="w" key1="~" key2="2" key3="\@"/>
<key key0="e" key2="3" key3="\#" key4="€"/> <key key0="e" key1="!" key2="3" key3="\#" key4="€"/>
<key key0="r" key2="4" key3="$"/> <key key0="r" key2="4" key3="$"/>
<key key0="t" key2="5" key3="%"/> <key key0="t" key2="5" key3="%"/>
<key key0="y" key2="6" key3="^"/> <key key0="y" key2="6" key3="^"/>
<key key0="u" key2="7" key3="&amp;"/> <key key0="u" key2="7" key3="&amp;"/>
<key key0="i" key2="8" key3="*"/> <key key0="i" key2="8" key3="*"/>
<key key0="o" key2="9" key3="(" key4=")"/> <key key0="o" key2="9" key3="(" key4=")"/>
<key key0="p" key2="0"/> <key key0="p" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
</row> </row>
<row> <row>
<key key0="a" key2="`" key3="tab" key4="¡"/> <key key0="a" key2="tab" key4="`"/>
<key key0="s" key1="accent_ring" key3="ß"/> <key key0="s" key2="¡" key3="loc ß"/>
<key key0="d" key1="accent_grave" key2="£" key3="accent_aigu"/> <key key0="d" key1="accent_grave" key3="accent_aigu"/>
<key key0="f"/> <key key0="f"/>
<key key0="g" key1="accent_caron" key2="-" key3="_"/> <key key0="g" key2="-" key3="_"/>
<key key0="h" key2="=" key3="+"/> <key key0="h" key2="=" key3="+"/>
<key key0="j" key1="accent_trema" key2="accent_circonflexe" key4="}" key3="{"/> <key key0="j" key1="accent_trema" key4="}" key3="{"/>
<key key0="k" key3="[" key4="]"/> <key key0="k" key3="[" key4="]"/>
<key key0="l" key2="|" key3="\\"/> <key key0="l" key2="|" key3="\\"/>
<key key0="ñ"/> <key key0="ñ" key1="·" key3="ç" />
</row> </row>
<row> <row>
<key width="1.5" key0="shift"/> <key width="1.5" key0="shift" key2="loc capslock"/>
<key key0="z"/> <key key0="z"/>
<key key0="x"/> <key key0="x"/>
<key key0="c" key1="accent_cedille" key2="&lt;" key3="."/> <key key0="c" key1="loc accent_cedille" key2="&lt;" key3="."/>
<key key0="v" key2="&gt;" key3=","/> <key key0="v" key2="&gt;" key3=","/>
<key key0="b" key2="\?" key3="/" key4="¿"/> <key key0="b" key2="\?" key3="/" key4="¿"/>
<key key0="n" key1="accent_tilde" key2=":" key3=";"/> <key key0="n" key1="accent_tilde" key2=":" key3=";"/>

37
res/xml/qwerty_hu.xml Normal file
View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<keyboard>
<row>
<key key0="q" key2="0" key4="esc"/>
<key key0="w" key1="'" key2="1" key3="~" key4="|"/>
<key key0="e" key1="&quot;" key2="2" key4="é"/>
<key key0="r" key2="3" key4="^"/>
<key key0="t" key1="!" key2="4" key4="f11_placeholder"/>
<key key0="y" key1="%" key2="5" key3="°" key4="f12_placeholder"/>
<key key0="u" key1="ű" key2="6" key3="ü" key4="ú"/>
<key key0="i" key1="=" key2="7" key3="`" key4="í"/>
<key key0="o" key1="ő" key2="8" key3="ö" key4="ó"/>
<key key0="p" key2="9"/>
</row>
<row>
<key shift="0.5" key0="a" key1="tab" key4="á"/>
<key key0="s" key1="§" key2="\\" key3="[" key4="]"/>
<key key0="d" key3="{" key4="}"/>
<key key0="f" key3="+"/>
<key key0="g" key3="*"/>
<key key0="h"/>
<key key0="j"/>
<key key0="k" key3="(" key4=")"/>
<key key0="l" key1="$" key3="/"/>
</row>
<row>
<key width="1.5" key0="shift" key2="loc capslock"/>
<key key0="z" key3="&lt;" key4="&gt;"/>
<key key0="x" key4="\#"/>
<key key0="c" key4="&amp;"/>
<key key0="v" key4="\@"/>
<key key0="b" key1="\?" key3="," key4=";"/>
<key key0="n" key1=":" key3="."/>
<key key0="m" key1="_" key3="-"/>
<key width="1.5" key0="backspace" key2="delete"/>
</row>
</keyboard>

Some files were not shown because too many files have changed in this diff Show More