diff --git a/frontend/src/components/TimeSyncNotice.tsx b/frontend/src/components/TimeSyncNotice.tsx index 119284e..364ec03 100644 --- a/frontend/src/components/TimeSyncNotice.tsx +++ b/frontend/src/components/TimeSyncNotice.tsx @@ -83,8 +83,8 @@ export default function TimeSyncNotice({ const msgJa = error ? `時刻同期に失敗しました: ${error}` : ahead - ? `端末の時計が正確な時刻より ${formatDelay(skewVal)} 進んでいます(通信往復遅延 ${rttMs ?? "-"}ms)` - : `端末の時計が正確な時刻より ${formatDelay(-skewVal)} 遅れています(通信往復遅延 ${rttMs ?? "-"}ms)`; + ? `端末の時計が基準時刻より ${formatDelay(skewVal)} 進んでいます(往復遅延 ${rttMs ?? "-"}ms)` + : `端末の時計が基準時刻より ${formatDelay(-skewVal)} 遅れています(往復遅延 ${rttMs ?? "-"}ms)`; const msgEn = error ? `Time sync failed: ${error}` : ahead diff --git a/frontend/src/components/Timer.tsx b/frontend/src/components/Timer.tsx index 880cec0..bd128bd 100644 --- a/frontend/src/components/Timer.tsx +++ b/frontend/src/components/Timer.tsx @@ -98,7 +98,7 @@ export default function Timer() { setLoaded(true); setErrorMsg("Failed to load schedule; using defaults."); logApiError("loadSchedule", e); - toastError("スケジュール取得に失敗しました", e instanceof Error ? e.message : String(e || "")); + toastError("スケジュールを取得できませんでした", e instanceof Error ? e.message : String(e || "")); } }, [applySchedule]); @@ -203,7 +203,7 @@ export default function Timer() { {/* show time endpoint error */} - {timeError &&
時刻取得エラー: {timeError}
} + {timeError &&
時刻の取得に失敗しました: {timeError}
} {/* Hero digits */}
@@ -229,10 +229,10 @@ export default function Timer() { {/* Sub status line */} {loaded && phase === "waiting" && ( -
再生開始まで {formatHMS(untilStart)}
+
再生開始まであと {formatHMS(untilStart)}
)} {loaded && phase === "ended" && ( -
再生終了。 開始 {startLabel} JST.
+
再生は {startLabel} JST に開始しました。
)} {errorMsg && (
diff --git a/frontend/src/pages/ShowsPage.tsx b/frontend/src/pages/ShowsPage.tsx index a5ec223..1500ca0 100644 --- a/frontend/src/pages/ShowsPage.tsx +++ b/frontend/src/pages/ShowsPage.tsx @@ -66,10 +66,10 @@ export default function ShowsPage() { data.sort((a, b) => a.id - b.id); // ASC setShows(data); } catch (e: unknown) { - const msg = e instanceof Error ? e.message : "番組一覧の取得に失敗しました。"; + const msg = e instanceof Error ? e.message : "番組一覧を取得できませんでした。"; setError(msg); logApiError("fetch shows", e); - toastError("番組一覧の取得に失敗しました", msg); + toastError("番組一覧を取得できませんでした", msg); } finally { setLoading(false); } @@ -94,13 +94,13 @@ export default function ShowsPage() { if (!selectedId) { setError("エピソードを選択してください。"); return; } const selected = shows.find(s => s.id === selectedId); - if (!selected) { setError("選択中のエピソードが見つかりません。"); return; } + if (!selected) { setError("選択中のエピソードが見つかりませんでした。"); return; } const payload: { id: number; start_time?: string } = { id: selectedId }; if (startTime.trim()) { const normalized = toHHMMSS(startTime); - if (!normalized) { setError("開始時刻は HH:MM の形式で入力してください。"); return; } + if (!normalized) { setError("開始時刻は HH:MM 形式で入力してください。"); return; } payload.start_time = normalized; } else { payload.start_time = selected.start_time; @@ -118,10 +118,10 @@ export default function ShowsPage() { else setRedirectIn(left); }, 250); } catch (e: unknown) { - const msg = e instanceof Error ? e.message : "現在のエピソード設定に失敗しました。"; + const msg = e instanceof Error ? e.message : "現在のエピソードを設定できませんでした。"; setError(msg); logApiError("set current episode", e); - toastError("現在のエピソード設定に失敗しました", msg); + toastError("現在のエピソードを設定できませんでした", msg); } finally { setPosting(false); } @@ -131,7 +131,7 @@ export default function ShowsPage() {

エピソード一覧

- エピソードを選択し、必要であれば開始時刻(HH:MM)を入力して「現在のエピソードに設定」を押してください。 + エピソードを選び、必要に応じて開始時刻(HH:MM)を入力し、「現在のエピソードに設定」を押してください。

{loading &&
読み込み中…
} @@ -160,7 +160,7 @@ export default function ShowsPage() {
第{s.ep_num}話:{s.ep_title}
{s.season_name}
- 開始 {s.start_time.slice(0, 5)}・長さ {formatPlaybackLen(s.playback_length)} + 開始時刻 {s.start_time.slice(0, 5)}・再生時間 {formatPlaybackLen(s.playback_length)}
))}