diff --git a/app/src/main/assets/language_key_texts/mns.txt b/app/src/main/assets/language_key_texts/mns.txt
new file mode 100644
index 000000000..04674e713
--- /dev/null
+++ b/app/src/main/assets/language_key_texts/mns.txt
@@ -0,0 +1,20 @@
+[popup_keys]
+ё ё̄
+у ӯ ӱ
+к қ
+е е̄
+н ӈ
+г ғ
+х ҳ
+ы ы̄
+а а̄ ӓ
+о о̄ ӧ
+ж җ
+э э̄
+я я̄
+ч ҷ
+и ӣ
+ю ю̄
+
+[labels]
+alphabet: АБВ
\ No newline at end of file
diff --git a/app/src/main/assets/layouts/mansi_north.txt b/app/src/main/assets/layouts/mansi_north.txt
new file mode 100644
index 000000000..efdbd965e
--- /dev/null
+++ b/app/src/main/assets/layouts/mansi_north.txt
@@ -0,0 +1,47 @@
+ё
+ы̄
+ӯ
+а̄
+е̄
+ӈ
+о̄
+я̄
+ю̄
+ӣ
+э̄
+ё̄
+
+й
+ц
+у
+к
+е
+н
+г
+ш
+щ
+з
+х
+ъ
+
+ф
+ы
+в
+а
+п
+р
+о
+л
+д
+ж
+э
+
+я
+ч
+с
+м
+и
+т
+ь
+б
+ю
\ No newline at end of file
diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt
index 04a406a67..0cbd84712 100644
--- a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt
+++ b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt
@@ -52,6 +52,7 @@ class LocaleKeyboardInfos(dataStream: InputStream?, locale: Locale) {
"hy", "ar", "be", "fa", "hi", "lo", "mr", "ne", "th", "ur" -> Key.LABEL_FLAGS_FONT_NORMAL
"km", "ml", "si", "ta", "te" -> Key.LABEL_FLAGS_FONT_NORMAL or Key.LABEL_FLAGS_AUTO_X_SCALE
"kn" -> Key.LABEL_FLAGS_FONT_NORMAL or Key.LABEL_FLAGS_AUTO_X_SCALE or Key.LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO
+ "mns" -> Key.LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO
else -> 0
}
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 fa2d81c78..e33efc73e 100644
--- a/app/src/main/java/helium314/keyboard/latin/common/LocaleUtils.kt
+++ b/app/src/main/java/helium314/keyboard/latin/common/LocaleUtils.kt
@@ -190,7 +190,7 @@ object LocaleUtils {
fun getLocaleDisplayNameInLocale(locale: Locale, resources: Resources, displayLocale: Locale): String {
val languageTag = locale.toLanguageTag()
if (languageTag == SubtypeLocaleUtils.NO_LANGUAGE) return resources.getString(R.string.subtype_no_language)
- if (locale.script() != locale.language.constructLocale().script() || locale.language == "xdq") {
+ if (locale.script() != locale.language.constructLocale().script() || locale.language == "mns" || locale.language == "xdq") {
val resId = resources.getIdentifier(
"subtype_${languageTag.replace("-", "_")}",
"string",
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 5d55fab90..6daec94bc 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", "xdq", "cv", "mhr" -> SCRIPT_CYRILLIC
+ "sr", "mk", "ru", "uk", "mn", "be", "kk", "ky", "bg", "xdq", "cv", "mhr", "mns" -> SCRIPT_CYRILLIC
"ka" -> SCRIPT_GEORGIAN
"el" -> SCRIPT_GREEK
"iw" -> SCRIPT_HEBREW
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index f0f05dcd7..d660f567f 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -53,12 +53,14 @@
Английский (США)
Испанский (США)
хинглиш
+ Мансийский
кайтагский
сербский (латиница)
Английский (Великобритания) (%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 351361166..184afc61c 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -14,6 +14,7 @@
- en-GB
- es-US
- hi-Latn
+ - mns
- xdq
- sr-Latn
@@ -21,10 +22,12 @@
- hi-Latn
+ - mns
- xdq
- sr-Latn
Hinglish
+ Ма̄ньси
Хайдаҡьан
Srpski
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4c36c256c..420e60636 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -279,6 +279,8 @@
Spanish (US)
Hinglish
+
+ Mansi
Kaitag
+ Mansi (%s)
Kaitag (%s)
diff --git a/app/src/main/res/xml/method.xml b/app/src/main/res/xml/method.xml
index c3c1c96c5..2a044259e 100644
--- a/app/src/main/res/xml/method.xml
+++ b/app/src/main/res/xml/method.xml
@@ -737,6 +737,15 @@
android:imeSubtypeExtraValue="KeyboardLayoutSet=mongolian,EmojiCapable"
android:isAsciiCapable="false"
/>
+