Browse Source

fix: 更新多语言翻译

将品牌名称从"DeepSound"统一修正为"DeapSound"
更新所有相关视图和翻译文件中的品牌名称
添加缺失的多语言翻译键,包括天气描述和星期几
优化设置控制器的错误提示翻译
newdev_shunjiawei
lxm 1 year ago
parent
commit
f46af06a98
  1. 2
      lib/core/translations/language/de_de.dart
  2. 53
      lib/core/translations/language/en_us.dart
  3. 2
      lib/core/translations/language/ms_my.dart
  4. 2
      lib/core/translations/language/pl_pl.dart
  5. 2
      lib/core/translations/language/tr_tr.dart
  6. 50
      lib/core/translations/language/zh_cn.dart
  7. 2
      lib/core/translations/language/zh_hk.dart
  8. 14
      lib/data/services/account_service.dart
  9. 4
      lib/main.dart
  10. 75
      lib/modules/agent/views/weather_card.dart
  11. 2
      lib/modules/login/views/login_view.dart
  12. 2
      lib/modules/pairing/views/pairing_view.dart
  13. 2
      lib/modules/pairing/views/pairing_view_new.dart
  14. 11
      lib/modules/settings/controllers/settings_controller.dart
  15. 8
      lib/modules/settings/views/settings_view.dart
  16. 2
      lib/modules/splash/views/splash_view.dart
  17. 2
      local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/BleMediaService.kt
  18. 2
      local_plugins/music_service/android/src/main/kotlin/com/yunqiinnovation/music_service/MusicService.kt

2
lib/core/translations/language/de_de.dart

@ -125,7 +125,7 @@ const Map<String, String> deDE = {
"exploreSlogan": "Intelligente Kopfhörer, unbegrenzte Möglichkeiten",
"exploreSlogan1": "Intelligenter Begleiter, unbegrenzte Möglichkeiten",
"exploreSlogan2": "Intelligente Brille, unbegrenzte Möglichkeiten",
"exploreAi": "Entdecken Sie die KI-Funktionen von DeepSound",
"exploreAi": "Entdecken Sie die KI-Funktionen von DeapSound",
"aiFunction": "KI-Funktionen",
"allRoundAssistant": "Allround-Assistent",
"allRoundAssistantInfo": "Hilft bei der Lösung verschiedener Probleme",

53
lib/core/translations/language/en_us.dart

@ -240,6 +240,19 @@ const Map<String, String> enUS = {
"deviceManagement": "Device Management", // 设备管理
"manageConnectedDevices": "Manage Connected Bluetooth Devices", // 管理已绑定的蓝牙设备
//设置setting_controller
// 版本更新相关
'currentLatestVersion': 'Current version is already the latest {version}',
'checkUpdateFailed': 'Check update failed',
'networkErrorRetry': 'Network error, please try again later',
// 设备管理相关
'clearPairedDevices': 'Clear Paired Devices',
'clearPairedDevicesConfirm':
'Are you sure you want to clear all paired devices?',
'clearPairedDevicesSuccess': 'Clear paired devices successfully',
'clearPairedDevicesFailed': 'Clear paired devices failed',
// 设置页面 - 实时语音对话
'realtimeVoiceChat': 'Real-time Voice Chat',
'realtimeVoiceChatInfo':
@ -370,6 +383,33 @@ const Map<String, String> enUS = {
'Large temperature difference between day and night today, please adjust clothing accordingly',
'comfortableWeatherTip':
'Pleasant weather today, perfect for outdoor activities',
"monday": "Mon",
"tuesday": "Tue",
"wednesday": "Wed",
"thursday": "Thu",
"friday": "Fri",
"saturday": "Sat",
"sunday": "Sun",
// 天气描述
"sunny": "Sunny",
"partlyCloudy": "Partly Cloudy",
"partlySunny": "Partly Sunny",
"cloudy": "Cloudy",
"overcast": "Overcast",
"shower": "Shower",
"thundershower": "Thundershower",
"lightRain": "Light Rain",
"moderateRain": "Moderate Rain",
"heavyRain": "Heavy Rain",
"rainstorm": "Rainstorm",
"snowShower": "Snow Shower",
"lightSnow": "Light Snow",
"moderateSnow": "Moderate Snow",
"heavySnow": "Heavy Snow",
"blizzard": "Blizzard",
"fog": "Fog",
"haze": "Haze",
"strongWind": "Strong Wind",
// 编辑个人信息页
"editProfile": "Edit Profile",
@ -418,6 +458,19 @@ const Map<String, String> enUS = {
'accountPermanentlyDeleted': 'Account permanently deleted',
'deleteAccountFailedRetry': 'Delete account failed, please try again',
// 账号服务相关
'clearUserDataFailed': 'Failed to clear user data', // 清理用户数据失败
'deleteUserDataFailed': 'Failed to delete user data', // 删除用户数据失败
'thirdPartyLogoutSuccess': 'Third-party logout successful', // 第三方登录退出成功
'thirdPartyLogoutFailed': 'Third-party logout failed', // 第三方登录退出失败
'signOutProcessError': 'Error occurred during sign out process', // 登出过程发生错误
'deleteAccountProcessError':
'Error occurred during account deletion process', // 删除账号过程发生错误
'userDataClearSuccess': 'User data cleared successfully', // 用户数据清理成功
'allUserDataClearSuccess': 'All user data cleared successfully', // 所有用户数据清理成功
'accountServiceInitialized':
'AccountService initialized', // AccountService 已初始化
// 权限管理页面
'getPermissionStatusFailed': 'Failed to get permission status',
'communicationPermissions': 'Communication Permissions',

2
lib/core/translations/language/ms_my.dart

@ -122,7 +122,7 @@ const Map<String, String> msMY = {
"exploreSlogan": "Fon Telinga Pintar, Kemungkinan Tanpa Had",
"exploreSlogan1": "Teman pintar, Kemungkinan Tanpa Had",
"exploreSlogan2": "Cermin mata pintar, Kemungkinan Tanpa Had",
"exploreAi": "Terokai ciri AI yang disediakan oleh DeepSound",
"exploreAi": "Terokai ciri AI yang disediakan oleh DeapSound",
"aiFunction": "Ciri AI",
"allRoundAssistant": "Pembantu Serba Boleh",
"allRoundAssistantInfo": "Membantu menyelesaikan pelbagai masalah",

2
lib/core/translations/language/pl_pl.dart

@ -125,7 +125,7 @@ const Map<String, String> plPL = {
"exploreSlogan": "Inteligentne słuchawki, nieskończone możliwości",
"exploreSlogan1": "Inteligentny towarzysz, nieskończone możliwości",
"exploreSlogan2": "Inteligentne okulary, nieskończone możliwości",
"exploreAi": "Odkrywaj funkcje AI dostarczane przez DeepSound",
"exploreAi": "Odkrywaj funkcje AI dostarczane przez DeapSound",
"aiFunction": "Funkcje AI",
"allRoundAssistant": "Wszechstronny asystent",
"allRoundAssistantInfo": "Pomaga rozwiązywać różne problemy",

2
lib/core/translations/language/tr_tr.dart

@ -123,7 +123,7 @@ const Map<String, String> trTR = {
"exploreSlogan1": "Akıllı arkadaş, Sonsuz Olasılıklar",
"exploreSlogan2": "Akıllı gözlükler, Sonsuz Olasılıklar",
"exploreAi":
"DeepSound tarafından sağlanan yapay zeka özelliklerini keşfedin",
"DeapSound tarafından sağlanan yapay zeka özelliklerini keşfedin",
"aiFunction": "Yapay Zeka Özellikleri",
"allRoundAssistant": "Çok Yönlü Asistan",
"allRoundAssistantInfo": "Çeşitli sorunları çözmeye yardımcı olur",

50
lib/core/translations/language/zh_cn.dart

@ -233,6 +233,18 @@ const Map<String, String> zhCN = {
"deviceManagement": "设备管理",
"manageConnectedDevices": "管理已绑定的蓝牙设备",
//设置setting_controller
// 版本更新相关
'currentLatestVersion': '当前已是最新版本 {version}',
'checkUpdateFailed': '检查更新失败',
'networkErrorRetry': '网络错误,请稍后重试',
// 设备管理相关
'clearPairedDevices': '清除配对设备',
'clearPairedDevicesConfirm': '确定要清除所有配对设备吗?',
'clearPairedDevicesSuccess': '清除配对设备成功',
'clearPairedDevicesFailed': '清除配对设备失败',
// 设置页面 - 实时语音对话
"realtimeVoiceChat": "实时语音对话",
"realtimeVoiceChatInfo": "体验智能语音交互功能(功能预览)",
@ -348,6 +360,33 @@ const Map<String, String> zhCN = {
'sunnyWeatherTip': '今日阳光充足紫外线较强,外出请做好防晒',
'temperatureDifferenceTip': '今日昼夜温差较大,请适时增减衣物',
'comfortableWeatherTip': '今日天气适宜,是外出活动的好时光',
"monday": "周一",
"tuesday": "周二",
"wednesday": "周三",
"thursday": "周四",
"friday": "周五",
"saturday": "周六",
"sunday": "周日",
// 天气描述
"sunny": "晴",
"partlyCloudy": "少云",
"partlySunny": "晴间多云",
"cloudy": "多云",
"overcast": "阴",
"shower": "阵雨",
"thundershower": "雷阵雨",
"lightRain": "小雨",
"moderateRain": "中雨",
"heavyRain": "大雨",
"rainstorm": "暴雨",
"snowShower": "阵雪",
"lightSnow": "小雪",
"moderateSnow": "中雪",
"heavySnow": "大雪",
"blizzard": "暴雪",
"fog": "雾",
"haze": "霾",
"strongWind": "大风",
//编辑个人信息页
"editProfile": "编辑个人信息",
@ -390,6 +429,17 @@ const Map<String, String> zhCN = {
'accountPermanentlyDeleted': '账号已被永久删除',
'deleteAccountFailedRetry': '删除账号失败,请重试',
// 账号服务相关
'clearUserDataFailed': '清理用户数据失败', // 清理用户数据失败
'deleteUserDataFailed': '删除用户数据失败', // 删除用户数据失败
'thirdPartyLogoutSuccess': '第三方登录退出成功', // 第三方登录退出成功
'thirdPartyLogoutFailed': '第三方登录退出失败', // 第三方登录退出失败
'signOutProcessError': '登出过程发生错误', // 登出过程发生错误
'deleteAccountProcessError': '删除账号过程发生错误', // 删除账号过程发生错误
'userDataClearSuccess': '用户数据清理成功', // 用户数据清理成功
'allUserDataClearSuccess': '所有用户数据清理成功', // 所有用户数据清理成功
'accountServiceInitialized': 'AccountService 已初始化', // AccountService 已初始化
// 权限管理页面
'getPermissionStatusFailed': '获取权限状态失败',
'communicationPermissions': '通讯权限',

2
lib/core/translations/language/zh_hk.dart

@ -118,7 +118,7 @@ const Map<String, String> zhHK = {
"exploreSlogan": "智能耳機,無限可能",
"exploreSlogan1": "智能陪伴,無限可能",
"exploreSlogan2": "智能眼鏡,無限可能",
"exploreAi": "探索DeepSound提供的AI功能",
"exploreAi": "探索DeapSound提供的AI功能",
"aiFunction": "AI功能",
"allRoundAssistant": "全能助理",
"allRoundAssistantInfo": "幫你解決各類問題",

14
lib/data/services/account_service.dart

@ -81,7 +81,7 @@ class AccountService extends GetxService {
if (!dataCleaned) {
return AccountOperationResult(
success: false,
errorMessage: '清理用户数据失败',
errorMessage: 'clearUserDataFailed'.tr, // 清理用户数据失败
);
}
@ -90,13 +90,13 @@ class AccountService extends GetxService {
return AccountOperationResult(
success: true,
message: '已退出登录',
message: 'loggedOut'.tr,
);
} catch (e) {
logger.e('登出过程发生错误: $e');
return AccountOperationResult(
success: false,
errorMessage: '退出登录失败,请重试',
errorMessage: 'logoutFailedRetry'.tr, // 退出登录失败,请重试
);
}
}
@ -112,7 +112,7 @@ class AccountService extends GetxService {
if (response == null) {
return AccountOperationResult(
success: false,
errorMessage: '删除用户数据失败',
errorMessage: 'deleteUserDataFailed'.tr, // 删除用户数据失败
);
}
@ -122,7 +122,7 @@ class AccountService extends GetxService {
if (!dataCleaned) {
return AccountOperationResult(
success: false,
errorMessage: '清理用户数据失败',
errorMessage: 'clearUserDataFailed'.tr, // 清理用户数据失败
);
}
@ -131,13 +131,13 @@ class AccountService extends GetxService {
return AccountOperationResult(
success: true,
message: '账号已被永久删除',
message: 'accountPermanentlyDeleted'.tr, // 账号已被永久删除
);
} catch (e) {
logger.e('删除账号过程发生错误: $e');
return AccountOperationResult(
success: false,
errorMessage: '删除账号失败,请重试',
errorMessage: 'deleteAccountFailedRetry'.tr, // 删除账号失败,请重试
);
}
}

4
lib/main.dart

@ -33,7 +33,7 @@ void main() async {
const double width = 375.0;
const double height = 812.0;
setWindowTitle('DeepSound');
setWindowTitle('DeapSound');
setWindowMinSize(const Size(width, height));
setWindowMaxSize(const Size(width, height));
@ -68,7 +68,7 @@ class MainApp extends StatelessWidget {
splitScreenMode: true,
builder: (_, child) {
return GetMaterialApp(
title: 'DeepSound',
title: 'DeapSound',
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme,
themeMode: themeMode, // 使用提前获取的主题模式

75
lib/modules/agent/views/weather_card.dart

@ -65,7 +65,7 @@ Widget buildWeatherContent(BuildContext context, String city,
),
SizedBox(height: 4),
Text(
now["dayweather"],
_getWeatherDescriptionTranslation(now["dayweather"]),
style: TextStyle(
fontSize: 14.sp,
color: Colors.white.withValues(alpha: 0.9),
@ -137,8 +137,11 @@ Widget buildWeatherContent(BuildContext context, String city,
DateTime? date = DateUtil.getDateTime(dateStr);
IconData weatherIcon =
getWeatherIcon(days[index]['dayweather']);
String weekday = DateUtil.getWeekday(date,
languageCode: "zh", short: true);
// 获取星期几的翻译键
String weekdayKey = _getWeekdayTranslationKey(date);
String weekday = weekdayKey.tr; // 翻译键代表的中文文本内容:对应的星期几
String temp = "${days[index]['daytemp']}°";
return _buildForecastDay(
weekday,
@ -157,6 +160,72 @@ Widget buildWeatherContent(BuildContext context, String city,
);
}
/// 获取天气描述的翻译
String _getWeatherDescriptionTranslation(String weatherDescription) {
final description = weatherDescription.trim();
// 天气描述映射表
final Map<String, String> weatherMap = {
// 晴天类
'晴': 'sunny'.tr, // 翻译键代表的中文文本内容:晴
'少云': 'partlyCloudy'.tr, // 翻译键代表的中文文本内容:少云
'晴间多云': 'partlySunny'.tr, // 翻译键代表的中文文本内容:晴间多云
// 多云类
'多云': 'cloudy'.tr, // 翻译键代表的中文文本内容:多云
'阴': 'overcast'.tr, // 翻译键代表的中文文本内容:阴
// 雨天类
'阵雨': 'shower'.tr, // 翻译键代表的中文文本内容:阵雨
'雷阵雨': 'thundershower'.tr, // 翻译键代表的中文文本内容:雷阵雨
'小雨': 'lightRain'.tr, // 翻译键代表的中文文本内容:小雨
'中雨': 'moderateRain'.tr, // 翻译键代表的中文文本内容:中雨
'大雨': 'heavyRain'.tr, // 翻译键代表的中文文本内容:大雨
'暴雨': 'rainstorm'.tr, // 翻译键代表的中文文本内容:暴雨
// 雪天类
'阵雪': 'snowShower'.tr, // 翻译键代表的中文文本内容:阵雪
'小雪': 'lightSnow'.tr, // 翻译键代表的中文文本内容:小雪
'中雪': 'moderateSnow'.tr, // 翻译键代表的中文文本内容:中雪
'大雪': 'heavySnow'.tr, // 翻译键代表的中文文本内容:大雪
'暴雪': 'blizzard'.tr, // 翻译键代表的中文文本内容:暴雪
// 雾霾类
'雾': 'fog'.tr, // 翻译键代表的中文文本内容:雾
'霾': 'haze'.tr, // 翻译键代表的中文文本内容:霾
// 风类
'大风': 'strongWind'.tr, // 翻译键代表的中文文本内容:大风
};
// 返回翻译后的描述,如果没有找到对应翻译则返回原文
return weatherMap[description] ?? description;
}
/// 获取星期几的翻译键
String _getWeekdayTranslationKey(DateTime? date) {
if (date == null) return 'unknown';
switch (date.weekday) {
case 1:
return 'monday'; // 翻译键代表的中文文本内容:周一
case 2:
return 'tuesday'; // 翻译键代表的中文文本内容:周二
case 3:
return 'wednesday'; // 翻译键代表的中文文本内容:周三
case 4:
return 'thursday'; // 翻译键代表的中文文本内容:周四
case 5:
return 'friday'; // 翻译键代表的中文文本内容:周五
case 6:
return 'saturday'; // 翻译键代表的中文文本内容:周六
case 7:
return 'sunday'; // 翻译键代表的中文文本内容:周日
default:
return 'unknown';
}
}
/// 构建智能天气提示
Widget _buildWeatherTip(
BuildContext context, Map<String, dynamic> now, bool isDarkMode) {

2
lib/modules/login/views/login_view.dart

@ -129,7 +129,7 @@ class LoginView extends GetView<LoginController> {
),
SizedBox(height: 16.h),
Text(
'DeepSound',
'DeapSound',
style: TextStyle(
fontSize: 24.sp,
fontWeight: FontWeight.bold,

2
lib/modules/pairing/views/pairing_view.dart

@ -73,7 +73,7 @@ class PairingView extends GetView<PairingController> {
return Column(
children: [
Text(
'DeepSound',
'DeapSound',
style: TextStyle(
fontSize: 30.sp,
fontWeight: FontWeight.bold,

2
lib/modules/pairing/views/pairing_view_new.dart

@ -54,7 +54,7 @@ class PairingView extends GetView<PairingController> {
),
SizedBox(height: 8.h),
Text(
'connectYourDeepSoundHeadset'.tr, // 连接您的 DeepSound 耳机
'connectYourDeepSoundHeadset'.tr, // 连接您的 DeapSound 耳机
style: TextStyle(
fontSize: 14.sp,
color: isDarkMode ? Colors.grey[400] : Colors.grey[600],

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

@ -469,7 +469,7 @@ class SettingsController extends GetxController {
style: TextButton.styleFrom(
foregroundColor: Colors.red,
),
child: const Text('确定'),
child: Text('confirm'.tr), //确认
),
],
),
@ -513,8 +513,9 @@ class SettingsController extends GetxController {
} else {
// 显示已是最新版本的提示
Get.snackbar(
'检查更新',
'当前已是最新版本 ${updateInfo.currentVersion}',
'checkUpdate'.tr,
'currentLatestVersion' //当前已是最新版本
.trParams({'version': updateInfo.currentVersion}),
snackPosition: SnackPosition.TOP,
backgroundColor: Colors.green.withOpacity(0.8),
colorText: Colors.white,
@ -527,8 +528,8 @@ class SettingsController extends GetxController {
}
Get.snackbar(
'检查更新失败',
'网络连接异常,请稍后重试',
'error'.tr,
'networkErrorRetry'.tr, // 网络错误,请稍后重试
snackPosition: SnackPosition.TOP,
backgroundColor: Colors.red.withOpacity(0.8),
colorText: Colors.white,

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

@ -214,7 +214,7 @@ class SettingsView extends GetView<SettingsController> {
// SizedBox(width: 8.w),
// Flexible(
// child: Text(
// '${'joinDevice'.tr} DeepSound Pro', // 已连接设备:
// '${'joinDevice'.tr} DeapSound Pro', // 已连接设备:
// style: TextStyle(
// fontSize: 12.sp,
// color: isDarkMode
@ -503,11 +503,11 @@ class SettingsView extends GetView<SettingsController> {
? Colors.white.withOpacity(0.1)
: Colors.grey[200]),
// 清除配对设备
// 配对设备管理
_buildSimpleNavigationSetting(
title: 'deviceManagement'.tr, // 设备管理
subtitle: 'manageConnectedDevices'.tr, // 管理已绑定的蓝牙设备
icon: Icons.settings_bluetooth,
icon: Icons.device_hub,
iconBgColor: isDarkMode
? Colors.red[900]!.withOpacity(0.3)
: Colors.red[100]!,
@ -813,7 +813,7 @@ class SettingsView extends GetView<SettingsController> {
child: Column(
children: [
Text(
'© 2025 DeepSound Technologies',
'© 2025 DeapSound Technologies',
style: TextStyle(
fontSize: 12.sp,
color: isDarkMode ? Colors.grey[400] : Colors.grey[500],

2
lib/modules/splash/views/splash_view.dart

@ -105,7 +105,7 @@ class SplashView extends GetView<SplashController> {
child: Padding(
padding: EdgeInsets.only(top: 24.h),
child: Text(
'DeepSound',
'DeapSound',
style: TextStyle(
fontSize: 28.sp,
fontWeight: FontWeight.bold,

2
local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/BleMediaService.kt

@ -277,7 +277,7 @@ class BleMediaService : Service(), CoroutineScope {
// 构建通知
val builder = NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("DeepSound")
.setContentTitle("DeapSound")
.setContentText("语音助手代理服务运行中")
.setSmallIcon(android.R.drawable.ic_dialog_info)

2
local_plugins/music_service/android/src/main/kotlin/com/yunqiinnovation/music_service/MusicService.kt

@ -178,7 +178,7 @@ class MusicService : MediaBrowserServiceCompat() {
instance = this
isRunning.set(true)
setupMediaSession()
startForeground(NOTIFICATION_ID, createNotification("等待播放","DeepSound",""))
startForeground(NOTIFICATION_ID, createNotification("等待播放","DeapSound",""))
audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
// 注册广播监听器

Loading…
Cancel
Save