Выпуск
Мы меняем язык внутри приложения, все работает, кроме подсказок в диалоге отпечатков пальцев. Какой бы язык мы ни установили, у нас всегда есть подсказки на английском:
- Сенсорный датчик отпечатков пальцев
- Не распознано
- и т.д ...
* +1012 *
Окружающая среда
- Используемый компонент: androidx.biometric.BiometricPrompt
- Используемая версия: 1.0.0.0-alpha04
- Устройства / версии Android, воспроизводимые на: API эмулятора 28
Как устанавливается языковой стандарт:
private fun setNewLocaleAndRestart(language: String) {
LocaleManager(this).setNewLocale(language)
//restarting app
val i = Intent(this, SplashScreenActivity::class.java)
startActivity(i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK))
finish()
System.exit(0)
}
class LocaleManager(val context: Context) {
val sharedPreferenceManager = createSharedPreferenceManager(context)
fun setLocale(): Context = updateResources()
fun setNewLocale(language: String): Context {
return updateResources(language)
}
private fun updateResources(l: String? = null): Context {
val language = l ?: sharedPreferenceManager.language
if (language.isBlank()) return context
val locale = Locale(language)
Locale.setDefault(locale)
val res = context.resources
val config = Configuration(res.configuration)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLocale(locale)
return context.createConfigurationContext(config)
} else @Suppress("DEPRECATION") {
config.locale = locale
res.updateConfiguration(config, res.displayMetrics)
return context
}
}
}