SubwayTooter-Android-App/app/src/main/java/jp/juggler/subwaytooter/util/PostLanguage.kt

25 lines
953 B
Kotlin

package jp.juggler.subwaytooter.util
import android.content.Context
import jp.juggler.subwaytooter.R
import jp.juggler.subwaytooter.table.SavedAccount
import java.util.*
// 言語コードと表示文字列のペアのリストを返す
fun Context.loadLanguageList() =
ArrayList<Pair<String, String>>().apply {
add(Pair(SavedAccount.LANG_WEB, getString(R.string.use_web_settings)))
add(Pair(SavedAccount.LANG_DEVICE, getString(R.string.device_language)))
val nameMap = HashMap<String, String>()
addAll(
Locale.getAvailableLocales().mapNotNull { locale ->
locale.language.takeIf { it.length == 2 || it.contains('-') }
?.also { code -> nameMap[code] = "$code ${locale.displayLanguage}" }
}
.toSet()
.toList()
.sorted()
.map { Pair(it, nameMap[it]!!) }
)
}