Browse Source

refactor(settings): 重构语言支持模块并优化代码结构

- 将settings_language_data重命名为app_supported_languages以更准确表达用途
- 更新LanguageModel注释以更清晰地描述字段用途
- 优化settings_view中的语言选择逻辑和变量命名
- 将getSomeAppData重命名为getSomeAppInfo以提高可读性
weicu
lxm 9 months ago
parent
commit
7c5fc0ed12
  1. 8
      lib/modules/settings/controllers/settings_controller.dart
  2. 5
      lib/modules/settings/models/app_supported_languages.dart
  3. 6
      lib/modules/settings/models/language_model.dart
  4. 18
      lib/modules/settings/views/settings_view.dart

8
lib/modules/settings/controllers/settings_controller.dart

@ -12,14 +12,14 @@ import '../../../core/translations/app_translations.dart';
import '../../../data/services/network/dio_manager.dart'; import '../../../data/services/network/dio_manager.dart';
import '../../../routes/app_routes.dart'; import '../../../routes/app_routes.dart';
import '../models/language_model.dart'; import '../models/language_model.dart';
import '../models/settings_language_data.dart'; import '../models/app_supported_languages.dart';
import '../../../data/services/language_manager.dart'; import '../../../data/services/language_manager.dart';
import '../../../data/services/version_update_service.dart'; import '../../../data/services/version_update_service.dart';
import '../../common/widgets/version_update_dialog.dart'; import '../../common/widgets/version_update_dialog.dart';
class SettingsController extends GetxController { class SettingsController extends GetxController {
// 语言设置 // 语言设置
final List<LanguageModel> languageList = settingsLanguageList; final List<LanguageModel> languageList = appSupportedLanguages; // 应用支持的语言列表
Rx<LanguageModel> currentLanguage = LanguageModel().obs; // 当前选择的语言 Rx<LanguageModel> currentLanguage = LanguageModel().obs; // 当前选择的语言
@ -375,8 +375,8 @@ class SettingsController extends GetxController {
} }
} }
/// 获取当前应用数据 /// 获取当前应用信息
String getSomeAppData() { String getSomeAppInfo() {
try { try {
final versionService = Get.find<VersionUpdateService>(); final versionService = Get.find<VersionUpdateService>();
return ''' return '''

5
lib/modules/settings/models/settings_language_data.dart → lib/modules/settings/models/app_supported_languages.dart

@ -2,9 +2,11 @@ import 'language_model.dart';
/// App界面支持的语言列表 /// App界面支持的语言列表
/// 包含跟随系统、英语、中文、繁体中文、香港繁体中文、西班牙语、葡萄牙语、日语、韩语、法语、德语、俄语、阿拉伯语、波斯语、越南语、意大利语、印地语、印尼语、泰语、马来语等语言选项 /// 包含跟随系统、英语、中文、繁体中文、香港繁体中文、西班牙语、葡萄牙语、日语、韩语、法语、德语、俄语、阿拉伯语、波斯语、越南语、意大利语、印地语、印尼语、泰语、马来语等语言选项
final List<LanguageModel> settingsLanguageList = List.unmodifiable([ final List<LanguageModel> appSupportedLanguages = List.unmodifiable([
// 跟随系统
LanguageModel(name: 'followingSystem', alias: '', value: 'system'), // 跟随系统.tr LanguageModel(name: 'followingSystem', alias: '', value: 'system'), // 跟随系统.tr
LanguageModel(name: 'english', alias: 'English', value: 'en_US'), // 英语.tr LanguageModel(name: 'english', alias: 'English', value: 'en_US'), // 英语.tr
//中文相关
LanguageModel(name: 'chinese', alias: '中文', value: 'zh_CN'), // 中文.tr LanguageModel(name: 'chinese', alias: '中文', value: 'zh_CN'), // 中文.tr
LanguageModel( LanguageModel(
name: 'traditionalChinese', alias: '繁體中文', value: 'zh_TW'), // 添加繁体中文 name: 'traditionalChinese', alias: '繁體中文', value: 'zh_TW'), // 添加繁体中文
@ -12,6 +14,7 @@ final List<LanguageModel> settingsLanguageList = List.unmodifiable([
name: 'traditionalChineseHK', name: 'traditionalChineseHK',
alias: '繁體中文(HK)', alias: '繁體中文(HK)',
value: 'zh_HK'), // 添加香港繁体中文 value: 'zh_HK'), // 添加香港繁体中文
LanguageModel(name: 'spanish', alias: 'Español', value: 'es_ES'), // 添加西班牙语选项 LanguageModel(name: 'spanish', alias: 'Español', value: 'es_ES'), // 添加西班牙语选项
LanguageModel( LanguageModel(
name: 'portuguese', alias: 'Português', value: 'pt_PT'), // 添加葡萄牙语 name: 'portuguese', alias: 'Português', value: 'pt_PT'), // 添加葡萄牙语

6
lib/modules/settings/models/language_model.dart

@ -2,9 +2,9 @@
/// 包含语言的名称、别名和值 /// 包含语言的名称、别名和值
/// 用于表示应用支持的不同语言 /// 用于表示应用支持的不同语言
class LanguageModel { class LanguageModel {
final String name; //语言名称 final String name; //翻译键,用于显示用户友好的语言名称
final String alias; //语言别名 final String alias; //语言的本地名称,用于在界面上展示
final String value; //语言代码 final String value; //语言代码,用于系统识别和国际化
LanguageModel({ LanguageModel({
this.name = '', this.name = '',

18
lib/modules/settings/views/settings_view.dart

@ -1,11 +1,11 @@
import 'dart:ui';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'dart:ui';
import '../controllers/settings_controller.dart'; import '../controllers/settings_controller.dart';
import '../../../core/widgets/common_bottom_nav.dart'; import '../../../core/widgets/common_bottom_nav.dart';
import '../../../routes/app_routes.dart'; import '../../../routes/app_routes.dart';
//import '../../../data/models/user_Info.dart';
import '../../common/webview_page.dart'; import '../../common/webview_page.dart';
import '../../../modules/profile/controllers/profile_controller.dart'; import '../../../modules/profile/controllers/profile_controller.dart';
import '../../profile/views/unified_avatar.dart'; import '../../profile/views/unified_avatar.dart';
@ -431,7 +431,7 @@ class SettingsView extends GetView<SettingsController> {
iconColor: iconColor:
isDarkMode ? Colors.indigo[300]! : Colors.amber[600]!, isDarkMode ? Colors.indigo[300]! : Colors.amber[600]!,
value: isDarkMode, value: isDarkMode,
onChanged: (value) { onChanged: (isThemeChanged) {
controller.toggleTheme(); controller.toggleTheme();
}, },
isDarkMode: isDarkMode, isDarkMode: isDarkMode,
@ -900,7 +900,7 @@ class SettingsView extends GetView<SettingsController> {
), ),
SizedBox(height: 8.h), SizedBox(height: 8.h),
Text( Text(
controller.getSomeAppData(), controller.getSomeAppInfo(),
style: TextStyle( style: TextStyle(
fontSize: 10.sp, fontSize: 10.sp,
fontFamily: 'monospace', fontFamily: 'monospace',
@ -1113,14 +1113,14 @@ class SettingsView extends GetView<SettingsController> {
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: controller.languageList.map((language) { children: controller.languageList.map((languageOption) {
return Obx(() { return Obx(() {
final isSelected = final isSelected =
controller.currentLanguage.value.value == controller.currentLanguage.value.value ==
language.value; languageOption.value;
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
controller.setLanguage(language); controller.setLanguage(languageOption);
Get.back(); Get.back();
}, },
child: Container( child: Container(
@ -1148,7 +1148,7 @@ class SettingsView extends GetView<SettingsController> {
children: [ children: [
Expanded( Expanded(
child: Text( child: Text(
language.name.tr, // 语言名称 languageOption.name.tr, // 语言名称
style: TextStyle( style: TextStyle(
fontSize: 16.sp, fontSize: 16.sp,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
@ -1160,7 +1160,7 @@ class SettingsView extends GetView<SettingsController> {
), ),
), ),
Text( Text(
language.alias, // 语言别名(原始名称,不加.tr) languageOption.alias, // 语言别名(原始名称,不加.tr)
style: TextStyle( style: TextStyle(
fontSize: 14.sp, fontSize: 14.sp,
color: isDarkMode color: isDarkMode

Loading…
Cancel
Save