diff --git a/app/src/main/assets/language_key_texts/xdq.txt b/app/src/main/assets/language_key_texts/xdq.txt
new file mode 100644
index 00000000..697b2f93
--- /dev/null
+++ b/app/src/main/assets/language_key_texts/xdq.txt
@@ -0,0 +1,16 @@
+[popup_keys]
+у у́ ю
+е е́ э ё
+ш щ
+а а́
+п ф
+о о́
+и и́ ы
+ъ ӏ
+я я́
+ь ӏ
+' ’ ‚ ‘
+" ” „ “
+
+[labels]
+alphabet: АБВ
diff --git a/app/src/main/assets/layouts/kaitag.txt b/app/src/main/assets/layouts/kaitag.txt
new file mode 100644
index 00000000..51dcff3e
--- /dev/null
+++ b/app/src/main/assets/layouts/kaitag.txt
@@ -0,0 +1,32 @@
+й
+ц
+у
+к
+е
+н
+г
+ш
+ҡ
+з
+х №
+
+ҳ
+ғ
+в
+а
+п
+р
+о
+л
+д
+ж /
+ъ ~
+
+я
+ч
+с
+м
+и
+т
+ь
+б < >
diff --git a/app/src/main/java/helium314/keyboard/latin/common/LocaleUtils.kt b/app/src/main/java/helium314/keyboard/latin/common/LocaleUtils.kt
index 067b973e..6eca45a3 100644
--- a/app/src/main/java/helium314/keyboard/latin/common/LocaleUtils.kt
+++ b/app/src/main/java/helium314/keyboard/latin/common/LocaleUtils.kt
@@ -181,7 +181,7 @@ object LocaleUtils {
fun getLocaleDisplayNameInSystemLocale(locale: Locale, context: Context): String {
val languageTag = locale.toLanguageTag()
if (languageTag == SubtypeLocaleUtils.NO_LANGUAGE) return context.getString(R.string.subtype_no_language)
- if (locale.script() != locale.language.constructLocale().script()) {
+ if (locale.script() != locale.language.constructLocale().script() || locale.language == "xdq") {
val resId = context.resources.getIdentifier("subtype_${languageTag.replace("-", "_")}", "string", context.packageName)
if (resId != 0) return context.getString(resId)
}
diff --git a/app/src/main/java/helium314/keyboard/latin/utils/ScriptUtils.kt b/app/src/main/java/helium314/keyboard/latin/utils/ScriptUtils.kt
index c1925cda..f60e0e04 100644
--- a/app/src/main/java/helium314/keyboard/latin/utils/ScriptUtils.kt
+++ b/app/src/main/java/helium314/keyboard/latin/utils/ScriptUtils.kt
@@ -165,7 +165,7 @@ object ScriptUtils {
"ar", "ur", "fa" -> SCRIPT_ARABIC
"hy" -> SCRIPT_ARMENIAN
"bn" -> SCRIPT_BENGALI
- "sr", "mk", "ru", "uk", "mn", "be", "kk", "ky", "bg" -> SCRIPT_CYRILLIC
+ "sr", "mk", "ru", "uk", "mn", "be", "kk", "ky", "bg", "xdq" -> SCRIPT_CYRILLIC
"ka" -> SCRIPT_GEORGIAN
"el" -> SCRIPT_GREEK
"iw" -> SCRIPT_HEBREW
diff --git a/app/src/main/res/values-en-rAU/strings.xml b/app/src/main/res/values-en-rAU/strings.xml
index 926bc051..f14000bc 100644
--- a/app/src/main/res/values-en-rAU/strings.xml
+++ b/app/src/main/res/values-en-rAU/strings.xml
@@ -53,11 +53,13 @@
"English (US)"
"Spanish (US)"
"Hinglish"
+ "Kaitag"
"Serbian (Latin)"
"English (UK) (%s)"
"English (US) (%s)"
"Spanish (US) (%s)"
"Hinglish (%s)"
+ "Kaitag (%s)"
"Serbian (%s)"
"%s (Traditional)"
"%s (Compact)"
diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml
index 926bc051..f14000bc 100644
--- a/app/src/main/res/values-en-rCA/strings.xml
+++ b/app/src/main/res/values-en-rCA/strings.xml
@@ -53,11 +53,13 @@
"English (US)"
"Spanish (US)"
"Hinglish"
+ "Kaitag"
"Serbian (Latin)"
"English (UK) (%s)"
"English (US) (%s)"
"Spanish (US) (%s)"
"Hinglish (%s)"
+ "Kaitag (%s)"
"Serbian (%s)"
"%s (Traditional)"
"%s (Compact)"
diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml
index 309b9752..c03a8bdc 100644
--- a/app/src/main/res/values-en-rGB/strings.xml
+++ b/app/src/main/res/values-en-rGB/strings.xml
@@ -53,11 +53,13 @@
"English (US)"
"Spanish (US)"
"Hinglish"
+ "Kaitag"
"Serbian (Latin)"
English (UK) (%s)
English (US) (%s)
Spanish (US) (%s)
Hinglish (%s)
+ Kaitag (%s)
Serbian (%s)
%s (Traditional)
%s (Compact)
diff --git a/app/src/main/res/values-en-rIN/strings.xml b/app/src/main/res/values-en-rIN/strings.xml
index 002cd7e9..32279964 100644
--- a/app/src/main/res/values-en-rIN/strings.xml
+++ b/app/src/main/res/values-en-rIN/strings.xml
@@ -53,11 +53,13 @@
"English (US)"
"Spanish (US)"
"Hinglish"
+ "Kaitag"
"Serbian (Latin)"
"English (UK) (%s)"
"English (US) (%s)"
"Spanish (US) (%s)"
"Hinglish (%s)"
+ "Kaitag (%s)"
"Serbian (%s)"
"%s (Traditional)"
"%s (Compact)"
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 6f7d7064..501ffd45 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -53,11 +53,13 @@
Английский (США)
Испанский (США)
хинглиш
+ Кайтагский
сербский (латиница)
Английский (Великобритания, %s)
Английский (США, %s)
Испанский (США, %s)
хинглиш (%s)
+ Кайтагский (%s)
сербский (%s)
%s (классическая)
%s (Компактная)
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index 68e5f47e..958226be 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -14,15 +14,18 @@
- en-GB
- es-US
- hi-Latn
+ - xdq
- sr-Latn
- hi-Latn
+ - xdq
- sr-Latn
Hinglish
+ Хайдаҡьан
Srpski
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c3ded598..d7f11115 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -277,6 +277,7 @@
Spanish (US)
Hinglish
+ Kaitag
Serbian (Latin)
@@ -297,6 +298,9 @@
Hinglish (%s)
+ Kaitag (%s)
+
Serbian (%s)
diff --git a/app/src/main/res/xml/method.xml b/app/src/main/res/xml/method.xml
index ffadf290..d7e53ea1 100644
--- a/app/src/main/res/xml/method.xml
+++ b/app/src/main/res/xml/method.xml
@@ -615,6 +615,15 @@
android:imeSubtypeExtraValue="KeyboardLayoutSet=russian,EmojiCapable"
android:isAsciiCapable="false"
/>
+