diff --git a/src/i18n/lang/en-US/player.ts b/src/i18n/lang/en-US/player.ts index 17894a3..9ad870b 100644 --- a/src/i18n/lang/en-US/player.ts +++ b/src/i18n/lang/en-US/player.ts @@ -17,6 +17,7 @@ export default { parseFailedPlayNext: 'Song parsing failed, playing next', consecutiveFailsError: 'Playback error, possibly due to network issues or invalid source. Please switch playlist or try again later', + playListEnded: 'Reached the end of the playlist', playMode: { sequence: 'Sequence', loop: 'Loop', diff --git a/src/i18n/lang/ja-JP/player.ts b/src/i18n/lang/ja-JP/player.ts index 105979a..9ed791e 100644 --- a/src/i18n/lang/ja-JP/player.ts +++ b/src/i18n/lang/ja-JP/player.ts @@ -17,6 +17,7 @@ export default { parseFailedPlayNext: '楽曲の解析に失敗しました。次の曲を再生します', consecutiveFailsError: '再生エラーが発生しました。ネットワークの問題または無効な音源の可能性があります。プレイリストを切り替えるか、後でもう一度お試しください', + playListEnded: 'プレイリストの最後に到達しました', playMode: { sequence: '順次再生', loop: 'リピート再生', diff --git a/src/i18n/lang/ko-KR/player.ts b/src/i18n/lang/ko-KR/player.ts index 8024aba..1aca69b 100644 --- a/src/i18n/lang/ko-KR/player.ts +++ b/src/i18n/lang/ko-KR/player.ts @@ -17,6 +17,7 @@ export default { parseFailedPlayNext: '곡 분석 실패, 다음 곡 재생', consecutiveFailsError: '재생 오류가 발생했습니다. 네트워크 문제 또는 유효하지 않은 음원일 수 있습니다. 재생 목록을 변경하거나 나중에 다시 시도하세요', + playListEnded: '재생 목록의 마지막 곡에 도달했습니다', playMode: { sequence: '순차 재생', loop: '한 곡 반복', diff --git a/src/i18n/lang/zh-CN/player.ts b/src/i18n/lang/zh-CN/player.ts index 961e9f9..f795d09 100644 --- a/src/i18n/lang/zh-CN/player.ts +++ b/src/i18n/lang/zh-CN/player.ts @@ -16,6 +16,7 @@ export default { playFailed: '当前歌曲播放失败,播放下一首', parseFailedPlayNext: '歌曲解析失败,播放下一首', consecutiveFailsError: '播放遇到错误,可能是网络波动或解析源失效,请切换播放列表或稍后重试', + playListEnded: '已播放到列表最后一首', playMode: { sequence: '顺序播放', loop: '单曲循环', diff --git a/src/i18n/lang/zh-Hant/player.ts b/src/i18n/lang/zh-Hant/player.ts index c992aea..9864d02 100644 --- a/src/i18n/lang/zh-Hant/player.ts +++ b/src/i18n/lang/zh-Hant/player.ts @@ -16,6 +16,7 @@ export default { playFailed: '目前歌曲播放失敗,播放下一首', parseFailedPlayNext: '歌曲解析失敗,播放下一首', consecutiveFailsError: '播放遇到錯誤,可能是網路波動或解析源失效,請切換播放清單或稍後重試', + playListEnded: '已播放到列表最後一首', playMode: { sequence: '順序播放', loop: '單曲循環', diff --git a/src/renderer/assets/css/base.css b/src/renderer/assets/css/base.css index dd1a6bd..5ee29e3 100644 --- a/src/renderer/assets/css/base.css +++ b/src/renderer/assets/css/base.css @@ -18,3 +18,115 @@ body { .settings-slider .n-slider-mark { font-size: 10px !important; } + +/* ==================== 桌面端 Message 样式 ==================== */ + +.n-message { + border-radius: 20px !important; + padding: 10px 18px !important; + font-size: 13px !important; + backdrop-filter: blur(16px) saturate(1.8) !important; + -webkit-backdrop-filter: blur(16px) saturate(1.8) !important; + box-shadow: + 0 4px 24px rgba(0, 0, 0, 0.08), + 0 0 0 1px rgba(255, 255, 255, 0.05) !important; + border: none !important; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; +} + +/* 浅色模式 */ +.n-message { + background: rgba(255, 255, 255, 0.72) !important; + color: #1a1a1a !important; +} + +/* 深色模式 */ +.dark .n-message { + background: rgba(40, 40, 40, 0.75) !important; + color: #e5e5e5 !important; + box-shadow: + 0 4px 24px rgba(0, 0, 0, 0.25), + 0 0 0 1px rgba(255, 255, 255, 0.06) !important; +} + +/* 成功 */ +.n-message--success-type { + background: rgba(34, 197, 94, 0.15) !important; + color: #16a34a !important; +} +.n-message--success-type .n-message__icon { + color: #22c55e !important; +} +.dark .n-message--success-type { + background: rgba(34, 197, 94, 0.18) !important; + color: #4ade80 !important; +} +.dark .n-message--success-type .n-message__icon { + color: #4ade80 !important; +} + +/* 错误 */ +.n-message--error-type { + background: rgba(239, 68, 68, 0.12) !important; + color: #dc2626 !important; +} +.n-message--error-type .n-message__icon { + color: #ef4444 !important; +} +.dark .n-message--error-type { + background: rgba(239, 68, 68, 0.18) !important; + color: #f87171 !important; +} +.dark .n-message--error-type .n-message__icon { + color: #f87171 !important; +} + +/* 警告 */ +.n-message--warning-type { + background: rgba(245, 158, 11, 0.12) !important; + color: #d97706 !important; +} +.n-message--warning-type .n-message__icon { + color: #f59e0b !important; +} +.dark .n-message--warning-type { + background: rgba(245, 158, 11, 0.18) !important; + color: #fbbf24 !important; +} +.dark .n-message--warning-type .n-message__icon { + color: #fbbf24 !important; +} + +/* 信息 */ +.n-message--info-type { + background: rgba(59, 130, 246, 0.12) !important; + color: #2563eb !important; +} +.n-message--info-type .n-message__icon { + color: #3b82f6 !important; +} +.dark .n-message--info-type { + background: rgba(59, 130, 246, 0.18) !important; + color: #60a5fa !important; +} +.dark .n-message--info-type .n-message__icon { + color: #60a5fa !important; +} + +/* Loading */ +.n-message--loading-type { + background: rgba(255, 255, 255, 0.72) !important; +} +.dark .n-message--loading-type { + background: rgba(40, 40, 40, 0.75) !important; +} + +/* 图标统一大小 */ +.n-message__icon { + font-size: 18px !important; +} + +/* 间距优化 */ +.n-message-wrapper { + margin-bottom: 6px !important; +} diff --git a/src/renderer/views/local-music/index.vue b/src/renderer/views/local-music/index.vue index b443f23..283a6c1 100644 --- a/src/renderer/views/local-music/index.vue +++ b/src/renderer/views/local-music/index.vue @@ -1,171 +1,154 @@