{ "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 Auto-fill to populate words and clues.", "emptyHint2": "Or switch to Fill mode to type your own words, then click Clues 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 AP_DOMAIN 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" } }