export const orbit = {
  triggerLabel: 'Orbit',
  triggerTooltip: '共有リスニングセッションを開始するか参加します',
  launchCreate: 'セッションを作成',
  launchJoin: 'セッションに参加',
  launchHelp: '仕組みを見る',
  launchHelpSoon: '近日対応',
  joinModalTitle: 'Orbit セッションに参加',
  joinModalSub: 'ホストから送られた招待リンクを貼り付けてください。',
  joinModalLinkLabel: '招待リンク',
  joinModalLinkPlaceholder: 'psysonic2-…',
  joinModalLinkHelper: '有効な Orbit リンクなら使用できます。現在サインインしているサーバーを指している必要があります。',
  joinModalPasteTooltip: 'クリップボードから貼り付け',
  joinModalSubmit: '参加',
  joinModalBusy: '参加中…',
  joinErrEmpty: '招待リンクを貼り付けてください。',
  joinErrInvalid: 'Orbit 招待リンクではないようです。',
  closeAria: '閉じる',
  heroTitlePrefix: '一緒に聴く',
  heroTitleBrand: 'Orbit',
  heroSub: 'セッションを開始すると、{{server}}上の他のユーザーが一緒に聴き、トラックを提案できます。',
  fallbackServer: 'このサーバー',
  tipLan: '現在、ホームネットワーク用アドレスで接続しています。ネットワーク外のゲストは参加できません。開始前に設定で公開サーバーアドレスへ切り替えてください。',
  tipRemote: '自宅ネットワーク外のゲストが参加するには、サーバーアドレスが公開到達可能である必要があります。内部専用サーバーの場合は開始前に切り替えてください。',
  labelName: 'セッション名',
  namePlaceholder: 'Velvet Orbit',
  reshuffleTooltip: '新しい提案',
  reshuffleAria: '新しい名前を提案',
  helperName: 'ゲストに表示されるセッション名です。そのままでも、自分で入力してもかまいません。',
  labelMax: '最大ゲスト数',
  helperMax: 'ホスト自身は含めず、参加するゲスト数だけを制限します。',
  labelLink: '招待リンク',
  tooltipCopied: 'コピーしました',
  tooltipCopy: 'コピー',
  ariaCopyLink: '招待リンクをコピー',
  helperLink: 'このリンクをゲストへ送ってください。ゲストは Psysonic のどこでも Ctrl+V で貼り付けられます。',
  labelClearQueue: '先に自分のキューをクリア',
  helperClearQueue: '空の新しいキューでセッションを開始します。オフの場合、すでにキューにあるトラックが残り、ゲストにも共有されます。',
  btnCancel: 'キャンセル',
  btnStarting: '開始中…',
  btnStart: 'Orbit を開始',
  btnCopyAndStart: 'リンクをコピーして開始',
  errNameRequired: 'セッション名を入力してください。',
  errStartFailed: '開始できませんでした。',
  hostLabel: 'ホスト: {{name}}',
  participantsTooltip: '参加者',
  settingsTooltip: 'セッション設定',
  shareTooltip: '招待リンクを共有',
  shuffleLabel: 'キュー再シャッフルまで',
  catchUpLabel: '追いつく',
  catchUpTooltip: 'ホストの現在位置へジャンプ',
  hostAway: 'ホストはオフライン',
  hostOnline: 'ホストはオンライン',
  endTooltip: 'セッションを終了',
  leaveTooltip: 'セッションを退出',
  helpTooltip: 'Orbit の仕組み',
  diag: {
    openTooltip: '診断: コピー可能なイベントログ',
    title: 'Orbit 診断',
    role: '役割',
    hostTrack: 'ホストのトラック ID',
    hostPos: 'ホスト位置',
    guestTrack: '自分のトラック ID',
    guestPos: '自分の位置',
    drift: 'ずれ',
    stateAge: '状態の経過時間',
    eventLog: 'イベントログ ({{count}})',
    copyLabel: 'コピー',
    copyTooltip: 'ログをクリップボードへコピー',
    clearLabel: 'クリア',
    clearTooltip: 'バッファを消去',
    empty: 'まだイベントはありません。Orbit が同期するとイベントが表示されます。',
    hint: '問題を再現する前にこれを開き、コピーをクリックしてバグ報告へ貼り付けてください。',
    copied: '{{count}} 行のイベントをコピーしました',
    copyFailed: 'クリップボードにコピーできませんでした',
    cleared: 'バッファをクリアしました',
  },
  helpTitle: 'Orbit の仕組み',
  helpIntro: 'Orbit は Psysonic を共有リスニングルームにします。ホストが音楽を選び、ゲストは同期して聴きながらトラックを提案できます。',
  helpHostOnly: '(ホスト)',
  helpSec1Title: 'Orbit とは？',
  helpSec1Body: '一緒に聴くためのモードです。ホストが再生を操作し、ゲストがそこへ同期します。すべて自分の Navidrome サーバー上のプレイリストを通じて動作し、外部インフラは使いません。',
  helpSec2Title: 'ホストとゲスト',
  helpSec2Body: 'ホストは再生操作 (再生 / 一時停止 / スキップ / シーク) とセッション終了を制御します。ゲストはホストの再生に追従し、トラックを提案し、いつでも退出または再参加できます。参加者を強制退出またはBANできるのはホストだけです。',
  helpSec2WarnHead: '重要: 別々のアカウントが必要です。',
  helpSec2WarnBody: '各参加者には自分専用の Navidrome アカウントが必要です。ホストとゲストが同じユーザーでサインインすると投稿が衝突し、ホストはゲストの提案を見られません。',
  helpSec3Title: '開始と招待',
  helpSec3Body: '"Orbit" ボタン → セッションを作成、と進むと、開始モーダルにコピー可能な招待リンクが表示されます。現在のキューをクリアするかも選べます。好きな方法でそのリンクを共有してください。セッション中は上部のセッションバーにある共有ボタンでいつでもリンクを再コピーできます。',
  helpSec4Title: '参加',
  helpSec4Body: 'Psysonic のどこでも Ctrl+V / Cmd+V で招待リンクを貼り付けると、参加確認が自動で表示されます。または "Orbit" → セッションに参加、と進んで入力欄へ貼り付けます。リンク先サーバーのアカウントを持っていれば、Psysonic が切り替えます。そのサーバーに複数アカウントがある場合は、使用するアカウントを選ぶメニューが表示されます。',
  helpSec5Title: 'トラック提案',
  helpSec5Body: '任意の曲リストで、行をダブルクリックするか、右クリック → "Orbit セッションに追加" を選びます。シングルクリックではアルバム全体を共有キューへ入れず、ヒントだけを表示します。これは仕様です。"すべて再生" や "アルバムを再生" のような明示的な一括操作は先に確認し、その後に追加します (置き換えはしません)。',
  helpSec6Title: '共有キュー',
  helpSec6Body: 'キューにはホストの次のトラックが表示され、全員に見えます。一括追加は常に末尾へ追加されるため、ゲストの提案は失われません。自動シャッフルは定期的にキューを並べ替えます (設定可能: 1 / 5 / 10 / 15 / 30 分)。再生がホストからずれた場合、セッションバーの "追いつく" ボタンでホストの現在位置へ戻れます。',
  helpSec7Title: '承認',
  helpSec7Body: '既定では、ゲストの提案は手動承認が必要です。キューパネル上部の "承認待ち" ストリップに表示され、承認 / 却下できます。セッション設定で自動承認をオンにすると、すべてすぐキューへ入ります。',
  helpSec8Title: '参加者と設定',
  helpSec8Body: 'セッションバーの設定アイコンから、シャッフル間隔、自動承認、"今すぐシャッフル" ショートカットを開けます。参加者数をクリックすると接続中の人を確認できます。強制退出 (リンクから再参加可能) またはBAN (セッション中は再参加不可) が可能です。ゲストも参加者一覧を見られますが、読み取り専用です。',
  helpSec9Title: 'セッション終了',
  helpSec9Body: 'ホストが X を押して確認すると、セッションは全員に対して閉じられ、サーバー上のプレイリストは自動で片付けられます。ゲストが X を押すと、そのゲストだけ退出し、セッションは続きます。ホストが 5 分間応答しない場合、ゲストは通知付きで自動退出します。その範囲内の短い再接続は表示されません。',
  participantsInviteLabel: '招待リンク',
  participantsCountLabel: 'セッション内 {{count}} 人',
  participantsHost: 'ホスト',
  participantsEmpty: 'まだゲストはいません',
  participantsKickTooltip: 'セッションから削除',
  participantsKickAria: '{{user}} を削除',
  participantsRemoveTooltip: 'セッションから削除',
  participantsRemoveAria: '{{user}} をこのセッションから削除',
  participantsBanTooltip: 'BAN',
  participantsBanAria: '{{user}} をBAN',
  participantsMuteTooltip: '提案をミュート',
  participantsUnmuteTooltip: '提案を許可',
  participantsMuteAria: '{{user}} からの提案をミュート',
  participantsUnmuteAria: '{{user}} からの提案を許可',
  confirmRemoveTitle: 'セッションから削除しますか？',
  confirmRemoveBody: '{{user}} はセッションから外されますが、招待リンクから再参加できます。',
  confirmRemoveConfirm: '削除',
  confirmBanTitle: 'BANしますか？',
  confirmBanBody: '{{user}} はこのセッションから削除され、再参加できなくなります。セッションが続く間は取り消せません。',
  confirmBanConfirm: 'BAN',
  confirmCancel: 'キャンセル',
  confirmJoinTitle: 'Orbit セッションに参加しますか？',
  confirmJoinBody: '{{host}} が "{{name}}" に招待しています。参加しますか？',
  confirmJoinConfirm: '参加',
  confirmLeaveTitle: 'セッションを退出しますか？',
  confirmLeaveBody: '"{{name}}" から退出しますか？{{host}} の招待リンクからいつでも再参加できます。',
  confirmLeaveConfirm: '退出',
  confirmEndTitle: '全員のセッションを終了しますか？',
  confirmEndBody: '"{{name}}" はすべての参加者に対して閉じられます。セッションのプレイリストは自動で片付けられます。',
  confirmEndConfirm: 'セッションを終了',
  invalidLinkTitle: '招待リンクはもう有効ではありません',
  invalidLinkBody: 'この Orbit セッションは存在しないか、すでに終了しています。ホストに新しい招待リンクを依頼してください。',
  settingsTitle: 'セッション設定',
  settingAutoApprove: '提案を自動承認',
  settingAutoApproveHint: 'ゲストの提案が即座にキューへ入ります。オフの場合、後で確認できるようセッション一覧に残ります。',
  settingAutoShuffle: '自動再シャッフル',
  settingAutoShuffleHint: '次のキューを定期的に Fisher-Yates シャッフルします。オフの場合、手動で並べ替えたときだけ順序が変わります。',
  settingShuffleInterval: '再シャッフル間隔',
  settingShuffleIntervalHint: 'セッション中、次のキューをどの頻度で再シャッフルするかです。',
  suggestBlockedMuted: 'ホストがこのセッションであなたからの提案をミュートしました。提案はオフです。',
  settingShuffleIntervalValue_one: '{{count}} 分',
  settingShuffleIntervalValue_other: '{{count}} 分',
  settingShuffleNow: '今すぐシャッフル',
  toastSuggested: '{{user}} が "{{title}}" を提案しました',
  toastSuggestedMany: 'キューに {{count}} 件の新しい提案',
  toastSuggestLost: 'あなたの提案がホストに届かなかった可能性があります',
  toastShuffled: 'キューをシャッフルしました',
  toastJoined: 'セッションに参加しました',
  toastLoginFirst: 'セッション参加前にログインしてください',
  toastSwitchServer: '先に {{url}} へ切り替えてから、もう一度貼り付けてください',
  toastNoAccountForServer: '{{url}} へのアクセス権がありません。ホストに招待を依頼してください。',
  toastSwitchFailed: '{{url}} へ切り替えられませんでした',
  accountPickerTitle: 'どのアカウントを使いますか？',
  accountPickerSub: '{{url}} に複数のアカウントがあります。セッションに参加するアカウントを選んでください。',
  toastJoinFail: 'セッションに参加できませんでした',
  joinErrNotFound: 'セッションが見つかりません',
  joinErrEnded: 'セッションは終了しました',
  joinErrFull: 'セッションは満員です',
  joinErrKicked: 'このセッションには再参加できません',
  joinErrNoUser: '有効なサーバーがありません',
  joinErrServerError: '参加できませんでした',
  ctxAddToSession: 'Orbit セッションに追加',
  ctxSuggestedToast: 'セッションへ提案しました',
  ctxSuggestFailed: '提案できませんでした。セッションに参加していません',
  ctxAddToSessionHost: 'Orbit セッションに追加',
  ctxAddedHostToast: 'セッションへ追加しました',
  ctxAddHostFailed: 'セッションへ追加できませんでした',
  bulkConfirmTitle: '選択した項目をすべて Orbit キューへ追加しますか？',
  bulkConfirmBody: '共有キューへ {{count}} 曲を一度に追加します。ゲストにはかなり多い量です。続行しますか？',
  bulkConfirmYes: 'すべて追加',
  bulkConfirmNo: 'キャンセル',
  guestLive: 'ライブ',
  guestPlaying: '再生中',
  guestPaused: '一時停止',
  guestLoading: '読み込み中…',
  guestSuggestions: '提案',
  guestUpNext: '次に再生',
  guestUpNextEmpty: 'キューは空です。トラックのコンテキストメニューから "Orbit セッションに追加" を選んで提案できます。',
  guestPendingTitle: 'ホスト待ち',
  guestPendingHint: '提案済みです。ホストが取り込むとキューに表示されます。',
  approvalTitle: '承認待ち',
  approvalFrom: '{{user}} からの提案',
  approvalAccept: '承認',
  approvalDecline: '却下',
  guestUpNextMore: '+ ホストのキューにさらに {{count}} 件',
  guestSubmitter: '{{user}} より',
  queueAddedByHost: 'ホストが追加',
  queueAddedByYou: 'あなたが追加',
  queueAddedByUser: '{{user}} が追加',
  guestEmpty: '提案はまだありません。トラックのコンテキストメニューから "Orbit セッションに追加" を選んでください。',
  guestFooter: '再生はホストが制御しています。ゲストはリストを変更できません。',
  exitKickedTitle: 'セッションからBANされました',
  exitRemovedTitle: 'セッションから削除されました',
  exitEndedTitle: 'ホストがセッションを終了しました',
  exitHostTimeoutTitle: 'ホストが応答していません',
  exitHostTimeoutBody: '{{host}} からしばらく更新が送られてこないため、この端末で "{{name}}" を閉じました。招待リンクからいつでも再参加できます。',
  exitKickedBody: '{{host}} が "{{name}}" であなたをBANしました。再参加はできません。',
  exitRemovedBody: '{{host}} が "{{name}}" からあなたを削除しました。招待リンクからいつでも再参加できます。',
  exitEndedBody: '"{{name}}" は終了しました。',
  exitOk: 'OK',
};
