diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 4e6822916f272c5b9ce4d979c116a5a2dc666237..9c88c5c6deaed3f912ac028f76d2a03ffcbc6b60 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -63,7 +63,7 @@ android {
 
     signingConfig = signingConfigs.findByName("default")
 
-    resConfigs("en", "de", "fr-rCA", "lt", "pt")
+    //resConfigs("en", "de", "fr-rCA", "lt", "pt")
 
     vectorDrawables.useSupportLibrary = true
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
index b77f6ae598acd4703b5765c46a86cfa7dc44a519..e1dd6bcf7a9e075e0d39be1a54a60080790f93f5 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
@@ -588,7 +588,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
     outState?.putInt("OPEN_BUFFER", viewModel.buffer.value ?: -1)
     outState?.putInt("OPEN_BUFFERVIEWCONFIG", viewModel.bufferViewConfigId.value ?: -1)
     outState?.putLong("CONNECTED_ACCOUNT", connectedAccount)
-    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
       outPersistentState?.putInt("OPEN_BUFFER", viewModel.buffer.value ?: -1)
       outPersistentState?.putInt("OPEN_BUFFERVIEWCONFIG", viewModel.bufferViewConfigId.value ?: -1)
       outPersistentState?.putLong("CONNECTED_ACCOUNT", connectedAccount)
@@ -607,7 +607,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
   override fun onRestoreInstanceState(savedInstanceState: Bundle?,
                                       persistentState: PersistableBundle?) {
     super.onRestoreInstanceState(savedInstanceState, persistentState)
-    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
       val fallbackBuffer = persistentState?.getInt("OPEN_BUFFER", -1) ?: -1
       viewModel.buffer.onNext(
         savedInstanceState?.getInt("OPEN_BUFFER", fallbackBuffer)
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt
index cf95a5ebf7a7c50bb21da1e2b1d9d061c022ac8a..cbc2ec606dff9cb1954491d9c88db0e117c7ac39 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt
@@ -31,8 +31,17 @@ object LocaleHelper {
     return updateResources(context, Settings.appearance(context).language)
   }
 
+  fun parseLanguageCode(rawLanguage: String): Locale {
+    val split = rawLanguage.split("-", limit = 3)
+    return when (split.size) {
+      3    -> Locale(split[0], split[2], split[1])
+      2    -> Locale(split[0], split[1], "")
+      else -> Locale(split[0], "", "")
+    }
+  }
+
   private fun updateResources(context: Context, language: String) = if (language.isNotEmpty()) {
-    val locale = Locale(language)
+    val locale = parseLanguageCode(language)
     Locale.setDefault(locale)
 
     val config = Configuration(context.resources.configuration)
diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml
index 362383ff5586859c6e3a621ee1fd9d4ef4d753cf..b8f0edd6c46deafe4bc4a03d91d5ae495c175e8e 100644
--- a/app/src/main/res/values/strings_preferences.xml
+++ b/app/src/main/res/values/strings_preferences.xml
@@ -107,11 +107,11 @@
     <item>en</item>
     <item>de</item>
     <!--<item>fr</item>-->
-    <item>fr_ca</item>
+    <item>fr-CA</item>
     <!--<item>nl</item>-->
     <item>lt</item>
     <item>pt</item>
-    <!--<item>pt_BR</item>-->
+    <!--<item>pt-BR</item>-->
     <!--<item>sr</item>-->
   </string-array>
 
diff --git a/app/src/test/java/de/kuschku/quasseldroid/util/ui/LocaleHelperTest.kt b/app/src/test/java/de/kuschku/quasseldroid/util/ui/LocaleHelperTest.kt
new file mode 100644
index 0000000000000000000000000000000000000000..0aa220b828178f52c83c9f2cd08ff6f8adba195f
--- /dev/null
+++ b/app/src/test/java/de/kuschku/quasseldroid/util/ui/LocaleHelperTest.kt
@@ -0,0 +1,25 @@
+package de.kuschku.quasseldroid.util.ui
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class LocaleHelperTest {
+  @Test
+  fun testParseLanguageCode() {
+    LocaleHelper.parseLanguageCode("fr-CA").let {
+      assertEquals("CA", it.country)
+      assertEquals("", it.variant)
+      assertEquals("fr", it.language)
+    }
+    LocaleHelper.parseLanguageCode("zh-Hant-TW").let {
+      assertEquals("TW", it.country)
+      assertEquals("Hant", it.variant)
+      assertEquals("zh", it.language)
+    }
+    LocaleHelper.parseLanguageCode("zh").let {
+      assertEquals("", it.country)
+      assertEquals("", it.variant)
+      assertEquals("zh", it.language)
+    }
+  }
+}