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}} 件の新しい提案', 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', };