export const orbit = {
  triggerLabel: 'Orbit',
  triggerTooltip: 'Start or join a shared listening session',
  launchCreate: 'Create a session',
  launchJoin: 'Join a session',
  launchHelp: 'How does this work?',
  launchHelpSoon: 'Coming soon',
  joinModalTitle: 'Join an Orbit session',
  joinModalSub: 'Paste the invite link your host sent you.',
  joinModalLinkLabel: 'Invite link',
  joinModalLinkPlaceholder: 'psysonic2-…',
  joinModalLinkHelper: 'Works with any valid Orbit link. Must point to the server you\'re currently signed into.',
  joinModalPasteTooltip: 'Paste from clipboard',
  joinModalSubmit: 'Join',
  joinModalBusy: 'Joining…',
  joinErrEmpty: 'Please paste an invite link.',
  joinErrInvalid: 'That doesn\'t look like an Orbit invite link.',
  closeAria: 'Close',
  heroTitlePrefix: 'Listen together with',
  heroTitleBrand: 'Orbit',
  heroSub: 'Start a session — other users on {{server}} will listen along and can suggest tracks.',
  fallbackServer: 'this server',
  tipLan: "You're currently connected via a home-network address. Guests outside your network can't join — switch to a public server address in settings before you start.",
  tipRemote: 'For guests outside your home network to join, your server address has to be publicly reachable. If your server is internal only, switch before you start.',
  labelName: 'Session name',
  namePlaceholder: 'Velvet Orbit',
  reshuffleTooltip: 'New suggestion',
  reshuffleAria: 'Suggest a new name',
  helperName: 'How the session shows up to your guests — keep it or type your own.',
  labelMax: 'Max guests',
  helperMax: "You don't count — this only caps incoming guests.",
  labelLink: 'Invite link',
  tooltipCopied: 'Copied',
  tooltipCopy: 'Copy',
  ariaCopyLink: 'Copy invite link',
  helperLink: 'Send this link to your guests. They can paste it anywhere in Psysonic with Ctrl+V.',
  labelClearQueue: 'Clear my queue first',
  helperClearQueue: 'Start the session with a fresh, empty queue. Off: the tracks you already have queued stay and get shared with guests.',
  btnCancel: 'Cancel',
  btnStarting: 'Starting…',
  btnStart: 'Start Orbit',
  btnCopyAndStart: 'Copy link & start',
  errNameRequired: 'Please give your session a name.',
  errStartFailed: "Couldn't start.",
  hostLabel: 'Host: {{name}}',
  participantsTooltip: 'Participants',
  settingsTooltip: 'Session settings',
  shareTooltip: 'Share invite link',
  shuffleLabel: 'Queue reshuffles in',
  catchUpLabel: 'catch up',
  catchUpTooltip: "Jump to the host's current position",
  hostAway: 'Host offline',
  hostOnline: 'Host online',
  endTooltip: 'End session',
  leaveTooltip: 'Leave session',
  helpTooltip: 'How Orbit works',
  diag: {
    openTooltip: 'Diagnostics — copyable event log',
    title: 'Orbit diagnostics',
    role: 'Role',
    hostTrack: 'Host track id',
    hostPos: 'Host position',
    guestTrack: 'My track id',
    guestPos: 'My position',
    drift: 'Drift',
    stateAge: 'State age',
    eventLog: 'Event log ({{count}})',
    copyLabel: 'Copy',
    copyTooltip: 'Copy log to clipboard',
    clearLabel: 'Clear',
    clearTooltip: 'Wipe the buffer',
    empty: 'No events yet — events appear as Orbit syncs.',
    hint: 'Open this before reproducing a problem, then click Copy and paste into the bug report.',
    copied: 'Copied {{count}} event lines',
    copyFailed: 'Could not copy to clipboard',
    cleared: 'Buffer cleared',
  },
  helpTitle: 'How Orbit works',
  helpIntro: 'Orbit turns Psysonic into a shared listening room. A host picks the music; guests listen in sync and can suggest tracks.',
  helpHostOnly: '(host)',
  helpSec1Title: 'What is Orbit?',
  helpSec1Body: "A \"listen together\" mode — the host drives playback, guests tune in. Everything runs through playlists on your own Navidrome server; no external infrastructure.",
  helpSec2Title: 'Host and guests',
  helpSec2Body: 'Host controls playback (play / pause / skip / seek) and decides when the session ends. Guests follow the host\'s playback, can suggest tracks, and leave or re-join any time. Only the host can kick or permanently ban a participant.',
  helpSec2WarnHead: 'Important: separate accounts.',
  helpSec2WarnBody: "Every participant needs their own Navidrome account. If host and guest sign in with the same user their submissions collide and the host never sees the guest's suggestions.",
  helpSec3Title: 'Starting and inviting',
  helpSec3Body: 'Click the "Orbit" button → Create a session → the start modal shows a ready-to-copy invite link and lets you optionally clear your current queue. Share that link however you like. While a session is running, the share button in the session bar at the top copies the link again at any time.',
  helpSec4Title: 'Joining',
  helpSec4Body: 'Paste the invite link anywhere in Psysonic with Ctrl+V / Cmd+V — the join prompt pops up automatically. Alternatively: "Orbit" → Join a session → paste into the field. If the link points to a server you have an account on, Psysonic switches for you. When you have more than one account on that server, a small picker asks which to use.',
  helpSec5Title: 'Suggesting tracks',
  helpSec5Body: 'In any song list: double-click a row, or right-click → "Add to Orbit session". A single click shows a hint instead of dumping the whole album into the shared queue — that\'s intentional. Explicit bulk actions like "Play All" or "Play Album" ask for confirmation first and then append (never replace).',
  helpSec6Title: 'The shared queue',
  helpSec6Body: "The queue shows the host's upcoming tracks — visible to everyone. Incoming bulk additions are always appended, so guest suggestions aren't lost. Auto-shuffle reorders the queue periodically (configurable: 1 / 5 / 10 / 15 / 30 min). If your playback drifts away from the host, the \"Catch up\" button in the session bar jumps you back to the host's live position.",
  helpSec7Title: 'Approvals',
  helpSec7Body: 'By default, guest suggestions need manual approval — they appear in an "Approvals" strip at the top of the queue panel with accept / decline buttons. Auto-approve can be turned on in the session settings so everything lands straight away.',
  helpSec8Title: 'Participants and settings',
  helpSec8Body: 'Open the settings icon in the session bar for shuffle cadence, auto-approve, and the "Shuffle now" shortcut. Click the participants count to see who\'s connected — kick (can re-join via the link) or ban (locked out for the session). Guests see the participant list too, but read-only.',
  helpSec9Title: 'Ending the session',
  helpSec9Body: "Host X → confirm dialog → session closes for everyone and the server playlists are cleaned up automatically. Guest X → the guest leaves, the session keeps running. If the host goes quiet for 5 minutes the guest auto-leaves with a notice; short reconnects within that window are invisible.",
  participantsInviteLabel: 'Invite link',
  participantsCountLabel: '{{count}} in session',
  participantsHost: 'host',
  participantsEmpty: 'No guests yet',
  participantsKickTooltip: 'Remove from session',
  participantsKickAria: 'Remove {{user}}',
  participantsRemoveTooltip: 'Remove from session',
  participantsRemoveAria: 'Remove {{user}} from this session',
  participantsBanTooltip: 'Ban permanently',
  participantsBanAria: 'Permanently ban {{user}}',
  participantsMuteTooltip: 'Mute suggestions',
  participantsUnmuteTooltip: 'Allow suggestions',
  participantsMuteAria: 'Mute suggestions from {{user}}',
  participantsUnmuteAria: 'Allow suggestions from {{user}}',
  confirmRemoveTitle: 'Remove from session?',
  confirmRemoveBody: '{{user}} will be dropped from the session, but can re-join via your invite link.',
  confirmRemoveConfirm: 'Remove',
  confirmBanTitle: 'Permanently ban?',
  confirmBanBody: '{{user}} will be removed and blocked from re-joining this session. This can\'t be undone for the lifetime of the session.',
  confirmBanConfirm: 'Ban',
  confirmCancel: 'Cancel',
  confirmJoinTitle: 'Join Orbit session?',
  confirmJoinBody: '{{host}} invited you to "{{name}}". Join the session?',
  confirmJoinConfirm: 'Join',
  confirmLeaveTitle: 'Leave session?',
  confirmLeaveBody: 'Leave "{{name}}"? You can re-join via {{host}}\'s invite link any time.',
  confirmLeaveConfirm: 'Leave',
  confirmEndTitle: 'End session for everyone?',
  confirmEndBody: '"{{name}}" will close for all participants. The session\'s playlists are cleaned up automatically.',
  confirmEndConfirm: 'End session',
  invalidLinkTitle: 'Invite link is no longer valid',
  invalidLinkBody: 'This Orbit session doesn\'t exist any more or has already ended. Ask the host for a fresh invite link.',
  settingsTitle: 'Session settings',
  settingAutoApprove: 'Auto-approve suggestions',
  settingAutoApproveHint: "Guest suggestions land in your queue instantly. Off: they stay in the session list for you to review later.",
  settingAutoShuffle: 'Automatic reshuffle',
  settingAutoShuffleHint: "Periodic Fisher–Yates shuffle of the upcoming queue. Off: order only changes when you rearrange it.",
  settingShuffleInterval: 'Reshuffle every',
  settingShuffleIntervalHint: 'How often the upcoming queue gets reshuffled while the session runs.',
  suggestBlockedMuted: 'The host muted you for this session — suggestions are off.',
  settingShuffleIntervalValue_one: '{{count}} min',
  settingShuffleIntervalValue_other: '{{count}} min',
  settingShuffleNow: 'Shuffle now',
  toastSuggested: '{{user}} suggested "{{title}}"',
  toastSuggestedMany: '{{count}} new suggestions in the queue',
  toastShuffled: 'Queue shuffled',
  toastJoined: 'Joined session',
  toastLoginFirst: 'Log in before joining a session',
  toastSwitchServer: 'Switch to {{url}} first, then paste again',
  toastNoAccountForServer: "You don't have access to {{url}}. Ask the host for an invite.",
  toastSwitchFailed: "Couldn't switch to {{url}}",
  accountPickerTitle: 'Which account?',
  accountPickerSub: 'You have more than one account for {{url}}. Pick the one to join the session as.',
  toastJoinFail: "Couldn't join session",
  joinErrNotFound: 'Session not found',
  joinErrEnded: 'Session has ended',
  joinErrFull: 'Session is full',
  joinErrKicked: "You can't rejoin this session",
  joinErrNoUser: 'No active server',
  joinErrServerError: "Couldn't join",
  ctxAddToSession: 'Add to Orbit session',
  ctxSuggestedToast: 'Suggested to the session',
  ctxSuggestFailed: "Couldn't suggest — not joined",
  ctxAddToSessionHost: 'Add to Orbit session',
  ctxAddedHostToast: 'Added to the session',
  ctxAddHostFailed: "Couldn't add to session",
  bulkConfirmTitle: 'Add all of this to the Orbit queue?',
  bulkConfirmBody: "This would drop {{count}} tracks into the shared queue in one go. That's a lot for your guests to notice. Go ahead?",
  bulkConfirmYes: 'Add them all',
  bulkConfirmNo: 'Cancel',
  guestLive: 'Live',
  guestPlaying: 'Playing now',
  guestPaused: 'Paused',
  guestLoading: 'Loading…',
  guestSuggestions: 'Suggestions',
  guestUpNext: 'Up next',
  guestUpNextEmpty: 'Nothing queued. Open a track\'s context menu and pick "Add to Orbit session" to suggest one.',
  guestPendingTitle: 'Waiting for host',
  guestPendingHint: 'Suggested — will appear in the queue when the host picks it up.',
  approvalTitle: 'Pending approvals',
  approvalFrom: 'Suggested by {{user}}',
  approvalAccept: 'Accept',
  approvalDecline: 'Decline',
  guestUpNextMore: '+ {{count}} more in the host\'s queue',
  guestSubmitter: 'by {{user}}',
  queueAddedByHost: 'Added by host',
  queueAddedByYou: 'Added by you',
  queueAddedByUser: 'Added by {{user}}',
  guestEmpty: 'No suggestions yet. Open a track\'s context menu and pick "Add to Orbit session".',
  guestFooter: "The host controls playback — you can't change the list.",
  exitKickedTitle: 'You were banned from the session',
  exitRemovedTitle: 'You were removed from the session',
  exitEndedTitle: 'The host ended the session',
  exitHostTimeoutTitle: 'Host went silent',
  exitHostTimeoutBody: "{{host}} hasn't sent an update for a while, so \"{{name}}\" was closed on your end. You can re-join any time with the invite link.",
  exitKickedBody: '{{host}} banned you from "{{name}}". You can\'t re-join.',
  exitRemovedBody: '{{host}} removed you from "{{name}}". You can re-join any time via the invite link.',
  exitEndedBody: '"{{name}}" has ended. Hope you had fun.',
  exitOk: 'OK',
};
