0

I was trying to change the language of my application (Kotlin & Jetpack Compose) but couldn't get it to work

LocaleHelper.kt

fun setLocale(context: Context, language: String): Context {
    persist(context, language)

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        return updateResources(context, language)
    }

    return updateResourcesLegacy(context, language)

}

@TargetApi(Build.VERSION_CODES.N)
private fun updateResources(context: Context, language: String): Context {
    val locale = Locale(language)
    Locale.setDefault(locale)

    val configuration = context.resources.configuration
    configuration.setLocale(locale)
    configuration.setLayoutDirection(locale)

    return context.createConfigurationContext(configuration)
}

@Suppress("DEPRECATION")
private fun updateResourcesLegacy(context: Context, language: String): Context {
    val locale = Locale(language)
    Locale.setDefault(locale)

    val resources = context.resources

    val configuration = resources.configuration
    configuration.locale = locale
    configuration.setLayoutDirection(locale)

    resources.updateConfiguration(configuration, resources.displayMetrics)

    return context
}

HomeViewModel.kt

is VisitorDetailEvent.SelectLanguage->{
            _visitorDetailState.value = _visitorDetailState.value.copy(
                language = event.language
            )
            var lang_id = visitorDetailState.value.language?.id
            var lang_name = visitorDetailState.value.language?.language

            if(lang_id == 1){
                LocaleHelper().setLocale(MainActivity.instance.applicationContext, "en")
            }else if(lang_id == 2){
                LocaleHelper().setLocale(MainActivity.instance.applicationContext, "sw")
            }

        }

I tried to find the solution and came across https://stackoverflow.com/a/65662661/14915590 and https://www.youtube.com/watch?v=a_ttsk2-wjY but still no result

AnyOne who can assist please, I will appreciate.

astraa
  • 1
  • 1
  • https://stackoverflow.com/questions/69874263/how-to-change-language-locale-in-jetpack-compose – ADM May 17 '22 at 06:53

0 Answers0