1068 lines
41 KiB
JSON
1068 lines
41 KiB
JSON
{
|
|
"app": {
|
|
"name": "cruciverb",
|
|
"tagline": "a crossword a day",
|
|
"generating": "Generating puzzle...",
|
|
"offline": "Offline - playing from cache",
|
|
"streakKeepGoing": "{{count}} day streak - keep it going",
|
|
"skipToContent": "Skip to content",
|
|
"crosswordGrid": "Crossword grid",
|
|
"clues": "Clues",
|
|
"gameControls": "Game controls"
|
|
},
|
|
"common": {
|
|
"loading": "Loading...",
|
|
"close": "Close",
|
|
"cancel": "Cancel",
|
|
"confirm": "Confirm",
|
|
"submit": "Submit",
|
|
"delete": "Delete",
|
|
"anonymous": "Anonymous",
|
|
"on": "on",
|
|
"off": "off",
|
|
"notSet": "not set",
|
|
"signIn": "Sign in",
|
|
"signOut": "Sign out",
|
|
"report": "Report",
|
|
"reported": "Reported",
|
|
"dismiss": "Dismiss",
|
|
"copied": "Copied!",
|
|
"copyLink": "Copy link",
|
|
"export": "Export",
|
|
"import": "Import",
|
|
"add": "Add",
|
|
"connect": "Connect",
|
|
"block": "Block",
|
|
"unblock": "Unblock",
|
|
"approve": "Approve",
|
|
"reject": "Reject",
|
|
"test": "Test",
|
|
"publish": "Publish",
|
|
"create": "Create",
|
|
"save": "Save",
|
|
"undo": "Undo",
|
|
"more": "More",
|
|
"tryAgain": "try again",
|
|
"back": "Back"
|
|
},
|
|
"game": {
|
|
"across": "Across",
|
|
"down": "Down",
|
|
"solved": "Puzzle complete",
|
|
"timeUp": "Time's up",
|
|
"fasterThan": "Faster than {{percent}}% of solvers - #{{rank}} of {{total}}",
|
|
"solvedHint": "Know a better clue? Click the speech bubble next to any clue to suggest one.",
|
|
"marathonComplete": "Puzzle #{{count}} complete - next one loading...",
|
|
"marathonOver": "Marathon over - {{count}} puzzles solved",
|
|
"check": "Check",
|
|
"reveal": "Reveal",
|
|
"word": "Word",
|
|
"validate": "Validate",
|
|
"checkTooltip": "Check cell - counts as a hint",
|
|
"revealTooltip": "Reveal letter - counts as a hint",
|
|
"wordTooltip": "Reveal word - counts as a hint",
|
|
"validateTooltip": "Validate solution",
|
|
"hintsUsed": "{{count}} hint used",
|
|
"hintsUsed_plural": "{{count}} hints used",
|
|
"suggestClue": "Suggest alternative clue",
|
|
"clueSubmitPlaceholder": "Your alternative clue...",
|
|
"submit": "Submit",
|
|
"selectCellToBegin": "Select a cell to begin",
|
|
"clickToSwitchDirection": "Click to switch direction",
|
|
"undo": "Undo",
|
|
"redo": "Redo",
|
|
"undoTooltip": "Undo (Ctrl+Z)",
|
|
"redoTooltip": "Redo (Ctrl+Y)",
|
|
"pencilToggle": "Toggle pencil mode",
|
|
"pencilTooltip": "Pencil mode - tentative letters",
|
|
"autoCheckToggle": "Toggle auto-check",
|
|
"autoCheckTooltip": "Auto-check - marks wrong letters as you type",
|
|
"shareResult": "Share result"
|
|
},
|
|
"grid": {
|
|
"ariaLabel": "Crossword puzzle, {{width}} by {{height}}",
|
|
"blackCell": "Black cell",
|
|
"cellLabel": "Row {{row}}, Column {{col}}",
|
|
"cellNumber": ", number {{num}}",
|
|
"cellLetter": ", letter {{letter}}",
|
|
"cellEmpty": ", empty",
|
|
"handwritingCanvas": "Handwriting input area"
|
|
},
|
|
"welcome": {
|
|
"todaysPuzzles": "today's puzzles",
|
|
"newPuzzlesIn": "new puzzles in {{countdown}}",
|
|
"customPuzzle": "custom puzzle",
|
|
"clueStyle": "clue style",
|
|
"standard": "standard",
|
|
"cryptic": "cryptic",
|
|
"difficulty": "difficulty",
|
|
"auto": "auto",
|
|
"veryEasy": "very easy",
|
|
"easy": "easy",
|
|
"medium": "medium",
|
|
"hard": "hard",
|
|
"gameMode": "game mode",
|
|
"speedRun": "speed run",
|
|
"blind": "blind",
|
|
"marathon": "marathon",
|
|
"theme": "theme",
|
|
"none": "none",
|
|
"wordPack": "word pack",
|
|
"startMarathon": "Start marathon",
|
|
"marathonDesc": "endless 5x5 - 2 min each",
|
|
"importPuz": "Import .puz / .ipuz",
|
|
"communityPuzzles": "community puzzles",
|
|
"federatedPuzzles": "federated puzzles",
|
|
"wordOfTheDay": "word of the day",
|
|
"crypticExplainer": "British-style wordplay clues where each clue has a definition and a wordplay element (anagram, hidden word, reversal, etc.) that both lead to the answer. Much harder than standard clues.",
|
|
"blindExplainer": "Clues are hidden until you select a word. You can only see one clue at a time. Completed words reveal their clues. Forces you to work from crossings.",
|
|
"marathonExplainer": "Endless stream of Quick (5x5) puzzles. Each solved puzzle immediately loads the next. You have 2 minutes per puzzle - if time runs out, the marathon ends."
|
|
},
|
|
"header": {
|
|
"share": "Share",
|
|
"playTogether": "Play together",
|
|
"communityClues": "Community clues",
|
|
"leaderboard": "Leaderboard",
|
|
"more": "More",
|
|
"puzzleEditor": "Puzzle editor",
|
|
"achievements": "Achievements",
|
|
"myStats": "My stats",
|
|
"settings": "Settings",
|
|
"aboutInstance": "About this instance",
|
|
"signInPasskey": "Sign in with passkey",
|
|
"keyboardShortcuts": "Keyboard shortcuts",
|
|
"narrator": "Narrator",
|
|
"narratorActive": "Narrator active",
|
|
"newPuzzle": "New puzzle",
|
|
"startNewPuzzle": "Start a new puzzle",
|
|
"custom": "Custom",
|
|
"size": "Size",
|
|
"fill": "Fill",
|
|
"generate": "Generate",
|
|
"presetGlyph": "Glyph",
|
|
"presetRune": "Rune",
|
|
"presetScroll": "Scroll",
|
|
"presetCodex": "Codex",
|
|
"presetGrimoire": "Grimoire",
|
|
"presetGlyphDesc": "5x5 very easy",
|
|
"presetRuneDesc": "5x5 easy",
|
|
"presetScrollDesc": "9x9 medium",
|
|
"presetCodexDesc": "15x15 hard",
|
|
"presetGrimoireDesc": "21x21 expert",
|
|
"history": "History",
|
|
"archive": "Archive",
|
|
"clueTrainer": "Clue trainer",
|
|
"freezeTooltip": "{{count}} streak freeze available - protects your streak if you miss a day"
|
|
},
|
|
"shortcuts": {
|
|
"title": "Keyboard shortcuts",
|
|
"subtitle": "Available while the grid is focused",
|
|
"navigation": "Navigation",
|
|
"editing": "Editing",
|
|
"narrator": "Narrator mode",
|
|
"arrows": "Move between cells",
|
|
"tabNext": "Jump to next clue",
|
|
"tabPrev": "Jump to previous clue",
|
|
"space": "Toggle across / down",
|
|
"escape": "Deselect cell",
|
|
"letters": "Enter a letter",
|
|
"backspace": "Clear current cell",
|
|
"delete": "Clear and move back",
|
|
"ctrlZ": "Undo last entry",
|
|
"ctrlY": "Redo last entry",
|
|
"question": "Re-read current clue",
|
|
"ctrlH": "Puzzle overview",
|
|
"f1": "Puzzle overview"
|
|
},
|
|
"difficulty": {
|
|
"veryEasy": "Very easy",
|
|
"easy": "Easy",
|
|
"medium": "Medium",
|
|
"hard": "Hard"
|
|
},
|
|
"achievements": {
|
|
"title": "Achievements",
|
|
"count": "{{unlocked}}/{{total}}"
|
|
},
|
|
"community": {
|
|
"title": "Community clues",
|
|
"browseSubmit": "Browse & submit",
|
|
"mySubmissions": "My submissions",
|
|
"enterWord": "Enter a word...",
|
|
"writeClueFor": "Write a clue for {{word}}...",
|
|
"noCluesYet": "No community clues for {{word}} yet. Be the first!",
|
|
"noSubmissions": "You haven't submitted any clues yet.",
|
|
"reportClue": "Report this clue",
|
|
"reasonPlaceholder": "Reason (optional)",
|
|
"submitReport": "Submit report",
|
|
"deleteSubmission": "Delete submission"
|
|
},
|
|
"communityToday": {
|
|
"title": "Today's community puzzles",
|
|
"subtitle": "Puzzles published by the community in the last 24 hours.",
|
|
"none": "No community puzzles published today yet."
|
|
},
|
|
"leaderboard": {
|
|
"title": "Leaderboard",
|
|
"tabs": {
|
|
"daily": "Daily",
|
|
"alltime": "All-time",
|
|
"weekly": "Weekly",
|
|
"streaks": "Streaks",
|
|
"total": "Total",
|
|
"global": "Global"
|
|
},
|
|
"columns": {
|
|
"rank": "#",
|
|
"player": "Player",
|
|
"time": "Time",
|
|
"hints": "Hints",
|
|
"date": "Date",
|
|
"current": "Current",
|
|
"best": "Best",
|
|
"solves": "Solves",
|
|
"instance": "Instance"
|
|
},
|
|
"cleanOnly": "clean only (0 hints)",
|
|
"yourTime": "Your time: {{time}} ({{detail}})",
|
|
"hintCount": "{{count}} hint",
|
|
"hintCount_plural": "{{count}} hints"
|
|
},
|
|
"rating": {
|
|
"label": "Rate this puzzle",
|
|
"avg": "{{avg}} avg ({{count}} {{unit}})",
|
|
"rating": "rating",
|
|
"ratings": "ratings",
|
|
"star": "Rate {{n}} out of 5"
|
|
},
|
|
"receipt": {
|
|
"claimTitle": "Claim this solve?",
|
|
"solvedOn": "You solved a puzzle on {{instance}}",
|
|
"time": "Time: {{time}}s",
|
|
"hints": "Hints: {{hints}}",
|
|
"date": "Date: {{date}}",
|
|
"room": "Room: {{code}} ({{mode}})",
|
|
"with": "With: {{players}}",
|
|
"claiming": "Claiming...",
|
|
"claim": "Claim",
|
|
"qrLabel": "QR code for receipt link"
|
|
},
|
|
"share": {
|
|
"title": "Share puzzle",
|
|
"copyEmbed": "Copy embed code",
|
|
"embedOnWebsite": "Embed on your website",
|
|
"timer": "Timer",
|
|
"hintsLabel": "Hints",
|
|
"puzzle": "Puzzle",
|
|
"solution": "Solution",
|
|
"qrLabel": "QR code for puzzle link"
|
|
},
|
|
"embed": {
|
|
"solved": "Puzzle complete",
|
|
"brand": "cruciverb",
|
|
"noPuzzleId": "No puzzle ID",
|
|
"notFound": "Puzzle not found"
|
|
},
|
|
"onboarding": {
|
|
"welcomeTo": "Welcome to cruciverb",
|
|
"chooseName": "Choose a name",
|
|
"chooseNameDesc": "This is how you'll appear on leaderboards. Leave it blank to stay anonymous. You can change it anytime in settings.",
|
|
"progressSaved": "Your progress is saved in this browser",
|
|
"progressSavedDesc": "Your solves, streaks, and achievements are tied to a cookie in this browser on this device. If you switch browsers or clear cookies, you'll start fresh.",
|
|
"rememberFor": "Remember me for",
|
|
"playAcrossDevices": "Play across devices with a passkey",
|
|
"playAcrossDevicesDesc": "A passkey is a secure, passwordless credential stored on your device or password manager. Set one up to access your progress from any browser or device - no account or password needed.",
|
|
"settingUp": "Setting up...",
|
|
"setupPasskey": "Set up passkey",
|
|
"passkeySaved": "Passkey saved",
|
|
"passkeyFailed": "Passkey registration failed",
|
|
"comingFrom": "Coming from",
|
|
"anotherInstance": "another instance?",
|
|
"done": "Done",
|
|
"startPlaying": "Start playing",
|
|
"imported": "Imported {{count}} items.",
|
|
"skipped": "Skipped: {{items}}",
|
|
"importFailed": "Import failed"
|
|
},
|
|
"analytics": {
|
|
"title": "My Stats",
|
|
"couldNotLoad": "Could not load analytics.",
|
|
"noPuzzlesSolved": "No puzzles solved yet. Complete a puzzle to see your stats here.",
|
|
"solved": "Solved",
|
|
"cleanRate": "Clean rate",
|
|
"totalTime": "Total time",
|
|
"streak": "Streak",
|
|
"bestStreak": "Best streak",
|
|
"avgTime": "Avg time",
|
|
"activity": "Activity",
|
|
"improvement": "Improvement",
|
|
"fasterThanLastMonth": "{{pct}}% faster than last month",
|
|
"slowerThanLastMonth": "{{pct}}% slower than last month",
|
|
"needMoreSolves": "need more solves to compare",
|
|
"completionRate": "Completion rate",
|
|
"completion": "completion",
|
|
"total": "total",
|
|
"solveTimeTrend": "Solve time trend",
|
|
"timeOfDay": "Time of day",
|
|
"consistency": "Consistency",
|
|
"veryConsistent": "very consistent",
|
|
"consistent": "consistent",
|
|
"variable": "variable",
|
|
"unpredictable": "unpredictable",
|
|
"variance": "variance",
|
|
"notEnoughData": "not enough data",
|
|
"notEnoughDataYet": "not enough data yet",
|
|
"dayOfWeek": "Day of week",
|
|
"byPreset": "By preset",
|
|
"presetMix": "Preset mix",
|
|
"hintsTrend": "Hints trend",
|
|
"cleanSolveTrend": "Clean solve trend",
|
|
"monthlyVolume": "Monthly volume",
|
|
"solveTimeDistribution": "Solve time distribution",
|
|
"difficultyProgression": "Difficulty progression",
|
|
"peakPerformance": "Peak performance",
|
|
"fastestAt": "Fastest at {{hour}}:00 - avg {{time}}",
|
|
"streakProgress": "Streak progress",
|
|
"daysCurrent": "{{count}} day current",
|
|
"daysCurrent_plural": "{{count}} days current",
|
|
"daysBest": "{{count}} day best",
|
|
"daysBest_plural": "{{count}} days best",
|
|
"bestStreakNow": "You are on your best streak right now",
|
|
"personalRecords": "Personal records",
|
|
"recentSolves": "Recent solves",
|
|
"solvesInYear": "{{count}} solve in the last year",
|
|
"solvesInYear_plural": "{{count}} solves in the last year",
|
|
"dayNames": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
|
|
},
|
|
"instance": {
|
|
"aboutTitle": "About this instance",
|
|
"tagline": "self-hosted crossword puzzles",
|
|
"license": "open source, CC0 public domain",
|
|
"federationActive": "Federation active",
|
|
"connectedInstances": "{{count}} connected instance",
|
|
"connectedInstances_plural": "{{count}} connected instances",
|
|
"contact": "Contact",
|
|
"rules": "Rules",
|
|
"features": "Features",
|
|
"featureList": {
|
|
"dailyPuzzles": "Daily puzzles in 4 difficulty levels",
|
|
"crypticMode": "Cryptic crossword mode with 660K clues",
|
|
"puzzleEditor": "Puzzle editor with auto-fill",
|
|
"communityClues": "Community clue contributions and voting",
|
|
"themedCategories": "11 themed word categories",
|
|
"gameModes": "Speed run, blind, and marathon game modes",
|
|
"achievements": "Achievements and streaks",
|
|
"pwa": "PWA offline support",
|
|
"federation": "ActivityPub federation"
|
|
},
|
|
"federationHealth": "Federation health",
|
|
"deliveryRate": "delivery rate",
|
|
"peers": "peers",
|
|
"queueDepth": "queue depth",
|
|
"status": "status",
|
|
"frozen": "Frozen",
|
|
"active": "Active",
|
|
"rssFeed": "RSS feed",
|
|
"atomFeed": "Atom feed",
|
|
"jsonFeed": "JSON feed",
|
|
"healthTitle": "Instance health",
|
|
"healthy": "Healthy",
|
|
"server": "server"
|
|
},
|
|
"report": {
|
|
"selectReason": "Select reason",
|
|
"offensive": "Offensive content",
|
|
"spam": "Spam",
|
|
"broken": "Broken / incorrect",
|
|
"other": "Other"
|
|
},
|
|
"datepicker": {
|
|
"months": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
|
"weekdays": ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
|
|
"calendarLabel": "Calendar - {{month}} {{year}}",
|
|
"prevMonth": "Previous month",
|
|
"nextMonth": "Next month"
|
|
},
|
|
"zoom": {
|
|
"tryAgain": "try again"
|
|
},
|
|
"party": {
|
|
"title": "Party mode",
|
|
"roomCode": "Room code",
|
|
"players": "Players ({{count}})",
|
|
"waitingForPlayers": "Waiting for more players to join...",
|
|
"needMorePlayers": "Need 2+ players",
|
|
"startGame": "Start game",
|
|
"waitingForHost": "Waiting for the host to start...",
|
|
"leaveRoom": "Leave room",
|
|
"leave": "Leave",
|
|
"copied": "Copied",
|
|
"leaveEndGame": "Leaving will end the game for everyone.",
|
|
"leaveConfirm": "Leave this game?",
|
|
"cancel": "Cancel",
|
|
"endAndLeave": "End game and leave",
|
|
"round": "Round {{current}} / {{total}}",
|
|
"scores": "Scores",
|
|
"results": "Results",
|
|
"vote": "vote",
|
|
"votes": "votes",
|
|
"voteLocked": "Vote locked in",
|
|
"lockedIn": "Locked in",
|
|
"correct": "Correct!",
|
|
"submittedWaiting": "Submitted - waiting for others...",
|
|
"typeAnswer": "Type the answer - be fast!",
|
|
"go": "Go",
|
|
"yourAnswer": "Your answer...",
|
|
"pickDefinition": "Pick the real definition",
|
|
"submit": "Submit",
|
|
"subModes": {
|
|
"wrong": "Wrong answers",
|
|
"bluff": "Bluff",
|
|
"reverse": "Reverse clue",
|
|
"speed": "Speed",
|
|
"roulette": "Roulette"
|
|
},
|
|
"prompts": {
|
|
"wrongAnswer": "Write a wrong answer",
|
|
"fakeDefinition": "Write a fake definition",
|
|
"writeClue": "Write a clue for this word",
|
|
"voteFunniest": "Vote for the funniest",
|
|
"realDefinition": "Which is the real definition?",
|
|
"voteBestClue": "Vote for the best clue"
|
|
},
|
|
"placeholders": {
|
|
"funniestWrong": "Your funniest wrong answer...",
|
|
"soundReal": "Make it sound real...",
|
|
"bestClue": "Your best clue..."
|
|
},
|
|
"resultLabels": {
|
|
"realAnswer": "Real answer",
|
|
"realDefinition": "Real definition",
|
|
"originalClue": "Original clue"
|
|
},
|
|
"firstPlace": "1st place",
|
|
"phaseAnnounce": "{{phase}} phase - round {{current}} of {{total}}",
|
|
"resultsAnnounce": "Results - the answer was {{answer}}",
|
|
"gameOver": "Game over"
|
|
},
|
|
"multiplayer": {
|
|
"playTogether": "Play together",
|
|
"createRoom": "Create a room",
|
|
"coop": "Co-op",
|
|
"race": "Race",
|
|
"partyLabel": "Party",
|
|
"createRoomBtn": "Create room",
|
|
"startParty": "Start party",
|
|
"loadPuzzleFirst": "Load a puzzle first",
|
|
"creating": "Creating...",
|
|
"joinRoom": "Join a room",
|
|
"roomCode": "Room code",
|
|
"recentRooms": "Recent rooms",
|
|
"copied": "Copied",
|
|
"turnBased": "turn-based",
|
|
"wrongAnswersOnly": "wrong answers only",
|
|
"bluff": "bluff",
|
|
"reverseClue": "reverse clue",
|
|
"speedRound": "speed round",
|
|
"roulette": "roulette",
|
|
"yourTurn": "Your turn",
|
|
"playerTurn": "{{name}}'s turn",
|
|
"waitingToStart": "Waiting to start",
|
|
"playing": "playing",
|
|
"you": "you",
|
|
"waitingForPlayersEllipsis": "Waiting for players...",
|
|
"passTurn": "Pass turn",
|
|
"needMorePlayers": "Need 2+ players",
|
|
"startGame": "Start game",
|
|
"leaveRoom": "Leave room",
|
|
"disconnected": "Disconnected",
|
|
"joinFailed": "Could not find that room. Check the code and try again.",
|
|
"createFailed": "Could not create the room. Try again.",
|
|
"partyModes": {
|
|
"wrongDesc": "Write funny wrong answers to real crossword clues and vote on the funniest one. The real answer is hidden among the fakes as a trap.",
|
|
"bluffDesc": "An obscure word is shown - everyone writes a fake definition. The real definition is mixed in. Fool others with yours, or spot the real one.",
|
|
"reverseDesc": "You see the answer word - now write the cleverest clue for it. Everyone votes on their favorite.",
|
|
"speedDesc": "A clue appears and everyone races to type the correct answer. First three to get it right score points.",
|
|
"rouletteDesc": "A word is shown with four possible definitions - only one is real. The other three are definitions for completely different words. Pick the right one."
|
|
}
|
|
},
|
|
"settings": {
|
|
"title": "Settings",
|
|
"tabs": {
|
|
"profile": "Profile",
|
|
"display": "Display",
|
|
"session": "Session",
|
|
"visibility": "Visibility",
|
|
"data": "Data",
|
|
"federation": "Federation",
|
|
"accessibility": "Accessibility",
|
|
"account": "Account"
|
|
},
|
|
"accessibility": {
|
|
"colorblindHint": "Adjust the color palette for different types of color vision",
|
|
"textSizeHint": "Scale all text up or down to match your preference"
|
|
},
|
|
"profile": {
|
|
"displayName": "Display name",
|
|
"placeholder": "Anonymous",
|
|
"hint": "This is how you appear on leaderboards and in community features",
|
|
"sessionLabel": "Session",
|
|
"hasPasskey": "You have a passkey set up - your progress is portable across browsers.",
|
|
"noPasskey": "No passkey yet. Add one in the Session tab to access your progress from other devices."
|
|
},
|
|
"display": {
|
|
"theme": "Theme",
|
|
"system": "System",
|
|
"light": "Light",
|
|
"dark": "Dark",
|
|
"inputMode": "Input mode",
|
|
"inputAuto": "Auto (keyboard + pen)",
|
|
"inputKeyboard": "Keyboard",
|
|
"inputStylus": "Stylus",
|
|
"colorblind": "Colorblind mode",
|
|
"colorblindNone": "None",
|
|
"protanopia": "Protanopia (red-blind)",
|
|
"deuteranopia": "Deuteranopia (green-blind)",
|
|
"tritanopia": "Tritanopia (blue-blind)",
|
|
"textSize": "Text size: {{scale}}%",
|
|
"torFriendly": "Tor-friendly mode",
|
|
"torHint": "Uses system fonts - no external requests to Google",
|
|
"language": "Language",
|
|
"pushNotifications": "Push notifications",
|
|
"pushHint": "Get notified when the daily puzzle is ready",
|
|
"pushComingSoon": "Coming soon"
|
|
},
|
|
"narrator": {
|
|
"title": "Narrator",
|
|
"narratorMode": "Narrator mode",
|
|
"hint": "Speaks cell positions, clues, and game events aloud",
|
|
"speechRate": "Speech rate: {{rate}}x",
|
|
"pitch": "Pitch: {{pitch}}x",
|
|
"voice": "Voice",
|
|
"defaultVoice": "Default",
|
|
"verbosity": "Verbosity",
|
|
"brief": "Brief",
|
|
"normal": "Normal",
|
|
"verbose": "Verbose",
|
|
"soundEffects": "Sound effects",
|
|
"notSupported": "Your browser does not support speech synthesis"
|
|
},
|
|
"session": {
|
|
"duration": "Session duration",
|
|
"durationHint": "How long this browser remembers your progress",
|
|
"passkeys": "Passkeys",
|
|
"noPasskeys": "No passkeys yet. Add one to access your progress from other browsers or devices.",
|
|
"addPasskey": "Add passkey",
|
|
"registering": "Registering...",
|
|
"noSupport": "Your browser does not support passkeys.",
|
|
"sessionBinding": "Session binding",
|
|
"sessionBindingHint": "Lock this session to your current browser - invalidates if user-agent changes",
|
|
"requiresPasskey": "Requires a passkey to be set up",
|
|
"thisSession": "This session",
|
|
"oneDay": "1 day",
|
|
"oneWeek": "1 week",
|
|
"thirtyDays": "30 days",
|
|
"ninetyDays": "90 days",
|
|
"oneYear": "1 year"
|
|
},
|
|
"visibility": {
|
|
"quickSetup": "Quick setup",
|
|
"open": "Open",
|
|
"openDesc": "Everything visible, all features on",
|
|
"private": "Private",
|
|
"privateDesc": "Hidden from leaderboards, anonymous, local only",
|
|
"fortress": "Fortress",
|
|
"fortressDesc": "Maximum privacy, encrypted, auto-purge",
|
|
"visibilityLabel": "Visibility",
|
|
"hideLeaderboards": "Hide from leaderboards",
|
|
"hideLeaderboardsHint": "Your solve times won't appear on any leaderboard",
|
|
"privateProfile": "Private profile",
|
|
"privateProfileHint": "Your display name is hidden - you appear as Anonymous",
|
|
"anonSolve": "Anonymous solve mode",
|
|
"anonSolveHint": "No achievements triggered, no stats recorded for your profile"
|
|
},
|
|
"data": {
|
|
"title": "Data protection",
|
|
"noTrack": "No-track mode",
|
|
"noTrackHint": "Solves are not recorded on the server at all",
|
|
"anonTimes": "Anonymize solve times",
|
|
"anonTimesHint": "Rounded to nearest minute to prevent fingerprinting",
|
|
"encrypt": "Encrypt solve data",
|
|
"encryptHint": "Progress stored as AES-256-GCM ciphertext at rest - the server needs DATA_ENC_KEY set for this to take effect",
|
|
"ephemeral": "Ephemeral session",
|
|
"ephemeralHint": "All server-side data deleted when your cookie expires",
|
|
"autoPurge": "Auto-purge old data",
|
|
"purgeAfter": "Purge after",
|
|
"purgeDays": {
|
|
"7": "7 days",
|
|
"30": "30 days",
|
|
"60": "60 days",
|
|
"90": "90 days"
|
|
}
|
|
},
|
|
"federation": {
|
|
"fedContent": "Federated content",
|
|
"showAll": "Show all content",
|
|
"approvedOnly": "Approved content only",
|
|
"localOnly": "Local content only",
|
|
"blockedInstances": "Blocked instances",
|
|
"block": "Block",
|
|
"exportBlocklist": "Export blocklist",
|
|
"importBlocklist": "Import blocklist"
|
|
},
|
|
"account": {
|
|
"yourData": "Your data",
|
|
"dataHint": "Download a copy of everything cruciverb knows about you, or restore from a previous export. Achievements, streaks, settings, and clue submissions carry over. Solve records and puzzle ratings are instance-specific and can't be transferred.",
|
|
"export": "Export",
|
|
"import": "Import",
|
|
"claimSolve": "Claim a solve",
|
|
"claimHint": "Paste a receipt URL or receipt JSON from another instance to claim a solve on this one.",
|
|
"claim": "Claim",
|
|
"claiming": "Claiming...",
|
|
"solveClaimed": "Solve claimed",
|
|
"failedToClaim": "Failed to claim",
|
|
"moveInstance": "Move to another instance",
|
|
"moveHint": "Migrate to a different cruciverb instance. This notifies all connected peers and exports your data.",
|
|
"migrate": "Migrate",
|
|
"migrating": "Migrating...",
|
|
"migrateSuccess": "Your data has been exported. Upload this file on your new instance to restore everything.",
|
|
"migrateFailed": "Migration failed",
|
|
"signOut": "Sign out",
|
|
"signOutHint": "Clears your session cookie and starts fresh. Your data remains on the server unless you delete your account.",
|
|
"signOutEverywhere": "Sign out everywhere",
|
|
"deleteAccount": "Delete account",
|
|
"deleteHint": "Permanently delete all your data - solves, streaks, achievements, clue submissions, settings, passkeys, and this session. This cannot be undone.",
|
|
"confirmDelete": "Are you absolutely sure?",
|
|
"yesDelete": "Yes, delete everything"
|
|
}
|
|
},
|
|
"editor": {
|
|
"title": "Puzzle editor",
|
|
"createNew": "Create new",
|
|
"customSize": "Custom size",
|
|
"yourPuzzles": "Your puzzles",
|
|
"importExport": "Import / Export",
|
|
"exportAll": "Export all",
|
|
"untitled": "Untitled",
|
|
"puzzleTitle": "Puzzle title...",
|
|
"design": "Design",
|
|
"fill": "Fill",
|
|
"clues": "Clues",
|
|
"exitTest": "Exit test",
|
|
"autoFill": "Auto-fill",
|
|
"filling": "Filling...",
|
|
"undoCtrlZ": "Undo (Ctrl+Z)",
|
|
"clearLetters": "Clear letters",
|
|
"clearEverything": "Clear everything",
|
|
"exportIpuz": "Export as .ipuz",
|
|
"unpublish": "Unpublish",
|
|
"unpublished": "Unpublished - puzzle is now a draft",
|
|
"designHint": "click cells to toggle black/white",
|
|
"fillHint": "filling {{dir}} - click same cell to switch",
|
|
"testHint": "solve the puzzle to test it",
|
|
"clueHint": "click a cell or clue to edit",
|
|
"rotationalSymmetry": "Rotational symmetry",
|
|
"mirrorSymmetry": "Mirror symmetry",
|
|
"noSymmetry": "No symmetry",
|
|
"checkAnswers": "Check answers",
|
|
"cluesClickToEdit": "Clues (click to edit)",
|
|
"writeClue": "Write a clue...",
|
|
"clickToAddClue": "click to add clue...",
|
|
"emptyHint1": "Design your grid pattern, then click <b>Auto-fill</b> to populate words and clues.",
|
|
"emptyHint2": "Or switch to <b>Fill</b> mode to type your own words, then click <b>Clues</b> to write clues.",
|
|
"publishTitle": "Publish your puzzle?",
|
|
"publishDesc": "Your puzzle will be visible to everyone on the welcome screen under \"community puzzles.\" Anyone can play it - it loads just like a regular puzzle with timer, hints, and validation.",
|
|
"publishNote": "You can unpublish later by changing the status back to draft from your puzzle list.",
|
|
"isThemed": "This is a themed puzzle",
|
|
"themePlaceholder": "Theme name (e.g. Space, Movies, Food)",
|
|
"dontShowAgain": "Don't show this again",
|
|
"published": "Published! Your puzzle is now available for everyone to play.",
|
|
"autoFillFailed": "Auto-fill failed",
|
|
"titleRequired": "Give your puzzle a title before publishing",
|
|
"cluesRequired": "All clues must be filled in before publishing",
|
|
"testPassed": "Test passed - puzzle solves correctly",
|
|
"testFailed": "Some answers are incorrect",
|
|
"twoLetterSlots": "{{count}} two-letter slot (min 3 letters)",
|
|
"twoLetterSlots_plural": "{{count}} two-letter slots (min 3 letters)",
|
|
"offensiveContent": "\"{{word}}\" contains offensive content",
|
|
"unpublishToDelete": "unpublish to delete",
|
|
"yesDelete": "yes, delete"
|
|
},
|
|
"admin": {
|
|
"title": "cruciverb admin",
|
|
"invalidCredentials": "Invalid credentials",
|
|
"username": "Username",
|
|
"password": "Password",
|
|
"setup": {
|
|
"title": "Create admin account",
|
|
"desc": "No admin account exists yet. Create one to get started.",
|
|
"confirmPassword": "Confirm password",
|
|
"createAccount": "Create admin account",
|
|
"usernameTooShort": "Username must be at least 3 characters",
|
|
"passwordTooShort": "Password must be at least 8 characters",
|
|
"passwordMismatch": "Passwords do not match",
|
|
"success": "Admin account created - you can now sign in.",
|
|
"failed": "Setup failed"
|
|
},
|
|
"tabs": {
|
|
"overview": "Overview",
|
|
"content": "Content",
|
|
"users": "Users",
|
|
"achievements": "Achievements",
|
|
"integrations": "Integrations",
|
|
"federation": "Federation",
|
|
"auditLog": "Audit log"
|
|
},
|
|
"overview": {
|
|
"totalUsers": "total users",
|
|
"activeToday": "{{count}} active today",
|
|
"puzzlesSolved": "puzzles solved",
|
|
"today": "{{count}} today",
|
|
"avgSolveTime": "avg solve time",
|
|
"fastest": "fastest: {{time}}",
|
|
"avgPuzzleRating": "avg puzzle rating",
|
|
"ratingCount": "{{count}} ratings",
|
|
"puzzlesGenerated": "puzzles generated",
|
|
"dailyCount": "{{count}} daily",
|
|
"communityPuzzles": "community puzzles",
|
|
"drafts": "{{count}} drafts",
|
|
"communityClues": "community clues",
|
|
"pending": "{{count}} pending",
|
|
"badgesEarned": "badges earned",
|
|
"passkeys": "passkeys",
|
|
"webhooks": "webhooks",
|
|
"solveStatsByDifficulty": "Solve stats by difficulty",
|
|
"preset": "Preset",
|
|
"solves": "Solves",
|
|
"last7Days": "Last 7 days",
|
|
"topClueContributors": "Top clue contributors",
|
|
"user": "User",
|
|
"submitted": "Submitted",
|
|
"approved": "Approved",
|
|
"rate": "Rate",
|
|
"system": "System",
|
|
"dictionaryWords": "dictionary words",
|
|
"clueDbEntries": "clue DB entries",
|
|
"crypticClues": "cryptic clues",
|
|
"cachedInMemory": "cached in memory"
|
|
},
|
|
"content": {
|
|
"puzzles": "Puzzles",
|
|
"id": "ID",
|
|
"type": "Type",
|
|
"size": "Size",
|
|
"rating": "Rating",
|
|
"created": "Created",
|
|
"random": "random",
|
|
"pendingClues": "Pending clues",
|
|
"noCluesPending": "No clues pending moderation",
|
|
"reports": "Reports",
|
|
"noPendingReports": "No pending reports",
|
|
"removeContent": "Remove content",
|
|
"blockedWords": "Blocked words",
|
|
"blockedWordsDesc": "Words added here are excluded from puzzle generation. Built-in words from the server wordlist cannot be removed from here.",
|
|
"blockedWordPlaceholder": "Word to block...",
|
|
"wordBlocked": "Word added to blocklist",
|
|
"wordBlockFailed": "Failed to add word",
|
|
"filter_all": "All",
|
|
"filter_daily": "Daily",
|
|
"filter_custom": "Custom",
|
|
"deleteSelected": "Delete selected",
|
|
"deleteSelectedMsg": "Delete {{count}} selected items? This cannot be undone.",
|
|
"puzzlesDeleted": "{{count}} puzzles deleted",
|
|
"communityPuzzles": "Community puzzles",
|
|
"noCommunityPuzzles": "No published community puzzles",
|
|
"title": "Title",
|
|
"author": "Author",
|
|
"deleteCommunityPuzzle": "Delete community puzzle",
|
|
"deleteCommunityPuzzleMsg": "Delete this community puzzle? This cannot be undone.",
|
|
"communityPuzzleDeleted": "Community puzzle deleted"
|
|
},
|
|
"users": {
|
|
"searchPlaceholder": "Search by name or token...",
|
|
"purgeInactive": "Purge inactive",
|
|
"userCount": "{{count}} users",
|
|
"name": "Name",
|
|
"solves": "Solves",
|
|
"streak": "Streak",
|
|
"lastActive": "Last active",
|
|
"created": "Created",
|
|
"status": "Status",
|
|
"banned": "banned",
|
|
"activeStatus": "active",
|
|
"ban": "Ban",
|
|
"unban": "Unban",
|
|
"banUser": "Ban user",
|
|
"banMsg": "Ban {{name}}? This removes their published content and prevents future submissions.",
|
|
"userBanned": "User banned",
|
|
"userUnbanned": "User unbanned",
|
|
"deleteSession": "Delete session",
|
|
"deleteSessionMsg": "This will remove the user session and their settings. Solve records and achievements will remain.",
|
|
"sessionDeleted": "Session deleted",
|
|
"purgeTitle": "Purge inactive sessions",
|
|
"purgeMsg": "Delete all sessions that have been inactive for more than this many days:",
|
|
"purged": "Purged {{count}} sessions"
|
|
},
|
|
"achievements": {
|
|
"badge": "Badge",
|
|
"description": "Description",
|
|
"unlockedBy": "Unlocked by",
|
|
"playerCount": "{{count}} player",
|
|
"playerCount_plural": "{{count}} players"
|
|
},
|
|
"integrations": {
|
|
"webhooks": "Webhooks",
|
|
"webhookUrl": "Webhook URL",
|
|
"signingSecret": "Signing secret",
|
|
"noWebhooks": "No webhooks configured",
|
|
"url": "URL",
|
|
"events": "Events",
|
|
"format": "Format",
|
|
"failures": "Failures",
|
|
"webhookCreated": "Webhook created",
|
|
"webhookDeleted": "Webhook deleted",
|
|
"testSent": "Test event sent",
|
|
"deleteWebhook": "Delete webhook",
|
|
"deleteWebhookMsg": "Remove this webhook? It will no longer receive events.",
|
|
"dailyPublished": "Daily puzzle published",
|
|
"puzzleCompleted": "Puzzle completed",
|
|
"achievementUnlocked": "Achievement unlocked",
|
|
"allEvents": "All events",
|
|
"environment": "Environment",
|
|
"instanceRules": "Instance rules",
|
|
"instanceRulesDesc": "Rules shown on the about page. Supports basic markdown formatting.",
|
|
"adminPathDesc": "URL path to admin panel (requires restart)",
|
|
"preview": "Preview",
|
|
"mdBold": "Bold",
|
|
"mdItalic": "Italic",
|
|
"mdHeading": "Heading",
|
|
"mdList": "Bullet list"
|
|
},
|
|
"federation": {
|
|
"status": "Status",
|
|
"active": "Active",
|
|
"notConfigured": "Not configured",
|
|
"followers": "followers",
|
|
"deliveryQueue": "delivery queue",
|
|
"inboundActivities": "inbound activities",
|
|
"outboundDeliveries": "outbound deliveries",
|
|
"blockedInstances": "blocked instances",
|
|
"frozen": "Frozen",
|
|
"federationPaused": "federation paused",
|
|
"inboxReturns503": "inbox returns 503",
|
|
"keyChanges": "key changes detected",
|
|
"checkAuditLog": "check audit log",
|
|
"controls": "Controls",
|
|
"unfreeze": "Unfreeze",
|
|
"freezeFederation": "Freeze federation",
|
|
"freezeTitle": "Freeze federation",
|
|
"unfreezeTitle": "Unfreeze federation",
|
|
"freezeMsg": "This will pause all inbound/outbound federation. Inbox returns 503, delivery and discovery workers pause.",
|
|
"unfreezeMsg": "Resume all federation activity?",
|
|
"federationFrozen": "Federation frozen",
|
|
"federationUnfrozen": "Federation unfrozen",
|
|
"frozenWarning": "Federation is frozen - inbox returns 503, delivery and discovery paused",
|
|
"allowlistMode": "Allowlist mode ON",
|
|
"followerApproval": "Follower approval ON",
|
|
"newPeerReview": "New peer review ON",
|
|
"outboxLimit": "Outbox limit: {{limit}}",
|
|
"peersTitle": "Peers",
|
|
"peerDomainPlaceholder": "Domain (e.g., other-cruciverb.example.com)",
|
|
"domain": "Domain",
|
|
"lastSeen": "Last seen",
|
|
"never": "never",
|
|
"peerConnected": "Peer connected",
|
|
"disconnectPeer": "Disconnect peer",
|
|
"disconnectMsg": "Stop federating with {{domain}}? This removes the peer and any pending deliveries.",
|
|
"peerDisconnected": "Peer disconnected",
|
|
"followersTitle": "Followers",
|
|
"approvedFollowers": "{{count}} approved follower",
|
|
"approvedFollowers_plural": "{{count}} approved followers",
|
|
"pendingApproval": "{{count}} pending approval:",
|
|
"actor": "Actor",
|
|
"requested": "Requested",
|
|
"followerApproved": "Follower approved",
|
|
"followerRejected": "Follower rejected",
|
|
"security": "Security",
|
|
"domainToBlock": "Domain to block",
|
|
"reasonOptional": "Reason (optional)",
|
|
"blocked": "Blocked",
|
|
"reason": "Reason",
|
|
"blockTitle": "Block instance",
|
|
"blockMsg": "Block {{domain}}? This removes all federated content from this domain and prevents future federation.",
|
|
"instanceBlocked": "Instance blocked",
|
|
"unblockTitle": "Unblock instance",
|
|
"unblockMsg": "Allow {{domain}} to federate again?",
|
|
"instanceUnblocked": "Instance unblocked",
|
|
"exportBlocklist": "Export blocklist",
|
|
"importBlocklist": "Import blocklist",
|
|
"importedBlocked": "Imported {{count}} blocked domains",
|
|
"reputationDomain": "Domain",
|
|
"reputationScore": "Score",
|
|
"reputationClues": "Clues",
|
|
"reputationRejected": "Rejected",
|
|
"reputationReports": "Reports",
|
|
"reputationUpdated": "Updated",
|
|
"profile": "Profile",
|
|
"actorUsername": "Actor display name",
|
|
"bio": "Bio / summary",
|
|
"bioPlaceholder": "Daily crossword puzzles in five sizes, four game modes, cryptic clues, multiplayer rooms, party games, a built-in puzzle editor for constructors, and a clue trainer for the stubborn.",
|
|
"avatar": "Avatar",
|
|
"banner": "Banner",
|
|
"saveProfile": "Save profile",
|
|
"profileSaved": "Profile saved",
|
|
"uploading": "Uploading...",
|
|
"uploadSuccess": "Image uploaded",
|
|
"uploadFailed": "Upload failed",
|
|
"configuration": "Configuration",
|
|
"activityPubTitle": "ActivityPub federation",
|
|
"activityPubSetup": "Set <code>AP_DOMAIN</code> to enable. Required env vars:",
|
|
"activityPubDomain": "your public domain",
|
|
"activityPubActor": "optional, defaults to \"cruciverb\"",
|
|
"activityPubReady": "Database tables are ready. RSA keys generate on first startup.",
|
|
"apHumor": "AP post humor",
|
|
"apHumorDesc": "Custom taglines, sign-offs, and community middles added to daily ActivityPub posts. One entry per line.",
|
|
"dailyTaglines": "Daily taglines",
|
|
"dailySignoffs": "Daily sign-offs",
|
|
"communityMiddles": "Community digest middles",
|
|
"onePerLine": "One per line...",
|
|
"humorSaved": "AP humor lines saved",
|
|
"entries": "entries"
|
|
},
|
|
"audit": {
|
|
"noEntries": "No audit log entries",
|
|
"action": "Action",
|
|
"target": "Target",
|
|
"detail": "Detail",
|
|
"time": "Time"
|
|
},
|
|
"dialog": {
|
|
"deletePuzzle": "Delete puzzle",
|
|
"deletePuzzleMsg": "This will permanently delete the puzzle and all associated solve records. This cannot be undone.",
|
|
"puzzleDeleted": "Puzzle deleted",
|
|
"reportRemoved": "Report removed",
|
|
"reportDismissed": "Report dismissed"
|
|
}
|
|
},
|
|
"history": {
|
|
"title": "Puzzle history",
|
|
"empty": "No solves yet. Complete a puzzle to see it here.",
|
|
"hint": "hint",
|
|
"hints": "hints",
|
|
"playAgain": "Play again"
|
|
},
|
|
"archive": {
|
|
"title": "Puzzle archive",
|
|
"all": "All",
|
|
"solved": "Solved",
|
|
"loadMore": "Load more",
|
|
"empty": "No daily puzzles found.",
|
|
"play": "Play"
|
|
},
|
|
"challenge": {
|
|
"todaysChallenge": "Today's challenge",
|
|
"completed": "Challenge completed - {{challenge}}",
|
|
"notMet": "Challenge not met - {{challenge}}",
|
|
"types": {
|
|
"purist": "Purist",
|
|
"speed_demon": "Speed demon",
|
|
"surgeon": "Surgeon",
|
|
"no_regrets": "No regrets",
|
|
"iron_will": "Iron will",
|
|
"trust_fall": "Trust fall",
|
|
"inkwell": "Inkwell",
|
|
"night_owl": "Night owl",
|
|
"early_bird": "Early bird",
|
|
"rush_hour": "Rush hour",
|
|
"night_shift": "Night shift",
|
|
"afternoon_tea": "Afternoon tea",
|
|
"contrarian": "Contrarian",
|
|
"sunday_stroll": "Sunday stroll",
|
|
"blitz": "Blitz",
|
|
"opera_singer": "Opera singer",
|
|
"tongue_twister": "Tongue twister",
|
|
"mic_drop": "Mic drop",
|
|
"jackrabbit": "Jackrabbit",
|
|
"metronome": "Metronome",
|
|
"quickdraw": "Quickdraw",
|
|
"bookends": "Bookends",
|
|
"long_haul": "Long haul",
|
|
"fast_fingers": "Fast fingers",
|
|
"three_in_a_row": "Three in a row",
|
|
"alphabetical": "Alphabetical",
|
|
"lucky_seven": "Lucky seven",
|
|
"even_steven": "Even Steven",
|
|
"minimalist": "Minimalist",
|
|
"overtime": "Overtime",
|
|
"no_hints": "Purist",
|
|
"clean_sweep": "Surgeon",
|
|
"first_try": "Surgeon"
|
|
},
|
|
"descriptions": {
|
|
"purist": "Solve without using any hints, reveals, or checks",
|
|
"speed_demon": "Finish before the speedrun time limit",
|
|
"surgeon": "Complete without entering a single wrong letter",
|
|
"no_regrets": "Never delete, backspace, or undo any letter",
|
|
"iron_will": "Solve without pausing",
|
|
"trust_fall": "Solve without using auto-check",
|
|
"inkwell": "Solve entirely in pen mode, never use pencil",
|
|
"night_owl": "Solve between midnight and 5am",
|
|
"early_bird": "Solve between 5am and 8am",
|
|
"rush_hour": "Solve between 12pm and 1pm",
|
|
"night_shift": "Solve between 8pm and midnight",
|
|
"afternoon_tea": "Solve between 3pm and 5pm",
|
|
"contrarian": "First cell you select must be in the bottom-right quadrant",
|
|
"sunday_stroll": "Take at least 3 minutes to solve regardless of size",
|
|
"blitz": "Solve in under 60 seconds",
|
|
"opera_singer": "At some point type 5 vowels in a row",
|
|
"tongue_twister": "At some point type 6 consonants in a row",
|
|
"mic_drop": "The final letter you type completes the puzzle",
|
|
"jackrabbit": "Fill 10 cells in the first 30 seconds",
|
|
"metronome": "Never go more than 15 seconds between typing letters",
|
|
"quickdraw": "Never spend more than 10 seconds on a single cell",
|
|
"bookends": "The first and last letter you type must both be correct",
|
|
"long_haul": "Spend at least 30 seconds studying clues before typing your first letter",
|
|
"fast_fingers": "Fill the first row completely within 20 seconds",
|
|
"three_in_a_row": "Type the same letter three times consecutively",
|
|
"alphabetical": "The first letter you type must be A, B, C, D, or E",
|
|
"lucky_seven": "Solve in exactly 7 minutes (within 10 seconds)",
|
|
"even_steven": "Your solve time in seconds must be an even number",
|
|
"minimalist": "Use fewer than 3 hint checks (not zero, but almost)",
|
|
"overtime": "Take longer than 10 minutes to solve",
|
|
"no_hints": "Solve without using any hints, reveals, or checks",
|
|
"clean_sweep": "Complete without entering a single wrong letter",
|
|
"first_try": "Complete without entering a single wrong letter"
|
|
}
|
|
},
|
|
"heatmap": {
|
|
"title": "Solve heatmap",
|
|
"show": "View heatmap",
|
|
"hide": "Hide heatmap",
|
|
"clean": "Clean",
|
|
"hinted": "Hinted",
|
|
"wrong": "Wrong"
|
|
},
|
|
"constructorAnalytics": {
|
|
"title": "Puzzle analytics",
|
|
"totalSolvers": "Total solvers",
|
|
"avgTime": "Avg solve time",
|
|
"completionRate": "Completion rate",
|
|
"hintHeatmap": "Hint heatmap",
|
|
"heatmapDesc": "Cells where solvers needed the most hints",
|
|
"noData": "No solve data yet. Wait for people to play your puzzle."
|
|
},
|
|
"trainer": {
|
|
"title": "Clue trainer",
|
|
"easy": "Easy",
|
|
"medium": "Medium",
|
|
"hard": "Hard",
|
|
"score": "{{correct}} / {{total}} correct",
|
|
"letters": "{{count}} letters",
|
|
"placeholder": "Type your answer...",
|
|
"next": "Next",
|
|
"correctMsg": "Correct!",
|
|
"wrongMsg": "Wrong - the answer was {{answer}}",
|
|
"noClues": "No clues available"
|
|
}
|
|
}
|