先提交上去

This commit is contained in:
Fox_block
2026-03-16 20:49:46 +08:00
parent 86abcb5602
commit 192b48cab0
303 changed files with 30019 additions and 5846 deletions
+602
View File
@@ -0,0 +1,602 @@
{
"common": {
"next": "Next",
"prev": "Previous",
"finish": "Finish",
"cancel": "Cancel",
"save": "Save",
"loading": "Loading...",
"confirm": "Confirm",
"success": "Success",
"error": "Error",
"delete": "Delete",
"edit": "Edit",
"add": "Add",
"search": "Search",
"clear": "Clear",
"close": "Close",
"yes": "Yes",
"no": "No",
"submit": "Submit",
"reset": "Reset",
"import": "Import",
"export": "Export",
"create": "Create",
"update": "Update",
"refresh": "Refresh",
"view": "View",
"name": "Name",
"status": "Status",
"operation": "Operation",
"description": "Description",
"total": "Total {{count}} items",
"noData": "No data",
"pleaseSelect": "Please select",
"pleaseEnter": "Please enter",
"readOnly": "Read-only mode",
"none": "None"
},
"oobe": {
"title": "Welcome to SecScore",
"subtitle": "Education Points Management Expert",
"step": "Step {{current}}/{{total}}",
"skip": "Skip",
"steps": {
"language": {
"title": "Select Language",
"description": "Choose your preferred interface language"
},
"theme": {
"title": "Set Theme",
"description": "Choose your preferred interface appearance",
"mode": "Mode",
"password": {
"title": "Set Password",
"description": "Set login password to protect your data (optional)",
"adminPassword": "Admin Password",
"adminPasswordHint": "Full access to all features, 6 digits",
"pointsPassword": "Points Password",
"pointsPasswordHint": "Points operations only, 6 digits",
"passwordPlaceholder": "Enter 6 digits",
"hint": "Leave empty to skip, you can configure in settings later"
},
"lightMode": "Light",
"darkMode": "Dark",
"primaryColor": "Primary Color",
"backgroundGradient": "Background Gradient"
},
"students": {
"title": "Import Student List",
"description": "Add student list to start points management",
"import": "Import List",
"manual": "Add Manually",
"importHint": "Supports Excel (.xlsx) or JSON files",
"manualHint": "Add student names one by one",
"dragDrop": "Drag and drop files here, or click to select",
"supportedFormats": "Supports .xlsx, .json formats",
"studentName": "Student Name",
"addStudent": "Add Student",
"noStudents": "No students yet, please add or import",
"studentCount": "{{count}} students added",
"studentExists": "Student already exists",
"importSuccess": "Successfully imported {{count}} students",
"noNewStudents": "No new students to import",
"parseFailed": "File parsing failed",
"unsupportedFormat": "Unsupported file format"
},
"reasons": {
"title": "Set Reasons",
"description": "Add common point change reasons",
"addReason": "Add Reason",
"reasonName": "Reason Name",
"points": "Points",
"positive": "Add Points",
"negative": "Deduct Points",
"noReasons": "No reasons yet, please add common reasons",
"reasonCount": "{{count}} reasons added",
"reasonExists": "Reason already exists"
},
"start": {
"title": "Ready to Go",
"description": "Everything is ready. Let's start using SecScore!",
"features": {
"score": "Easily manage student points",
"history": "Complete point change history",
"settlement": "Support settlement and archiving"
},
"startButton": "Get Started"
}
}
},
"settings": {
"title": "Settings",
"tabs": {
"appearance": "Appearance",
"security": "Security",
"database": "Database Connection",
"dataManagement": "Data Management",
"urlProtocol": "URL Protocol",
"about": "About"
},
"language": "Language",
"languageHint": "Select interface display language",
"theme": "Theme",
"password": "Set Password",
"themeMode": "Mode",
"lightMode": "Light",
"darkMode": "Dark",
"primaryColor": "Primary Color",
"backgroundGradient": "Background Gradient",
"interfaceZoom": "Interface Zoom",
"zoomHint": "Adjust the overall size of the application interface",
"zoomUpdated": "Interface zoom updated",
"updateFailed": "Update failed",
"security": {
"title": "Password Protection System",
"adminPassword": "Admin Password",
"pointsPassword": "Points Password",
"recoveryString": "Recovery String",
"set": "Set",
"notSet": "Not Set",
"generated": "Generated",
"notGenerated": "Not Generated",
"enterPassword": "Enter 6-digit number (leave empty to skip)",
"adminPasswordPlaceholder": "Enter 6-digit admin password (leave empty to skip)",
"pointsPasswordPlaceholder": "Enter 6-digit points password (leave empty to skip)",
"recoveryPlaceholder": "Enter recovery string",
"savePassword": "Save Password",
"savePasswords": "Save Passwords",
"generateRecovery": "Generate Recovery String",
"clearAllPasswords": "Clear All Passwords",
"recoveryReset": "Recovery String Reset",
"enterRecovery": "Enter recovery string",
"resetPassword": "Reset Password",
"resetHint": "Reset will clear admin/points passwords and generate a new recovery string.",
"confirmClear": "Confirm clearing all passwords?",
"clearHint": "After clearing, protection will be disabled (no password defaults to admin permission).",
"saved": "Password updated",
"saveFailed": "Update failed",
"generateFailed": "Generate failed",
"resetFailed": "Reset failed",
"cleared": "Cleared",
"clearFailed": "Clear failed",
"passwordClearedNewRecovery": "Password cleared, new recovery string",
"newRecoveryString": "New recovery string (please save it)"
},
"database": {
"title": "Database Connection",
"currentStatus": "Current Database Status",
"sqliteLocal": "SQLite Local Database",
"postgresqlRemote": "PostgreSQL Remote Database",
"connected": "Connected",
"disconnected": "Disconnected",
"postgresqlConnection": "PostgreSQL Remote Connection",
"connectionHint": "Enter PostgreSQL connection string to connect to remote database for multi-device sync.",
"testConnection": "Test Connection",
"switchToPostgreSQL": "Switch to PostgreSQL",
"switchToSQLite": "Switch to Local SQLite",
"connectionTestSuccess": "Connection test successful",
"connectionTestFailed": "Connection test failed",
"switchedTo": "Switched to {{type}} database",
"switchedToSQLite": "Switched to SQLite local database",
"switchFailed": "Switch failed",
"syncDescription": "Multi-device Sync Info",
"syncPoint1": "Using PostgreSQL remote database enables multi-device data synchronization.",
"syncPoint2": "Built-in operation queue mechanism ensures data consistency during simultaneous operations.",
"syncPoint3": "Application restart required after switching database.",
"syncPoint4": "Recommended cloud database services: Neon, Supabase, AWS RDS, etc.",
"enterConnectionString": "Please enter PostgreSQL connection string",
"connectionExample": "Example: postgresql://xxxxxx_xxxxx:xxxxxxxx@xx-xxx.xxx.neon.xxxx/xxxxdxx?sslmode=require"
},
"data": {
"title": "Data Management",
"settlement": "Settlement",
"settlementAndRestart": "Settle and Restart",
"settlementHint": "Mark current records as a phase and reset all student points to zero.",
"importExport": "Import / Export",
"exportJson": "Export JSON",
"importJson": "Import JSON",
"importHint": "Import will overwrite existing students/reasons/records/settings (security settings excluded).",
"logs": "Logs",
"logLevel": "Log Level",
"logOperation": "Log Operation",
"viewLogs": "View Logs",
"exportLogs": "Export Logs",
"clearLogs": "Clear Logs",
"logsCleared": "Logs cleared",
"systemLogs": "System Logs (Last 200)",
"noLogs": "No logs",
"logLevelUpdated": "Log level updated",
"readLogsFailed": "Failed to read logs",
"logsExported": "Logs exported",
"exportFailed": "Export failed",
"exportSuccess": "Export successful",
"importSuccess": "Import successful, refreshing",
"importFailed": "Import failed",
"clearFailed": "Clear failed",
"confirmSettlement": "Confirm settlement and restart?",
"settlementConfirm1": "This will archive current unsettled records as a phase and reset all student points to zero.",
"settlementConfirm2": "Student list remains unchanged; settlement history available in 'Settlements' page.",
"settlementSuccess": "Settlement successful, points restarted",
"settlementFailed": "Settlement failed",
"settle": "Settle",
"logLevels": {
"debug": "DEBUG",
"info": "INFO",
"warn": "WARN",
"error": "ERROR"
}
},
"url": {
"title": "URL Protocol (secscore://)",
"protocol": "URL Protocol",
"description": "Can invoke SecScore via URL to perform actions, for example:",
"register": "Register URL Protocol",
"registered": "URL protocol registered",
"registerFailed": "Registration failed",
"installerRequired": "Requires installed SecScore, may not work in development mode."
},
"about": {
"title": "About",
"appName": "Education Points Management",
"version": "Version",
"copyright": "Copyright",
"ipcStatus": "IPC Status",
"ipcConnected": "Connected",
"ipcDisconnected": "Disconnected (Preload failed)",
"environment": "Environment",
"toggleDevTools": "Toggle Developer Tools",
"license": "SecScore is licensed under GPL3.0",
"copyRightText": "CopyRight © 2025-{{year}} SECTL"
}
},
"sidebar": {
"home": "Home",
"students": "Students",
"score": "Score",
"leaderboard": "Leaderboard",
"settlements": "Settlements",
"reasons": "Reasons",
"autoScore": "Auto Score",
"settings": "Settings",
"remoteDb": "Remote Database",
"refreshStatus": "Refresh Status",
"syncNow": "Sync Now",
"syncSuccess": "Sync successful",
"syncFailed": "Sync failed",
"getDbStatusFailed": "Failed to get database status",
"notRemoteMode": "Not in remote database mode, please restart application",
"dbNotConnected": "Database not connected"
},
"auth": {
"unlock": "Unlock Permission",
"unlockHint": "Enter 6-digit password: Admin password = full access, Points password = points operations only.",
"unlockButton": "Unlock",
"unlocked": "Permission unlocked",
"logout": "Switched to read-only",
"passwordPlaceholder": "e.g. 123456",
"passwordError": "Incorrect password",
"enterPassword": "Enter Password",
"lock": "Lock"
},
"languages": {
"zh-CN": "简体中文",
"en-US": "English"
},
"theme": {
"colorAndBackground": "Color & Background",
"gradientLabels": {
"blue": "Fresh Blue",
"pink": "Soft Pink",
"cyan": "Cyan",
"purple": "Purple"
},
"gradientDirections": {
"vertical": "Vertical",
"horizontal": "Horizontal",
"diagonal": "Diagonal"
},
"generate": "Generate",
"saved": "Saved",
"saveFailed": "Save failed",
"mode": "Mode",
"myTheme": "My Theme"
},
"permissions": {
"admin": "Admin",
"points": "Points",
"view": "Read-only"
},
"home": {
"title": "Student Points Home",
"subtitle": "{{count}} students total, click card to operate",
"searchPlaceholder": "Search name/pinyin...",
"sortBy": {
"alphabet": "Name Sort",
"surname": "Surname Group",
"score": "Points Rank"
},
"noStudents": "No student data, please add in Student Management",
"noMatch": "No matching students found",
"clearSearch": "Clear search",
"points": "pts",
"currentScore": "Current Points",
"quickOptions": "Quick Options",
"adjustPoints": "Adjust Points",
"customPoints": "Custom Points",
"customPointsHint": "Enter any value in the input box",
"reason": "Reason",
"reasonPlaceholder": "Enter reason for points change (optional)",
"preview": "Change Preview",
"noReason": "(No reason)",
"category": {
"others": "Others"
},
"scoreAdded": "Added {{points}} points for {{name}}",
"scoreDeducted": "Deducted {{points}} points for {{name}}",
"submitFailed": "Submit failed",
"pleaseSelectPoints": "Please select or enter points",
"reasonDefault": "{{action}} {{points}} points",
"studentCount": "{{count}} students",
"operationTitle": "Points Operation: {{name}}",
"submitOperation": "Submit Operation",
"addPoints": "Add Points",
"deductPoints": "Deduct Points",
"pointsChange": "Points Change",
"reasonLabel": "Reason: "
},
"students": {
"title": "Student Management",
"importList": "Import List",
"addStudent": "Add Student",
"name": "Name",
"currentScore": "Current Points",
"tags": "Tags",
"noTags": "No tags",
"editTags": "Edit Tags",
"deleteConfirm": "Confirm delete this student?",
"addTitle": "Add Student",
"addConfirm": "Add",
"namePlaceholder": "Enter student name",
"nameRequired": "Please enter name",
"nameExists": "Student name already exists",
"addSuccess": "Added successfully",
"addFailed": "Add failed",
"deleteSuccess": "Deleted successfully",
"deleteFailed": "Delete failed",
"tagSaveSuccess": "Tags saved successfully",
"tagSaveFailed": "Failed to save tags",
"importTitle": "Import List",
"importByXlsx": "Import via xlsx",
"xlsxPreview": "XLSX Preview & Import",
"file": "File",
"selectNameCol": "Click header to select name column",
"previewRows": "Preview first 50 rows",
"importConfirm": "Import",
"importComplete": "Import complete: {{inserted}} added, {{skipped}} skipped",
"workerNotReady": "Worker not initialized",
"parseXlsxFailed": "Failed to parse xlsx",
"selectNameColFirst": "Please select \"Name Column\" first",
"noNamesFound": "No importable names found in selected column",
"importFailed": "Import failed",
"editTagTitle": "Edit Tags - {{name}}"
},
"score": {
"title": "Points Management",
"student": "Student",
"change": "Change",
"reason": "Reason",
"time": "Time",
"undoConfirm": "Confirm undo this record? Student points will be rolled back.",
"undo": "Undo",
"undoSuccess": "Operation undone",
"undoFailed": "Undo failed",
"recentRecords": "Recent Records",
"pleaseSelectStudent": "Please select or search student",
"points": "Points",
"addPoints": "Add",
"deductPoints": "Deduct",
"quickReason": "Quick Reason",
"selectReason": "Select preset reason",
"reasonContent": "Reason Content",
"reasonPlaceholder": "Manual input or select quick reason",
"submit": "Confirm Submit",
"pleaseEnterInfo": "Please fill in complete information",
"pleaseEnterPoints": "Please enter points or select preset reason",
"batchSuccess": "Submitted points for {{count}} students",
"batchPartial": "Successfully submitted for {{success}}/{{total}} students"
},
"reasons": {
"title": "Reason Management",
"addReason": "Add Preset Reason",
"category": "Category",
"content": "Reason Content",
"presetPoints": "Preset Points",
"deleteConfirm": "Confirm delete this reason?",
"addTitle": "Add Reason",
"addConfirm": "Add",
"categoryPlaceholder": "e.g. Study, Discipline",
"contentPlaceholder": "Enter reason",
"pointsPlaceholder": "e.g. 2 or -2",
"contentRequired": "Please enter reason content",
"pointsRequired": "Please enter preset points",
"reasonExists": "Same reason already exists in this category",
"addSuccess": "Added successfully",
"addFailed": "Add failed",
"deleteSuccess": "Deleted successfully",
"deleteFailed": "Delete failed",
"others": "Others"
},
"leaderboard": {
"title": "Points Leaderboard",
"rank": "Rank",
"name": "Name",
"totalScore": "Total Points",
"todayChange": "Today's Change",
"weekChange": "This Week's Change",
"monthChange": "This Month's Change",
"viewHistory": "View",
"exportXlsx": "Export XLSX",
"exportSuccess": "Export successful",
"queryFailed": "Query failed",
"historyTitle": "{{name}} - Operation History",
"close": "Close",
"today": "Today",
"week": "This Week",
"month": "This Month",
"operationRecord": "Operation Record",
"change": "Change"
},
"settlements": {
"title": "Settlement History",
"phase": "Phase #{{id}}",
"viewLeaderboard": "View Leaderboard",
"recordCount": "Records: {{count}}",
"noRecords": "No settlement records",
"noSettlements": "No settlement records",
"back": "Back",
"leaderboardTitle": "Settlement Leaderboard",
"phaseScore": "Phase Points",
"queryFailed": "Query failed",
"rank": "Rank",
"name": "Name"
},
"autoScore": {
"title": "Auto Score Management",
"name": "Automation Name",
"namePlaceholder": "e.g. Daily Check-in Points",
"nameRequired": "Please enter automation name",
"triggers": "Triggers",
"actions": "Actions",
"applicableStudents": "Applicable Students",
"allStudents": "All Students",
"lastExecuted": "Last Executed",
"notExecuted": "Not executed",
"invalidTime": "Invalid time",
"addTrigger": "Add Rule",
"addAction": "Add Action",
"whenTriggered": "When the following rules trigger",
"triggeredActions": "Actions triggered when rules are met",
"addAutomation": "Add Automation",
"updateAutomation": "Update Automation",
"cancelEdit": "Cancel Edit",
"resetForm": "Reset Form",
"deleteConfirm": "Confirm delete this automation?",
"adminRequired": "Admin permission required to view auto score automation",
"adminCreateRequired": "Admin permission required to create or update auto score automation",
"adminDeleteRequired": "Admin permission required to delete auto score automation",
"adminToggleRequired": "Admin permission required to enable/disable auto score automation",
"fetchFailed": "Failed to get automation",
"triggerRequired": "Please add at least one trigger",
"actionRequired": "Please add at least one action",
"createSuccess": "Automation created successfully",
"updateSuccess": "Automation updated successfully",
"createFailed": "Failed to create automation",
"updateFailed": "Failed to update automation",
"deleteSuccess": "Automation deleted successfully",
"deleteFailed": "Failed to delete automation",
"enabled": "Automation enabled",
"disabled": "Automation disabled",
"enableFailed": "Failed to enable automation",
"disableFailed": "Failed to disable automation",
"noTriggerAvailable": "No trigger types available, please check configuration",
"noActionAvailable": "No action types available, please check configuration",
"sort": "Sort",
"status": "Status",
"triggerCount": "{{count}} triggers",
"actionCount": "{{count}} actions",
"studentCount": "{{count}} students",
"studentPlaceholder": "Please select or search students (leave empty for all students)",
"triggerCondition": "Trigger Condition",
"executeAction": "Execute Action",
"addOperation": "Add Operation",
"scoreLabel": "Score",
"tagNameLabel": "Tag Name",
"operationNoteLabel": "Operation Note (Optional)",
"intervalMinutesPlaceholder": "e.g. 1440",
"tagNamesPlaceholder": "e.g. excellent_student,class_monitor",
"triggerIntervalTime": "Interval Time",
"triggerStudentTag": "Student Tag",
"actionAddScore": "Add Score",
"actionAddTag": "Add Tag",
"minutesPlaceholder": "Enter minutes",
"minutes": "minutes",
"tagsPlaceholder": "Enter tag name",
"scorePlaceholder": "Enter score",
"tagNamePlaceholder": "Enter tag name",
"reasonPlaceholder": "Enter reason",
"relationAnd": "AND",
"relationOr": "OR"
},
"triggers": {
"studentTag": {
"label": "When student matches tag",
"description": "Trigger automation when student matches specific tag",
"placeholder": "Please select tag",
"required": "Please enter tag name"
},
"randomTime": {
"label": "Random time trigger",
"description": "Trigger automation randomly within specified time range",
"from": "From",
"to": "To",
"hour": "h",
"minHourPlaceholder": "Min hour",
"maxHourPlaceholder": "Max hour",
"required": "Please enter valid time range (minutes)"
},
"intervalTime": {
"label": "Interval time trigger",
"description": "Trigger automation when interval time is reached",
"days": "Days",
"minutes": "Minutes",
"placeholderMinutes": "Enter interval (minutes)",
"placeholderDays": "Enter interval (days)",
"required": "Please enter valid time interval (minutes)"
}
},
"actions": {
"sendNotification": {
"label": "Send Notification",
"description": "Send notification to student",
"placeholder": "Enter notification content"
},
"addTag": {
"label": "Add Tag",
"description": "Add tag to student",
"placeholder": "Enter tag"
},
"addScore": {
"label": "Add Score",
"description": "Add score to student",
"pointsPlaceholder": "Enter points",
"reasonPlaceholder": "Enter reason"
}
},
"wizard": {
"welcomeTitle": "Welcome to SecScore Points Management",
"welcomeDesc": "Thanks for choosing SecScore. Before starting, please spend a minute to complete basic configuration.",
"configComplete": "Configuration complete!",
"configFailed": "Configuration save failed",
"startJourney": "Start Points Journey"
},
"tags": {
"editTitle": "Edit Tags",
"inputPlaceholder": "Enter tag name, press Enter to add",
"selectedTags": "Selected Tags (click to remove)",
"noTagsSelected": "No tags selected",
"availableTags": "Available Tags (click to select)",
"noAvailableTags": "No available tags",
"fetchFailed": "Failed to fetch tags",
"nameTooLong": "Tag name cannot exceed 30 characters",
"addFailed": "Failed to add tag",
"deleteSuccess": "Tag deleted successfully",
"deleteFailed": "Failed to delete tag"
},
"recovery": {
"title": "SecScore Recovery String",
"saved": "I have saved",
"export": "Export Text File",
"hint": "Recommended to save offline after export, cannot be recovered if lost."
}
}