New languages (#318)
* Added Hindi language support * Added Simplified Chinese support and implemented search in language selection dialog * Added support for Italian, Polish, Vietnamese, and Brazilian Portuguese languages * Added Belarusian language support and fixed activity recreation on locale change
This commit is contained in:
parent
056485a140
commit
70c272baa7
26 changed files with 7931 additions and 301 deletions
|
|
@ -3,17 +3,19 @@ package com.aryan.reader
|
|||
import java.io.File
|
||||
import javax.xml.parsers.DocumentBuilderFactory
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class AppLanguageOptionsTest {
|
||||
|
||||
@Test
|
||||
fun `supported app languages include Spanish`() {
|
||||
fun `supported app languages expose configured locale order`() {
|
||||
assertEquals(
|
||||
listOf("en", "ar", "de", "tr", "fr", "ru", "es"),
|
||||
listOf("en", "ar", "de", "tr", "fr", "ru", "be", "es", "pt-BR", "it", "pl", "vi", "hi", "zh-CN"),
|
||||
supportedAppLanguageOptions.mapNotNull { it.tag }
|
||||
)
|
||||
assertEquals(R.string.language_spanish, supportedAppLanguageOptions.last().labelRes)
|
||||
assertEquals(R.string.language_chinese_simplified, supportedAppLanguageOptions.last().labelRes)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -23,6 +25,35 @@ class AppLanguageOptionsTest {
|
|||
assertEquals(supportedAppLanguageOptions, appLanguageSelectionOptions.drop(1))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `app language search matches labels tags and aliases`() {
|
||||
val chinese = supportedAppLanguageOptions.first { it.tag == "zh-CN" }
|
||||
|
||||
assertTrue(chinese.matchesLanguageSearch(label = "简体中文(简体中文)", query = "zh cn"))
|
||||
assertTrue(chinese.matchesLanguageSearch(label = "简体中文(简体中文)", query = "mandarin"))
|
||||
assertTrue(chinese.matchesLanguageSearch(label = "简体中文(简体中文)", query = "简体"))
|
||||
assertTrue(systemAppLanguageOption.matchesLanguageSearch(label = "System default", query = "device"))
|
||||
assertFalse(chinese.matchesLanguageSearch(label = "简体中文(简体中文)", query = "korean"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `app language search normalizes accents`() {
|
||||
val turkish = supportedAppLanguageOptions.first { it.tag == "tr" }
|
||||
val belarusian = supportedAppLanguageOptions.first { it.tag == "be" }
|
||||
val portugueseBrazilian = supportedAppLanguageOptions.first { it.tag == "pt-BR" }
|
||||
val vietnamese = supportedAppLanguageOptions.first { it.tag == "vi" }
|
||||
|
||||
assertTrue(turkish.matchesLanguageSearch(label = "Türkçe (Turkish)", query = "turkce"))
|
||||
assertTrue(belarusian.matchesLanguageSearch(label = "Беларуская", query = "belarusian"))
|
||||
assertTrue(
|
||||
portugueseBrazilian.matchesLanguageSearch(
|
||||
label = "Português (Brasil)",
|
||||
query = "portugues brasileiro"
|
||||
)
|
||||
)
|
||||
assertTrue(vietnamese.matchesLanguageSearch(label = "Tiếng Việt", query = "tieng viet"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `supported app language tags are unique`() {
|
||||
val tags = supportedAppLanguageOptions.mapNotNull { it.tag }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue