import 'package:get/get.dart'; import '../../../data/services/language_manager.dart'; /// 翻译项模型 /// 表示一条翻译记录的完整信息 class TranslationItem { String sourceText; String translatedText; String sourceLanguageCode; String targetLanguageCode; final DateTime timestamp; String sessionId; final bool isFirstInSession; bool isIntermediate; // 是否为中间结果 TranslationItem({ required this.sourceText, required this.translatedText, required this.sourceLanguageCode, required this.targetLanguageCode, required this.timestamp, required this.sessionId, this.isFirstInSession = false, this.isIntermediate = false, }); /// 从JSON创建TranslationItem实例 factory TranslationItem.fromJson(Map json) { DateTime timestamp; try { timestamp = DateTime.parse(json['timestamp']); } catch (e) { timestamp = DateTime.now(); } return TranslationItem( sourceText: json['sourceText'] ?? '', translatedText: json['translatedText'] ?? '', sourceLanguageCode: json['sourceLanguageCode'] ?? 'zh-CN', targetLanguageCode: json['targetLanguageCode'] ?? 'en-US', timestamp: timestamp, sessionId: json['sessionId'] ?? DateTime.now().millisecondsSinceEpoch.toString(), isFirstInSession: json['isFirstInSession'] ?? false, isIntermediate: false, // 从存储加载的都是最终结果 ); } /// 转换为JSON格式 Map toJson() { return { 'sourceText': sourceText, 'translatedText': translatedText, 'sourceLanguageCode': sourceLanguageCode, 'targetLanguageCode': targetLanguageCode, 'timestamp': timestamp.toIso8601String(), 'sessionId': sessionId, 'isFirstInSession': isFirstInSession, // 不保存isIntermediate,因为存储的都是最终结果 }; } /// 获取源语言的中文名称 String get sourceLanguageName { final languageManager = Get.find(); return languageManager.getChineseNameByAsrCode(sourceLanguageCode) ?? 'meetingUnknownLanguage'.tr; // 对应中文:未知语言 } /// 获取目标语言的中文名称 String get targetLanguageName { final languageManager = Get.find(); return languageManager.getChineseNameByAsrCode(targetLanguageCode) ?? 'meetingUnknownLanguage'.tr; // 对应中文:未知语言 } }