mirror of
https://github.com/SECTL/SecScore.git
synced 2026-07-21 20:29:03 +08:00
先提交上去
This commit is contained in:
@@ -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."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,595 @@
|
||||
{
|
||||
"common": {
|
||||
"next": "下一步",
|
||||
"prev": "上一步",
|
||||
"finish": "完成",
|
||||
"cancel": "取消",
|
||||
"save": "保存",
|
||||
"loading": "加载中...",
|
||||
"confirm": "确认",
|
||||
"success": "成功",
|
||||
"error": "错误",
|
||||
"delete": "删除",
|
||||
"edit": "编辑",
|
||||
"add": "添加",
|
||||
"search": "搜索",
|
||||
"clear": "清空",
|
||||
"close": "关闭",
|
||||
"yes": "是",
|
||||
"no": "否",
|
||||
"submit": "提交",
|
||||
"reset": "重置",
|
||||
"import": "导入",
|
||||
"export": "导出",
|
||||
"create": "创建",
|
||||
"update": "更新",
|
||||
"refresh": "刷新",
|
||||
"view": "查看",
|
||||
"name": "姓名",
|
||||
"status": "状态",
|
||||
"operation": "操作",
|
||||
"description": "描述",
|
||||
"total": "共 {{count}} 条",
|
||||
"noData": "暂无数据",
|
||||
"pleaseSelect": "请选择",
|
||||
"pleaseEnter": "请输入",
|
||||
"readOnly": "当前为只读权限",
|
||||
"none": "无"
|
||||
},
|
||||
"oobe": {
|
||||
"title": "欢迎使用 SecScore",
|
||||
"subtitle": "教育积分管理专家",
|
||||
"step": "第 {{current}}/{{total}} 步",
|
||||
"skip": "跳过",
|
||||
"steps": {
|
||||
"language": {
|
||||
"title": "选择语言",
|
||||
"description": "请选择您偏好的界面语言"
|
||||
},
|
||||
"theme": {
|
||||
"title": "设置主题",
|
||||
"description": "选择您喜欢的界面外观",
|
||||
"mode": "模式",
|
||||
"password": {
|
||||
"title": "设置密码",
|
||||
"description": "设置登录密码以保护您的数据(可选)",
|
||||
"adminPassword": "管理密码",
|
||||
"adminPasswordHint": "可管理所有功能,6位数字",
|
||||
"pointsPassword": "积分密码",
|
||||
"pointsPasswordHint": "仅可操作积分,6位数字",
|
||||
"passwordPlaceholder": "请输入6位数字",
|
||||
"hint": "留空则不设置密码,之后可在设置中配置"
|
||||
},
|
||||
"lightMode": "浅色",
|
||||
"darkMode": "深色",
|
||||
"primaryColor": "主色",
|
||||
"backgroundGradient": "背景渐变"
|
||||
},
|
||||
"students": {
|
||||
"title": "导入名单",
|
||||
"description": "添加学生名单以便开始积分管理",
|
||||
"import": "导入名单",
|
||||
"manual": "手动添加",
|
||||
"importHint": "支持 Excel (.xlsx) 或 JSON 文件",
|
||||
"manualHint": "逐个添加学生姓名",
|
||||
"dragDrop": "拖拽文件到此处,或点击选择",
|
||||
"supportedFormats": "支持 .xlsx, .json 格式",
|
||||
"studentName": "学生姓名",
|
||||
"addStudent": "添加学生",
|
||||
"noStudents": "暂无学生,请添加或导入",
|
||||
"studentCount": "已添加 {{count}} 名学生",
|
||||
"studentExists": "学生已存在",
|
||||
"importSuccess": "成功导入 {{count}} 名学生",
|
||||
"noNewStudents": "没有新学生可导入",
|
||||
"parseFailed": "文件解析失败",
|
||||
"unsupportedFormat": "不支持的文件格式"
|
||||
},
|
||||
"reasons": {
|
||||
"title": "设置理由",
|
||||
"description": "添加常用的积分变动理由",
|
||||
"addReason": "添加理由",
|
||||
"reasonName": "理由名称",
|
||||
"points": "积分",
|
||||
"positive": "加分",
|
||||
"negative": "扣分",
|
||||
"noReasons": "暂无理由,请添加常用理由",
|
||||
"reasonCount": "已添加 {{count}} 个理由",
|
||||
"reasonExists": "理由已存在"
|
||||
},
|
||||
"start": {
|
||||
"title": "准备就绪",
|
||||
"description": "一切准备就绪,开始使用 SecScore 吧!",
|
||||
"features": {
|
||||
"score": "轻松管理学生积分",
|
||||
"history": "完整的积分变动历史",
|
||||
"settlement": "支持结算与归档"
|
||||
},
|
||||
"startButton": "开始使用"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "系统设置",
|
||||
"tabs": {
|
||||
"appearance": "外观",
|
||||
"security": "安全",
|
||||
"database": "数据库连接",
|
||||
"dataManagement": "数据管理",
|
||||
"urlProtocol": "URL 链接",
|
||||
"about": "关于"
|
||||
},
|
||||
"language": "语言",
|
||||
"languageHint": "选择界面显示语言",
|
||||
"theme": "主题",
|
||||
"password": "设置密码",
|
||||
"themeMode": "模式",
|
||||
"lightMode": "浅色",
|
||||
"darkMode": "深色",
|
||||
"primaryColor": "主色",
|
||||
"backgroundGradient": "背景渐变",
|
||||
"interfaceZoom": "界面缩放",
|
||||
"zoomHint": "调节应用界面的整体大小",
|
||||
"zoomUpdated": "界面缩放已更新",
|
||||
"updateFailed": "更新失败",
|
||||
"security": {
|
||||
"title": "密码保护系统",
|
||||
"adminPassword": "管理密码",
|
||||
"pointsPassword": "积分密码",
|
||||
"recoveryString": "找回字符串",
|
||||
"set": "已设置",
|
||||
"notSet": "未设置",
|
||||
"generated": "已生成",
|
||||
"notGenerated": "未生成",
|
||||
"enterPassword": "输入6位数字(留空则不修改)",
|
||||
"adminPasswordPlaceholder": "输入6位数字管理密码(留空则不修改)",
|
||||
"pointsPasswordPlaceholder": "输入6位数字积分密码(留空则不修改)",
|
||||
"recoveryPlaceholder": "输入找回字符串",
|
||||
"savePassword": "保存密码",
|
||||
"savePasswords": "保存密码",
|
||||
"generateRecovery": "生成找回字符串",
|
||||
"clearAllPasswords": "清空所有密码",
|
||||
"recoveryReset": "找回字符串重置",
|
||||
"enterRecovery": "输入找回字符串",
|
||||
"resetPassword": "重置密码",
|
||||
"resetHint": "重置会清空管理/积分密码,并生成新的找回字符串。",
|
||||
"confirmClear": "确认清空所有密码?",
|
||||
"clearHint": "清空后将关闭保护(无密码时默认视为管理权限)。",
|
||||
"saved": "密码已更新",
|
||||
"saveFailed": "更新失败",
|
||||
"generateFailed": "生成失败",
|
||||
"resetFailed": "重置失败",
|
||||
"cleared": "已清空",
|
||||
"clearFailed": "清空失败",
|
||||
"passwordClearedNewRecovery": "密码已清空,新的找回字符串",
|
||||
"newRecoveryString": "新的找回字符串(请保存)"
|
||||
},
|
||||
"database": {
|
||||
"title": "数据库连接",
|
||||
"currentStatus": "当前数据库状态",
|
||||
"sqliteLocal": "SQLite 本地数据库",
|
||||
"postgresqlRemote": "PostgreSQL 远程数据库",
|
||||
"connected": "已连接",
|
||||
"disconnected": "未连接",
|
||||
"postgresqlConnection": "PostgreSQL 远程连接",
|
||||
"connectionHint": "输入 PostgreSQL 连接字符串以连接远程数据库,支持多端同步操作。",
|
||||
"testConnection": "测试连接",
|
||||
"switchToPostgreSQL": "切换到 PostgreSQL",
|
||||
"switchToSQLite": "切换到本地 SQLite",
|
||||
"connectionTestSuccess": "连接测试成功",
|
||||
"connectionTestFailed": "连接测试失败",
|
||||
"switchedTo": "已切换到 {{type}} 数据库",
|
||||
"switchedToSQLite": "已切换到 SQLite 本地数据库",
|
||||
"switchFailed": "切换失败",
|
||||
"syncDescription": "多端同步说明",
|
||||
"syncPoint1": "使用 PostgreSQL 远程数据库可以实现多端数据同步。",
|
||||
"syncPoint2": "系统内置操作队列机制,确保多端同时操作时数据一致性。",
|
||||
"syncPoint3": "切换数据库后需要重启应用以生效。",
|
||||
"syncPoint4": "建议使用云数据库服务(如 Neon、Supabase、AWS RDS 等)。",
|
||||
"enterConnectionString": "请输入 PostgreSQL 连接字符串",
|
||||
"connectionExample": "示例:postgresql://xxxxxx_xxxxx:xxxxxxxx@xx-xxx.xxx.neon.xxxx/xxxxdxx?sslmode=require"
|
||||
},
|
||||
"data": {
|
||||
"title": "数据管理",
|
||||
"settlement": "结算",
|
||||
"settlementAndRestart": "结算并重新开始",
|
||||
"settlementHint": "将当前未结算记录划分为一个阶段,并将所有学生积分清零。",
|
||||
"importExport": "导入 / 导出",
|
||||
"exportJson": "导出 JSON",
|
||||
"importJson": "导入 JSON",
|
||||
"importHint": "导入会覆盖现有学生/理由/积分记录/设置(安全相关设置不会导入)。",
|
||||
"logs": "日志",
|
||||
"logLevel": "日志级别",
|
||||
"logOperation": "日志操作",
|
||||
"viewLogs": "查看日志",
|
||||
"exportLogs": "导出日志",
|
||||
"clearLogs": "清空日志",
|
||||
"logsCleared": "日志已清空",
|
||||
"systemLogs": "系统日志 (最后200条)",
|
||||
"noLogs": "暂无日志",
|
||||
"logLevelUpdated": "日志级别已更新",
|
||||
"readLogsFailed": "读取日志失败",
|
||||
"logsExported": "日志已导出",
|
||||
"exportFailed": "导出失败",
|
||||
"exportSuccess": "导出成功",
|
||||
"importSuccess": "导入成功,正在刷新",
|
||||
"importFailed": "导入失败",
|
||||
"clearFailed": "清空失败",
|
||||
"confirmSettlement": "确认结算并重新开始?",
|
||||
"settlementConfirm1": "将把当前未结算的积分记录归档为一个阶段,并将所有学生当前积分清零。",
|
||||
"settlementConfirm2": "学生名单不变;结算后的历史在「结算历史」页面查看。",
|
||||
"settlementSuccess": "结算成功,已重新开始积分",
|
||||
"settlementFailed": "结算失败",
|
||||
"settle": "结算",
|
||||
"logLevels": {
|
||||
"debug": "DEBUG (调试)",
|
||||
"info": "INFO (信息)",
|
||||
"warn": "WARN (警告)",
|
||||
"error": "ERROR (错误)"
|
||||
}
|
||||
},
|
||||
"url": {
|
||||
"title": "URL 协议 (secscore://)",
|
||||
"protocol": "URL 协议",
|
||||
"description": "可以通过 URL 链接唤起 SecScore 并执行操作,例如:",
|
||||
"register": "注册 URL 协议",
|
||||
"registered": "URL 协议已注册",
|
||||
"registerFailed": "注册失败",
|
||||
"installerRequired": "需要安装版 SecScore,开发模式下可能无效。"
|
||||
},
|
||||
"about": {
|
||||
"title": "关于",
|
||||
"appName": "教育积分管理",
|
||||
"version": "版本",
|
||||
"copyright": "版权",
|
||||
"ipcStatus": "IPC 状态",
|
||||
"ipcConnected": "已连接",
|
||||
"ipcDisconnected": "未连接 (Preload 失败)",
|
||||
"environment": "环境",
|
||||
"toggleDevTools": "切换开发者工具",
|
||||
"license": "SecScore遵循GPL3.0协议",
|
||||
"copyRightText": "CopyRight © 2025-{{year}} SECTL"
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"home": "首页",
|
||||
"students": "学生管理",
|
||||
"score": "积分操作",
|
||||
"leaderboard": "排行榜",
|
||||
"settlements": "结算历史",
|
||||
"reasons": "理由管理",
|
||||
"autoScore": "自动加分",
|
||||
"settings": "系统设置",
|
||||
"remoteDb": "远程数据库",
|
||||
"refreshStatus": "刷新状态",
|
||||
"syncNow": "立即同步",
|
||||
"syncSuccess": "同步成功",
|
||||
"syncFailed": "同步失败",
|
||||
"getDbStatusFailed": "获取数据库状态失败",
|
||||
"notRemoteMode": "当前不是远程数据库模式,请重启应用后重试",
|
||||
"dbNotConnected": "数据库未连接"
|
||||
},
|
||||
"auth": {
|
||||
"unlock": "权限解锁",
|
||||
"unlockHint": "输入 6 位数字密码:管理密码=全功能,积分密码=仅积分操作。",
|
||||
"unlockButton": "解锁",
|
||||
"unlocked": "权限已解锁",
|
||||
"logout": "已切换为只读",
|
||||
"passwordPlaceholder": "例如 123456",
|
||||
"passwordError": "密码错误",
|
||||
"enterPassword": "输入密码",
|
||||
"lock": "锁定"
|
||||
},
|
||||
"languages": {
|
||||
"zh-CN": "简体中文",
|
||||
"en-US": "English"
|
||||
},
|
||||
"theme": {
|
||||
"colorAndBackground": "颜色与背景",
|
||||
"gradientLabels": {
|
||||
"blue": "清爽蓝",
|
||||
"pink": "柔和粉",
|
||||
"cyan": "青蓝",
|
||||
"purple": "紫韵"
|
||||
},
|
||||
"gradientDirections": {
|
||||
"vertical": "纵向",
|
||||
"horizontal": "横向",
|
||||
"diagonal": "对角"
|
||||
},
|
||||
"generate": "生成",
|
||||
"saved": "已保存",
|
||||
"saveFailed": "保存失败",
|
||||
"mode": "模式",
|
||||
"myTheme": "我的主题"
|
||||
},
|
||||
"permissions": {
|
||||
"admin": "管理权限",
|
||||
"points": "积分权限",
|
||||
"view": "只读"
|
||||
},
|
||||
"home": {
|
||||
"title": "学生积分主页",
|
||||
"subtitle": "共 {{count}} 名学生,点击卡片进行积分操作",
|
||||
"searchPlaceholder": "搜索姓名/拼音...",
|
||||
"sortBy": {
|
||||
"alphabet": "姓名排序",
|
||||
"surname": "姓氏分组",
|
||||
"score": "积分排行"
|
||||
},
|
||||
"noStudents": "暂无学生数据,请前往学生管理添加",
|
||||
"noMatch": "未找到匹配的学生",
|
||||
"clearSearch": "清除搜索",
|
||||
"points": "分",
|
||||
"currentScore": "当前积分",
|
||||
"quickOptions": "快捷选项",
|
||||
"adjustPoints": "调整分值",
|
||||
"customPoints": "自定义分值",
|
||||
"customPointsHint": "可在输入框微调特输入任意分值",
|
||||
"reason": "操作理由",
|
||||
"reasonPlaceholder": "输入加分/扣分的原因(可选)",
|
||||
"preview": "变更预览",
|
||||
"noReason": "(无理由)",
|
||||
"category": {
|
||||
"others": "其他"
|
||||
},
|
||||
"scoreAdded": "已为 {{name}} 加{{points}}分",
|
||||
"scoreDeducted": "已为 {{name}} 扣{{points}}分",
|
||||
"submitFailed": "提交失败",
|
||||
"pleaseSelectPoints": "请选择或输入分值",
|
||||
"reasonDefault": "{{action}}{{points}}分",
|
||||
"studentCount": "{{count}} 人",
|
||||
"operationTitle": "积分操作:{{name}}",
|
||||
"submitOperation": "提交操作",
|
||||
"addPoints": "加分",
|
||||
"deductPoints": "扣分",
|
||||
"pointsChange": "积分变更",
|
||||
"reasonLabel": "理由:"
|
||||
},
|
||||
"students": {
|
||||
"title": "学生管理",
|
||||
"importList": "导入名单",
|
||||
"addStudent": "添加学生",
|
||||
"name": "姓名",
|
||||
"currentScore": "当前积分",
|
||||
"tags": "标签",
|
||||
"noTags": "无标签",
|
||||
"editTags": "编辑标签",
|
||||
"deleteConfirm": "确认删除该学生?",
|
||||
"addTitle": "添加学生",
|
||||
"addConfirm": "添加",
|
||||
"namePlaceholder": "请输入学生姓名",
|
||||
"nameRequired": "请输入姓名",
|
||||
"nameExists": "学生姓名已存在",
|
||||
"addSuccess": "添加成功",
|
||||
"addFailed": "添加失败",
|
||||
"deleteSuccess": "删除成功",
|
||||
"deleteFailed": "删除失败",
|
||||
"tagSaveSuccess": "标签保存成功",
|
||||
"tagSaveFailed": "保存标签失败",
|
||||
"importTitle": "导入名单",
|
||||
"importByXlsx": "通过 xlsx 导入",
|
||||
"xlsxPreview": "xlsx 预览与导入",
|
||||
"file": "文件",
|
||||
"selectNameCol": "点击表头选择姓名列",
|
||||
"previewRows": "预览前 50 行",
|
||||
"importConfirm": "导入",
|
||||
"importComplete": "导入完成:新增 {{inserted}},跳过 {{skipped}}",
|
||||
"workerNotReady": "Worker 未初始化",
|
||||
"parseXlsxFailed": "解析 xlsx 失败",
|
||||
"selectNameColFirst": "请先点击选择\"姓名列\"",
|
||||
"noNamesFound": "所选列未解析到可导入的姓名",
|
||||
"importFailed": "导入失败",
|
||||
"editTagTitle": "编辑标签 - {{name}}"
|
||||
},
|
||||
"score": {
|
||||
"title": "积分管理",
|
||||
"student": "学生",
|
||||
"change": "变动",
|
||||
"reason": "理由",
|
||||
"time": "时间",
|
||||
"undoConfirm": "确定要撤销这条记录吗?学生积分将回滚。",
|
||||
"undo": "撤销",
|
||||
"undoSuccess": "已撤销操作",
|
||||
"undoFailed": "撤销失败",
|
||||
"recentRecords": "最近记录",
|
||||
"pleaseSelectStudent": "请选择或搜索学生",
|
||||
"points": "分数",
|
||||
"addPoints": "加分",
|
||||
"deductPoints": "扣分",
|
||||
"quickReason": "快捷理由",
|
||||
"selectReason": "选择预设理由",
|
||||
"reasonContent": "理由内容",
|
||||
"reasonPlaceholder": "手动输入或选择快捷理由",
|
||||
"submit": "确认提交",
|
||||
"pleaseEnterInfo": "请填写完整信息",
|
||||
"pleaseEnterPoints": "请填写分值或选择预设理由",
|
||||
"batchSuccess": "已为 {{count}} 名学生提交积分",
|
||||
"batchPartial": "成功提交 {{success}}/{{total}} 名学生的积分"
|
||||
},
|
||||
"reasons": {
|
||||
"title": "理由管理",
|
||||
"addReason": "添加预设理由",
|
||||
"category": "分类",
|
||||
"content": "理由内容",
|
||||
"presetPoints": "预设分值",
|
||||
"deleteConfirm": "确认删除该理由?",
|
||||
"addTitle": "添加理由",
|
||||
"addConfirm": "添加",
|
||||
"categoryPlaceholder": "例如: 学习, 纪律",
|
||||
"contentPlaceholder": "请输入理由",
|
||||
"pointsPlaceholder": "例如: 2 或 -2",
|
||||
"contentRequired": "请输入理由内容",
|
||||
"pointsRequired": "请输入预设分值",
|
||||
"reasonExists": "该分类下已存在相同理由",
|
||||
"addSuccess": "添加成功",
|
||||
"addFailed": "添加失败",
|
||||
"deleteSuccess": "删除成功",
|
||||
"deleteFailed": "删除失败",
|
||||
"others": "其他"
|
||||
},
|
||||
"leaderboard": {
|
||||
"title": "积分排行榜",
|
||||
"rank": "排名",
|
||||
"name": "姓名",
|
||||
"totalScore": "总积分",
|
||||
"todayChange": "今日变化",
|
||||
"weekChange": "本周变化",
|
||||
"monthChange": "本月变化",
|
||||
"viewHistory": "查看",
|
||||
"exportXlsx": "导出 XLSX",
|
||||
"exportSuccess": "导出成功",
|
||||
"queryFailed": "查询失败",
|
||||
"historyTitle": "{{name}} - 操作记录",
|
||||
"close": "关闭",
|
||||
"today": "今天",
|
||||
"week": "本周",
|
||||
"month": "本月",
|
||||
"operationRecord": "操作记录",
|
||||
"change": "变化"
|
||||
},
|
||||
"settlements": {
|
||||
"title": "结算历史",
|
||||
"phase": "阶段 #{{id}}",
|
||||
"viewLeaderboard": "查看排行榜",
|
||||
"recordCount": "记录数: {{count}}",
|
||||
"noRecords": "暂无结算记录",
|
||||
"noSettlements": "暂无结算记录",
|
||||
"back": "返回",
|
||||
"leaderboardTitle": "结算排行榜",
|
||||
"phaseScore": "阶段积分",
|
||||
"queryFailed": "查询失败",
|
||||
"rank": "排名",
|
||||
"name": "姓名"
|
||||
},
|
||||
"autoScore": {
|
||||
"title": "自动化加分管理",
|
||||
"name": "自动化名称",
|
||||
"namePlaceholder": "例如:每日签到加分",
|
||||
"nameRequired": "请输入自动化名称",
|
||||
"triggers": "触发器",
|
||||
"actions": "行动",
|
||||
"applicableStudents": "适用学生",
|
||||
"allStudents": "所有学生",
|
||||
"lastExecuted": "最后执行",
|
||||
"notExecuted": "未执行",
|
||||
"invalidTime": "无效时间",
|
||||
"addTrigger": "添加规则",
|
||||
"addAction": "添加行动",
|
||||
"whenTriggered": "当以下规则触发时",
|
||||
"triggeredActions": "满足规则时触发的行动",
|
||||
"addAutomation": "添加自动化",
|
||||
"updateAutomation": "更新自动化",
|
||||
"cancelEdit": "取消编辑",
|
||||
"resetForm": "重置表单",
|
||||
"deleteConfirm": "确定要删除这条自动化吗?",
|
||||
"adminRequired": "需要管理员权限以查看自动加分自动化,请先登录管理员账号",
|
||||
"adminCreateRequired": "需要管理员权限以创建或更新自动加分自动化",
|
||||
"adminDeleteRequired": "需要管理员权限以删除自动加分自动化",
|
||||
"adminToggleRequired": "需要管理员权限以启用/禁用自动加分自动化",
|
||||
"fetchFailed": "获取自动化失败",
|
||||
"triggerRequired": "请至少添加一个触发器",
|
||||
"actionRequired": "请至少添加一个行动",
|
||||
"createSuccess": "自动化创建成功",
|
||||
"updateSuccess": "自动化更新成功",
|
||||
"createFailed": "创建自动化失败",
|
||||
"updateFailed": "更新自动化失败",
|
||||
"deleteSuccess": "自动化删除成功",
|
||||
"deleteFailed": "删除自动化失败",
|
||||
"enabled": "自动化已启用",
|
||||
"disabled": "自动化已禁用",
|
||||
"enableFailed": "启用自动化失败",
|
||||
"disableFailed": "禁用自动化失败",
|
||||
"noTriggerAvailable": "没有可用的触发器类型,请检查配置",
|
||||
"noActionAvailable": "没有可用的行动类型,请检查配置",
|
||||
"sort": "排序",
|
||||
"status": "状态",
|
||||
"triggerCount": "{{count}} 个触发器",
|
||||
"actionCount": "{{count}} 个行动",
|
||||
"studentCount": "{{count}} 名学生",
|
||||
"studentPlaceholder": "请选择或搜索学生(留空表示所有学生)",
|
||||
"triggerCondition": "触发条件",
|
||||
"executeAction": "执行操作",
|
||||
"addOperation": "添加操作",
|
||||
"scoreLabel": "分数",
|
||||
"tagNameLabel": "标签名称",
|
||||
"operationNoteLabel": "操作说明(可选)",
|
||||
"triggerIntervalTime": "间隔时间",
|
||||
"triggerStudentTag": "学生标签",
|
||||
"actionAddScore": "加分",
|
||||
"actionAddTag": "添加标签",
|
||||
"minutesPlaceholder": "请输入分钟数",
|
||||
"minutes": "分钟",
|
||||
"tagsPlaceholder": "请输入标签名称",
|
||||
"scorePlaceholder": "请输入分数",
|
||||
"tagNamePlaceholder": "请输入标签名称",
|
||||
"reasonPlaceholder": "请输入理由",
|
||||
"relationAnd": "并且",
|
||||
"relationOr": "或者"
|
||||
},
|
||||
"triggers": {
|
||||
"studentTag": {
|
||||
"label": "学生标签",
|
||||
"description": "当学生匹配特定标签时触发自动化",
|
||||
"placeholder": "请选择标签",
|
||||
"required": "请输入标签名称"
|
||||
},
|
||||
"randomTime": {
|
||||
"label": "随机时间触发",
|
||||
"description": "在指定时间范围内随机触发自动化",
|
||||
"required": "请输入有效的时间范围(分钟)"
|
||||
},
|
||||
"intervalTime": {
|
||||
"label": "间隔时间",
|
||||
"description": "当间隔时间到达时触发自动化",
|
||||
"placeholder": "请输入时间间隔",
|
||||
"required": "请输入有效的时间",
|
||||
"monthLabel": "月",
|
||||
"weekLabel": "周",
|
||||
"timeLabel": "时间"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"sendNotification": {
|
||||
"label": "发送通知",
|
||||
"description": "向学生发送通知",
|
||||
"placeholder": "请输入通知内容"
|
||||
},
|
||||
"addTag": {
|
||||
"label": "添加标签",
|
||||
"description": "为学生添加标签",
|
||||
"placeholder": "请输入标签"
|
||||
},
|
||||
"addScore": {
|
||||
"label": "添加分数",
|
||||
"description": "为学生添加分数",
|
||||
"pointsPlaceholder": "请输入分数",
|
||||
"reasonPlaceholder": "请输入理由"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
"welcomeTitle": "欢迎使用 SecScore 积分管理",
|
||||
"welcomeDesc": "感谢选择 SecScore。在开始之前,请花一分钟完成基础配置。",
|
||||
"configComplete": "配置完成!",
|
||||
"configFailed": "配置保存失败",
|
||||
"startJourney": "开启积分之旅"
|
||||
},
|
||||
"tags": {
|
||||
"editTitle": "编辑标签",
|
||||
"inputPlaceholder": "输入标签名称,按 Enter 添加",
|
||||
"selectedTags": "已选标签(点击取消)",
|
||||
"noTagsSelected": "未选择标签",
|
||||
"availableTags": "可选标签(点击选择)",
|
||||
"noAvailableTags": "无可用标签",
|
||||
"fetchFailed": "获取标签列表失败",
|
||||
"nameTooLong": "标签名称不能超过 30 个字符",
|
||||
"addFailed": "添加标签失败",
|
||||
"deleteSuccess": "标签删除成功",
|
||||
"deleteFailed": "删除标签失败"
|
||||
},
|
||||
"recovery": {
|
||||
"title": "SecScore 找回字符串",
|
||||
"saved": "我已保存",
|
||||
"export": "导出文本文件",
|
||||
"hint": "建议导出后离线保存,遗失将无法找回。"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user