Public Access
Add internationalization support with English and Dutch translations
- Integrated i18next for language detection and translation support. - Added English and Dutch JSON translation files for various app sections. - Updated TweaksPanel and Workspace components to use translated strings. - Imported i18n configuration in main entry file.
This commit is contained in:
1 parent
c64cdcd9e3
commit
6277826472
19 files changed
+1193
-369
No files matched your search
@@ -0,0 +1,369 @@
|
||||
{
|
||||
"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",
|
||||
"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",
|
||||
"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"
|
||||
},
|
||||
"results": {
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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"
|
||||
},
|
||||
"admin": {
|
||||
"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",
|
||||
"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",
|
||||
"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}}"
|
||||
},
|
||||
"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."
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user