diff --git a/res/drawable-hdpi/ime_uk_lang_lower.png b/res/drawable-hdpi/ime_uk_lang_lower.png
new file mode 100644
index 00000000..c0b41712
Binary files /dev/null and b/res/drawable-hdpi/ime_uk_lang_lower.png differ
diff --git a/res/drawable-hdpi/ime_uk_lang_single.png b/res/drawable-hdpi/ime_uk_lang_single.png
new file mode 100644
index 00000000..1c1d42cc
Binary files /dev/null and b/res/drawable-hdpi/ime_uk_lang_single.png differ
diff --git a/res/drawable-hdpi/ime_uk_lang_upper.png b/res/drawable-hdpi/ime_uk_lang_upper.png
new file mode 100644
index 00000000..223ec699
Binary files /dev/null and b/res/drawable-hdpi/ime_uk_lang_upper.png differ
diff --git a/res/drawable/ime_uk_lang_lower.png b/res/drawable/ime_uk_lang_lower.png
new file mode 100644
index 00000000..c0b41712
Binary files /dev/null and b/res/drawable/ime_uk_lang_lower.png differ
diff --git a/res/drawable/ime_uk_lang_single.png b/res/drawable/ime_uk_lang_single.png
new file mode 100644
index 00000000..1c1d42cc
Binary files /dev/null and b/res/drawable/ime_uk_lang_single.png differ
diff --git a/res/drawable/ime_uk_lang_upper.png b/res/drawable/ime_uk_lang_upper.png
new file mode 100644
index 00000000..223ec699
Binary files /dev/null and b/res/drawable/ime_uk_lang_upper.png differ
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
new file mode 100644
index 00000000..7db433e2
--- /dev/null
+++ b/res/values-uk/arrays.xml
@@ -0,0 +1,97 @@
+
+
+
+ - Словник
+ - Текст
+ - Цифри
+
+
+
+ - English
+ - Російська
+ - Німецька
+ - Французька
+ - Італійська
+ - Українська
+
+
+
+ - Нижній регістр
+ - Починати з великої літери
+ - Всі великі літери
+
+
+
+ - Словник
+ - Літери
+ - Цифри
+
+
+
+ - усмішка
+ - клоун
+ - дурненький
+ - няшний
+ - вусатий смайл
+ - зловтіха
+ - дуже щасливий
+ - щасливий
+ - вусань
+ - сміється
+
+ - сміється з розплющеними очима
+ - сміється з заплющеними очима
+ - в захваті
+ - крутий
+ - вчений
+ - похмурий погляд
+ - сумний
+ - зневіра
+ - сумний клоун
+ - засмучений вусань
+
+ - плаче
+ - сміх до сліз
+ - лається
+ - страх
+ - жах
+ - кошмар
+ - тривога
+ - відкрив рота від обурення
+ - шок
+ - подив
+
+ - поцілунок
+ - посміхається підморгуючи
+ - сміється підморгуючи
+ - грайливий
+ - показати язика
+ - дражниться
+ - киска с языком
+ - раздратований
+ - скептик
+ - неопределился
+
+ - не зрозумів
+ - закрив очі
+ - без відчуттів
+ - рот зі скріпкою
+ - німий як могила
+ - в підтяжках
+ - банкір
+ - лежень
+ - зубатий вампір
+ - з\'їв кисле
+
+ - святий
+ - невинуватий
+ - диявол підморгує
+ - диявол
+ - підозрілий
+ - день народження
+ - ура
+ - серце
+ - розбите серце
+ - милий
+
+
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
new file mode 100644
index 00000000..0c85e0c4
--- /dev/null
+++ b/res/values-uk/strings.xml
@@ -0,0 +1,69 @@
+
+
+ Налаштування
+ Додати слово
+ Неможливо додати слово з таким символом %1$s (%2$s).
+ Неможливо додати слово.
+ Слово (%1$s) вже є в словнику.
+ Слово (%1$s) вже є в словнику %2$s.
+ Traditional T9
+ Hello world!
+ Клавіатура T9
+ Цифри
+ Додати слово
+ Вставити символ
+ Додати слово?
+ Готово
+ Застосувати
+ Змінити IME
+ Режим введення
+ Помилка: Зовнышня пам\'ять недоступна. Резервне копіювання неможливе.
+ Резервне копіювання бази даних IME
+ Попередження: Існуюча копія бази даних буде перезаписана. Продовжити?
+ Бекап словника
+ Режим введення за замовчуванням
+ Режим введення за замовчуванням
+ Завантажити словник IME
+ Завантажити словник
+ Відновлення словника…
+ Завантаження словника
+ Завантаження словника користувача…
+ Завантажити свій словник
+ Багатомовна підтримка
+ Очистити IME словник
+ Попередження: Буде виконана очистка словника. Продовжити?
+ Очистка словника
+ Очистка словника… Будь-ласка, зачекайте…
+ Тестовий запит
+ Помилка: Зовнішня память недоступна. Відновлення неможливе.
+ Помилка: Файл відновлення не знайдений.
+ Відновити базу даних IME
+ При відновленні існуюча база даних буде витерта. Если это нежелательно, то сначала выберите \"%1$s\" перед использованием этой опции.
+ Зберегти словник
+ Збереження словника…
+ Test func
+ Hold Icon
+ Про програму
+ Наступне
+ Попереднє
+
+ Вставити символ
+ Вставити смайл
+ Стор: %1$s/%2$s
+
+ Закрити
+ База даних недоступна.
+ Оновлення бази даних словника…
+ Виконується оновлення бази даних словника… \n Це займе деякий час.
+ Оновлення бази даних словника виконано успішно.
+ Оновлення бізи даних словника недоступне.
+ Помилка. \n Словник %1$s не знайдено.
+ Використовується для індикації зміни режима введення.
+ Режим індикації
+ База даних недоступна. Використовуюься значення за замовчуванням.
+ Перезавантажити значення клавіш
+
+ Додати слово
+ Налаштування Traditional T9
+
+
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 357cc21a..f04cbed0 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1,109 +1,111 @@
-
- - Dictionary
- - Text
- - Number
-
-
- - @integer/INPUT_DICT
- - @integer/INPUT_TEXT
- - @integer/INPUT_NUM
-
+
+ - Dictionary
+ - Text
+ - Number
+
+
+ - @integer/INPUT_DICT
+ - @integer/INPUT_TEXT
+ - @integer/INPUT_NUM
+
-
- - English
- - Russian
- - German
- - French
- - Italian
-
-
-
- - @integer/LANG_EN
- - @integer/LANG_RU
- - @integer/LANG_DE
- - @integer/LANG_FR
- - @integer/LANG_IT
-
+
+ - English
+ - Russian
+ - German
+ - French
+ - Italian
+ - Ukrainian
+
+
+
+ - @integer/LANG_EN
+ - @integer/LANG_RU
+ - @integer/LANG_DE
+ - @integer/LANG_FR
+ - @integer/LANG_IT
+ - @integer/LANG_UK
+
-
- - Caps off
- - Single capital
- - All caps
-
+
+ - Caps off
+ - Single capital
+ - All caps
+
-
- - Dictionary
- - Text
- - Number
-
+
+ - Dictionary
+ - Text
+ - Number
+
-
- - Smile
- - Clown
- - Sharp grin
- - Cat
- - Half nose
- - Schadenfreude
- - Big eye sharp grin
- - Big eye smile
- - Cheeky smile
- - Laughing
+
+ - Smile
+ - Clown
+ - Sharp grin
+ - Cat
+ - Half nose
+ - Schadenfreude
+ - Big eye sharp grin
+ - Big eye smile
+ - Cheeky smile
+ - Laughing
- - Bug eye laughing
- - Laughing with eyes closed
- - Big eye laughing
- - Glasses pointy nose laughing
- - Pointed hat smile
- - Frown
- - Sad
- - Disheartened
- - Sad clown
- - Sad cheeky
+ - Bug eye laughing
+ - Laughing with eyes closed
+ - Big eye laughing
+ - Glasses pointy nose laughing
+ - Pointed hat smile
+ - Frown
+ - Sad
+ - Disheartened
+ - Sad clown
+ - Sad cheeky
- - Crying
- - Laughing to tears
- - Expletive
- - Shocked frown
- - Bug eye\'d frown
- - Sad with eyes closed
- - Crying with mouth open
- - Frown with mouth open
- - Shocked
- - Surprised
+ - Crying
+ - Laughing to tears
+ - Expletive
+ - Shocked frown
+ - Bug eye\'d frown
+ - Sad with eyes closed
+ - Crying with mouth open
+ - Frown with mouth open
+ - Shocked
+ - Surprised
- - Kiss
- - Winking smile
- - Winking laugh
- - Cheeky tongue out
- - Tongue out
- - Teasing
- - Big eye\'d tongue out
- - Annoyed
- - Skeptic
- - Undecided
+ - Kiss
+ - Winking smile
+ - Winking laugh
+ - Cheeky tongue out
+ - Tongue out
+ - Teasing
+ - Big eye\'d tongue out
+ - Annoyed
+ - Skeptic
+ - Undecided
- - Confused
- - Closed eyes
- - Unimpressed
- - Bashful
- - Mouth shut
- - Censored
- - Banker
- - Very big sad mouth
- - Mischievous/sarcasm
- - Sour face
+ - Confused
+ - Closed eyes
+ - Unimpressed
+ - Bashful
+ - Mouth shut
+ - Censored
+ - Banker
+ - Very big sad mouth
+ - Mischievous/sarcasm
+ - Sour face
- - Innocent cat
- - Innocent smile
- - Evil wink
- - Evil grin
- - Shifty eyes
- - Party hat smile
- - Arms up cheering
- - Heart
- - Broken heart
- - big eye\'d cat
-
+ - Innocent cat
+ - Innocent smile
+ - Evil wink
+ - Evil grin
+ - Shifty eyes
+ - Party hat smile
+ - Arms up cheering
+ - Heart
+ - Broken heart
+ - big eye\'d cat
+
diff --git a/res/values/const.xml b/res/values/const.xml
index 7d0c6f1a..00212242 100644
--- a/res/values/const.xml
+++ b/res/values/const.xml
@@ -1,16 +1,17 @@
-
- 1
- 2
- 4
- 8
- 16
+
+ 1
+ 2
+ 4
+ 8
+ 16
+ 32
- 0
- 1
- 2
+ 0
+ 1
+ 2
- @integer/INPUT_DICT
- @integer/LANG_EN
+ @integer/INPUT_DICT
+ @integer/LANG_EN
diff --git a/src/org/nyanya/android/traditionalt9/CharMap.java b/src/org/nyanya/android/traditionalt9/CharMap.java
index 05925428..523d080a 100644
--- a/src/org/nyanya/android/traditionalt9/CharMap.java
+++ b/src/org/nyanya/android/traditionalt9/CharMap.java
@@ -11,146 +11,164 @@ import java.util.HashMap;
import java.util.Map;
public class CharMap {
- protected static final AbstractList