419 lines
15 KiB
JSON
419 lines
15 KiB
JSON
{
|
|
"common": {
|
|
"appName": "PolyLAN Submitter",
|
|
"back": "Back",
|
|
"apiDocs": "API docs",
|
|
"adminPanel": "Admin panel",
|
|
"admin": "Admin",
|
|
"staffBadge": "admin",
|
|
"notLoggedIn": "Not logged in",
|
|
"close": "Close",
|
|
"cancel": "Cancel",
|
|
"download": "Download",
|
|
"retry": "Retry",
|
|
"view": "View",
|
|
"player": "Player",
|
|
"rank": "Rank",
|
|
"you": "You",
|
|
"pts": "pts",
|
|
"points": "Points",
|
|
"pointsUnit": "points",
|
|
"cost": "Cost",
|
|
"cycles": "Cycles",
|
|
"area": "Area",
|
|
"puzzle": "Puzzle",
|
|
"files": "Files",
|
|
"date": "Date",
|
|
"notes": "Notes",
|
|
"actions": "Actions",
|
|
"noRankYet": "No rank yet",
|
|
"noResultsYet": "No results available yet.",
|
|
"noSubmissionsYet": "No submissions yet",
|
|
"yourRanking": "Your Ranking",
|
|
"currentRank": "Current Rank",
|
|
"clearCache": "Clear Cache",
|
|
"cacheClearedSuccess": "Cache cleared successfully!",
|
|
"cacheClearError": "Error clearing cache. Please try again.",
|
|
"pleaseTryAgain": "Please try again.",
|
|
"submitSolution": "Submit Solution",
|
|
"selectedFiles": "Selected Files:",
|
|
"chooseFiles": "Choose Files",
|
|
"submitting": "Submitting...",
|
|
"submit": "Submit",
|
|
"maxFileSize": "Maximum file size: 256 MB per file",
|
|
"notesOptional": "Notes (Optional)",
|
|
"selectPuzzlePlaceholder": "Select puzzle...",
|
|
"pointsCoefficients": "Points Coefficients",
|
|
"idLabel": "ID: {id}",
|
|
"copy": "Copy",
|
|
"copied": "Copied!",
|
|
"processing": "Processing...",
|
|
"pending": "Pending",
|
|
"unknownError": "Unknown error",
|
|
"fetchResultsError": "Failed to fetch results",
|
|
"fileWord": "file | files",
|
|
"fileCount": "{n} file | {n} files",
|
|
"marketStatus": {
|
|
"draft": "draft",
|
|
"open": "open",
|
|
"closed": "closed",
|
|
"resolved": "resolved"
|
|
}
|
|
},
|
|
"home": {
|
|
"title": "PolyLAN Submitter",
|
|
"subtitle": "Choose a game and submit your best solutions",
|
|
"submitResults": "Submit results",
|
|
"getTheGames": "Get the games",
|
|
"footer": "Select a game above to begin submitting"
|
|
},
|
|
"games": {
|
|
"header": "Games",
|
|
"title": "Get the games",
|
|
"subtitle": "Don't own them yet? Grab them on Steam",
|
|
"empty": "No Steam games for this event",
|
|
"buy": "Buy {game}",
|
|
"free": "Free to Play",
|
|
"viewOnSteam": "View on Steam",
|
|
"play": "Play"
|
|
},
|
|
"clock": {
|
|
"pageTitle": "Beat the Clock",
|
|
"header": "Beat the Clock",
|
|
"connected": "connected",
|
|
"reconnecting": "reconnecting…",
|
|
"press": "PRESS",
|
|
"nextPlayer": "▲ next player",
|
|
"chasingYou": "▼ chasing you",
|
|
"yourRank": "you · rank #{rank} of {total}"
|
|
},
|
|
"place": {
|
|
"pageTitle": "Place",
|
|
"header": "Place",
|
|
"connected": "connected",
|
|
"reconnecting": "reconnecting…",
|
|
"showGrid": "Show grid",
|
|
"hideGrid": "Hide grid"
|
|
},
|
|
"market": {
|
|
"pageTitle": "Market",
|
|
"header": "Market",
|
|
"subtitle": "Place your bets on upcoming events",
|
|
"myBets": "My Bets",
|
|
"allMarkets": "All Markets",
|
|
"createMarket": "Create Market",
|
|
"noMarkets": "No markets available"
|
|
},
|
|
"noita": {
|
|
"pageTitle": "Noita Submitter",
|
|
"header": "Noita Submitter",
|
|
"totalScore": "Total Score",
|
|
"objectivesCompleted": "Objectives Completed",
|
|
"deaths": "Deaths",
|
|
"globalLeaderboard": "Global Leaderboard",
|
|
"score": "Score",
|
|
"objectivesColumn": "Objectives",
|
|
"objectives": "Objectives",
|
|
"submitYourRun": "Submit Your Run",
|
|
"uploadPrompt": "Click to upload or drag and drop",
|
|
"logFileLabel": "The log file",
|
|
"submitRun": "Submit Run",
|
|
"noObjectivesYet": "No objectives completed yet",
|
|
"noObjectivesHint": "Submit your runs to unlock objectives!",
|
|
"searchPlaceholder": "Search objectives...",
|
|
"showingResults": "Showing {shown} of {total} objectives",
|
|
"noObjectivesMatch": "No objectives match your search",
|
|
"runSubmittedSuccess": "Run submitted successfully!",
|
|
"runSubmitError": "Error submitting run. Please try again.",
|
|
"columns": {
|
|
"objectiveId": "Objective ID",
|
|
"yourPoints": "Your points",
|
|
"firstSeen": "First seen",
|
|
"seed": "Seed"
|
|
}
|
|
},
|
|
"opusMagnum": {
|
|
"pageTitle": "Opus Magnum Puzzle Submitter",
|
|
"header": "Opus Magnum Puzzle Submitter",
|
|
"autoReload": "Auto reload page in {seconds} seconds ...",
|
|
"loadingPuzzles": "Loading puzzles...",
|
|
"errorLoadingData": "Error Loading Data",
|
|
"tournamentClosed": "Tournament Closed",
|
|
"tournamentClosedMessage": "This tournament is no longer accepting new submissions.",
|
|
"noPuzzlesTitle": "No Puzzles Available",
|
|
"noPuzzlesMessage": "Check back later for new puzzle collections!"
|
|
},
|
|
"submissions": {
|
|
"pageTitle": "{game} Submissions — {scope}",
|
|
"live": "Live",
|
|
"offline": "Offline",
|
|
"submittingForMatch": "Submitting for match:",
|
|
"submitResultsTitle": "Submit Results",
|
|
"uploadPrompt": "Click to upload, drag and drop, or paste",
|
|
"uploadHint": "Any file type supported • Images from clipboard welcome",
|
|
"uploadLimitExceeded": "Maximum {max} files allowed. You can add {count} more {unit}.",
|
|
"filesSelectedSuffix": "files selected",
|
|
"notesPlaceholder": "Add any notes special for this upload",
|
|
"thisFileType": "this file type",
|
|
"copyFailed": "Failed to copy",
|
|
"guidelines": {
|
|
"title": "Submission Guidelines",
|
|
"fileUpload": {
|
|
"title": "File Upload",
|
|
"body": "Upload your results as screenshots, logs, or any other file format. You can upload multiple files at once."
|
|
},
|
|
"notes": {
|
|
"title": "Add Notes",
|
|
"body": "Include any additional context about your submission. This helps reviewers understand your results."
|
|
},
|
|
"verification": {
|
|
"title": "Verification",
|
|
"body": "Your submission will be reviewed and verified. You'll receive confirmation once it's been processed."
|
|
}
|
|
},
|
|
"yourSubmissions": "Your Submissions",
|
|
"noSubmissionsHint": "Upload your first submission above to get started",
|
|
"fileStatus": "File Status",
|
|
"ocrStatus": "OCR Status",
|
|
"previewNotAvailableFor": "Preview not available for {type}",
|
|
"fileSizeLabel": "File size: {size}",
|
|
"processOcr": "Process OCR",
|
|
"filePreview": "File Preview",
|
|
"textPreviewUnavailable": "Text content preview not available. Download file to view.",
|
|
"previewNotAvailable": "Preview not available",
|
|
"ocrData": "OCR Data",
|
|
"extractedText": "File - Extracted Text:",
|
|
"ocrProcessing": "OCR is being processed...",
|
|
"ocrFailed": "OCR processing failed",
|
|
"ocrWaiting": "Waiting for OCR processing...",
|
|
"cropOcrResults": "Crop OCR Results ({count}):",
|
|
"cropLabelFallback": "Crop ({x}, {y})",
|
|
"cropProcessingFailed": "Processing failed",
|
|
"cropsData": "Crops Data",
|
|
"cropDrawHint": "Drag on image to create crop (blue) or existing crops (green)",
|
|
"cropLabelOptional": "Crop Label (optional)",
|
|
"cropLabelPlaceholder": "e.g., Top-left corner",
|
|
"saveCrop": "Save Crop",
|
|
"creatingCrop": "Creating...",
|
|
"cropsCount": "Crops ({count}):",
|
|
"deleteCropTooltip": "Delete crop",
|
|
"noCropsYet": "No crops yet",
|
|
"deleteCropConfirm": "Delete this crop?",
|
|
"submitSuccess": "Submission successful!",
|
|
"submitError": "Error submitting: {message}",
|
|
"createCropError": "Error creating crop: {message}",
|
|
"deleteCropError": "Error deleting crop: {message}",
|
|
"processOcrError": "Error processing OCR: {message}"
|
|
},
|
|
"submissionsSelect": {
|
|
"title": "Select your match",
|
|
"description": "You're assigned to multiple matches for {game}. Pick which one you want to submit for.",
|
|
"notAssignedTitle": "No match assigned",
|
|
"notAssignedMessage": "You are not assigned to a scope/matches, you cannot submit a score.",
|
|
"syncScopes": "Sync scopes",
|
|
"syncStarted": "Scope sync started, it keeps running until the AAndT is done. Refresh in a few seconds to see new matches.",
|
|
"syncAlreadyRunning": "Scope sync is already running.",
|
|
"syncFailed": "Failed to start the scope sync.",
|
|
"tokenTitle": "AAndT apibot token",
|
|
"tokenDescription": "No apibot token is configured for this game yet. Paste the one from the AAndT's 'apibot' admin page.",
|
|
"tokenPlaceholder": "Apibot token",
|
|
"tokenSubmit": "Save & sync"
|
|
},
|
|
"errorPage": {
|
|
"notFound": {
|
|
"title": "Page not found",
|
|
"message": "The page you're looking for doesn't exist or has been moved."
|
|
},
|
|
"serverError": {
|
|
"title": "Server error",
|
|
"message": "Something went wrong on our end. Please try again later."
|
|
},
|
|
"generic": {
|
|
"title": "Something went wrong",
|
|
"message": "An unexpected error occurred."
|
|
},
|
|
"goHome": "Go home",
|
|
"goBack": "Go back"
|
|
},
|
|
"components": {
|
|
"adminPanel": {
|
|
"title": "Admin Panel",
|
|
"totalSubmissions": "Total Submissions",
|
|
"totalResponses": "Total Responses",
|
|
"needValidation": "Need Validation",
|
|
"validationRate": "Validation Rate",
|
|
"autoValidateAll": "Auto validation for all responses",
|
|
"responsesNeedingValidation": "Responses Needing Validation",
|
|
"confidence": "Confidence",
|
|
"costLabel": "Cost: {value}",
|
|
"cyclesLabel": "Cycles: {value}",
|
|
"areaLabel": "Area: {value}",
|
|
"validate": "Validate",
|
|
"autoValidation": "Auto Validation",
|
|
"allValidated": "All responses validated!",
|
|
"noValidationNeeded": "No responses currently need manual validation.",
|
|
"validateResponseTitle": "Validate Response",
|
|
"reviewHint": "Review and correct the OCR data below",
|
|
"enterCost": "Enter cost",
|
|
"enterCycles": "Enter cycles",
|
|
"enterArea": "Enter area",
|
|
"validating": "Validating...",
|
|
"validationFailed": "Validation failed: {error}",
|
|
"validationFailedGeneric": "Validation failed"
|
|
},
|
|
"fileUpload": {
|
|
"title": "Upload Solution Files",
|
|
"hint": "Images or GIFs only",
|
|
"dropHint": "Drop your files here or",
|
|
"supportedFormats": "Supported formats: JPG, PNG, GIF (max 256MB each)",
|
|
"extracting": "Extracting puzzle data...",
|
|
"ocrComplete": "✓ OCR Complete",
|
|
"overallConfidence": "Overall confidence: {pct}%",
|
|
"retryOcr": "Retry OCR",
|
|
"puzzleLabel": "Puzzle:",
|
|
"puzzleConfidence": "Puzzle confidence: {pct}%",
|
|
"costLabel": "Cost:",
|
|
"costConfidence": "Cost confidence: {pct}%",
|
|
"cyclesLabel": "Cycles:",
|
|
"cyclesConfidence": "Cycles confidence: {pct}%",
|
|
"areaLabel": "Area:",
|
|
"areaConfidence": "Area confidence: {pct}%",
|
|
"lowConfidence": "Low OCR Confidence",
|
|
"selectManually": "Please select the correct puzzle manually",
|
|
"extractPuzzleData": "Extract Puzzle Data",
|
|
"addMoreFiles": "Add More Files",
|
|
"invalidFileType": "{name} is not a valid image file",
|
|
"fileTooLarge": "{name} is too large (max 256MB)",
|
|
"processFailed": "Failed to process {name}"
|
|
},
|
|
"marketCard": {
|
|
"untilClose": "until close",
|
|
"closeMarket": "Close Market",
|
|
"resolveMarketButton": "Resolve Market",
|
|
"resolveModalTitle": "Resolve Market - Select Winner",
|
|
"resolveAndDistribute": "Resolve & Distribute Points",
|
|
"pool": "Pool: {n} pts",
|
|
"multiplierLabel": "Multiplier: {x}x",
|
|
"yourBet": "Your bet: {n} pts",
|
|
"potential": "Potential: {n} pts",
|
|
"increaseBetLabel": "Increase bet (current: {n} pts)",
|
|
"pointsToBet": "Points to bet",
|
|
"increaseByPlaceholder": "Enter amount to increase by",
|
|
"enterPointsPlaceholder": "Enter points",
|
|
"increaseBet": "Increase Bet",
|
|
"placeBet": "Place Bet",
|
|
"yourBetTitle": "Your Bet",
|
|
"optionLabel": "Option: {text}",
|
|
"amountLabel": "Amount: {n} pts",
|
|
"won": "✓ You Won!",
|
|
"lost": "✗ You Lost",
|
|
"resolved": "Resolved",
|
|
"winnerLabel": "Winner: {text}",
|
|
"errorClosing": "Error closing market",
|
|
"selectWinnerRequired": "Please select a winning option",
|
|
"errorResolving": "Error resolving market",
|
|
"failedToPlaceBet": "Failed to place bet",
|
|
"errorPlacingBet": "Error placing bet",
|
|
"ended": "Ended"
|
|
},
|
|
"marketCharts": {
|
|
"showCharts": "Show charts",
|
|
"hideCharts": "Hide charts",
|
|
"payoutTitle": "Potential payout if “{option}” wins",
|
|
"payout": "Payout",
|
|
"stake": "Your stake",
|
|
"netGain": "Net gain",
|
|
"ifYouBet": "If you bet {n} pts",
|
|
"payoutHint": "Based on the current pools. Payouts shift as others bet.",
|
|
"historyTitle": "Points bet over time",
|
|
"noBets": "No bets yet",
|
|
"other": "Other",
|
|
"showTable": "Show data table",
|
|
"time": "Time",
|
|
"option": "Option",
|
|
"amount": "Amount",
|
|
"optionPool": "Option pool"
|
|
},
|
|
"puzzleCard": {
|
|
"byAuthor": "by {author}",
|
|
"moreTags": "+{n} more",
|
|
"viewOnSteam": "View on Steam Workshop",
|
|
"solutionsCount": "Solutions ({n})",
|
|
"needsManualValidation": "Needs manual validation",
|
|
"noSolutionsYet": "No solutions yet",
|
|
"uploadHint": "Upload solutions using the submit button"
|
|
},
|
|
"puzzleResults": {
|
|
"title": "Results by Puzzle",
|
|
"winningSolutions": "🏆 Winning Solutions",
|
|
"columns": {
|
|
"pos": "Pos",
|
|
"user": "User",
|
|
"totalPts": "Total Pts",
|
|
"totalCoef": "Total Coef",
|
|
"gif": "GIF"
|
|
}
|
|
},
|
|
"results": {
|
|
"totalPoints": "Total Points",
|
|
"puzzlesSolved": "Puzzles Solved",
|
|
"generalResults": "General Results",
|
|
"clearCacheError": "Error clearing cache: {detail}",
|
|
"tabs": {
|
|
"overall": "Overall Ranking",
|
|
"byPuzzle": "By Puzzle"
|
|
},
|
|
"submissionsCount": "{n} submissions",
|
|
"podium": {
|
|
"first": "🏆 1st Place",
|
|
"second": "🥈 2nd Place",
|
|
"third": "🥉 3rd Place"
|
|
},
|
|
"totalWithCoef": "Total (with coef.)"
|
|
},
|
|
"topUsersLeaderboard": {
|
|
"title": "Top 10 Users"
|
|
},
|
|
"userBets": {
|
|
"empty": "You haven't placed any bets yet",
|
|
"totalBets": "Total Bets",
|
|
"active": "Active",
|
|
"waitingForResult": "Waiting for result",
|
|
"won": "Won",
|
|
"wonPointsLabel": "+{n} points",
|
|
"lost": "Lost",
|
|
"betterLuck": "Better luck next time",
|
|
"activeBets": "Active Bets ({n})",
|
|
"betOn": "Bet on: {option}",
|
|
"statusLabel": "Status:",
|
|
"wonBets": "Won Bets ({n})",
|
|
"correctBetOn": "Correct! You bet on: {option}",
|
|
"lostBets": "Lost Bets ({n})",
|
|
"youBetOn": "You bet on: {option}",
|
|
"winnerLabel": "Winner: {option}"
|
|
},
|
|
"winners": {
|
|
"title": "Top Submissions",
|
|
"fetchError": "Failed to fetch submissions",
|
|
"columns": {
|
|
"puzzle": "Puzzle",
|
|
"user": "User",
|
|
"totalPts": "Total Pts",
|
|
"totalCoef": "Total Coef",
|
|
"gif": "GIF"
|
|
}
|
|
},
|
|
"submissionForm": {
|
|
"detectedPuzzles": "Detected Puzzles ({n})",
|
|
"manualSelectionRequired": "Manual Puzzle Selection Required",
|
|
"manualSelectionBody": "{n} file(s) have low OCR confidence for puzzle names. Please select the correct puzzle for each file before submitting.",
|
|
"retryOcr": "Retry OCR on low confidence puzzle",
|
|
"notesPlaceholder": "Add any notes about your solution, approach, or interesting findings...",
|
|
"requestManualValidation": "Request manual validation",
|
|
"manualValidationHint": "Check this if you want an admin to manually review your submission, even if OCR confidence is high.",
|
|
"manualValidationNote": "Note: This will be automatically checked if any OCR confidence is below 80%.",
|
|
"selectPuzzlesRemaining": "Select Puzzles ({n} remaining)"
|
|
}
|
|
}
|
|
}
|