{ "title": "Settings", "tabs": { "appearance": "Appearance", "notifications": "Notifications", "sync": "Sync", "account": "Account" }, "appearance": { "colorScheme": "Color scheme", "display": "Display", "darkMode": "Dark mode", "listView": "List view", "listViewHint": "Show the feed as a compact list instead of a grid of cards.", "performanceMode": "Performance mode", "performanceModeHint": "Turns off the translucent glass blur and soft shadows for snappier rendering on slower machines.", "showHints": "Show hints", "showHintsHint": "These little hover explanations. Turn them off once you know your way around.", "textSize": "Text size" }, "notifications": { "title": "Notifications", "sound": "Sound on alerts", "soundHint": "Play a short tone when a notification needs your attention (e.g. errors, prompts).", "autoDismiss": "Auto-dismiss toasts", "autoDismissHint": "When off, pop-up toasts stay until you close them. When on, they fade after the set time.", "dismissAfter": "Dismiss after", "sendTest": "Send a test notification", "testTitle": "Test notification", "testMessage": "This is what a notification looks like." }, "sync": { "myStatus": "My sync status", "channels": "Channels", "channelsHint": "How many channels you're subscribed to.", "recentSynced": "Recent synced", "recentSyncedHint": "Channels whose recent uploads (~last year) are already in the local database, so they show in your feed.", "fullHistory": "Full history", "fullHistoryHint": "Channels whose entire back-catalog has been fetched, out of the ones you've requested full history for (opt in per channel on the Channels page).", "fullHistoryEta": "Full history ETA", "fullHistoryEtaHint": "Rough estimate to finish full-history backfill of {{count}} pending channel(s), based on the shared daily quota.", "myVideos": "My videos", "myVideosHint": "Total videos available to you across your subscribed channels.", "quotaLeft": "Quota left today", "quotaLeftHint": "Shared YouTube API budget remaining today (resets midnight US Pacific). Backfill yields to it.", "loading": "Loading…", "apiUsage": "Your API usage", "today": "Today", "todayHint": "YouTube API units your own actions used today (resets midnight US Pacific). Background sync isn't counted here.", "last7d": "Last 7 days", "last30d": "Last 30 days", "allTime": "All time", "byAction": "By action (30d)", "noUsage": "No usage yet.", "actions": "Actions", "syncSubscriptions": "Sync subscriptions", "syncSubscriptionsHint": "Re-import your YouTube subscriptions and pull in any newly-followed channels.", "backfillEverything": "Backfill everything", "backfillEverythingHint": "Request full back-catalog backfill for every channel you're subscribed to. Older videos + complete search fill in as the shared daily quota allows.", "synced": "Synced {{count}} subscriptions", "syncFailed": "Sync failed", "fullHistoryRequested": "Full history requested for {{count}} channels", "fullHistoryFailed": "Couldn't request full history", "admin": "Admin", "adminPauseHint": "Pause or resume the background sync for the whole app (all users).", "resumeBackgroundSync": "Resume background sync", "pauseBackgroundSync": "Pause background sync" }, "account": { "title": "Account", "youtubeAccess": "YouTube access", "youtubeAccessIntro": "Sign-in only shares your name and email. YouTube access is granted separately, below — each is optional and revocable anytime in your Google Account.", "readTitle": "Read subscriptions (your feed)", "readGrantedHint": "Granted. Siftlode reads the channels you follow to build your feed. It never changes your YouTube account with this.", "readEnableHint": "Read-only access to your subscriptions — required to build your feed. Siftlode can't modify anything with it.", "writeTitle": "Unsubscribe (write)", "writeGrantedHint": "Granted. You can unsubscribe from channels on YouTube from inside Siftlode. It only writes when you ask it to.", "writeEnableHint": "Lets Siftlode unsubscribe from channels on YouTube for you. Optional — skip it to stay read-only.", "granted": "Granted", "enable": "Enable", "enableHint": "Redirects to Google to grant the permission. Google shows an 'unverified app' notice — that's expected; click Advanced → Go to Siftlode.", "walkMeThrough": "Walk me through setup", "demoNotice": "This is the shared demo account. It has no YouTube connection — you can browse the whole shared library, filter and sort it, build playlists and try things out, but nothing touches a real YouTube account." }, "demo": { "title": "Demo access", "intro": "Emails here can enter the shared demo account straight from the login page — no Google sign-in. They just type the address into the field and are let in after a moment.", "addPlaceholder": "Whitelist an email for demo…", "add": "Add", "added": "Added to the demo whitelist", "addFailed": "Couldn't add that email", "removeFailed": "Couldn't remove that email", "remove": "Remove", "removeHint": "Remove this email from the demo whitelist.", "addedBy": "added by {{who}}", "reset": "Reset demo state", "resetHint": "Wipe the demo account's playlists, hidden/watched/saved videos and settings, then re-seed a few sample playlists.", "resetTitle": "Reset demo state?", "resetConfirm": "This clears everything the demo account has accumulated — playlists, hidden/watched/saved videos and settings — and re-seeds a few sample playlists. It can't be undone.", "resetDone": "Demo reset — {{count}} sample playlist(s) seeded", "resetFailed": "Couldn't reset the demo account" }, "invites": { "title": "Access requests", "noPending": "No pending requests.", "addPlaceholder": "Add an email directly…", "add": "Add", "decided": "{{count}} decided", "approved": "Approved — they can sign in now", "approveFailed": "Approve failed", "denyFailed": "Deny failed", "addedToWhitelist": "Added to the whitelist", "addFailed": "Couldn't add that email", "requested": "requested {{time}}", "approveHint": "Approve — whitelist this email and email them they're in.", "approve": "Approve", "denyHint": "Deny this request.", "deny": "Deny" } }