| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879 |
- {
- "common": {
- "you": "You",
- "confirm": "Confirm",
- "cancel": "Cancel",
- "loading": "Loading..."
- },
- "home": {
- "slogan": "Generative Learning in Multi-Agent Interactive Classroom",
- "greetingWithName": "Hi, {{name}}"
- },
- "toolbar": {
- "languageHint": "Course will be generated in this language",
- "pdfParser": "Parser",
- "pdfUpload": "Upload PDF",
- "removePdf": "Remove file",
- "webSearchOn": "Enabled",
- "webSearchOff": "Click to enable",
- "webSearchDesc": "Search the web for up-to-date information before generation",
- "webSearchProvider": "Search engine",
- "webSearchNoProvider": "Configure search API key in Settings",
- "selectProvider": "Select provider",
- "configureProvider": "Set up model",
- "configureProviderHint": "Configure at least one model provider to generate courses",
- "enterClassroom": "Enter Classroom",
- "advancedSettings": "Advanced Settings",
- "ttsTitle": "Text-to-Speech",
- "ttsHint": "Choose a voice for the AI teacher",
- "ttsPreview": "Preview",
- "ttsPreviewing": "Playing..."
- },
- "export": {
- "pptx": "Export PPTX",
- "resourcePack": "Export Resource Pack",
- "resourcePackDesc": "PPTX + interactive pages",
- "exporting": "Exporting...",
- "exportSuccess": "Export successful",
- "exportFailed": "Export failed"
- },
- "chat": {
- "lecture": "Lecture",
- "noConversations": "No conversations",
- "startConversation": "Type a message below to begin chatting",
- "noMessages": "No messages yet",
- "ended": "ended",
- "unknown": "Unknown",
- "stopDiscussion": "Stop Discussion",
- "endQA": "End Q&A",
- "tabs": {
- "lecture": "Notes",
- "chat": "Chat"
- },
- "lectureNotes": {
- "empty": "Notes will appear here after lecture playback",
- "emptyHint": "Press play to start the lecture",
- "pageLabel": "Page {{n}}",
- "currentPage": "Current"
- },
- "badge": {
- "qa": "Q&A",
- "discussion": "DISC",
- "lecture": "LEC"
- }
- },
- "actions": {
- "names": {
- "spotlight": "Spotlight",
- "laser": "Laser",
- "wb_open": "Open Whiteboard",
- "wb_draw_text": "Whiteboard Text",
- "wb_draw_shape": "Whiteboard Shape",
- "wb_draw_chart": "Whiteboard Chart",
- "wb_draw_latex": "Whiteboard Formula",
- "wb_draw_table": "Whiteboard Table",
- "wb_draw_line": "Whiteboard Line",
- "wb_clear": "Clear Whiteboard",
- "wb_delete": "Delete Element",
- "wb_close": "Close Whiteboard",
- "discussion": "Discussion"
- },
- "status": {
- "inputStreaming": "Waiting",
- "inputAvailable": "Executing",
- "outputAvailable": "Completed",
- "outputError": "Error",
- "outputDenied": "Denied",
- "running": "Executing",
- "result": "Completed",
- "error": "Error"
- }
- },
- "agentBar": {
- "readyToLearn": "Ready to learn together?",
- "expandedTitle": "Classroom Role Config",
- "configTooltip": "Click to configure classroom roles",
- "voiceLabel": "Voice",
- "voiceLoading": "Loading...",
- "voiceAutoAssign": "Voices will be auto-assigned"
- },
- "proactiveCard": {
- "discussion": "Discussion",
- "join": "Join",
- "skip": "Skip",
- "pause": "Pause",
- "resume": "Resume"
- },
- "voice": {
- "startListening": "Voice input",
- "stopListening": "Stop recording"
- },
- "stage": {
- "currentScene": "Current Scene",
- "generating": "Generating...",
- "paused": "Paused",
- "generationFailed": "Generation failed",
- "confirmSwitchTitle": "Switch Scene",
- "confirmSwitchMessage": "A topic is currently in progress. Switching scenes will end the current topic. Are you sure?",
- "generatingNextPage": "Scene is being generated, please wait...",
- "fullscreen": "Fullscreen",
- "exitFullscreen": "Exit Fullscreen"
- },
- "whiteboard": {
- "title": "Interactive Whiteboard",
- "open": "Open Whiteboard",
- "clear": "Clear Whiteboard",
- "minimize": "Minimize Whiteboard",
- "ready": "Whiteboard is ready",
- "readyHint": "Elements will appear here when added by AI",
- "clearSuccess": "Whiteboard cleared successfully",
- "clearError": "Failed to clear whiteboard: ",
- "resetView": "Reset View",
- "restoreError": "Failed to restore whiteboard: ",
- "history": "History",
- "restore": "Restore",
- "noHistory": "No history yet",
- "restored": "Whiteboard restored",
- "elementCount": "{{count}} elements"
- },
- "quiz": {
- "title": "Quiz",
- "subtitle": "Test your knowledge",
- "questionsCount": "questions",
- "totalPrefix": "",
- "pointsSuffix": "pts",
- "startQuiz": "Start Quiz",
- "multipleChoiceHint": "(Multiple choice — select all correct answers)",
- "inputPlaceholder": "Type your answer here...",
- "charCount": "chars",
- "yourAnswer": "Your answer:",
- "notAnswered": "Not answered",
- "aiComment": "AI Feedback",
- "singleChoice": "Single",
- "multipleChoice": "Multiple",
- "shortAnswer": "Short answer",
- "analysis": "Analysis: ",
- "excellent": "Excellent!",
- "keepGoing": "Keep going!",
- "needsReview": "Needs review",
- "correct": "correct",
- "incorrect": "incorrect",
- "answering": "In Progress",
- "submitAnswers": "Submit Answers",
- "aiGrading": "AI is grading...",
- "aiGradingWait": "Please wait, analyzing your answers",
- "quizReport": "Quiz Report",
- "retry": "Retry"
- },
- "roundtable": {
- "teacher": "TEACHER",
- "you": "YOU",
- "inputPlaceholder": "Type your message...",
- "listening": "Listening...",
- "processing": "Processing...",
- "noSpeechDetected": "No speech detected, please try again",
- "discussionEnded": "Discussion ended",
- "qaEnded": "Q&A ended",
- "thinking": "Thinking",
- "yourTurn": "Your turn",
- "stopDiscussion": "Stop Discussion",
- "autoPlay": "Auto-play",
- "autoPlayOff": "Stop auto-play",
- "speed": "Speed",
- "voiceInput": "Voice input",
- "voiceInputDisabled": "Voice input disabled",
- "textInput": "Text input",
- "stopRecording": "Stop recording",
- "startRecording": "Start recording"
- },
- "pbl": {
- "legacyFormat": "This PBL scene uses a legacy format. Please regenerate the course.",
- "emptyProject": "PBL project has not been generated yet. Please create via course generation.",
- "roleSelection": {
- "title": "Choose Your Role",
- "description": "Select a role to start collaborating on the project"
- },
- "workspace": {
- "restart": "Restart",
- "confirmRestart": "Reset all progress?",
- "confirm": "Confirm",
- "cancel": "Cancel"
- },
- "issueboard": {
- "title": "Issue Board",
- "noIssues": "No issues yet",
- "statusDone": "Done",
- "statusActive": "Active",
- "statusPending": "Pending"
- },
- "chat": {
- "title": "Project Discussion",
- "currentIssue": "Current Issue",
- "mentionHint": "Use @question to ask, @judge to submit for review",
- "placeholder": "Type a message...",
- "send": "Send",
- "welcomeMessage": "Hello! I'm your Question Agent for this issue: \"{{title}}\"\n\nTo help guide your work, I've prepared some questions for you:\n\n{{questions}}\n\nFeel free to @question me anytime if you need help or clarification!",
- "issueCompleteMessage": "Issue \"{{completed}}\" completed! Moving to next issue: \"{{next}}\"",
- "allCompleteMessage": "🎉 All issues completed! Great work on the project!"
- },
- "guide": {
- "howItWorks": "How it works",
- "help": "Help",
- "title": "Help",
- "step1": {
- "title": "Step 1: Choose a Role",
- "desc": "After the project is generated, select a role from the list (non-system roles marked with 🟢)"
- },
- "step2": {
- "title": "Step 2: Complete Issues",
- "desc": "Each issue represents a learning task:",
- "s1": {
- "title": "View current Issue",
- "desc": "Check the issue's title, description, and assignee"
- },
- "s2": {
- "title": "Get guidance",
- "example": "@question Where should I start?\n@question How do I implement this feature?",
- "desc": "The Question Agent provides guiding questions and hints (no direct answers)"
- },
- "s3": {
- "title": "Submit your work",
- "example": "@judge I'm done, please check my Notes",
- "desc": "The Judge Agent evaluates your work and gives feedback:",
- "complete": "Automatically moves to the next issue",
- "revision": "Improve based on feedback"
- }
- },
- "step3": {
- "title": "Step 3: Complete the Project",
- "desc": "When all issues are done, the system displays \"🎉 Project Complete!\""
- }
- }
- },
- "share": {
- "notReady": "Available after generation completes"
- },
- "classroom": {
- "recentClassrooms": "Recent",
- "today": "Today",
- "yesterday": "Yesterday",
- "daysAgo": "days ago",
- "slides": "slides",
- "nameCopied": "Name copied",
- "deleteConfirmTitle": "Delete",
- "delete": "Delete",
- "rename": "Rename",
- "renamePlaceholder": "Enter classroom name",
- "renameFailed": "Failed to rename classroom"
- },
- "upload": {
- "pdfSizeLimit": "Supports PDF files up to 50MB",
- "generateFailed": "Failed to generate classroom, please try again",
- "requirementPlaceholder": "Tell me anything you want to learn, e.g.\n\"Teach me Python from scratch in 30 minutes\"\n\"Explain Fourier Transform on the whiteboard\"\n\"How to play the board game Avalon\"",
- "requirementRequired": "Please enter course requirements",
- "fileTooLarge": "File too large. Please select a PDF file smaller than 50MB"
- },
- "generation": {
- "analyzingPdf": "Analyzing PDF Document",
- "analyzingPdfDesc": "Extracting document structure and content...",
- "pdfLoadFailed": "Failed to load PDF file, please try again",
- "pdfParseFailed": "PDF parsing failed",
- "streamNotReadable": "Unable to read generation stream",
- "generatingOutlines": "Drafting Course Outline",
- "generatingOutlinesDesc": "Structuring the learning path...",
- "generatingSlideContent": "Generating Page Content",
- "generatingSlideContentDesc": "Creating slides, quizzes, and interactive content...",
- "generatingActions": "Generating Teaching Actions",
- "generatingActionsDesc": "Orchestrating narration, spotlights, and interactions...",
- "generationComplete": "Generation complete!",
- "generationFailed": "Generation failed",
- "generatingCourse": "Generating course",
- "openingClassroom": "Opening classroom...",
- "outlineReady": "Course outline generated",
- "generatingFirstPage": "Generating first page...",
- "firstPageReady": "First page ready! Opening classroom...",
- "speechFailed": "Speech generation failed",
- "retryScene": "Retry",
- "retryingScene": "Regenerating...",
- "backToHome": "Back to Home",
- "sessionNotFound": "Session Not Found",
- "sessionNotFoundDesc": "Please fill in course requirements to start the generation process.",
- "goBackAndRetry": "Go Back and Retry",
- "classroomReady": "Your personalized AI learning environment has been generated successfully.",
- "aiWorking": "AI Agents Working...",
- "textTruncated": "Document text is long, using first {{n}} characters for generation",
- "imageTruncated": "{{total}} images found, exceeding the {{max}} image limit. Extra images will use text descriptions only",
- "agentGeneration": "Generating Classroom Roles",
- "agentGenerationDesc": "Generating roles based on course content...",
- "agentRevealTitle": "Your Classroom Roles",
- "viewAgents": "View Roles",
- "continue": "Continue",
- "outlineRetrying": "Outline generation issue, retrying...",
- "outlineEmptyResponse": "Model returned no valid outlines. Please check model configuration and try again",
- "outlineGenerateFailed": "Outline generation failed, please try again later",
- "webSearching": "Web Search",
- "webSearchingDesc": "Searching the web for up-to-date information",
- "webSearchFailed": "Web search failed"
- },
- "settings": {
- "title": "Settings",
- "description": "Configure application settings",
- "language": "Language",
- "languageDesc": "Select interface language",
- "theme": "Theme",
- "themeDesc": "Select theme mode (Light/Dark/System)",
- "themeOptions": {
- "light": "Light",
- "dark": "Dark",
- "system": "System"
- },
- "apiKey": "API Key",
- "apiKeyDesc": "Configure your API key",
- "apiBaseUrl": "API Endpoint URL",
- "apiBaseUrlDesc": "Configure your API endpoint URL",
- "apiKeyRequired": "API key cannot be empty",
- "model": "Model Configuration",
- "modelDesc": "Configure AI models",
- "modelPlaceholder": "Enter or select model name",
- "ttsModel": "TTS Model",
- "ttsModelDesc": "Configure TTS models",
- "ttsModelPlaceholder": "Enter or select TTS model name",
- "ttsModelOptions": {
- "openaiTts": "OpenAI TTS",
- "azureTts": "Azure TTS"
- },
- "availableModels": "Available Models",
- "modelSelectedViaVoice": "Model is determined by voice selection",
- "testConnection": "Test Connection",
- "testConnectionDesc": "Test current API configuration is available",
- "testing": "Testing...",
- "agentSettings": "Agent Settings",
- "agentSettingsDesc": "Select the agents to participate in the conversation. Select 1 for single agent mode, select multiple for multi-agent collaborative mode.",
- "agentMode": "Agent Mode",
- "agentModePreset": "Preset",
- "agentModeAuto": "Auto-generate",
- "agentModeAutoDesc": "AI will automatically generate appropriate roles",
- "autoAgentCount": "Agent Count",
- "autoAgentCountDesc": "Number of agents to auto-generate (including teacher)",
- "atLeastOneAgent": "Please select at least 1 agent",
- "singleAgentMode": "Single Agent Mode",
- "directAnswer": "Direct Answer",
- "multiAgentMode": "Multi-Agent Mode",
- "agentsCollaborating": "Collaborative Discussion",
- "agentsCollaboratingCount": "{{count}} agents selected for collaborative discussion",
- "maxTurns": "Max Discussion Turns",
- "maxTurnsDesc": "The maximum number of discussion turns between agents (each agent completes actions and reply counts as one turn)",
- "priority": "Priority",
- "actions": "Actions",
- "actionCount": "{{count}} actions",
- "selectedAgent": "Selected Agent",
- "selectedAgents": "Selected Agents",
- "required": "Required",
- "agentNames": {
- "default-1": "AI Teacher",
- "default-2": "AI Assistant",
- "default-3": "Class Clown",
- "default-4": "Curious Mind",
- "default-5": "Note Taker",
- "default-6": "Deep Thinker"
- },
- "agentRoles": {
- "teacher": "Teacher",
- "assistant": "Assistant",
- "student": "Student"
- },
- "agentDescriptions": {
- "default-1": "Lead teacher with clear and structured explanations",
- "default-2": "Supports learning and helps clarify key points",
- "default-3": "Brings humor and energy to the classroom",
- "default-4": "Always curious, loves asking why and how",
- "default-5": "Diligently records and organizes class notes",
- "default-6": "Thinks deeply and explores the essence of topics"
- },
- "close": "Close",
- "save": "Save",
- "providers": "LLM",
- "addProviderDescription": "Add custom model providers to extend available AI models",
- "providerNames": {
- "openai": "OpenAI",
- "anthropic": "Claude",
- "google": "Gemini",
- "deepseek": "DeepSeek",
- "qwen": "Qwen",
- "kimi": "Kimi",
- "minimax": "MiniMax",
- "glm": "GLM",
- "siliconflow": "SiliconFlow",
- "doubao": "Doubao",
- "ollama": "Ollama (Local)"
- },
- "providerTypes": {
- "openai": "OpenAI Protocol",
- "anthropic": "Claude Protocol",
- "google": "Gemini Protocol"
- },
- "modelCount": "models",
- "modelSingular": "model",
- "defaultModel": "Default Model",
- "webSearch": "Web Search",
- "mcp": "MCP",
- "knowledgeBase": "Knowledge Base",
- "documentParser": "Document Parser",
- "conversationSettings": "Conversation",
- "keyboardShortcuts": "Shortcuts",
- "generalSettings": "General",
- "systemSettings": "System",
- "addProvider": "Add",
- "importFromClipboard": "Import from Clipboard",
- "apiSecret": "API Key",
- "apiHost": "Base URL",
- "requestUrl": "Request URL",
- "models": "Models",
- "addModel": "New",
- "reset": "Reset",
- "fetch": "Fetch",
- "connectionSuccess": "Connection successful",
- "connectionFailed": "Connection failed",
- "capabilities": {
- "vision": "Vision",
- "tools": "Tools",
- "streaming": "Streaming"
- },
- "contextWindow": "Context",
- "contextShort": "ctx",
- "outputWindow": "Output",
- "addProviderButton": "Add",
- "addProviderDialog": "Add Model Provider",
- "providerName": "Name",
- "providerNamePlaceholder": "e.g., My OpenAI Proxy",
- "providerNameRequired": "Please enter provider name",
- "providerApiMode": "API Mode",
- "apiModeOpenAI": "OpenAI Protocol",
- "apiModeAnthropic": "Claude Protocol",
- "apiModeGoogle": "Gemini Protocol",
- "defaultBaseUrl": "Default Base URL",
- "providerIcon": "Provider Icon URL",
- "requiresApiKey": "Requires API Key",
- "deleteProvider": "Delete Provider",
- "deleteProviderConfirm": "Are you sure you want to delete this provider?",
- "cannotDeleteBuiltIn": "Cannot delete built-in provider",
- "resetToDefault": "Reset to Default",
- "resetToDefaultDescription": "Restore model list to default configuration (API key and Base URL will be preserved)",
- "resetConfirmDescription": "This will remove all custom models and restore the built-in default model list. API key and Base URL will be preserved.",
- "confirmReset": "Confirm Reset",
- "resetSuccess": "Successfully reset to default configuration",
- "saveSuccess": "Settings saved",
- "saveFailed": "Failed to save settings, please try again",
- "cannotDeleteBuiltInModel": "Cannot delete built-in model",
- "cannotEditBuiltInModel": "Cannot edit built-in model",
- "modelIdRequired": "Please enter model ID",
- "noModelsAvailable": "No models available for testing",
- "providerMetadata": "Provider Metadata",
- "editModel": "Edit Model",
- "editModelDescription": "Edit model configuration and capabilities",
- "addNewModel": "New Model",
- "addNewModelDescription": "Add a new model configuration",
- "modelId": "Model ID",
- "modelIdPlaceholder": "e.g., gpt-4o",
- "modelName": "Display Name",
- "modelNamePlaceholder": "Optional",
- "modelCapabilities": "Capabilities",
- "advancedSettings": "Advanced Settings",
- "contextWindowLabel": "Context Window",
- "contextWindowPlaceholder": "e.g., 128000",
- "outputWindowLabel": "Max Output Tokens",
- "outputWindowPlaceholder": "e.g., 4096",
- "testModel": "Test Model",
- "deleteModel": "Delete",
- "cancelEdit": "Cancel",
- "saveModel": "Save",
- "modelsManagementDescription": "Manage models for this provider. To select the active model, go to \"General\".",
- "howToUse": "How to Use",
- "step1ConfigureProvider": "Go to \"Model Providers\", select or add a provider, and configure connection settings (API key, Base URL, etc.)",
- "step2SelectModel": "Select the model you want to use in \"Active Model\" below",
- "step3StartUsing": "After saving, the system will use your selected model",
- "activeModel": "Active Model",
- "activeModelDescription": "Select the model for AI conversations and content generation",
- "selectModel": "Select Model",
- "searchModels": "Search models",
- "noModelsFound": "No matching models found",
- "noConfiguredProviders": "No configured providers",
- "configureProvidersFirst": "Please configure provider connection settings in \"Model Providers\" on the left",
- "currentlyUsing": "Currently using",
- "ttsSettings": "Text-to-Speech",
- "asrSettings": "Speech Recognition",
- "audioSettings": "Audio Settings",
- "ttsSection": "Text-to-Speech (TTS)",
- "asrSection": "Automatic Speech Recognition (ASR)",
- "ttsDescription": "TTS (Text-to-Speech) - Convert text to speech",
- "asrDescription": "ASR (Automatic Speech Recognition) - Convert speech to text",
- "enableTTS": "Enable Text-to-Speech",
- "ttsEnabledDescription": "When enabled, speech audio will be generated during course creation",
- "ttsVoiceConfigHint": "Per-agent voice can be configured in \"Classroom Role Config\" on the homepage",
- "enableASR": "Enable Speech Recognition",
- "asrEnabledDescription": "When enabled, students can use microphone for voice input",
- "ttsProvider": "TTS Provider",
- "ttsLanguageFilter": "Language Filter",
- "allLanguages": "All Languages",
- "ttsVoice": "Voice",
- "ttsSpeed": "Speed",
- "ttsBaseUrl": "Base URL",
- "ttsApiKey": "API Key",
- "doubaoAppId": "App ID",
- "doubaoAccessKey": "Access Key",
- "asrProvider": "ASR Provider",
- "asrLanguage": "Recognition Language",
- "asrBaseUrl": "Base URL",
- "asrApiKey": "API Key",
- "enterApiKey": "Enter API Key",
- "enterCustomBaseUrl": "Enter custom Base URL",
- "browserNativeNote": "Browser Native ASR requires no configuration and is completely free",
- "providerOpenAITTS": "OpenAI TTS (gpt-4o-mini-tts)",
- "providerAzureTTS": "Azure TTS",
- "providerGLMTTS": "GLM TTS",
- "providerQwenTTS": "Qwen TTS (Alibaba Cloud Bailian)",
- "providerDoubaoTTS": "Doubao TTS 2.0 (Volcengine)",
- "providerElevenLabsTTS": "ElevenLabs TTS",
- "providerMiniMaxTTS": "MiniMax TTS",
- "providerBrowserNativeTTS": "Browser Native TTS",
- "providerOpenAIWhisper": "OpenAI ASR (gpt-4o-mini-transcribe)",
- "providerBrowserNative": "Browser Native ASR",
- "providerQwenASR": "Qwen ASR (Alibaba Cloud Bailian)",
- "providerUnpdf": "unpdf (Built-in)",
- "providerMinerU": "MinerU",
- "browserNativeTTSNote": "Browser Native TTS requires no configuration and is completely free, using system built-in voices",
- "testTTS": "Test TTS",
- "testASR": "Test ASR",
- "testSuccess": "Test Successful",
- "testFailed": "Test Failed",
- "ttsTestText": "TTS Test Text",
- "ttsTestSuccess": "TTS test successful, audio played",
- "ttsTestFailed": "TTS test failed",
- "asrTestSuccess": "Speech recognition successful",
- "asrTestFailed": "Speech recognition failed",
- "asrResult": "Recognition Result",
- "asrNotSupported": "Browser does not support Speech Recognition API",
- "browserTTSNotSupported": "Browser does not support Speech Synthesis API",
- "browserTTSNoVoices": "Current browser has no available TTS voices",
- "microphoneAccessDenied": "Microphone access denied",
- "microphoneAccessFailed": "Failed to access microphone",
- "asrResultPlaceholder": "Recognition result will be displayed after recording",
- "useThisProvider": "Use This Provider",
- "fetchVoices": "Fetch Voice List",
- "fetchingVoices": "Fetching...",
- "voicesFetched": "Voices fetched",
- "fetchVoicesFailed": "Failed to fetch voices",
- "voiceApiKeyRequired": "API Key required",
- "voiceBaseUrlRequired": "Base URL required",
- "ttsTestTextPlaceholder": "Enter text to convert",
- "ttsTestTextDefault": "Hello, this is a test speech.",
- "startRecording": "Start Recording",
- "stopRecording": "Stop Recording",
- "recording": "Recording...",
- "transcribing": "Transcribing...",
- "transcriptionResult": "Transcription Result",
- "noTranscriptionResult": "No transcription result",
- "baseUrlOptional": "Base URL (Optional)",
- "defaultValue": "Default",
- "voiceMarin": "Recommended - Best Quality",
- "voiceCedar": "Recommended - Best Quality",
- "voiceAlloy": "Neutral, Balanced",
- "voiceAsh": "Steady, Professional",
- "voiceBallad": "Elegant, Lyrical",
- "voiceCoral": "Warm, Friendly",
- "voiceEcho": "Male, Clear",
- "voiceFable": "Narrative, Vivid",
- "voiceNova": "Female, Bright",
- "voiceOnyx": "Male, Deep",
- "voiceSage": "Wise, Composed",
- "voiceShimmer": "Female, Soft",
- "voiceVerse": "Natural, Smooth",
- "glmVoiceTongtong": "Default voice",
- "glmVoiceChuichui": "Chuichui voice",
- "glmVoiceXiaochen": "Xiaochen voice",
- "glmVoiceJam": "Jam voice",
- "glmVoiceKazi": "Kazi voice",
- "glmVoiceDouji": "Douji voice",
- "glmVoiceLuodo": "Luodo voice",
- "qwenVoiceCherry": "Sunny, warm and natural",
- "qwenVoiceSerena": "Gentle and soft",
- "qwenVoiceEthan": "Energetic and vibrant",
- "qwenVoiceChelsie": "Anime virtual girlfriend",
- "qwenVoiceMomo": "Playful and cheerful",
- "qwenVoiceVivian": "Cute and sassy",
- "qwenVoiceMoon": "Cool and handsome",
- "qwenVoiceMaia": "Intellectual and gentle",
- "qwenVoiceKai": "A SPA for your ears",
- "qwenVoiceNofish": "Designer who can't pronounce retroflex sounds",
- "qwenVoiceBella": "Little loli who doesn't get drunk",
- "qwenVoiceJennifer": "Brand-level, cinematic American female voice",
- "qwenVoiceRyan": "Fast-paced, dramatic performance",
- "qwenVoiceKaterina": "Mature lady with memorable rhythm",
- "qwenVoiceAiden": "American boy who masters cooking",
- "qwenVoiceEldricSage": "Steady and wise elder",
- "qwenVoiceMia": "Gentle as spring water, well-behaved as snow",
- "qwenVoiceMochi": "Smart little adult with childlike innocence",
- "qwenVoiceBellona": "Loud voice, clear pronunciation, vivid characters",
- "qwenVoiceVincent": "Unique hoarse voice telling tales of war and honor",
- "qwenVoiceBunny": "Super cute loli",
- "qwenVoiceNeil": "Professional news anchor",
- "qwenVoiceElias": "Professional instructor",
- "qwenVoiceArthur": "Simple voice soaked by years and dry tobacco",
- "qwenVoiceNini": "Soft and sticky voice like glutinous rice cake",
- "qwenVoiceEbona": "Her whisper is like a rusty key",
- "qwenVoiceSeren": "Gentle and soothing voice to help you sleep",
- "qwenVoicePip": "Naughty but full of childlike innocence",
- "qwenVoiceStella": "Sweet confused girl voice that becomes just when shouting",
- "qwenVoiceBodega": "Enthusiastic Spanish uncle",
- "qwenVoiceSonrisa": "Enthusiastic Latin American lady",
- "qwenVoiceAlek": "Cold of battle nation, warm under woolen coat",
- "qwenVoiceDolce": "Lazy Italian uncle",
- "qwenVoiceSohee": "Gentle, cheerful Korean unnie",
- "qwenVoiceOnoAnna": "Mischievous childhood friend",
- "qwenVoiceLenn": "Rational German youth who wears suit and listens to post-punk",
- "qwenVoiceEmilien": "Romantic French big brother",
- "qwenVoiceAndre": "Magnetic, natural and calm male voice",
- "qwenVoiceRadioGol": "Football poet Rádio Gol!",
- "qwenVoiceJada": "Lively Shanghai lady",
- "qwenVoiceDylan": "Beijing boy",
- "qwenVoiceLi": "Patient yoga teacher",
- "qwenVoiceMarcus": "Broad face, short words, solid heart - old Shaanxi taste",
- "qwenVoiceRoy": "Humorous and straightforward Taiwanese boy",
- "qwenVoicePeter": "Tianjin cross-talk professional supporter",
- "qwenVoiceSunny": "Sweet Sichuan girl",
- "qwenVoiceEric": "Chengdu gentleman",
- "qwenVoiceRocky": "Humorous Hong Kong guy",
- "qwenVoiceKiki": "Sweet Hong Kong girl",
- "lang_auto": "Auto Detect",
- "lang_zh": "中文",
- "lang_yue": "粤語",
- "lang_en": "English",
- "lang_ja": "日本語",
- "lang_ko": "한국어",
- "lang_es": "Español",
- "lang_fr": "Français",
- "lang_de": "Deutsch",
- "lang_ru": "Русский",
- "lang_ar": "العربية",
- "lang_pt": "Português",
- "lang_it": "Italiano",
- "lang_af": "Afrikaans",
- "lang_hy": "Հայերեն",
- "lang_az": "Azərbaycan",
- "lang_be": "Беларуская",
- "lang_bs": "Bosanski",
- "lang_bg": "Български",
- "lang_ca": "Català",
- "lang_hr": "Hrvatski",
- "lang_cs": "Čeština",
- "lang_da": "Dansk",
- "lang_nl": "Nederlands",
- "lang_et": "Eesti",
- "lang_fi": "Suomi",
- "lang_gl": "Galego",
- "lang_el": "Ελληνικά",
- "lang_he": "עברית",
- "lang_hi": "हिन्दी",
- "lang_hu": "Magyar",
- "lang_is": "Íslenska",
- "lang_id": "Bahasa Indonesia",
- "lang_kn": "ಕನ್ನಡ",
- "lang_kk": "Қазақша",
- "lang_lv": "Latviešu",
- "lang_lt": "Lietuvių",
- "lang_mk": "Македонски",
- "lang_ms": "Bahasa Melayu",
- "lang_mr": "मराठी",
- "lang_mi": "Te Reo Māori",
- "lang_ne": "नेपाली",
- "lang_no": "Norsk",
- "lang_fa": "فارسی",
- "lang_pl": "Polski",
- "lang_ro": "Română",
- "lang_sr": "Српски",
- "lang_sk": "Slovenčina",
- "lang_sl": "Slovenščina",
- "lang_sw": "Kiswahili",
- "lang_sv": "Svenska",
- "lang_tl": "Tagalog",
- "lang_fil": "Filipino",
- "lang_ta": "தமிழ்",
- "lang_th": "ไทย",
- "lang_tr": "Türkçe",
- "lang_uk": "Українська",
- "lang_ur": "اردو",
- "lang_vi": "Tiếng Việt",
- "lang_cy": "Cymraeg",
- "lang_zh-CN": "中文(简体,中国)",
- "lang_zh-TW": "中文(繁體,台灣)",
- "lang_zh-HK": "粵語(香港)",
- "lang_yue-Hant-HK": "粵語(繁體)",
- "lang_en-US": "English (United States)",
- "lang_en-GB": "English (United Kingdom)",
- "lang_en-AU": "English (Australia)",
- "lang_en-CA": "English (Canada)",
- "lang_en-IN": "English (India)",
- "lang_en-NZ": "English (New Zealand)",
- "lang_en-ZA": "English (South Africa)",
- "lang_ja-JP": "日本語(日本)",
- "lang_ko-KR": "한국어(대한민국)",
- "lang_de-DE": "Deutsch (Deutschland)",
- "lang_fr-FR": "Français (France)",
- "lang_es-ES": "Español (España)",
- "lang_es-MX": "Español (México)",
- "lang_es-AR": "Español (Argentina)",
- "lang_es-CO": "Español (Colombia)",
- "lang_it-IT": "Italiano (Italia)",
- "lang_pt-BR": "Português (Brasil)",
- "lang_pt-PT": "Português (Portugal)",
- "lang_ru-RU": "Русский (Россия)",
- "lang_nl-NL": "Nederlands (Nederland)",
- "lang_pl-PL": "Polski (Polska)",
- "lang_cs-CZ": "Čeština (Česko)",
- "lang_da-DK": "Dansk (Danmark)",
- "lang_fi-FI": "Suomi (Suomi)",
- "lang_sv-SE": "Svenska (Sverige)",
- "lang_no-NO": "Norsk (Norge)",
- "lang_tr-TR": "Türkçe (Türkiye)",
- "lang_el-GR": "Ελληνικά (Ελλάδα)",
- "lang_hu-HU": "Magyar (Magyarország)",
- "lang_ro-RO": "Română (România)",
- "lang_sk-SK": "Slovenčina (Slovensko)",
- "lang_bg-BG": "Български (България)",
- "lang_hr-HR": "Hrvatski (Hrvatska)",
- "lang_ca-ES": "Català (Espanya)",
- "lang_ar-SA": "العربية (السعودية)",
- "lang_ar-EG": "العربية (مصر)",
- "lang_he-IL": "עברית (ישראל)",
- "lang_hi-IN": "हिन्दी (भारत)",
- "lang_th-TH": "ไทย (ประเทศไทย)",
- "lang_vi-VN": "Tiếng Việt (Việt Nam)",
- "lang_id-ID": "Bahasa Indonesia (Indonesia)",
- "lang_ms-MY": "Bahasa Melayu (Malaysia)",
- "lang_fil-PH": "Filipino (Pilipinas)",
- "lang_af-ZA": "Afrikaans (Suid-Afrika)",
- "lang_uk-UA": "Українська (Україна)",
- "pdfSettings": "PDF Parsing",
- "pdfParsingSettings": "PDF Parsing Settings",
- "pdfDescription": "Choose PDF parsing engine with support for text extraction, image processing, and table recognition",
- "pdfProvider": "PDF Parser",
- "pdfFeatures": "Supported Features",
- "pdfApiKey": "API Key",
- "pdfBaseUrl": "Base URL",
- "mineruDescription": "MinerU is a commercial PDF parsing service that supports advanced features such as table extraction, formula recognition, and layout analysis.",
- "mineruApiKeyRequired": "You need to apply for an API Key on the MinerU website before use.",
- "mineruWarning": "Warning",
- "mineruCostWarning": "MinerU is a commercial service and may incur fees. Please check the MinerU website for pricing details.",
- "enterMinerUApiKey": "Enter MinerU API Key",
- "mineruLocalDescription": "MinerU supports local deployment with advanced PDF parsing (tables, formulas, layout analysis). Requires deploying MinerU service first.",
- "mineruServerAddress": "Local MinerU server address (e.g., http://localhost:8080)",
- "mineruApiKeyOptional": "Only required if server has authentication enabled",
- "optionalApiKey": "Optional API Key",
- "featureText": "Text Extraction",
- "featureImages": "Image Extraction",
- "featureTables": "Table Extraction",
- "featureFormulas": "Formula Recognition",
- "featureLayoutAnalysis": "Layout Analysis",
- "featureMetadata": "Metadata",
- "enableImageGeneration": "Enable AI Image Generation",
- "imageGenerationDisabledHint": "When enabled, images will be auto-generated during course creation",
- "imageSettings": "Image Generation",
- "imageSection": "Text to Image",
- "imageProvider": "Image Generation Provider",
- "imageModel": "Image Generation Model",
- "providerSeedream": "Seedream (ByteDance)",
- "providerQwenImage": "Qwen Image (Alibaba)",
- "providerNanoBanana": "Nano Banana (Gemini)",
- "providerMiniMaxImage": "MiniMax Image",
- "providerGrokImage": "Grok Image (xAI)",
- "testImageGeneration": "Test Image Generation",
- "testImageConnectivity": "Test Connection",
- "imageConnectivitySuccess": "Image service connected successfully",
- "imageConnectivityFailed": "Image service connection failed",
- "imageTestSuccess": "Image generation test succeeded",
- "imageTestFailed": "Image generation test failed",
- "imageTestPromptPlaceholder": "Enter image description to test",
- "imageTestPromptDefault": "A cute cat sitting on a desk",
- "imageGenerating": "Generating image...",
- "imageGenerationFailed": "Image generation failed",
- "enableVideoGeneration": "Enable AI Video Generation",
- "videoGenerationDisabledHint": "When enabled, videos will be auto-generated during course creation",
- "videoSettings": "Video Generation",
- "videoSection": "Text to Video",
- "videoProvider": "Video Generation Provider",
- "videoModel": "Video Generation Model",
- "providerSeedance": "Seedance (ByteDance)",
- "providerKling": "Kling (Kuaishou)",
- "providerVeo": "Veo (Google)",
- "providerSora": "Sora (OpenAI)",
- "providerMiniMaxVideo": "MiniMax Video",
- "providerGrokVideo": "Grok Video (xAI)",
- "testVideoGeneration": "Test Video Generation",
- "testVideoConnectivity": "Test Connection",
- "videoConnectivitySuccess": "Video service connected successfully",
- "videoConnectivityFailed": "Video service connection failed",
- "testingConnection": "Testing...",
- "videoTestSuccess": "Video generation test succeeded",
- "videoTestFailed": "Video generation test failed",
- "videoTestPromptDefault": "A cute cat walking on a desk",
- "videoGenerating": "Generating video (est. 1-2 min)...",
- "videoGenerationWarning": "Video generation usually takes 1-2 minutes, please be patient",
- "mediaRetry": "Retry",
- "mediaContentSensitive": "Sorry, this content triggered a safety check.",
- "mediaGenerationDisabled": "Generation disabled in settings",
- "singleAgent": "Single Agent",
- "multiAgent": "Multi-Agent",
- "selectAgents": "Select Agents",
- "noVisionWarning": "Current model does not support vision. Images can still be placed in slides, but the model cannot understand image content to optimize selection and layout",
- "serverConfigured": "Server",
- "serverConfiguredNotice": "Admin has configured an API key for this provider on the server. You can use it directly or enter your own key to override.",
- "optionalOverride": "Optional — leave empty to use server config",
- "setupNeeded": "Setup required",
- "modelNotConfigured": "Please select a model to get started",
- "dangerZone": "Danger Zone",
- "clearCache": "Clear Local Cache",
- "clearCacheDescription": "Delete all locally stored data, including classroom records, chat history, audio cache, and app settings. This action cannot be undone.",
- "clearCacheConfirmTitle": "Are you sure you want to clear all cache?",
- "clearCacheConfirmDescription": "This will permanently delete all of the following data and cannot be recovered:",
- "clearCacheConfirmItems": "Classrooms & scenes, Chat history, Audio & image cache, App settings & preferences",
- "clearCacheConfirmInput": "Type \"DELETE\" to continue",
- "clearCacheConfirmPhrase": "DELETE",
- "clearCacheButton": "Permanently Delete All Data",
- "clearCacheSuccess": "Cache cleared, page will refresh shortly",
- "clearCacheFailed": "Failed to clear cache, please try again",
- "webSearchSettings": "Web Search",
- "webSearchApiKey": "Tavily API Key",
- "webSearchApiKeyPlaceholder": "Enter your Tavily API Key",
- "webSearchApiKeyPlaceholderServer": "Server key configured, optionally override",
- "webSearchApiKeyHint": "Get an API key from tavily.com for web search",
- "webSearchBaseUrl": "Base URL",
- "webSearchServerConfigured": "Server-side Tavily API key is configured",
- "optional": "Optional"
- },
- "profile": {
- "title": "Profile",
- "defaultNickname": "Learner",
- "chooseAvatar": "Choose Avatar",
- "uploadAvatar": "Upload",
- "bioPlaceholder": "Tell us about yourself — the AI teacher will personalize lessons for you...",
- "avatarHint": "Your avatar will appear in classroom discussions and chats",
- "fileTooLarge": "Image too large — please choose one under 5 MB",
- "invalidFileType": "Please select an image file",
- "editTooltip": "Click to edit profile"
- },
- "media": {
- "imageCapability": "Image Generation",
- "imageHint": "Generate images in slides",
- "videoCapability": "Video Generation",
- "videoHint": "Generate videos in slides",
- "ttsCapability": "Text-to-Speech",
- "ttsHint": "AI teacher speaks aloud",
- "asrCapability": "Speech Recognition",
- "asrHint": "Voice input for discussion",
- "provider": "Provider",
- "model": "Model",
- "voice": "Voice",
- "speed": "Speed",
- "language": "Language"
- }
- }
|