wangzhibo
10 天以前 220e4fab27b7f419b3e89e2f2d28ae789aac09d7
xiaozhi-esp32-server/main/manager-mobile/src/i18n/en.ts
@@ -84,6 +84,8 @@
  'home.daysAgo': 'days ago',
  'home.languageModel': 'LLM',
  'home.voiceModel': 'TTS',
  'home.noBoundDevice': 'No device bound',
  'home.onlineCount': '{online}/{total} online',
  // Agent page
  'agent.pageTitle': 'Agent',
@@ -91,6 +93,7 @@
  'agent.deviceManagement': 'Device Management',
  'agent.chatHistory': 'Chat History',
  'agent.voiceprintManagement': 'Voiceprint Management',
  'agent.parentTasks': 'Learning Tasks',
  'agent.editTitle': 'Edit Agent',
  'agent.toolsTitle': 'Edit Features',
  'agent.voiceActivityDetection': 'Voice Activity Detection',
@@ -305,6 +308,11 @@
  'device.deviceType': 'Device Type',
  'device.loading': 'Loading...',
  'device.neverConnected': 'Never connected',
  'device.checkingOnline': 'Checking device status…',
  'device.online': 'Device online',
  'device.offline': 'Device offline',
  'device.onlineHint': 'You can send immediate and scheduled tasks.',
  'device.offlineHint': 'Tasks cannot be sent. Chat history and other views still work.',
  'device.justNow': 'Just now',
  'device.minutesAgo': '{minutes} minutes ago',
  'device.hoursAgo': '{hours} hours ago',
@@ -594,4 +602,119 @@
  'voiceprint.audioNotExist': 'Audio does not exist',
  'voiceprint.getAudioFailed': 'Failed to get audio',
  'voiceprint.audioPlayFailed': 'Audio playback failed',
  'parentTask.pageTitle': 'Learning Tasks',
  'parentTask.createTitle': 'Create Learning Task',
  'parentTask.editTitle': 'Edit Learning Task',
  'parentTask.device': 'Device',
  'parentTask.selectDevice': 'Select a device',
  'parentTask.bindDeviceFirst': 'Bind a device first',
  'parentTask.runningSection': 'Running now',
  'parentTask.scheduledSection': 'Scheduled tasks',
  'parentTask.running': 'Running',
  'parentTask.emptySchedule': 'No schedules yet. Tap + to create extensive listening, shadowing, or chat.',
  'parentTask.startNow': 'Start now',
  'parentTask.saveSchedule': 'Save schedule',
  'parentTask.started': 'Sent to the device',
  'parentTask.saved': 'Schedule synced to the device',
  'parentTask.saveFailed': 'Save failed',
  'parentTask.deviceOffline': 'Device is offline, so nothing was saved. Turn it on and connect it to the network, then try again.',
  'parentTask.online': 'Device online',
  'parentTask.offline': 'Device offline',
  'parentTask.checkingOnline': 'Checking device status…',
  'parentTask.onlineHint': 'You can send immediate and scheduled tasks.',
  'parentTask.offlineHint': 'Cannot send immediate or scheduled tasks. Turn the device on and connect it to the network.',
  'parentTask.startFailed': 'Dispatch failed. Check that the device is online.',
  'parentTask.stop': 'Stop',
  'parentTask.stopTitle': 'Stop current task',
  'parentTask.stopConfirm': 'The device will return to chat immediately.',
  'parentTask.stopped': 'Sent stop to the device',
  'parentTask.stopFailed': 'Stop failed. Check that the device is online.',
  'parentTask.deleteTitle': 'Delete task',
  'parentTask.deleteConfirm': 'This schedule will also be removed from the device.',
  'parentTask.deleted': 'Deleted',
  'parentTask.deleteFailed': 'Delete failed',
  'parentTask.scene': 'Scene',
  'parentTask.dispatchHint': 'Start now switches the device immediately. A schedule starts that mode at the set time, no voice command needed.',
  'parentTask.lesson': 'Lesson',
  'parentTask.pickScene': 'Choose a scene',
  'parentTask.pickLesson': 'Choose a lesson',
  'parentTask.repeat': 'Repeats',
  'parentTask.level': 'Level',
  'parentTask.system': 'Category',
  'parentTask.story': 'Idiom story',
  'parentTask.pickStory': 'Choose one story',
  'parentTask.noStories': 'No stories in this category yet. Add them in the lesson catalog.',
  'parentTask.sentenceCount': 'Shadowing has {n} sentences',
  'parentTask.enPassesTitle': 'How to listen in English',
  'parentTask.cnFixed': 'Chinese plays once at 1.0×, then English uses the passes below.',
  'parentTask.enPassIndex': 'English pass {n}',
  'parentTask.addEnPass': 'Add an English pass',
  'parentTask.removePass': 'Remove',
  'parentTask.shadowingSettings': 'Shadowing',
  'parentTask.shadowingLang': 'Language',
  'parentTask.shadowingLang.cn': 'Chinese',
  'parentTask.shadowingLang.en': 'English',
  'parentTask.shadowingSpeed': 'Playback speed',
  'parentTask.shadowingHint': 'Listen window = actual play time × 1.2. Current speed {speed}×; slower playback makes a longer window.',
  'parentTask.languagePair': 'Language pair',
  'parentTask.pickPair': 'Choose a language pair',
  'parentTask.pairSoon': 'coming soon',
  'parentTask.pairFallbackHint': 'Full phrase packs are still in progress. The device will practice in Chinese-English first.',
  'parentTask.duration': 'Duration (minutes, 0 = unlimited)',
  'parentTask.noDuration': 'No time limit',
  'parentTask.minutesValue': '{n} min',
  'parentTask.onComplete': 'When finished',
  'parentTask.completeChat': 'Return to chat',
  'parentTask.completePowerOff': 'Soft power off',
  'parentTask.howToRun': 'How to run',
  'parentTask.immediate': 'Run now',
  'parentTask.schedule': 'Schedule',
  'parentTask.schedule.daily': 'Daily',
  'parentTask.schedule.hourly': 'Hourly',
  'parentTask.schedule.interval': 'Interval',
  'parentTask.time': 'Time',
  'parentTask.pickTime': 'Pick a time',
  'parentTask.timeHint': 'Any hour and minute of the day',
  'parentTask.repeatDays': 'Repeat',
  'parentTask.everyDay': 'Every day',
  'parentTask.weekdays': 'Weekdays',
  'parentTask.hourlyMinute': 'Minute of each hour',
  'parentTask.hourlyOnTheHour': 'Every hour on the hour',
  'parentTask.hourlyAt': 'Every hour at :{minute}',
  'parentTask.everyMinutes': 'Every {minutes} minutes',
  'parentTask.intervalMinutes': 'Interval (minutes)',
  'parentTask.weekday.mon': 'Mon',
  'parentTask.weekday.tue': 'Tue',
  'parentTask.weekday.wed': 'Wed',
  'parentTask.weekday.thu': 'Thu',
  'parentTask.weekday.fri': 'Fri',
  'parentTask.weekday.sat': 'Sat',
  'parentTask.weekday.sun': 'Sun',
  'parentHistory.pageTitle': 'History',
  'parentHistory.detailTitle': 'Record',
  'parentHistory.entry': 'History',
  'parentHistory.empty': 'No records yet. They appear after the child finishes a task.',
  'parentHistory.loadFailed': 'Failed to load',
  'parentHistory.status.running': 'In progress',
  'parentHistory.status.completed': 'Completed',
  'parentHistory.status.cancelled': 'Stopped',
  'parentHistory.status.preempted': 'Interrupted',
  'parentHistory.status.other': 'Incomplete',
  'parentHistory.source.immediate': 'Started now',
  'parentHistory.source.schedule': 'Scheduled',
  'parentHistory.source.voice': 'Voice command',
  'parentHistory.durationSec': '{s}s',
  'parentHistory.durationMin': '{m}m {s}s',
  'parentHistory.turns': '{n} lines',
  'parentHistory.sentence': 'Line {n}',
  'parentHistory.expected': 'Original',
  'parentHistory.asr': 'Follow-read',
  'parentHistory.noExpected': 'No original text',
  'parentHistory.noAsr': 'No follow-read recognized',
  'parentHistory.noAudio': 'No playable recording',
  'parentHistory.emptyTurns': 'No sentence records for this shadowing session.',
  'parentHistory.extensiveHint': 'Extensive listening has no per-sentence recordings. This page shows completion and duration.',
  'parentHistory.noChat': 'No chat was saved for this window.',
}