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 '../../../routes/app_routes.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/version_update_service.dart';
import '../../common/widgets/version_update_dialog.dart';
class SettingsController extends GetxController {
// 语言设置
final List<LanguageModel> languageList = settingsLanguageList;
final List<LanguageModel> languageList = appSupportedLanguages; // 应用支持的语言列表
Rx<LanguageModel> currentLanguage = LanguageModel().obs; // 当前选择的语言
@ -375,8 +375,8 @@ class SettingsController extends GetxController {
}
}
/// 获取当前应用数据
String getSomeAppData() {
/// 获取当前应用信息
String getSomeAppInfo() {
try {
final versionService = Get.find<VersionUpdateService>();
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界面支持的语言列表
/// 包含跟随系统、英语、中文、繁体中文、香港繁体中文、西班牙语、葡萄牙语、日语、韩语、法语、德语、俄语、阿拉伯语、波斯语、越南语、意大利语、印地语、印尼语、泰语、马来语等语言选项
final List<LanguageModel> settingsLanguageList = List.unmodifiable([
final List<LanguageModel> appSupportedLanguages = List.unmodifiable([
// 跟随系统
LanguageModel(name: 'followingSystem', alias: '', value: 'system'), // 跟随系统.tr
LanguageModel(name: 'english', alias: 'English', value: 'en_US'), // 英语.tr
//中文相关
LanguageModel(name: 'chinese', alias: '中文', value: 'zh_CN'), // 中文.tr
LanguageModel(
name: 'traditionalChinese', alias: '繁體中文', value: 'zh_TW'), // 添加繁体中文
@ -12,6 +14,7 @@ final List<LanguageModel> settingsLanguageList = List.unmodifiable([
name: 'traditionalChineseHK',
alias: '繁體中文(HK)',
value: 'zh_HK'), // 添加香港繁体中文
LanguageModel(name: 'spanish', alias: 'Español', value: 'es_ES'), // 添加西班牙语选项
LanguageModel(
name: 'portuguese', alias: 'Português', value: 'pt_PT'), // 添加葡萄牙语

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

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

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

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

Loading…
Cancel
Save