{ "common": { "appName": "BrainWave", "appTagline": "practice exam platform", "cancel": "Cancel", "confirm": "Confirm", "close": "Close", "save": "Save", "delete": "Delete", "edit": "Edit", "back": "Back", "backToHome": "Back to home", "loading": "Loading…", "error": "Error", "success": "Success", "yes": "Yes", "no": "No", "pts": "pts", "pt": "pt", "questions": "questions", "question": "question" }, "landing": { "eyebrow": "BrainWave · practice exam platform", "title": "Upload an exam. ", "titleEmphasis": "Practice anything.", "subtitle": "Drop in a JSON file to run a practice exam — math with full LaTeX, language translation, multiple choice, matching, ordering, essays, and more. Progress saves automatically.", "dropzoneTitle": "Drop your exam JSON here", "dropzoneSub": "or click to browse · max 5 MB", "downloadInstructions": "Download Instructions — How to create your own exam JSON", "downloadInstructionsIcon": "↓", "supportedTypes": "Supported types", "supportedTypesList": "multiple-choice · multiple-select · short-answer · translation · math-input (LaTeX) · essay · match · order · fill-in-the-blanks · true-false · code-submission · dropdown-completion · numeric-range", "trySample": "Try a sample", "resumeTitle": "Resume in-progress exam", "resumeProgress": "{{answered}}/{{total}} answered", "resumeButton": "Resume →", "pastAttempts": "Past attempts", "clearHistory": "Clear history", "dateTimeFormat": "{{date}} · {{correct}}/{{graded}} correct", "review": "Review", "retake": "Retake", "loadError": "Could not load: {{message}}", "loadSampleError": "Could not load sample: {{message}}", "clearHistoryConfirm": "Clear all past attempts?" }, "auth": { "signIn": "Sign In", "signOut": "Sign Out", "register": "Register", "welcomeBack": "Welcome back", "createAccount": "Create account", "signInSubtitle": "Sign in to access your saved exams and results", "registerSubtitle": "Create an account to save your progress", "email": "Email", "password": "Password", "confirmPassword": "Confirm Password", "displayName": "Display Name", "forgotPassword": "Forgot your password?", "signingIn": "Signing in…", "creatingAccount": "Creating account…", "loginFailed": "Login failed", "registrationFailed": "Registration failed", "passwordsDoNotMatch": "Passwords do not match", "myWorkspace": "My Workspace", "adminDashboard": "Admin Dashboard", "userMenu": "User menu", "resetPassword": "Reset Password", "resetPasswordDesc": "Enter your email address and we'll send you a link to reset your password.", "checkYourEmail": "Check Your Email", "setNewPassword": "Set New Password", "enterNewPassword": "Enter your new password below.", "newPassword": "New Password", "resetting": "Resetting…", "passwordUpdated": "Password Updated", "passwordUpdatedDesc": "Your password has been reset successfully. You can now sign in with your new password.", "requestFailed": "Request failed", "passwordResetFailed": "Password reset failed", "sendResetLink": "Send Reset Link", "sending": "Sending…", "backToSignIn": "Back to sign in" }, "exam": { "submitExam": "Submit exam", "exitToHome": "Exit to home", "questionsLabel": "Questions", "progressLabel": "Progress", "progressText": "{{answered}} of {{total}} answered", "questionHeader": "Question {{current}} / {{total}}", "correct": "Correct", "notQuite": "Not quite", "answerLabel": "Answer:", "previous": "← Previous", "flagged": "⚑ Flagged", "flagForReview": "⚐ Flag for review", "checkAnswer": "Check answer", "next": "Next →", "elapsed": "Elapsed", "remaining": "Remaining", "pointsPossible": "Points possible", "mode": "Mode", "immediateFeedback": "Immediate feedback", "gradeAtEnd": "Grade at end", "notes": "Notes", "notesPlaceholder": "Add short notes while you work…", "author": "Author", "navigateHint": "navigate", "flagHint": "flag", "selectHint": "select", "exit": "Exit", "untimed": "Untimed", "needHint": "💡 Need a hint?", "hintLoading": "Thinking…", "hintShown": "💡 Hint shown", "hintTitle": "Get a hint without revealing the answer", "hintLabel": "Hint" }, "results": { "ai": { "button": "AI Review", "suggestedGrade": "AI Suggested Grade", "feedback": "AI Feedback", "accept": "Accept", "keepOriginal": "Keep original", "rubricBreakdown": "Rubric breakdown", "error": "AI grading failed — please grade manually" }, "tutor": { "title": "💬 Ask the tutor", "subtitle": "Ask follow-up questions about this attempt — explanations, similar problems, or rubric details.", "placeholder": "e.g. \"Why was Q2 wrong?\" or \"Give me a similar problem to practice.\"", "inputPlaceholder": "Ask a question…", "send": "Send" }, "reviewing": "Reviewing past attempt", "examComplete": "Exam complete", "scored": "You scored ", "abovePassing": "Above the {{passing}}% passing mark.", "belowPassing": "Below the {{passing}}% passing mark. Keep practicing.", "points": "Points", "correct": "Correct", "time": "Time", "byCategory": "By category", "uncategorized": "Uncategorized", "review": "Review", "explanation": "Explanation", "rubric": "Rubric (self-grade)", "retakeExam": "Retake exam", "redoFailed": "Redo failed questions", "cantRetake": "Exam no longer saved in workspace", "backToHome": "Back to home" }, "tweaks": { "title": "Tweaks", "theme": "Theme", "light": "Light", "dark": "Dark", "textSize": "Text size", "small": "S", "medium": "M", "large": "L", "feedback": "Feedback", "auto": "Auto", "immediate": "Immediate", "end": "End" }, "workspace": { "myWorkspace": "My Workspace", "overview": "Overview", "myExams": "My Exams", "results": "Results", "settings": "Settings", "newExam": "New Exam", "noSavedExams": "No saved exams yet", "noSavedExamsDesc": "Upload an exam from the home page, or create a new one to get started.", "createFirstExam": "Create Your First Exam", "takeExam": "Take exam", "totalAttempts": "Total Attempts", "avgScore": "Avg. Score", "questionsAnswered": "Questions Answered", "uploadExam": "Upload Exam", "uploadDropzone": "Drop JSON or click to browse", "studyCoachTitle": "Study Coach", "streakDay": "day streak", "streakDays": "day streak", "studyTips": "Study Tips", "retakeWeakest": "Retake Weakest Exam", "performanceTrends": "Performance Trends", "sharedWithMe": "Shared with Me", "noSharedExams": "No shared exams yet", "noSharedExamsDesc": "Exams shared by others will appear here when you save them to your workspace.", "shareMode": "Share mode", "shareModeClone": "Cloneable", "shareModeView": "View only", "importFromUrl": "Import from URL", "importUrlPlaceholder": "Paste a raw JSON URL…", "import": "Import", "importing": "Importing…", "viewAllResults": "View all results", "recentResults": "Recent Results", "downloadInstructions": "Download Instructions", "viewAll": "View all", "noAttempts": "No attempts yet", "noAttemptsDesc": "Take an exam to see your results here.", "attempts": "attempt", "attemptsPlural": "attempts", "updated": "Updated", "profile": "Profile", "security": "Security", "displayNameLabel": "Display Name", "displayNameDesc": "Your name shown throughout the app", "emailLabel": "Email", "emailDesc": "Your email address", "saveProfile": "Save Profile", "saving": "Saving…", "displayNameUpdated": "Display name updated", "displayNameRequired": "Display name is required (max 100 characters)", "currentPassword": "Current Password", "newPassword": "New Password", "newPasswordDesc": "Minimum 8 characters", "confirmNewPassword": "Confirm New Password", "changePassword": "Change Password", "changing": "Changing…", "passwordChanged": "Password changed successfully", "passwordMinLength": "New password must be at least 8 characters", "passwordsDoNotMatch": "Passwords do not match", "language": "Language", "languageLabel": "Language", "languageDesc": "Select your preferred display language", "appearance": "Appearance", "themeLabel": "Theme", "themeDesc": "Choose between light and dark mode", "textSizeLabel": "Text size", "textSizeDesc": "Adjust the base font size for readability", "defaultFeedback": "Default Feedback", "defaultFeedbackLabel": "Feedback mode", "defaultFeedbackDesc": "Choose when to see answer feedback during exams", "storage": "Storage", "storageUsage": "Storage Usage", "storageOf": "of", "storageExams": "Saved exams", "storageResults": "Results", "showDetails": "Show details", "hideDetails": "Hide details", "storageDetails": "Storage Details", "noStorageItems": "No items using storage.", "exam": "Exam", "result": "Result", "deleteExamConfirm": "Delete this exam? This cannot be undone.", "deleteResultConfirm": "Delete this result? This cannot be undone.", "storageWarningHigh": "You are using over 80% of your storage.", "storageWarningCritical": "You are using over 95% of your storage. Delete some items to free up space.", "searchExams": "Search exams…", "noSearchResults": "No exams match your search", "noSearchResultsDesc": "Try a different keyword or clear the search.", "pin": "Pin to top", "unpin": "Unpin", "duplicate": "Duplicate", "export": "Export JSON", "collections": "Collections", "newCollection": "New Collection", "allExams": "All Exams", "uncategorized": "Uncategorized", "moveTo": "Move to", "removeFromCollection": "Remove from collection", "collectionNamePlaceholder": "Collection name…", "create": "Create", "rename": "Rename", "deleteCollectionConfirm": "Delete this collection? Exams will be moved to uncategorized.", "batchSelectAll": "Select all", "batchSelected": "{{count}} selected", "batchDeleteConfirm": "Delete selected exams? This cannot be undone." }, "admin": { "aiGrading": { "title": "AI Grading", "provider": "Provider", "model": "Model", "apiKey": "API Key", "baseUrl": "Base URL", "baseUrlDesc": "Custom API base URL for OpenAI-compatible endpoints", "testButton": "Test connection", "testSuccess": "Connection successful", "testFailed": "Connection failed" }, "administration": "Administration", "dashboard": "Dashboard", "backToSite": "← Back to site", "overview": "Overview", "settings": "Settings", "users": "Users", "totalUsers": "Total Users", "savedExams": "Saved Exams", "examsTaken": "Exams Taken", "avgScore": "Avg. Score", "recentActivity": "Recent Activity", "noRecentActivity": "No recent activity yet", "general": "General", "siteName": "Site Name", "siteNameDesc": "The name displayed throughout the application", "maxUpload": "Max Upload Size (MB)", "maxUploadDesc": "Maximum file size for exam JSON uploads", "defaultTheme": "Default Theme", "defaultThemeDesc": "Default theme for new visitors", "accessControl": "Access Control", "allowGuestMode": "Allow Guest Mode", "allowGuestModeDesc": "Let unauthenticated users take exams without signing in", "registrationEnabled": "Registration Enabled", "registrationEnabledDesc": "Allow new users to create accounts", "emailSmtp": "Email / SMTP", "appUrl": "App URL", "appUrlDesc": "Base URL used in email links (e.g. https://brainwave.example.com)", "smtpHost": "SMTP Host", "smtpHostDesc": "Hostname of your SMTP server", "smtpPort": "SMTP Port", "smtpPortDesc": "Common ports: 587 (STARTTLS), 465 (SSL), 25 (plain)", "username": "Username", "usernameDesc": "SMTP authentication username", "password": "Password", "passwordDesc": "SMTP authentication password", "fromAddress": "From Address", "fromAddressDesc": "The sender name and address shown in emails", "tlsMode": "TLS Mode", "tlsModeDesc": "Auto detects from port (465→SSL). Use explicit override if needed.", "auto": "Auto", "forceTls": "Force TLS", "off": "Off", "sendTestEmail": "Send Test Email", "sendTestEmailDesc": "Sends a test email using the settings above (uses draft values, no need to save first)", "sendTest": "Send Test", "sending": "Sending…", "maintenance": "Maintenance", "maintenanceMode": "Maintenance Mode", "maintenanceModeDesc": "Take the site offline for non-admin users", "maintenanceMessage": "Maintenance Message", "maintenanceMessageDesc": "Message displayed to visitors during maintenance", "discardChanges": "Discard Changes", "saveSettings": "Save Settings", "settingsSaved": "Settings saved successfully", "searchByNameOrEmail": "Search by name or email…", "search": "Search", "user": "User", "role": "Role", "verified": "Verified", "exams": "Exams", "joined": "Joined", "actions": "Actions", "noUsersFound": "No users found", "testEmailSent": "Test email sent successfully! Check your inbox." }, "editor": { "back": "← Back", "examTitlePlaceholder": "Exam title", "unsavedChanges": "Unsaved changes", "saving": "Saving…", "createExam": "Create Exam", "save": "Save", "examCreated": "Exam created successfully", "examSaved": "Exam saved", "questionsLabel": "Questions", "addQuestion": "Add Question", "noQuestions": "No questions yet", "noQuestionsDesc": "Select a question type from the sidebar to add your first question.", "questionEditor": "Question Editor", "prompt": "Prompt", "promptPlaceholder": "Enter the question prompt…", "categoryOptional": "Category (optional)", "categoryPlaceholder": "e.g. Algebra", "points": "Points", "explanationOptional": "Explanation (optional)", "explanationPlaceholder": "Explanation shown after grading…", "choices": "Choices", "markAsCorrect": "Mark as correct", "addChoice": "+ Add Choice", "remove": "Remove", "multipleChoice": "Multiple Choice", "multipleSelect": "Multiple Select", "shortAnswer": "Short Answer", "translation": "Translation", "mathInput": "Math Input", "essay": "Essay", "match": "Match", "order": "Order", "fillInTheBlanks": "Fill in the Blanks", "trueFalse": "True / False", "codeSubmission": "Code Submission", "dropdownCompletion": "Dropdown Completion", "numericRange": "Numeric Range", "dictation": "Dictation", "grammarCorrection": "Grammar Correction", "flashcard": "Flashcard", "textToCorrect": "Text to Correct", "textToCorrectPlaceholder": "Enter the grammatically incorrect sentence…", "playbackSpeed": "Speed", "revealAnswer": "Reveal Answer", "didntKnow": "Didn't know", "hard": "Hard", "good": "Good", "flashcardFront": "Prompt (front of card)", "flashcardFrontPlaceholder": "Enter the prompt…", "correctAnswer": "Correct Answer", "correctAnswerPlaceholder": "Enter the correct answer", "acceptedForms": "Accepted Forms (optional alternatives)", "alternativeAnswer": "Alternative answer", "addAlternative": "+ Add Alternative", "caseSensitive": "Case sensitive", "ignorePunctuation": "Ignore punctuation", "ignoreAccents": "Ignore accents", "minWords": "Min Words", "rubricCriteria": "Rubric Criteria", "criterion": "Criterion", "addCriterion": "+ Add Criterion", "leftColumn": "Left Column", "rightColumn": "Right Column", "addLeft": "+ Add Left", "addRight": "+ Add Right", "correctPairings": "Correct Pairings", "select": "— Select —", "items": "Items (drag not implemented, use arrows to reorder)", "itemPlaceholder": "Item {{index}}", "correctOrder": "Correct Order", "correctOrderHint": "The correct order is the order shown above. Reorder items to set the correct sequence.", "setCurrentOrder": "Set Current Order as Correct", "tagsLabel": "Tags", "tagsPlaceholder": "Add tag…", "addTag": "Add", "examTitleRequired": "Exam title is required", "atLeastOneQuestion": "Add at least one question", "sourceLanguage": "Source Language", "sourceLanguagePlaceholder": "e.g. English", "targetLanguage": "Target Language", "targetLanguagePlaceholder": "e.g. Spanish", "choicesCheckCorrect": "Choices (check correct answers)", "choicePlaceholder": "Choice {{id}}", "addItem": "+ Add Item", "leftItemPlaceholder": "Left item {{index}}", "rightItemPlaceholder": "Right item {{index}}", "aiGenerate": "✨ Generate with AI", "aiClose": "✕ Close AI", "aiPanelTitle": "Generate questions", "aiTopicPlaceholder": "Topic, e.g. \"Pythagorean theorem\"", "aiContextPlaceholder": "Optional notes or source material to ground the questions in…", "aiGenerateNow": "Generate", "aiGenerating": "Generating…", "aiTopicRequired": "Please enter a topic" }, "setup": { "welcome": "Welcome to BrainWave", "subtitle": "Let's get your instance set up. This only takes a minute.", "adminAccount": "Admin Account", "emailSettings": "Email Settings", "email": "Email", "displayName": "Display Name", "password": "Password", "confirmPassword": "Confirm Password", "continue": "Continue →", "smtpHost": "SMTP Host", "smtpPort": "SMTP Port", "smtpUsername": "SMTP Username", "smtpPassword": "SMTP Password", "fromAddress": "From Address", "security": "Security", "appUrl": "App URL", "back": "← Back", "completeSetup": "Complete Setup", "settingUp": "Setting up…", "setupHint1": "Configure your outgoing email server so BrainWave can send verification and password-reset emails.", "setupHint2": "You can leave these blank and configure them later in the admin dashboard.", "autoSsl": "Auto (use SSL on port 465)", "sslTls": "SSL/TLS", "noneStarttls": "None / STARTTLS", "validEmailRequired": "Please enter a valid email address", "displayNameRequired": "Display name is required", "passwordMinLength": "Password must be at least 8 characters", "passwordsDoNotMatch": "Passwords do not match", "setupFailed": "Setup failed. Please try again." }, "verify": { "verifying": "Verifying your email…", "pleaseWait": "Please wait while we confirm your email address.", "emailVerified": "Email Verified", "signIn": "Sign In →", "verificationFailed": "Verification Failed", "backToHome": "Back to Home", "noToken": "No verification token found." }, "share": { "share": "Share", "shared": "Shared", "generateLink": "Generate share link", "copyLink": "Copy link", "revokeLink": "Revoke link", "takeExam": "Take this exam", "saveToWorkspace": "Save to my workspace" }, "resetPassword": { "resetPassword": "Reset Password", "enterEmail": "Enter your email address and we'll send you a link to reset your password.", "sendResetLink": "Send Reset Link", "sending": "Sending…", "backToSignIn": "← Back to sign in", "checkEmail": "Check Your Email", "setNewPassword": "Set New Password", "enterNewPassword": "Enter your new password below.", "newPassword": "New Password", "confirmPassword": "Confirm Password", "resetting": "Resetting…", "resetPasswordBtn": "Reset Password", "passwordUpdated": "Password Updated", "passwordUpdatedDesc": "Your password has been reset successfully. You can now sign in with your new password.", "requestFailed": "Request failed", "passwordResetFailed": "Password reset failed" } }