应用重启后本地化不起作用

Localization not working after app restart

我包括本地化以翻译我的应用程序介绍三种不同的语言,在设置每种语言的翻译字符串后,我转到首选项设置并选中一个复选框并且翻译工作正常,问题是当我重新启动应用程序时,本地化即使我已将所选语言保存在 sharedpreference 中并在 mainactivity

中检索它

*这就是我设置语言的方式

var sharedPreferences = requireContext().getSharedPreferences("prefs", 
           Context.MODE_PRIVATE)
 var editor = sharedPreferences.edit()

 spanishCheckBox.setOnPreferenceChangeListener(object : Preference.OnPreferenceChangeListener{
                override fun onPreferenceChange(preference: Preference?, newValue: Any?): Boolean {
                    var isSpanishChecked = newValue as Boolean
                    if(isSpanishChecked){
                        var Lang = "es"
                        editor.putString("key",Lang)
                        editor.apply()
                        var local = Locale(Lang)
                        var configuration = Configuration()
                        configuration.locale = local
                        resources.updateConfiguration(configuration,resources.displayMetrics)

                        englishCheckBox.isChecked = false
                        frenchCheckBox.isChecked = false

                        Intent(requireContext(),MainActivity::class.java).also {
                            it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
                            startActivity(it)
                        }
                    }
                    return true
                }
            })

 fun LoadLanguageConfiguration(){
        var sharedpreferences = getSharedPreferences("prefs", Context.MODE_PRIVATE)
        var langCode = sharedpreferences.getString("key","")
        var local = Locale(langCode)
        var configuration = Configuration()
        configuration.locale = local
        baseContext.createConfigurationContext(configuration)
    }

只有当我在应用程序中设置语言时翻译才有效,但当我重新启动应用程序时,它会返回默认语言,即英语。

问题是我没有在一开始就开始我的语言加载方法,所以我把它作为第一个方法放在我的 oncreate 中,一切都按预期工作。