Как можно изменять язык приложения по выбору пользователя в настройках приложения? У меня есть SettingsFragment и его разметка preferences.xml, в которой есть ListPreference с выбором языка (английский и русский).
Да, но там нет конктреного объяснения, я не понимаю как я могу конкретно изменить язык моего приложения, как должен выглядеть этот код? Я перепробовал все, что написано в там, в мануале, и то, что пишут на сайтах - ничего не работает.
private fun setLang(context: Context = applicationContext) {
val lang = defPreferences.getString("key_language", "en")
val locale = Locale(lang)
Locale.setDefault(locale)
val resources = context.resources
val configuration = Configuration(resources.configuration)
configuration.setLocale(locale)
val displayMetrics = resources.displayMetrics
resources.updateConfiguration(configuration, displayMetrics)
currentLang = lang.toString()
recreate()
}
И похожие на него, с незначительными изменениями, тут суть одна
Такое пробовал:
private fun setLang(context: Context = applicationContext) {
val appLocale: LocaleListCompat = LocaleListCompat.forLanguageTags("en-US")
AppCompatDelegate.setApplicationLocales(appLocale)
recreate()
}
private fun setLang(context: Context = applicationContext) {
val appLocale: LocaleListCompat = LocaleListCompat.forLanguageTags(Locale.ENGLISH.toLanguageTag())
AppCompatDelegate.setApplicationLocales(appLocale)
recreate()
}
Мне нужен код, который может менять языковой ресурс приложения и чтобы изменения были видны после перезапуска активити. Все что выше - у меня не сработало, проверил все что смог