语言切换

This commit is contained in:
2026-05-27 09:36:56 +08:00
parent 298b06d456
commit ac906c901b
13 changed files with 120 additions and 77 deletions

View File

@@ -16,11 +16,14 @@ import com.example.defenseapplication.liveVideo.LinkedUserActivity
import com.example.defenseapplication.personal.FaceManagementActivity
import com.example.defenseapplication.personal.PasswordManagementActivity
import com.example.defenseapplication.personal.PersonalProfileActivity
import com.example.defenseapplication.utils.AppLanguage
import com.example.defenseapplication.utils.LanguageUtil
import com.example.defenseapplication.utils.RetrofitNetwork
import com.example.defenseapplication.utils.UserinfoUtil
import com.example.defenseapplication.utils.ActivityManager
import com.example.defenseapplication.view.FamilySwitchDialog
import com.example.defenseapplication.view.LanguageDialog
import com.example.defenseapplication.home.HomeActivity
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -155,18 +158,23 @@ class PersonalFragment : Fragment() {
* 更新当前语言显示
*/
private fun updateCurrentLanguageDisplay() {
val currentLang = LanguageUtil.getCurrentLanguage(requireContext())
binding.tvCurrentLanguage.text = LanguageUtil.getLanguageDisplayName(currentLang)
binding.tvCurrentLanguage.text = LanguageUtil.currentLanguage.let {
if (it == AppLanguage.SIMPLIFIED_CHINESE) "中文" else "English"
}
}
/**
* 显示语言选择对话框
*/
private fun showLanguageDialog() {
val dialog = LanguageDialog(requireContext()) { language ->
LanguageUtil.switchLanguage(requireContext(), language)
// 刷新当前页面以应用新语言
requireActivity().recreate()
val dialog = LanguageDialog(requireContext()) { appLanguage ->
LanguageUtil.switchLanguage(requireContext(), appLanguage)
// 关闭所有 Activity重启到首页
ActivityManager.finishAllActivities()
val intent = Intent(requireContext(), HomeActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(intent)
requireActivity().finish()
}
dialog.show()
}