--- import { Icon } from "astro-icon/components"; import { musicPlayerConfig } from "@/config/musicConfig"; import I18nKey from "@/i18n/i18nKey"; import { i18n } from "@/i18n/translation"; import { url } from "@/utils/url-utils"; interface Props { class?: string; style?: string; id?: string; } const { class: className, style, id } = Astro.props; const config = musicPlayerConfig; const localPlaylist = config.mode === "local" && config.local?.playlist ? config.local.playlist.map((song) => { const isFullUrl = (path: string) => /^https?:\/\//.test(path); return { name: song.name, artist: song.artist, url: isFullUrl(song.url) ? song.url : url(song.url), pic: song.cover ? isFullUrl(song.cover) ? song.cover : url(song.cover) : undefined, lrc: song.lrc ? isFullUrl(song.lrc) ? song.lrc : url(song.lrc) : undefined, }; }) : []; const playerConfigStr = JSON.stringify({ mode: config.mode, meting: config.meting, localPlaylist: localPlaylist, volume: config.volume ?? 0.7, playMode: config.playMode ?? "list", showLyrics: config.showLyrics ?? true, i18n: { noPlaying: i18n(I18nKey.musicNoPlaying), lyrics: i18n(I18nKey.musicLyrics), volume: i18n(I18nKey.musicVolume), playMode: i18n(I18nKey.musicPlayMode), prev: i18n(I18nKey.musicPrev), next: i18n(I18nKey.musicNext), playlist: i18n(I18nKey.musicPlaylist), noLyrics: i18n(I18nKey.musicNoLyrics), loadingLyrics: i18n(I18nKey.musicLoadingLyrics), failedLyrics: i18n(I18nKey.musicFailedLyrics), noSongs: i18n(I18nKey.musicNoSongs), error: i18n(I18nKey.musicError), play: i18n(I18nKey.musicPlay), pause: i18n(I18nKey.musicPause), progress: i18n(I18nKey.musicProgress), noCover: i18n(I18nKey.musicNoCover), }, }); const widgetId = id || `music-widget-${Math.random().toString(36).substring(2, 9)}`; ---
{i18n(I18nKey.musicNoPlaying)}