Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into new_dev

newdev_shunjiawei
tanlongsheng 10 months ago
parent
commit
943b24c49d
  1. 72
      lib/core/translations/language/en_us.dart
  2. 135
      lib/core/translations/language/zh_cn.dart
  3. 4
      lib/modules/agent/views/agent_view.dart
  4. 3
      lib/modules/meeting/views/bottomSheet/share_bottom_sheet.dart
  5. 20
      lib/modules/translation/middleware/controllers/translation_middleware_controller.dart

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

@ -198,29 +198,29 @@ const Map<String, String> enUS = {
"popularFunction": "Popular Features",
"tryNow": "Try Now",
// Goods screens (AI/Translation/Meeting)
// 商品页面(AI/翻译/会议)
'availablePackages': 'Available Packages',
'remainingQuota': 'Remaining Quota',
'totalCount': 'Total Count',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
// AI feature cards
// AI 功能卡片
'musicAndRecommendation': 'Music & Recommendation',
'navigationAndRoutes': 'Navigation & Routes',
'nearbySearch': 'Nearby Search',
'newsInformation': 'News',
'communicationAssistant': 'Communication Assistant',
// Translation feature cards
// 翻译功能卡片
'realtimeTranscription': 'Real-time Transcription',
// 'textTranslation' exists
'sceneLexicon': 'Scenario Glossary',
'subtitleDisplay': 'Subtitles',
// Meeting feature cards
// 会议功能卡片
'meetingRecording': 'Meeting Recording',
'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing',
// Goods names by id
// 商品名称(按ID)
'ai_001_name': 'AI Basic 100',
'ai_002_name': 'AI Basic 500',
'ai_003_name': 'AI Basic 1000',
@ -231,7 +231,7 @@ const Map<String, String> enUS = {
'trade_002_name': 'Translation Basic 500',
'trade_003_name': 'Translation Basic 1000',
// Goods descriptions by id
// 商品描述(按ID)
'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
@ -242,12 +242,12 @@ const Map<String, String> enUS = {
'trade_002_desc': 'Includes 500 translations (voice/text).',
'trade_003_desc': 'Includes 1000 translations (voice/text).',
// Goods pages common footer
// 商品页通用页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
'moreInfoViewInSettingsAbout': 'For more info, go to Settings > About',
'copyrightVoiTrans': '© 2025 VoiTrans',
// Meeting goods page descriptions
// 会议商品页描述
'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.',
'meetingHeaderDesc2':
@ -263,7 +263,7 @@ const Map<String, String> enUS = {
'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.',
// Translation goods page descriptions
// 同传/翻译商品页描述
'tradeHeaderDesc1':
'Real-time simultaneous interpretation and text translation with low-latency voice.',
'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.',
@ -279,7 +279,7 @@ const Map<String, String> enUS = {
'tradeDisclaimer':
'Translation performance depends on microphone, network latency, and ambient noise.',
// AI goods page descriptions
// AI 商品页描述
'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.',
'aiHeaderDesc2':
@ -302,7 +302,7 @@ const Map<String, String> enUS = {
'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.',
// VIP goods page
// 会员商品页
'benefitsOverview': 'Benefits overview',
'higherQuota': 'Higher usage quota',
'lowerUnitPrice': 'Lower unit price',
@ -318,7 +318,7 @@ const Map<String, String> enUS = {
'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.',
// Onboarding / Guide
// 新手引导 / Onboarding
'skip': 'Skip',
'next': 'Next',
'sayLilyHint': 'Say "Lily Lily" to the mic',
@ -329,7 +329,7 @@ const Map<String, String> enUS = {
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.',
'confirmInput': 'Confirm Input',
'guideClickSendPrefix': 'Tap send, ',
// AI steps
// AI 引导步骤
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”',
'guideWeatherInput': 'What’s the weather today?',
'guideWeatherSend': 'Lily will report the weather in real time',
@ -709,19 +709,9 @@ const Map<String, String> enUS = {
"voice_interrupt": "Interrupt", // 语音打断
// 预设提示词
"presetMusic": "Play some music", // Play some music
"presetNavigation": "Navigation to", // Navigation
// First bind rewards dialog
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"ok": "OK",
"presetWeather": "Today's weather", // Weather
"presetMusic": "Play some music",
"presetNavigation": "Navigation to",
"presetWeather": "Today's weather",
"presetNews": "Today's news", // News
"presetFood": "Nearby food", // Food
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
@ -776,7 +766,7 @@ const Map<String, String> enUS = {
//Message_bubble
'generatedByAi': 'Generated by AI',
//music_card
//音乐卡片 music_card
'recommendedMusic': 'Here are some recommended music:',
'playList': 'Playlist',
'moreMusic': 'More music',
@ -791,10 +781,10 @@ const Map<String, String> enUS = {
'currentLocation': 'Current Location', // 当前位置
'approximate': 'About ', // 大约
'enterRoad': ' enter ', // 进入道路
"driving": "Driving",
"walking": "Walking",
"bicycling": "Cycling",
"tsransit": "Transit",
"driving": "Driving", // 驾驶
"walking": "Walking", // 步行
"bicycling": "Cycling", // 骑行
"tsransit": "Transit", // 公交
//天气卡片 weather_card
'weatherQuery': 'Weather Query:',
@ -826,6 +816,17 @@ const Map<String, String> enUS = {
"friday": "Fri",
"saturday": "Sat",
"sunday": "Sun",
// First bind rewards dialog
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"ok": "OK",
// 天气描述
"sunny": "Sunny",
"partlyCloudy": "Partly Cloudy",
@ -1155,7 +1156,7 @@ const Map<String, String> enUS = {
"pictureTranslation": "Picture Translation",
"textTranslation": "Text Translation",
// 翻译主页
// 翻译主页 (translation_view.dart)
"translationHistory": "Translation History",
"enableRecording": "Enable Recording",
"viewAudioFiles": "View Audio Files",
@ -1180,7 +1181,7 @@ const Map<String, String> enUS = {
"deleteSessionConfirm":
"Are you sure you want to delete all translation records for this session? This action cannot be undone.",
// 翻译音频文件列表页
// 翻译录音文件列表页
"translateAudioFiles": "Translate Audio Files",
"noAudioFiles": "No audio files",
"calculating": "Calculating...",
@ -1389,11 +1390,12 @@ const Map<String, String> enUS = {
"justNow": "Just now",
"minutesAgo": "@minutes minutes ago",
"yesterday": "Yesterday",
//补充
"insufficientIntegral": "Insufficient integral",
//余额不足弹窗
'recharge': 'Go to Recharge',
'insufficientBalanceDesc':
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
"recharge": 'Go to Recharge',
};

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

@ -235,6 +235,69 @@ const Map<String, String> zhCN = {
'trade_002_desc': '含 500 次翻译(语音/文本)',
'trade_003_desc': '含 1000 次翻译(语音/文本)',
// 商品页通用页脚
'appNameProvider': '应用名称:VoiTrans · 服务提供:VoiTrans',
'moreInfoViewInSettingsAbout': '更多信息请前往 设置 > 关于 查看',
'copyrightVoiTrans': '© 2025 VoiTrans',
// 会议商品页描述
'meetingHeaderDesc1': '录音转写、关键词检索与自动总结,提升会议效率。',
'meetingHeaderDesc2': '适用于商务会议、课堂笔记、访谈纪要等场景。',
'meetingAutoRecording': '自动录音与分段',
'meetingSpeakerTagging': '讲话人标注',
'meetingLongAudioTranscription': '长音频转写',
'meetingKeyPointSummary': '关键要点提炼',
'meetingTopicNameSearch': '按主题/人名检索',
'meetingTimelineJump': '时间线跳转',
'meetingExportSummary': '导出纪要',
'meetingMultiPlatformShare': '多平台分享',
'meetingDisclaimer': '建议在安静环境使用,效果受麦克风与网络影响,具体以实际表现为准。',
// 同传/翻译商品页描述
'tradeHeaderDesc1': '多语种实时同传与文本翻译,低延时语音播报。',
'tradeHeaderDesc2': '适用于出行、商务、演讲与教学等场景。',
'translateZhEn': '中英互译',
'lowLatencyVoiceBroadcast': '低延时语音播报',
'multiLangTextTranslation': '多语种文本翻译',
'termOptimizationContextPreserve': '术语优化与语境保持',
'lexiconTourBusinessLife': '旅游/商务/生活词库',
'personalVocabularyMemory': '专属词汇记忆',
'conversationSubtitleLargeText': '对话字幕/大字模式',
'colorHighContrast': '颜色高对比度',
'tradeDisclaimer': '翻译效果受麦克风、网络时延与环境噪声影响,具体以实际表现为准。',
// AI 商品页描述
'aiHeaderDesc1': '更长对话额度、更多工具调用、更强上下文长度支持。',
'aiHeaderDesc2': '适用于智能体问答、总结分析、任务执行等场景。',
'musicSearchPlaybackControl': '检索曲库、播放控制',
'smartPlaylistAndSimilarRecommendations': '智能推荐歌单与相似歌曲',
'routePlanningAndCongestionAvoidance': '路线规划与拥堵规避',
'voiceBroadcastAndWaypoints': '语音播报与途径点设置',
'realTimeWeatherForecast': '实时天气与预报',
'clothingAdviceAndTravelReminders': '穿衣建议与出行提醒',
'poiSearchFoodGasParking': '餐饮/加油/停车等地点检索',
'ratingsHoursAndDirectRoutes': '评分、营业时间与路线直达',
'hotNewsAndTopicOverview': '热点快讯与专题速览',
'longArticleSummariesAndKeyPoints': '长文总结与要点提炼',
'helpCallAndSMS': '帮忙拨打电话与发短信',
'templatedMessagesAndScheduleReminders': '模板消息与日程提醒',
'aiDisclaimer': '以上功能受设备权限、服务可用性与网络状况影响,具体以实际表现为准。',
// 会员商品页
'benefitsOverview': '权益总览',
'higherQuota': '更高使用额度',
'lowerUnitPrice': '更低单价',
'priorityService': '优先服务',
'exclusiveSupportChannel': '专属客服通道',
'fastResponse': '问题快速响应',
'eventsAndDiscounts': '活动与折扣',
'memberExclusiveEvents': '会员专属活动',
'longTermDiscountPlan': '长期优惠计划',
'generalPrivileges': '通用特权',
'earlyAccessNewFeatures': '新功能优先体验',
'crossDeviceSync': '跨设备同步',
'vipDisclaimer': '具体权益以实际套餐说明为准,可能随版本迭代调整。',
// 新手引导 / Onboarding
'skip': '跳过',
'next': '下一步',
@ -704,6 +767,7 @@ const Map<String, String> zhCN = {
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"ok": "OK",
// 天气描述
"sunny": "晴",
"partlyCloudy": "少云",
@ -1004,14 +1068,14 @@ const Map<String, String> zhCN = {
"phoneUser": "手机用户",
"selectSourceLanguage": "选择源语言",
"selectTargetLanguage": "选择目标语言",
"me": "我", //我
"counterPart": "对方", //对方
"me": "我",
"counterPart": "对方",
// 通用对话按钮与选项(用于统一语言选择弹窗等)
// 以下翻译键的中文文本内容如注释所示
"autoDetect": "自动检测", // 自动检测
// 翻译历史页 (translation_history_view.dart)
// 翻译历史页
"noTranslationHistory": "暂无历史记录",
"clearHistory": "清除历史记录",
"clearHistoryConfirm": "确定要清除所有翻译历史记录吗?此操作无法撤销。",
@ -1019,7 +1083,7 @@ const Map<String, String> zhCN = {
"deleteSessionRecord": "删除会话记录",
"deleteSessionConfirm": "确定要删除该会话的所有翻译记录吗?此操作无法撤销。",
// 翻译录音文件列表页 (translation_list_view.dart)
// 翻译录音文件列表页
"translateAudioFiles": "翻译录音文件",
"noAudioFiles": "暂无音频文件",
"calculating": "计算中...",
@ -1213,69 +1277,6 @@ const Map<String, String> zhCN = {
//补充
"insufficientIntegral": "积分不足",
// 商品页通用页脚
'appNameProvider': '应用名称:VoiTrans · 服务提供:VoiTrans',
'moreInfoViewInSettingsAbout': '更多信息请前往 设置 > 关于 查看',
'copyrightVoiTrans': '© 2025 VoiTrans',
// 会议商品页描述
'meetingHeaderDesc1': '录音转写、关键词检索与自动总结,提升会议效率。',
'meetingHeaderDesc2': '适用于商务会议、课堂笔记、访谈纪要等场景。',
'meetingAutoRecording': '自动录音与分段',
'meetingSpeakerTagging': '讲话人标注',
'meetingLongAudioTranscription': '长音频转写',
'meetingKeyPointSummary': '关键要点提炼',
'meetingTopicNameSearch': '按主题/人名检索',
'meetingTimelineJump': '时间线跳转',
'meetingExportSummary': '导出纪要',
'meetingMultiPlatformShare': '多平台分享',
'meetingDisclaimer': '建议在安静环境使用,效果受麦克风与网络影响,具体以实际表现为准。',
// 同传/翻译商品页描述
'tradeHeaderDesc1': '多语种实时同传与文本翻译,低延时语音播报。',
'tradeHeaderDesc2': '适用于出行、商务、演讲与教学等场景。',
'translateZhEn': '中英互译',
'lowLatencyVoiceBroadcast': '低延时语音播报',
'multiLangTextTranslation': '多语种文本翻译',
'termOptimizationContextPreserve': '术语优化与语境保持',
'lexiconTourBusinessLife': '旅游/商务/生活词库',
'personalVocabularyMemory': '专属词汇记忆',
'conversationSubtitleLargeText': '对话字幕/大字模式',
'colorHighContrast': '颜色高对比度',
'tradeDisclaimer': '翻译效果受麦克风、网络时延与环境噪声影响,具体以实际表现为准。',
// AI 商品页描述
'aiHeaderDesc1': '更长对话额度、更多工具调用、更强上下文长度支持。',
'aiHeaderDesc2': '适用于智能体问答、总结分析、任务执行等场景。',
'musicSearchPlaybackControl': '检索曲库、播放控制',
'smartPlaylistAndSimilarRecommendations': '智能推荐歌单与相似歌曲',
'routePlanningAndCongestionAvoidance': '路线规划与拥堵规避',
'voiceBroadcastAndWaypoints': '语音播报与途径点设置',
'realTimeWeatherForecast': '实时天气与预报',
'clothingAdviceAndTravelReminders': '穿衣建议与出行提醒',
'poiSearchFoodGasParking': '餐饮/加油/停车等地点检索',
'ratingsHoursAndDirectRoutes': '评分、营业时间与路线直达',
'hotNewsAndTopicOverview': '热点快讯与专题速览',
'longArticleSummariesAndKeyPoints': '长文总结与要点提炼',
'helpCallAndSMS': '帮忙拨打电话与发短信',
'templatedMessagesAndScheduleReminders': '模板消息与日程提醒',
'aiDisclaimer': '以上功能受设备权限、服务可用性与网络状况影响,具体以实际表现为准。',
// 会员商品页
'benefitsOverview': '权益总览',
'higherQuota': '更高使用额度',
'lowerUnitPrice': '更低单价',
'priorityService': '优先服务',
'exclusiveSupportChannel': '专属客服通道',
'fastResponse': '问题快速响应',
'eventsAndDiscounts': '活动与折扣',
'memberExclusiveEvents': '会员专属活动',
'longTermDiscountPlan': '长期优惠计划',
'generalPrivileges': '通用特权',
'earlyAccessNewFeatures': '新功能优先体验',
'crossDeviceSync': '跨设备同步',
'vipDisclaimer': '具体权益以实际套餐说明为准,可能随版本迭代调整。',
//余额不足弹窗
"insufficientBalanceDesc": "餘額不足,請前往對應充值界面進行充值",
"recharge": "前往充值",

4
lib/modules/agent/views/agent_view.dart

@ -130,8 +130,8 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
vipexptime * 1000);
}
final text = expiry != null
? '到期时间: ${DateFormat('yyyy-MM-dd').format(expiry)}'
: '未开启';
? '${'expiryLabel'.tr}${DateFormat('yyyy-MM-dd').format(expiry)}'
: 'notActivated'.tr;
return Text(
text,
style: TextStyle(

3
lib/modules/meeting/views/bottomSheet/share_bottom_sheet.dart

@ -10,11 +10,12 @@ import 'package:get_storage/get_storage.dart';
import 'package:htmltopdfwidgets/htmltopdfwidgets.dart' as pdf;
import 'package:path_provider/path_provider.dart';
import 'package:share_plus/share_plus.dart';
import 'package:voitrans/data/services/network/dio_manager.dart';
import 'package:webview_flutter/webview_flutter.dart';
import '../../../../core/utils/synchrodata.dart';
import '../../../../data/services/version_update_service.dart';
import '../../../../data/services/network/dio_manager.dart';
import '../../controllers/meeting_details_controller.dart';
import '../../controllers/mind_map_controller.dart';
import 'second_level_bottom_sheet.dart';

20
lib/modules/translation/middleware/controllers/translation_middleware_controller.dart

@ -75,16 +75,16 @@ class TranslationMiddlewareController extends GetxController {
iconColor: Colors.indigo[500]!, // 主靛
targetRoute: Routes.textTranslation,
),
TranslationOption(
translationId: 'voice_replication',
title: '声音复刻',
icon: Icons.volume_up,
startColor: Colors.pink[400]!, // 粉色
endColor: Colors.pink[600]!, // 深粉
iconBgColor: Colors.white, // 白色
iconColor: Colors.pink[500]!, // 主粉
targetRoute: Routes.voiceReplication,
),
// TranslationOption(
// translationId: 'voice_replication',
// title: '声音复刻',
// icon: Icons.volume_up,
// startColor: Colors.pink[400]!, // 粉色
// endColor: Colors.pink[600]!, // 深粉
// iconBgColor: Colors.white, // 白色
// iconColor: Colors.pink[500]!, // 主粉
// targetRoute: Routes.voiceReplication,
// ),
];
/// 导航到指定的翻译功能

Loading…
Cancel
Save