mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
3b4d54431b
* feat(random-mix): playlist size selector + filter panel layout cleanup Adds a 5-button playlist-size picker (50/75/100/125/150) at the top of the Random Mix filter panel, persisted via authStore. Clicking a size immediately reruns the current mix (genre-scoped or All Songs) at the new size — no second click on Remix needed. Filter panel layout cleaned up: - Two sub-sections "MIX SETTINGS" and "EXCLUSIONS" with a divider between them so the panel reads cleanly with the new size row. - Larger panel-level headers (FILTERS / GENRE MIX) so the hierarchy panel-title > sub-section is visually unambiguous. - Italic muted note under MIX SETTINGS calling out that large mix sizes may return fewer unique tracks if the server's random pool runs short — sets honest expectations instead of users wondering why a 150 request returned ~126. fetchRandomMixSongsUntilFull now scales batch size, max-batch ceiling and dup-streak budget with target size; when no Settings-level mix filter is active, the first call asks for the full target so a 150 mix can finish in a single round-trip on most libraries. The loop falls through to top up with deduped follow-up calls if the server returns fewer than requested. * docs(changelog): add #445 Random Mix playlist size selector entry * chore(credits): add #445 to Psychotoxical contributions
1746 lines
87 KiB
TypeScript
1746 lines
87 KiB
TypeScript
export const zhTranslation = {
|
||
sidebar: {
|
||
library: '音乐库',
|
||
mainstage: '主舞台',
|
||
newReleases: '新发布',
|
||
allAlbums: '全部专辑',
|
||
randomAlbums: '随机专辑',
|
||
randomPicker: '创建混音',
|
||
artists: '艺术家',
|
||
randomMix: '随机混音',
|
||
favorites: '收藏夹',
|
||
nowPlaying: '正在播放',
|
||
system: '系统',
|
||
statistics: '统计',
|
||
settings: '设置',
|
||
help: '帮助',
|
||
expand: '展开侧边栏',
|
||
collapse: '收起侧边栏',
|
||
downloadingTracks: '正在缓存 {{n}} 首歌曲…',
|
||
syncingTracks: '同步中 {{done}}/{{total}}…',
|
||
cancelDownload: '取消下载',
|
||
offlineLibrary: '离线音乐库',
|
||
genres: '流派',
|
||
tracks: '曲目',
|
||
playlists: '播放列表',
|
||
mostPlayed: '最常播放',
|
||
radio: '网络电台',
|
||
folderBrowser: '文件夹浏览器',
|
||
deviceSync: '设备同步',
|
||
libraryScope: '资料库范围',
|
||
allLibraries: '所有资料库',
|
||
expandPlaylists: '展开播放列表',
|
||
collapsePlaylists: '收起播放列表',
|
||
more: '更多',
|
||
feelingLucky: '好运混音',
|
||
},
|
||
home: {
|
||
hero: '精选',
|
||
starred: '个人收藏',
|
||
recent: '最近添加',
|
||
mostPlayed: '最常播放',
|
||
recentlyPlayed: '最近播放',
|
||
discover: '发现',
|
||
discoverSongs: '发现曲目',
|
||
loadMore: '加载更多',
|
||
discoverMore: '发现更多',
|
||
discoverArtists: '发现艺术家',
|
||
discoverArtistsMore: '全部艺术家'
|
||
},
|
||
hero: {
|
||
eyebrow: '精选专辑',
|
||
playAlbum: '播放专辑',
|
||
enqueue: '加入队列',
|
||
enqueueTooltip: '将整张专辑添加到播放队列',
|
||
},
|
||
search: {
|
||
placeholder: '搜索艺术家、专辑或歌曲…',
|
||
noResults: '未找到 "{{query}}" 的相关结果',
|
||
artists: '艺术家',
|
||
albums: '专辑',
|
||
songs: '歌曲',
|
||
clearLabel: '清除搜索',
|
||
addedToQueueToast: '已将"{{title}}"加入队列',
|
||
title: '搜索',
|
||
resultsFor: '"{{query}}" 的搜索结果',
|
||
album: '专辑',
|
||
advanced: '高级搜索',
|
||
advancedSearchTerm: '搜索词',
|
||
advancedSearchPlaceholder: '标题、专辑、艺术家…',
|
||
advancedGenre: '流派',
|
||
advancedAllGenres: '所有流派',
|
||
advancedYear: '年份',
|
||
advancedYearFrom: '从',
|
||
advancedYearTo: '至',
|
||
advancedAll: '全部',
|
||
advancedSearch: '搜索',
|
||
advancedEmpty: '请输入搜索词或选择过滤器。',
|
||
advancedNoResults: '未找到结果。',
|
||
advancedGenreNote: '歌曲从该流派中随机选取。',
|
||
recentSearches: '最近搜索',
|
||
browse: '浏览',
|
||
emptyHint: '你想听什么?',
|
||
genres: '流派',
|
||
},
|
||
nowPlaying: {
|
||
tooltip: '谁正在收听?',
|
||
title: '谁正在收听?',
|
||
loading: '加载中…',
|
||
nobody: '当前无人收听。',
|
||
minutesAgo: '{{n}} 分钟前',
|
||
nothingPlaying: '尚未开始播放。开始播放一首歌曲吧!',
|
||
aboutArtist: '关于艺术家',
|
||
fromAlbum: '来自此专辑',
|
||
viewAlbum: '查看专辑',
|
||
goToArtist: '前往艺术家',
|
||
readMore: '阅读更多',
|
||
showLess: '收起',
|
||
genreInfo: '流派',
|
||
trackInfo: '曲目信息',
|
||
topSongs: '该艺术家最常播放',
|
||
topSongsCredit: '{{name}} 的热门曲目',
|
||
trackPosition: '第 {{pos}} 首',
|
||
playsCount_one: '播放 {{count}} 次',
|
||
playsCount_other: '播放 {{count}} 次',
|
||
releasedYearsAgo_one: '{{count}} 年前',
|
||
releasedYearsAgo_other: '{{count}} 年前',
|
||
discography: '专辑列表',
|
||
lastfmStats: 'Last.fm 统计',
|
||
thisTrack: '这首歌',
|
||
thisArtist: '这位艺术家',
|
||
listeners: '听众',
|
||
scrobbles: '播放记录',
|
||
yourScrobbles: '你',
|
||
listenersN: '{{n}} 位听众',
|
||
scrobblesN: '{{n}} 次播放',
|
||
playsByYouN: '你播放了 {{n}} 次',
|
||
openTrackOnLastfm: '在 Last.fm 上查看',
|
||
openArtistOnLastfm: '在 Last.fm 上查看艺术家',
|
||
rgTrackTooltip: 'ReplayGain (曲目)',
|
||
rgAlbumTooltip: 'ReplayGain (专辑)',
|
||
rgAutoTooltip: 'ReplayGain (自动)',
|
||
showMoreTracks: '显示另外 {{count}} 首',
|
||
showLessTracks: '收起',
|
||
hideCard: '隐藏卡片',
|
||
layoutMenu: '布局',
|
||
visibleCards: '可见卡片',
|
||
hiddenCards: '已隐藏的卡片',
|
||
noHiddenCards: '没有已隐藏的卡片',
|
||
resetLayout: '重置布局',
|
||
emptyColumn: '将卡片拖到此处',
|
||
},
|
||
contextMenu: {
|
||
playNow: '立即播放',
|
||
playNext: '下一首播放',
|
||
addToQueue: '添加到队列',
|
||
enqueueAlbum: '专辑加入队列',
|
||
enqueueAlbums_one: '{{count}} 张专辑加入队列',
|
||
enqueueAlbums_other: '{{count}} 张专辑加入队列',
|
||
startRadio: '开始电台',
|
||
instantMix: '即时混音',
|
||
instantMixFailed: '无法生成即时混音 — 服务器或插件出错。',
|
||
cliMixNeedsTrack: '当前没有正在播放的内容 — 请先开始播放,然后再执行混音命令。',
|
||
lfmLove: '在 Last.fm 上标记喜欢',
|
||
lfmUnlove: '取消 Last.fm 喜欢标记',
|
||
favorite: '收藏',
|
||
favoriteArtist: '收藏艺术家',
|
||
favoriteAlbum: '收藏专辑',
|
||
unfavorite: '取消收藏',
|
||
unfavoriteArtist: '取消收藏艺术家',
|
||
unfavoriteAlbum: '取消收藏专辑',
|
||
removeFromQueue: '从队列中移除',
|
||
openAlbum: '打开专辑',
|
||
goToArtist: '前往艺术家',
|
||
download: '下载 (ZIP)',
|
||
addToPlaylist: '添加到播放列表',
|
||
selectedPlaylists: '已选择 {{count}} 个播放列表',
|
||
selectedAlbums: '已选择 {{count}} 个专辑',
|
||
selectedArtists: '已选择 {{count}} 个艺术家',
|
||
songInfo: '歌曲信息',
|
||
shareLink: '复制分享链接',
|
||
shareCopied: '分享链接已复制到剪贴板。',
|
||
shareCopyFailed: '无法复制到剪贴板。',
|
||
},
|
||
sharePaste: {
|
||
notLoggedIn: '请先登录并添加服务器,再粘贴分享链接。',
|
||
noMatchingServer: '没有已保存的服务器与此链接匹配。请添加使用该地址的服务器:{{url}}',
|
||
trackUnavailable: '在服务器上找不到此歌曲。',
|
||
albumUnavailable: '在服务器上找不到此专辑。',
|
||
artistUnavailable: '在服务器上找不到此艺术家。',
|
||
openedTrack: '正在播放分享的歌曲。',
|
||
openedAlbum: '正在打开分享的专辑。',
|
||
openedArtist: '正在打开分享的艺术家。',
|
||
openedQueue_one: '正在播放分享队列中的 {{count}} 首曲目。',
|
||
openedQueue_other: '正在播放分享队列中的 {{count}} 首曲目。',
|
||
openedQueuePartial: '正在播放链接中的 {{played}} / {{total}} 首曲目({{skipped}} 首在此服务器上未找到)。',
|
||
queueAllUnavailable: '此链接中的曲目在服务器上均未找到。',
|
||
genericError: '无法打开分享链接。',
|
||
},
|
||
albumDetail: {
|
||
back: '返回',
|
||
orbitDoubleClickHint: '双击将此曲目添加到 Orbit 队列',
|
||
playAll: '全部播放',
|
||
shareAlbum: '分享专辑',
|
||
enqueue: '加入队列',
|
||
enqueueTooltip: '将整张专辑添加到播放队列',
|
||
artistBio: '艺术家简介',
|
||
download: '下载 (ZIP)',
|
||
downloading: '加载中…',
|
||
cacheOffline: '设为离线可用',
|
||
offlineCached: '已离线缓存',
|
||
offlineDownloading: '正在缓存… ({{n}}/{{total}})',
|
||
removeOffline: '移除离线缓存',
|
||
offlineStorageFull: '离线存储空间已满(限制:{{mb}} MB)。请从离线音乐库中删除专辑以释放空间,或在设置中增加限制。',
|
||
offlineStorageGoToLibrary: '离线音乐库',
|
||
offlineStorageGoToSettings: '设置',
|
||
favoriteAdd: '添加到收藏',
|
||
favoriteRemove: '从收藏中移除',
|
||
favorite: '收藏',
|
||
noBio: '暂无简介。',
|
||
moreByArtist: '{{artist}} 的更多作品',
|
||
tracksCount: '{{n}} 首曲目',
|
||
goToArtist: '前往 {{artist}}',
|
||
moreLabelAlbums: '{{label}} 的更多专辑',
|
||
trackTitle: '标题',
|
||
trackAlbum: '专辑',
|
||
trackArtist: '艺术家',
|
||
trackGenre: '流派',
|
||
trackFormat: '格式',
|
||
trackFavorite: '收藏',
|
||
trackRating: '评分',
|
||
trackDuration: '时长',
|
||
trackTotal: '总计',
|
||
columns: '列',
|
||
resetColumns: '重置为默认',
|
||
notFound: '未找到专辑。',
|
||
bioModal: '艺术家简介',
|
||
bioClose: '关闭',
|
||
ratingLabel: '评分',
|
||
enlargeCover: '放大',
|
||
filterSongs: '筛选歌曲…',
|
||
sortNatural: '默认顺序',
|
||
sortByTitle: 'A–Z(标题)',
|
||
sortByArtist: 'A–Z(艺术家)',
|
||
sortByAlbum: 'A–Z(专辑)',
|
||
},
|
||
entityRating: {
|
||
albumShort: '专辑评分',
|
||
artistShort: '艺人评分',
|
||
albumAriaLabel: '专辑评分',
|
||
artistAriaLabel: '艺人评分',
|
||
saveFailed: '无法保存评分。',
|
||
},
|
||
artistDetail: {
|
||
back: '返回',
|
||
albums: '专辑',
|
||
album: '专辑',
|
||
playAll: '全部播放',
|
||
shareArtist: '分享艺人',
|
||
shuffle: '随机播放',
|
||
radio: '电台',
|
||
loading: '加载中…',
|
||
noRadio: '未找到该艺术家的相似曲目。',
|
||
notFound: '未找到艺术家。',
|
||
albumsBy: '{{name}} 的专辑',
|
||
topTracks: '热门曲目',
|
||
noAlbums: '未找到专辑。',
|
||
trackTitle: '标题',
|
||
trackAlbum: '专辑',
|
||
trackDuration: '时长',
|
||
favoriteAdd: '添加到收藏',
|
||
favoriteRemove: '从收藏中移除',
|
||
favorite: '收藏',
|
||
albumCount_one: '{{count}} 张专辑',
|
||
albumCount_other: '{{count}} 张专辑',
|
||
openedInBrowser: '已在浏览器中打开',
|
||
featuredOn: '还出现在',
|
||
similarArtists: '相似艺术家',
|
||
cacheOffline: '离线保存全部专辑',
|
||
offlineCached: '全部专辑已缓存',
|
||
offlineDownloading: '正在缓存… ({{done}}/{{total}} 张专辑)',
|
||
uploadImage: '上传艺术家图片',
|
||
uploadImageError: '图片上传失败',
|
||
},
|
||
favorites: {
|
||
title: '收藏夹',
|
||
empty: '您还没有保存任何收藏。',
|
||
artists: '艺术家',
|
||
albums: '专辑',
|
||
songs: '歌曲',
|
||
enqueueAll: '全部加入队列',
|
||
playAll: '全部播放',
|
||
removeSong: '从收藏中移除',
|
||
stations: '广播电台',
|
||
showingFiltered: '显示 {{filtered}} / {{total}} ({{artist}})',
|
||
showingCount: '显示 {{filtered}} / {{total}}',
|
||
clearArtistFilter: '清除艺术家筛选',
|
||
noFilterResults: '所选筛选条件下无结果。',
|
||
allArtists: '全部艺术家',
|
||
topArtists: '按收藏数排行的艺术家',
|
||
topArtistsSongCount_one: '{{count}} 首歌曲',
|
||
topArtistsSongCount_other: '{{count}} 首歌曲',
|
||
},
|
||
randomLanding: {
|
||
title: '创建混音',
|
||
mixByTracks: '按曲目混音',
|
||
mixByTracksDesc: '从整个媒体库随机选取曲目',
|
||
mixByAlbums: '按专辑混音',
|
||
mixByAlbumsDesc: '随机选取专辑,探索新音乐',
|
||
mixByLucky: '好运混音',
|
||
mixByLuckyDesc: '基于高频艺人、专辑和高评分歌曲的智能 Instant Mix',
|
||
},
|
||
randomAlbums: {
|
||
title: '随机专辑',
|
||
refresh: '刷新',
|
||
},
|
||
genres: {
|
||
title: '流派',
|
||
genreCount: '个流派',
|
||
albumCount_one: '{{count}} 张专辑',
|
||
albumCount_other: '{{count}} 张专辑',
|
||
loading: '正在加载流派…',
|
||
empty: '未找到流派。',
|
||
albumsLoading: '正在加载专辑…',
|
||
albumsEmpty: '未找到该流派的专辑。',
|
||
loadMore: '加载更多',
|
||
back: '返回',
|
||
},
|
||
randomMix: {
|
||
title: '随机混音',
|
||
remix: '重新混音',
|
||
remixTooltip: '加载新的随机歌曲',
|
||
remixGenre: '重混 {{genre}}',
|
||
remixTooltipGenre: '加载新的{{genre}}歌曲',
|
||
playAll: '全部播放',
|
||
trackTitle: '标题',
|
||
trackArtist: '艺术家',
|
||
trackAlbum: '专辑',
|
||
trackFavorite: '收藏',
|
||
trackDuration: '时长',
|
||
favoriteAdd: '添加到收藏',
|
||
favoriteRemove: '从收藏中移除',
|
||
play: '播放',
|
||
trackGenre: '流派',
|
||
mixSettingsHeader: '混音设置',
|
||
exclusionsHeader: '排除项',
|
||
filterPanelInexactSizeNote: '混音大小是一个目标 — 当服务器的随机池耗尽时,较大的请求可能会返回较少的唯一曲目。',
|
||
mixSize: '列表大小',
|
||
excludeAudiobooks: '排除有声读物和广播剧',
|
||
excludeAudiobooksDesc: '根据流派、标题、专辑和艺术家匹配关键词 — 例如 Hörbuch、Audiobook、Spoken Word 等',
|
||
genreBlocked: '关键词已屏蔽',
|
||
genreAddedToBlacklist: '已添加到过滤列表',
|
||
genreAlreadyBlocked: '已屏蔽',
|
||
artistBlocked: '艺术家已屏蔽',
|
||
artistAddedToBlacklist: '艺术家已添加到过滤列表',
|
||
artistClickHint: '点击屏蔽此艺术家',
|
||
blacklistToggle: '关键词过滤',
|
||
genreMixTitle: '流派混音',
|
||
genreMixDesc: '按歌曲数量排列的前 20 个流派 — 点击获取随机混音',
|
||
genreMixAll: '所有歌曲',
|
||
genreMixLoadMore: '加载 10 首更多',
|
||
genreMixNoGenres: '服务器上未找到流派。',
|
||
shuffleGenres: '显示其他流派',
|
||
filterPanelTitle: '过滤器',
|
||
filterPanelDesc: '点击下方列表中的流派标签或艺术家名称,将其从未来的混音中排除。',
|
||
genreClickHint: '点击流派标签将其添加为过滤关键词。\\n匹配流派、标题、专辑和艺术家。',
|
||
},
|
||
luckyMix: {
|
||
done: '好运混音已就绪:{{count}} 首',
|
||
failed: '生成好运混音失败,请重试。',
|
||
unavailable: '当前服务器不支持好运混音。',
|
||
cancelTooltip: '取消生成好运混音',
|
||
},
|
||
albums: {
|
||
title: '全部专辑',
|
||
sortByName: '按名称排序 (A-Z)',
|
||
sortByArtist: '按艺术家排序 (A-Z)',
|
||
sortNewest: '最新优先',
|
||
sortRandom: '随机排序',
|
||
yearFrom: '从',
|
||
yearTo: '到',
|
||
yearFilterClear: '清除年份筛选',
|
||
yearFilterLabel: '年份',
|
||
compilationLabel: '合辑',
|
||
compilationOnly: '仅合辑',
|
||
compilationHide: '隐藏合辑',
|
||
compilationTooltipAll: '所有专辑 · 点击:仅合辑',
|
||
compilationTooltipOnly: '仅合辑 · 点击:隐藏合辑',
|
||
compilationTooltipHide: '已隐藏合辑 · 点击:显示全部',
|
||
select: '多选',
|
||
startSelect: '启用多选',
|
||
cancelSelect: '取消',
|
||
selectionCount: '{{count}} 已选择',
|
||
downloadZips: '下载 ZIP',
|
||
addOffline: '添加离线',
|
||
enqueueSelected_one: '加入队列 ({{count}})',
|
||
enqueueSelected_other: '加入队列 ({{count}})',
|
||
enqueueQueued_one: '已将 {{count}} 张专辑加入队列',
|
||
enqueueQueued_other: '已将 {{count}} 张专辑加入队列',
|
||
downloadingZip: '正在下载 {{current}}/{{total}}: {{name}}',
|
||
downloadZipDone: '已下载 {{count}} 个 ZIP',
|
||
downloadZipFailed: '下载 {{name}} 失败',
|
||
offlineQueuing: '正在将 {{count}} 张专辑加入离线队列…',
|
||
offlineFailed: '添加 {{name}} 离线失败',
|
||
},
|
||
tracks: {
|
||
title: '曲目',
|
||
subtitle: '浏览。搜索。发现。',
|
||
heroEyebrow: '此刻精选',
|
||
heroReroll: '换一首',
|
||
playSong: '播放',
|
||
enqueueSong: '加入队列',
|
||
railRandom: '随机精选',
|
||
railHighlyRated: '高分推荐',
|
||
browseTitle: '浏览所有曲目',
|
||
browseUnsupported: '此服务器不支持一次性列出整个音乐库。使用上方的搜索来查找特定曲目。',
|
||
searchPlaceholder: '按标题、艺人或专辑搜索…',
|
||
count_one: '{{count}} 首曲目',
|
||
count_other: '{{count}} 首曲目',
|
||
},
|
||
artists: {
|
||
title: '艺术家',
|
||
search: '搜索…',
|
||
all: '全部',
|
||
gridView: '网格视图',
|
||
listView: '列表视图',
|
||
imagesOn: '艺术家图片已开启 — 可能增加网络和系统负载',
|
||
imagesOff: '艺术家图片已关闭 — 仅显示首字母',
|
||
loadMore: '加载更多',
|
||
notFound: '未找到艺术家。',
|
||
albumCount_one: '{{count}} 张专辑',
|
||
albumCount_other: '{{count}} 张专辑',
|
||
selectionCount: '{{count}} 已选择',
|
||
select: '多选',
|
||
startSelect: '启用多选',
|
||
cancelSelect: '取消',
|
||
addToPlaylist: '添加到播放列表',
|
||
},
|
||
login: {
|
||
subtitle: '您的 Navidrome 桌面播放器',
|
||
serverName: '服务器名称(可选)',
|
||
serverNamePlaceholder: '我的 Navidrome',
|
||
serverUrl: '服务器地址',
|
||
serverUrlPlaceholder: '192.168.1.100:4533 或 https://music.example.com',
|
||
username: '用户名',
|
||
usernamePlaceholder: 'admin',
|
||
password: '密码',
|
||
showPassword: '显示密码',
|
||
hidePassword: '隐藏密码',
|
||
connect: '连接',
|
||
connecting: '正在连接…',
|
||
connected: '已连接!',
|
||
error: '连接失败 — 请检查您的信息。',
|
||
urlRequired: '请输入服务器地址。',
|
||
savedServers: '已保存的服务器',
|
||
addNew: '或添加新服务器',
|
||
orMagicString: '或使用魔法字符串',
|
||
magicStringPlaceholder: '粘贴分享字符串(psysonic1-…)',
|
||
magicStringInvalid: '魔法字符串无效或无法解析。',
|
||
},
|
||
connection: {
|
||
connected: '已连接',
|
||
connectedTo: '已连接到 {{server}}',
|
||
disconnected: '已断开连接',
|
||
disconnectedFrom: '无法连接到 {{server}} — 点击检查设置',
|
||
checking: '正在连接…',
|
||
extern: '外部',
|
||
offlineTitle: '无服务器连接',
|
||
offlineSubtitle: '无法连接到 {{server}}。请检查您的网络或服务器。',
|
||
offlineModeBanner: '离线模式 — 正在从本地缓存播放',
|
||
offlineNoCacheBanner: '无服务器连接 — 无法访问 {{server}}',
|
||
offlineLibraryTitle: '离线音乐库',
|
||
offlineLibraryEmpty: '尚未缓存任何专辑。请联网,打开专辑并点击"设为离线可用"。',
|
||
offlineAlbumCount_one: '{{n}} 张专辑',
|
||
offlineAlbumCount_plural: '{{n}} 张专辑',
|
||
retry: '重试',
|
||
serverSettings: '服务器设置',
|
||
switchServerTitle: '切换服务器',
|
||
switchServerHint: '点击选择其他已保存的服务器。',
|
||
manageServers: '管理服务器…',
|
||
switchFailed: '无法切换 — 无法连接服务器。',
|
||
lastfmConnected: 'Last.fm 已连接为 @{{user}}',
|
||
lastfmSessionInvalid: '会话无效 — 点击重新连接',
|
||
},
|
||
common: {
|
||
albums: '专辑',
|
||
album: '专辑',
|
||
loading: '加载中…',
|
||
loadingMore: '加载中…',
|
||
loadingPlaylists: '正在加载播放列表…',
|
||
noAlbums: '未找到专辑。',
|
||
downloading: '正在下载…',
|
||
downloadZip: '下载 (ZIP)',
|
||
back: '返回',
|
||
cancel: '取消',
|
||
save: '保存',
|
||
delete: '删除',
|
||
use: '使用',
|
||
add: '添加',
|
||
new: '新',
|
||
active: '当前使用',
|
||
download: '下载',
|
||
chooseDownloadFolder: '选择下载文件夹',
|
||
noFolderSelected: '未选择文件夹',
|
||
rememberDownloadFolder: '记住此文件夹',
|
||
filterGenre: '流派筛选',
|
||
filterSearchGenres: '搜索流派…',
|
||
filterNoGenres: '未找到匹配流派',
|
||
filterClear: '清除',
|
||
play: '播放',
|
||
bulkSelected: '已选 {{count}} 首',
|
||
clearSelection: '清除选择',
|
||
bulkAddToPlaylist: '添加到播放列表',
|
||
bulkRemoveFromPlaylist: '从播放列表移除',
|
||
bulkClear: '取消选择',
|
||
updaterAvailable: '有可用更新',
|
||
updaterVersion: 'v{{version}} 已发布',
|
||
updaterWebsite: '官网',
|
||
updaterModalTitle: '有新版本可用',
|
||
updaterChangelog: '更新内容',
|
||
updaterDownloadBtn: '立即下载',
|
||
updaterSkipBtn: '跳过此版本',
|
||
updaterRemindBtn: '稍后提醒',
|
||
updaterDone: '下载完成',
|
||
updaterShowFolder: '在文件夹中显示',
|
||
updaterInstallHint: '请关闭 Psysonic 并手动运行安装程序。',
|
||
updaterAurHint: '通过 AUR 安装更新:',
|
||
updaterErrorMsg: '下载失败',
|
||
updaterRetryBtn: '重试',
|
||
durationHoursMinutes: '{{hours}}小时{{minutes}}分钟',
|
||
durationMinutesOnly: '{{minutes}}分钟',
|
||
updaterOpenGitHub: '在 GitHub 上打开',
|
||
filters: '筛选器',
|
||
more: '更多',
|
||
yearRange: '年份范围',
|
||
clearAll: '清除全部',
|
||
},
|
||
settings: {
|
||
title: '设置',
|
||
language: '语言',
|
||
languageEn: '英语',
|
||
languageDe: '德语',
|
||
languageFr: '法语',
|
||
languageNl: '荷兰语',
|
||
languageZh: '中文',
|
||
languageNb: '挪威',
|
||
languageRu: '俄语',
|
||
font: '字体',
|
||
theme: '主题',
|
||
appearance: '外观',
|
||
servers: '服务器',
|
||
serverName: '服务器名称',
|
||
serverUrl: '服务器地址',
|
||
serverUrlPlaceholder: '192.168.1.100:4533 或 https://music.example.com',
|
||
serverUsername: '用户名',
|
||
serverPassword: '密码',
|
||
addServer: '添加服务器',
|
||
addServerTitle: '添加新服务器',
|
||
useServer: '使用',
|
||
deleteServer: '删除',
|
||
noServers: '未保存任何服务器。',
|
||
serverActive: '当前使用',
|
||
confirmDeleteServer: '删除服务器 "{{name}}"?',
|
||
serverConnecting: '正在连接…',
|
||
serverConnected: '已连接!',
|
||
serverFailed: '连接失败。',
|
||
testBtn: '测试连接',
|
||
testingBtn: '正在测试…',
|
||
serverCompatible: '专为 Navidrome 构建。其他兼容 Subsonic 的服务器(Gonic、Airsonic 等)可能功能受限,因为 Psysonic 使用了许多 Navidrome 特有的 API 端点。',
|
||
userMgmtTitle: '用户管理',
|
||
userMgmtDesc: '管理此服务器上的用户。需要管理员权限。',
|
||
userMgmtNoAdmin: '需要管理员权限才能管理此服务器上的用户。',
|
||
userMgmtLoadError: '加载用户失败。',
|
||
userMgmtLoadFriendly: '服务器未响应 — 通常是偶发问题。',
|
||
userMgmtRetry: '重试',
|
||
userMgmtEmpty: '未找到用户。',
|
||
userMgmtYouBadge: '您',
|
||
userMgmtAdminBadge: '管理员',
|
||
userMgmtAddUser: '添加用户',
|
||
userMgmtAddUserTitle: '新建用户',
|
||
userMgmtEditUserTitle: '编辑用户',
|
||
userMgmtUsername: '用户名',
|
||
userMgmtName: '显示名称',
|
||
userMgmtEmail: '电子邮箱',
|
||
userMgmtPassword: '密码',
|
||
userMgmtPasswordEditHint: '输入新密码以更新。',
|
||
userMgmtRoleAdmin: '管理员',
|
||
userMgmtLibraries: '音乐库',
|
||
userMgmtLibrariesAdminHint: '管理员用户自动拥有所有音乐库的访问权限。',
|
||
userMgmtLibrariesEmpty: '此服务器上没有可用的音乐库。',
|
||
userMgmtLibrariesValidation: '请至少选择一个音乐库。',
|
||
userMgmtLibrariesUpdateError: '用户已保存,但音乐库分配失败',
|
||
userMgmtNoLibraries: '未分配音乐库',
|
||
userMgmtNeverSeen: '从未',
|
||
userMgmtSave: '保存',
|
||
userMgmtCancel: '取消',
|
||
userMgmtDelete: '删除',
|
||
userMgmtEdit: '编辑',
|
||
userMgmtConfirmDelete: '删除用户 "{{username}}"?此操作无法撤销。',
|
||
userMgmtCreateError: '创建用户失败。',
|
||
userMgmtUpdateError: '更新用户失败。',
|
||
userMgmtDeleteError: '删除用户失败。',
|
||
userMgmtCreated: '用户已创建。',
|
||
userMgmtUpdated: '用户已更新。',
|
||
userMgmtDeleted: '用户已删除。',
|
||
userMgmtValidationMissing: '用户名、显示名称和密码均为必填项。',
|
||
userMgmtValidationMissingIdentity: '用户名和显示名称为必填项。',
|
||
userMgmtMagicStringGenerate: '生成魔法字符串',
|
||
userMgmtSaveAndMagicString: '保存并获取魔法字符串',
|
||
userMgmtMagicStringPasswordNavHint:
|
||
'Navidrome 会保存此密码。若与当前密码不同,服务器上的登录密码将被更新。',
|
||
userMgmtMagicStringPlaintextWarning:
|
||
'请谨慎分享魔法字符串:其中包含未加密的密码(编码不等于加密)。掌握完整字符串的人可以以该用户身份登录。',
|
||
userMgmtMagicStringCopied: '魔法字符串已复制到剪贴板。',
|
||
userMgmtMagicStringCopyFailed: '无法复制到剪贴板。',
|
||
userMgmtMagicStringLoginFailed: '密码验证失败,无法确认凭据。',
|
||
userMgmtMagicStringModalTitle: '生成魔法字符串',
|
||
userMgmtMagicStringModalDesc: '请输入用户「{{username}}」的 Subsonic 密码,它会包含在复制的魔法字符串中。',
|
||
userMgmtMagicStringModalConfirm: '复制字符串',
|
||
audiomuseTitle: 'AudioMuse-AI(Navidrome)',
|
||
audiomuseDesc:
|
||
'若此服务器已配置 <pluginLink>AudioMuse-AI Navidrome 插件</pluginLink>请开启。可从曲目启动即时混音,并在艺人页使用服务器返回的相似艺人,而非 Last.fm。',
|
||
audiomuseIssueHint:
|
||
'近期即时混音失败 — 请检查 Navidrome 插件与 AudioMuse API。若服务器无结果,将回退使用 Last.fm 的相似艺人。',
|
||
connected: '已连接',
|
||
failed: '失败',
|
||
eqTitle: '均衡器',
|
||
eqEnabled: '启用均衡器',
|
||
eqPreset: '预设',
|
||
eqPresetCustom: '自定义',
|
||
eqPresetBuiltin: '内置预设',
|
||
eqPresetCustomGroup: '我的预设',
|
||
eqSavePreset: '保存为预设',
|
||
eqPresetName: '预设名称…',
|
||
eqDeletePreset: '删除预设',
|
||
eqResetBands: '重置为平直',
|
||
eqPreGain: '预增益',
|
||
eqResetPreGain: '重置预增益',
|
||
eqAutoEqTitle: 'AutoEQ 耳机查询',
|
||
eqAutoEqPlaceholder: '搜索耳机/入耳式型号…',
|
||
eqAutoEqSearching: '搜索中…',
|
||
eqAutoEqNoResults: '未找到结果',
|
||
eqAutoEqError: '搜索失败',
|
||
eqAutoEqRateLimit: 'GitHub 请求限制 — 请一分钟后重试',
|
||
eqAutoEqFetchError: '无法获取 EQ 配置',
|
||
lfmTitle: 'Last.fm',
|
||
lfmConnect: '连接 Last.fm',
|
||
lfmConnecting: '等待授权…',
|
||
lfmConfirm: '我已完成授权',
|
||
lfmConnected: '已连接为',
|
||
lfmDisconnect: '断开连接',
|
||
lfmConnectDesc: '连接您的 Last.fm 账户以启用歌曲记录和正在播放更新,直接从 Psysonic 发送 — 无需配置 Navidrome。',
|
||
lfmOpenBrowser: '将打开浏览器窗口。在 Last.fm 上授权 Psysonic,然后点击下方按钮。',
|
||
lfmScrobbles: '{{n}} 次记录',
|
||
lfmMemberSince: '{{year}} 年加入',
|
||
scrobbleEnabled: '启用歌曲记录',
|
||
scrobbleDesc: '播放 50% 后发送歌曲到 Last.fm',
|
||
behavior: '应用行为',
|
||
cacheTitle: '最大存储大小',
|
||
cacheDesc: '封面和艺术家图片。存满时,最旧的条目将自动移除。离线专辑不会自动移除,但手动清除缓存时会被删除。',
|
||
cacheUsedImages: '图片:',
|
||
cacheUsedOffline: '离线曲目:',
|
||
cacheUsedHot: '占用空间:',
|
||
hotCacheTrackCount: '缓存曲目数:',
|
||
cacheMaxLabel: '最大容量',
|
||
cacheClearBtn: '清除缓存',
|
||
cacheClearWarning: '这将同时移除音乐库中的所有离线专辑。',
|
||
cacheClearConfirm: '全部清除',
|
||
cacheClearCancel: '取消',
|
||
offlineDirTitle: '离线音乐库(应用内)',
|
||
offlineDirDesc: '用于在 Psysonic 中离线可用的曲目存储位置。',
|
||
offlineDirDefault: '默认(应用数据)',
|
||
offlineDirChange: '更改目录',
|
||
offlineDirClear: '重置为默认',
|
||
offlineDirHint: '新下载将保存到此位置,现有下载保留在原始路径。',
|
||
hotCacheTitle: '热播放缓存',
|
||
hotCacheDisclaimer: '预加载队列中即将播放的曲目并保留近期已播放的。开启后占用磁盘与网络。',
|
||
hotCacheDirDefault: '默认(应用数据)',
|
||
hotCacheDirChange: '更改目录',
|
||
hotCacheDirClear: '重置为默认',
|
||
hotCacheDirHint: '更换目录会重置应用内索引;已下载的文件仍留在原路径,需自行删除。',
|
||
hotCacheEnabled: '启用热播放缓存',
|
||
hotCacheMaxMb: '最大缓存大小',
|
||
hotCacheDebounce: '队列变更去抖',
|
||
hotCacheDebounceImmediate: '立即',
|
||
hotCacheDebounceSeconds: '{{n}} 秒',
|
||
hotCacheClearBtn: '清空热缓存',
|
||
audioOutputDevice: '音频输出设备',
|
||
audioOutputDeviceDesc: '选择 Psysonic 播放音频的设备。更改立即生效并重新开始当前曲目。',
|
||
audioOutputDeviceDefault: '系统默认',
|
||
audioOutputDeviceRefresh: '刷新设备列表',
|
||
audioOutputDeviceOsDefaultNow: '当前系统输出',
|
||
audioOutputDeviceListError: '无法加载音频设备列表。',
|
||
audioOutputDeviceNotInCurrentList: '不在当前列表中',
|
||
audioOutputDeviceMacNotice: '在 macOS 上,出于技术原因,目前播放始终跟随系统输出设备。请通过 系统设置 → 声音 或菜单栏扬声器图标切换目标设备。背景:打开非默认音频流时 CoreAudio 会触发麦克风权限提示 —— 我们通过始终使用系统默认输出来避免此提示。',
|
||
hiResTitle: '原生高清晰度播放',
|
||
hiResEnabled: '启用原生高清晰度播放',
|
||
hiResDesc: "默认强制 44.1 kHz 输出以获得最大稳定性。仅在硬件和网络可靠支持高采样率(88.2 kHz+)时启用。",
|
||
showArtistImages: '显示艺术家图片',
|
||
showArtistImagesDesc: '在艺术家概览中加载并显示艺术家图片。默认关闭以减少大型音乐库的服务器磁盘I/O和网络负载。',
|
||
showOrbitTrigger: '在顶栏显示"Orbit"',
|
||
showOrbitTriggerDesc: '用于启动或加入共享收听会话的顶栏按钮。如果不使用 Orbit,可以隐藏 — 随时可在此重新开启。',
|
||
showTrayIcon: '显示托盘图标',
|
||
showTrayIconDesc: '在系统通知区域 / 菜单栏显示 Psysonic 图标。',
|
||
minimizeToTray: '最小化到托盘',
|
||
minimizeToTrayDesc: '关闭窗口时,Psysonic 将继续在系统托盘中运行,而不是退出。',
|
||
preloadMiniPlayer: '预加载迷你播放器',
|
||
preloadMiniPlayerDesc: '在应用启动时于后台构建迷你播放器窗口,使其首次打开即可立即显示内容。会占用少量额外内存。',
|
||
linuxWebkitSmoothScroll: '滚轮平滑(Linux)',
|
||
linuxWebkitSmoothScrollDesc: '开:惯性滚动。关:逐行,类似 GTK。',
|
||
discordRichPresence: 'Discord Rich Presence',
|
||
discordRichPresenceDesc: '在 Discord 个人资料上显示当前播放的曲目。需要 Discord 处于运行状态。',
|
||
discordAppleCovers: '通过 Apple Music 为 Discord 获取封面',
|
||
discordAppleCoversDesc: '将艺术家和专辑名称发送至 Apple 搜索 API,以为 Discord 个人资料查找封面图片。出于隐私考虑,默认禁用。',
|
||
discordOptions: 'Discord 高级选项',
|
||
discordTemplates: '自定义文本模板',
|
||
discordTemplatesDesc: '自定义在 Discord 个人资料上显示的信息。变量:{title}, {artist}, {album}',
|
||
discordTemplateDetails: '主行 (details)',
|
||
discordTemplateState: '副行 (state)',
|
||
discordTemplateLargeText: '专辑提示 (largeText)',
|
||
nowPlayingEnabled: '在实时窗口中显示',
|
||
nowPlayingEnabledDesc: '将当前播放的曲目广播到服务器的实时听众视图。禁用以停止发送播放数据。',
|
||
enableBandsintown: 'Bandsintown 巡演日期',
|
||
enableBandsintownDesc: '在信息标签页中显示当前艺术家的即将到来的演出。数据通过公开的 Bandsintown API 获取。',
|
||
lyricsServerFirst: '优先使用服务器歌词',
|
||
lyricsServerFirstDesc: '先查询服务器提供的歌词(内嵌标签、sidecar 文件),再查询 LRCLIB。禁用则优先使用 LRCLIB。',
|
||
enableNeteaselyrics: '网易云音乐歌词',
|
||
enableNeteaselyricsDesc: '当服务器和 LRCLIB 均无结果时,使用网易云音乐作为最终歌词来源。对亚洲及国际音乐覆盖最佳。',
|
||
lyricsSourcesTitle: '歌词来源',
|
||
lyricsSourcesDesc: '选择要查询的歌词来源及其顺序。拖动以排序。已禁用的来源将被跳过。',
|
||
lyricsSourceServer: '服务器',
|
||
lyricsSourceLrclib: 'LRCLIB',
|
||
lyricsSourceNetease: '网易云音乐',
|
||
lyricsModeStandard: '标准',
|
||
lyricsModeStandardDesc: '三个可自由排序的来源:服务器标签、LRCLIB、网易云。',
|
||
lyricsModeLyricsplus: 'YouLyPlus(卡拉OK)',
|
||
lyricsModeLyricsplusDesc: '来自 Apple Music、Spotify、Musixmatch 和 QQ 音乐的逐字同步歌词(社区后端)。找不到时静默回退到标准来源。',
|
||
lyricsStaticOnly: '仅以静态文本显示歌词',
|
||
lyricsStaticOnlyDesc: '同步歌词将不自动滚动、不逐字高亮,以静态文本显示。',
|
||
downloadsTitle: 'ZIP 导出与归档',
|
||
downloadsFolderDesc: '将专辑以 ZIP 文件下载到电脑时的目标文件夹。',
|
||
downloadsDefault: '默认下载文件夹',
|
||
pickFolder: '选择',
|
||
pickFolderTitle: '选择下载文件夹',
|
||
clearFolder: '清除下载文件夹',
|
||
logout: '退出登录',
|
||
aboutTitle: '关于 Psysonic',
|
||
aboutDesc: '一款专为 Navidrome 构建的现代桌面音乐播放器。使用 Subsonic API 以及 Navidrome 特有的扩展。基于 Tauri v2 和原生 Rust 音频引擎——轻量快速,功能丰富:波形进度条、同步歌词、Last.fm 集成、10 段均衡器、交叉淡入淡出、无缝播放、响度增益、流派浏览以及大量精美主题。',
|
||
aboutLicense: '许可证',
|
||
aboutLicenseText: 'GNU GPL v3 — 在相同许可证下可自由使用、修改和分发。',
|
||
aboutRepo: 'GitHub 上的源代码',
|
||
aboutVersion: '版本',
|
||
aboutBuiltWith: '使用 Tauri · React · TypeScript · Rust/rodio 构建',
|
||
aboutReleaseNotesLabel: '版本说明',
|
||
aboutReleaseNotesLink: '打开此版本的新功能',
|
||
aboutContributorsLabel: '贡献者',
|
||
showChangelogOnUpdate: '更新时显示"新功能"',
|
||
showChangelogOnUpdateDesc: '更新后在「正在播放」上方显示一个低调的更新日志横幅。点击打开发行说明,X 按钮关闭。',
|
||
randomMixTitle: '随机混音黑名单',
|
||
luckyMixMenuTitle: '在菜单中显示“好运混音”',
|
||
luckyMixMenuDesc: '在“创建混音”中启用“好运混音”,并在分离导航时作为独立菜单项显示。仅当当前服务器启用 AudioMuse 时可见。',
|
||
randomMixBlacklistTitle: '自定义过滤关键词',
|
||
randomMixBlacklistDesc: '当任何关键词匹配流派、标题、专辑或艺术家时,歌曲将被排除(当上方复选框开启时生效)。',
|
||
randomMixBlacklistPlaceholder: '添加关键词…',
|
||
randomMixBlacklistAdd: '添加',
|
||
randomMixBlacklistEmpty: '尚未添加自定义关键词。',
|
||
randomMixHardcodedTitle: '内置关键词(复选框开启时生效)',
|
||
tabAudio: '音频',
|
||
tabStorage: '离线与缓存',
|
||
tabAppearance: '外观',
|
||
tabLibrary: '媒体库',
|
||
tabServers: '服务器',
|
||
tabLyrics: '歌词',
|
||
tabPersonalisation: '个性化',
|
||
tabIntegrations: '集成',
|
||
inputKeybindingsTitle: '键盘快捷键',
|
||
aboutContributorsCount_one: '{{count}} 项贡献',
|
||
aboutContributorsCount_other: '{{count}} 项贡献',
|
||
searchPlaceholder: '搜索设置…',
|
||
searchNoResults: '没有设置匹配您的搜索。',
|
||
aboutMaintainersLabel: '维护者',
|
||
integrationsPrivacyTitle: '隐私说明',
|
||
integrationsPrivacyBody: '此标签页中的所有集成均为 <strong>选择加入</strong>,启用后会向外部服务或您的 Navidrome 服务器发送数据。Last.fm 接收您的收听历史,Discord 在您的个人资料中显示正在播放的曲目,Bandsintown 会按艺人查询以获取巡演日期,"正在播放" 分享会向您 Navidrome 服务器的其他用户公开您当前的曲目。如果您不需要这些功能,只需将相应部分保持停用即可。',
|
||
homeCustomizerTitle: '首页',
|
||
sidebarTitle: '侧边栏',
|
||
sidebarReset: '重置为默认',
|
||
artistLayoutTitle: '艺术家页面板块',
|
||
artistLayoutDesc: '拖动以重新排序,切换以隐藏艺术家页面的各个板块。没有数据的板块会自动跳过。',
|
||
artistLayoutReset: '重置为默认',
|
||
artistLayoutBio: '艺术家简介',
|
||
artistLayoutTopTracks: '热门曲目',
|
||
artistLayoutSimilar: '相似艺术家',
|
||
artistLayoutAlbums: '专辑',
|
||
artistLayoutFeatured: '也参与了',
|
||
sidebarDrag: '拖动以重新排序',
|
||
sidebarFixed: '始终显示',
|
||
randomNavSplitTitle: '拆分混音导航',
|
||
randomNavSplitDesc: '在侧边栏中将“随机混音”、“随机专辑”和“好运混音”显示为独立条目,而非“创建混音”合并入口。',
|
||
tabInput: '输入',
|
||
tabUsers: '用户',
|
||
tabSystem: '系统',
|
||
loggingTitle: '日志记录',
|
||
loggingModeDesc: '控制终端中后端日志的详细程度。',
|
||
loggingModeOff: '关闭',
|
||
loggingModeNormal: '普通',
|
||
loggingModeDebug: '调试',
|
||
loggingExport: '导出日志',
|
||
loggingExportSuccess: '日志已导出({{count}} 行)。',
|
||
loggingExportError: '无法导出日志。',
|
||
ratingsSectionTitle: '评分',
|
||
ratingsSkipStarTitle: '跳过以评 1 星',
|
||
ratingsSkipStarDesc:
|
||
'连续多次跳过后将曲目设为 1 星。仅适用于此前未评分的曲目。',
|
||
ratingsSkipStarThresholdLabel: '跳过次数',
|
||
ratingsMixFilterTitle: '按评分筛选',
|
||
ratingsMixFilterDesc:
|
||
'在{{mix}}与{{albums}}中筛选低评分内容。再次点击所选星标可关闭阈值。',
|
||
ratingsMixMinSong: '歌曲',
|
||
ratingsMixMinAlbum: '专辑',
|
||
ratingsMixMinArtist: '艺人',
|
||
ratingsMixMinThresholdAria: '最低星数:{{label}}',
|
||
backupTitle: '备份与恢复',
|
||
backupExport: '导出设置',
|
||
backupExportDesc: '将所有设置、服务器配置、Last.fm 配置、主题、均衡器和快捷键保存到 .psybkp 文件。密码以明文存储——请妥善保管该文件。',
|
||
backupImport: '导入设置',
|
||
backupImportDesc: '从 .psybkp 文件恢复设置。导入后应用将重新加载。',
|
||
backupImportConfirm: '所有当前设置将被覆盖。是否继续?',
|
||
backupSuccess: '备份已保存',
|
||
backupImportSuccess: '设置已恢复——正在重新加载…',
|
||
backupImportError: '备份文件无效或已损坏。',
|
||
shortcutsReset: '恢复默认',
|
||
shortcutListening: '请按下按键…',
|
||
shortcutUnbound: '—',
|
||
globalShortcutsTitle: '全局快捷键',
|
||
globalShortcutsNote: '即使 Psysonic 在后台也能在系统范围内工作。需要 Ctrl、Alt 或 Super 作为修饰键。',
|
||
shortcutClear: '清除',
|
||
shortcutPlayPause: '播放 / 暂停',
|
||
shortcutNext: '下一首',
|
||
shortcutPrev: '上一首',
|
||
shortcutVolumeUp: '音量增大',
|
||
shortcutVolumeDown: '音量减小',
|
||
shortcutSeekForward: '快进 10 秒',
|
||
shortcutSeekBackward: '快退 10 秒',
|
||
shortcutToggleQueue: '切换队列',
|
||
shortcutOpenFolderBrowser: '打开{{folderBrowser}}',
|
||
shortcutFullscreenPlayer: '全屏播放器',
|
||
shortcutNativeFullscreen: '原生全屏',
|
||
shortcutOpenMiniPlayer: '打开迷你播放器',
|
||
shortcutStartSearch: '开始搜索',
|
||
shortcutStartAdvancedSearch: '开始高级搜索',
|
||
shortcutToggleSidebar: '切换侧边栏',
|
||
shortcutMuteSound: '静音',
|
||
shortcutToggleEqualizer: '打开 / 切换均衡器',
|
||
shortcutToggleRepeat: '切换循环',
|
||
shortcutOpenNowPlaying: '打开"正在播放"',
|
||
shortcutShowLyrics: '显示歌词',
|
||
shortcutFavoriteCurrentTrack: '将当前曲目添加到收藏',
|
||
shortcutOpenHelp: '帮助',
|
||
playbackTitle: '播放',
|
||
replayGain: '回放增益',
|
||
replayGainDesc: '使用 ReplayGain 元数据标准化曲目音量',
|
||
replayGainMode: '模式',
|
||
replayGainAuto: '自动',
|
||
replayGainAutoDesc: '当队列中相邻曲目来自同一专辑时使用专辑增益,否则使用曲目增益。',
|
||
replayGainTrack: '曲目',
|
||
replayGainAlbum: '专辑',
|
||
replayGainPreGain: '预增益(有标签文件)',
|
||
replayGainPreGainDesc: '对所有 ReplayGain 计算结果叠加的统一增益。适合在曲库整体偏轻时用作整体补偿。',
|
||
replayGainFallback: '回退增益(无标签 / 收音机)',
|
||
replayGainFallbackDesc: '应用于没有 ReplayGain 标签的曲目(以及电台流),避免未打标签的内容比其余素材更响。',
|
||
normalization: '响度归一化',
|
||
normalizationDesc: '在曲目、专辑和电台之间统一可感知的响度。',
|
||
normalizationOff: '关闭',
|
||
normalizationReplayGain: 'ReplayGain',
|
||
normalizationLufs: 'LUFS',
|
||
loudnessTargetLufs: '目标 LUFS',
|
||
loudnessTargetLufsDesc: '所有曲目对齐的参考响度。数值越小,输出越响。流媒体服务通常在 -14 LUFS 左右。',
|
||
loudnessPreAnalysisAttenuation: '测量前衰减',
|
||
loudnessPreAnalysisAttenuationDesc:
|
||
'在曲目响度数据保存前的额外压低。流式阶段之后只是粗略估计,不是完整测量。0 dB 为不压低;更负则更安静。右侧显示当前目标下的等效 dB。',
|
||
loudnessPreAnalysisAttenuationRef: '目标 {{tgt}} LUFS 时等效 {{eff}} dB。',
|
||
loudnessPreAnalysisAttenuationReset: '恢复默认',
|
||
loudnessFirstPlayNote:
|
||
'首次播放新曲目时,音量可能在测量过程中略有波动。下一次播放将使用缓存的测量结果,保持稳定。队列中即将播放的曲目通常在上一首播放期间已完成预分析,所以这种情况在实际使用中很少出现。',
|
||
crossfade: '交叉淡入淡出',
|
||
crossfadeDesc: '曲目间淡入淡出',
|
||
crossfadeSecs: '{{n}} 秒',
|
||
notWithGapless: '无缝播放开启时不可用',
|
||
notWithCrossfade: '交叉淡入淡出开启时不可用',
|
||
gapless: '无缝播放',
|
||
gaplessDesc: '预缓冲下一首曲目以消除歌曲间的间隙',
|
||
trackPreviewsTitle: '曲目预览',
|
||
trackPreviewsToggle: '启用曲目预览',
|
||
trackPreviewsDesc: '在曲目列表中显示内联播放与预览按钮,可快速试听歌曲中段。',
|
||
trackPreviewStart: '起始位置',
|
||
trackPreviewStartDesc: '预览从曲目何处开始(占总时长的百分比)。',
|
||
trackPreviewDuration: '时长',
|
||
trackPreviewDurationDesc: '每段预览自动停止前的播放时长。',
|
||
trackPreviewDurationSecs: '{{n}} 秒',
|
||
trackPreviewLocationsTitle: '预览显示位置',
|
||
trackPreviewLocationsDesc: '选择在哪些列表中显示预览按钮。',
|
||
trackPreviewLocation_suggestions: '播放列表建议中',
|
||
trackPreviewLocation_albums: '专辑曲目列表中',
|
||
trackPreviewLocation_playlists: '播放列表中',
|
||
trackPreviewLocation_favorites: '收藏中',
|
||
trackPreviewLocation_artist: '艺人热门曲目中',
|
||
trackPreviewLocation_randomMix: 'Random Mix 中',
|
||
preloadMode: '预加载下一曲目',
|
||
preloadModeDesc: '何时开始缓冲队列中的下一曲目',
|
||
nextTrackBufferingTitle: '缓冲',
|
||
preloadHotCacheMutualExclusive: '预加载与热缓存用途相同——两者不能同时启用。启用其中一个会自动禁用另一个。',
|
||
preloadOff: '关闭',
|
||
preloadBalanced: '均衡(结束前30秒)',
|
||
preloadEarly: '提前(播放5秒后)',
|
||
preloadCustom: '自定义',
|
||
preloadCustomSeconds: '结束前秒数:{{n}}',
|
||
infiniteQueue: '无限队列',
|
||
infiniteQueueDesc: '队列播完时自动追加随机曲目',
|
||
experimental: '实验性',
|
||
fsPlayerSection: '全屏播放器',
|
||
fsShowArtistPortrait: '显示艺术家照片',
|
||
fsShowArtistPortraitDesc: '在全屏播放器右侧显示艺术家照片(或专辑封面)。',
|
||
fsPortraitDim: '照片暗化',
|
||
fsLyricsStyle: '歌词显示样式',
|
||
fsLyricsStyleRail: '轨道',
|
||
fsLyricsStyleRailDesc: '经典5行滑动轨道。',
|
||
fsLyricsStyleApple: '滚动',
|
||
fsLyricsStyleAppleDesc: '全屏可滚动列表。',
|
||
sidebarLyricsStyle: '歌词滚动样式',
|
||
sidebarLyricsStyleClassic: '经典',
|
||
sidebarLyricsStyleClassicDesc: '活动行居中显示。',
|
||
sidebarLyricsStyleApple: 'Apple Music-like',
|
||
sidebarLyricsStyleAppleDesc: '活动行固定在顶部,带有平滑弹簧动画。',
|
||
seekbarStyle: '进度条样式',
|
||
seekbarStyleDesc: '选择播放进度条的外观',
|
||
animationMode: '动画',
|
||
animationModeDesc: '在较慢的硬件上以视觉流畅度换取更低的 GPU/CPU 占用。',
|
||
animationModeFull: '完整',
|
||
animationModeReduced: '减少',
|
||
animationModeStatic: '静态',
|
||
animationModeReducedHint: '进度条波形限制为 30 fps;播放器标题以半速滚动。',
|
||
animationModeStaticHint: '无波形动画;播放器标题被截断而不滚动。',
|
||
seekbarTruewave: '真实波形',
|
||
seekbarPseudowave: '伪波形',
|
||
seekbarLinedot: '线条与点',
|
||
seekbarBar: '条形',
|
||
seekbarThick: '粗条形',
|
||
seekbarSegmented: '分段式',
|
||
seekbarNeon: '霓虹',
|
||
seekbarPulsewave: '脉冲波',
|
||
seekbarParticletrail: '粒子轨迹',
|
||
seekbarLiquidfill: '液体填充',
|
||
seekbarRetrotape: '复古磁带',
|
||
themeSchedulerTitle: '主题定时切换',
|
||
themeSchedulerEnable: '启用主题定时器',
|
||
themeSchedulerEnableSub: '根据一天中的时间自动在两个主题之间切换',
|
||
themeSchedulerDayTheme: '白天主题',
|
||
themeSchedulerDayStart: '白天开始时间',
|
||
themeSchedulerNightTheme: '夜晚主题',
|
||
themeSchedulerNightStart: '夜晚开始时间',
|
||
themeSchedulerActiveHint: '主题定时器已启用 - 主题将自动切换。',
|
||
visualOptionsTitle: '视觉选项',
|
||
coverArtBackground: '封面背景',
|
||
coverArtBackgroundSub: '在专辑/播放列表标题中显示模糊的封面作为背景',
|
||
playlistCoverPhoto: '播放列表封面照片',
|
||
playlistCoverPhotoSub: '在播放列表详细视图中显示封面照片网格',
|
||
showBitrate: '显示比特率',
|
||
showBitrateSub: '在曲目列表中显示音频比特率',
|
||
floatingPlayerBar: '浮动播放栏',
|
||
floatingPlayerBarSub: '保持播放栏悬浮在内容上方',
|
||
uiScaleTitle: '界面缩放',
|
||
uiScaleLabel: '缩放',
|
||
},
|
||
changelog: {
|
||
modalTitle: '新功能',
|
||
dontShowAgain: '不再显示',
|
||
close: '知道了',
|
||
},
|
||
whatsNew: {
|
||
title: '新功能',
|
||
empty: '此版本暂无更新日志。',
|
||
bannerTitle: '更新日志',
|
||
bannerCollapsed: 'v{{version}} 新功能',
|
||
dismiss: '关闭',
|
||
close: '关闭',
|
||
},
|
||
help: {
|
||
title: '帮助',
|
||
s1: '入门指南',
|
||
q1: '支持哪些服务器?',
|
||
a1: 'Psysonic 可与任何 Subsonic 兼容服务器配合使用:Navidrome、Gonic、Subsonic、Airsonic 等。推荐使用 Navidrome。',
|
||
q2: '如何连接服务器?',
|
||
a2: '打开设置并点击"添加服务器"。输入服务器地址(如 192.168.1.100:4533)、用户名和密码。Psysonic 会在保存前测试连接 — 如果连接失败则不会存储任何信息。',
|
||
q3: '可以使用多个服务器吗?',
|
||
a3: '可以。您可以在设置中添加任意数量的服务器,并随时切换。同一时间只能有一个服务器处于活动状态。',
|
||
s2: '播放',
|
||
q4: '如何播放音乐?',
|
||
a4: '双击任意曲目即可播放。在专辑和艺术家页面,使用"全部播放"开始播放整张专辑。您也可以将曲目拖入队列面板。',
|
||
q5: '有哪些键盘快捷键?',
|
||
a5: '空格键 = 播放 / 暂停 · Esc = 关闭全屏播放器。媒体键(播放/暂停、下一首、上一首)在所有平台上都有效。在 Linux 上,请使用播放器栏按钮作为媒体键。应用内快捷键和系统级全局快捷键可在 设置 → 键盘快捷键 / 全局快捷键 中自定义。',
|
||
q6: '什么是播放队列?',
|
||
a6: '队列显示所有即将播放的曲目。点击右上角标题栏的面板图标(正在播放指示器旁边)打开队列。您可以通过拖拽重新排序,使用随机播放按钮打乱顺序,并将队列保存为播放列表。',
|
||
q7: '如何打开全屏播放器?',
|
||
a7: '点击底部播放器栏的专辑封面缩略图,或其旁边的展开图标。按 Esc 键关闭。',
|
||
q8: '重复播放如何工作?',
|
||
a8: '点击播放器栏的重复按钮可在以下模式间循环:关闭 → 重复全部 → 重复单曲。',
|
||
s3: '音乐库',
|
||
q9: '如何下载专辑?',
|
||
a9: '打开专辑详情页并点击"下载 (ZIP)"。服务器会先将专辑压缩为 ZIP 文件 — 对于大型专辑或无损文件(FLAC / WAV),在实际下载开始前可能需要一些时间。这是正常的:进度条会在服务器完成压缩并开始传输后显示。',
|
||
q10: '如何收藏曲目和专辑?',
|
||
a10: '点击任意曲目行或专辑标题上的星形图标。收藏的项目会显示在侧边栏的收藏夹中。',
|
||
q11: '首页的英雄轮播是什么?',
|
||
a11: '首页顶部的横幅会随机从您的音乐库中选择专辑,每 10 秒轮换一次。点击圆点可跳转到特定专辑,或点击横幅打开专辑。',
|
||
s4: '设置',
|
||
q12: '如何更改主题?',
|
||
a12: '设置 → 主题。从 8 个分组中的大量主题中选择:Psysonic 主题、媒体播放器、操作系统、游戏、电影、电视剧、社交媒体,以及开源经典(Catppuccin、Nord、Gruvbox、Nightfox)。',
|
||
q13: '如何更改语言?',
|
||
a13: '设置 → 语言。支持英语、德语、法语、荷兰语和中文。',
|
||
q15: '如何设置下载文件夹?',
|
||
a15: '设置 → 应用行为 → 下载文件夹。选择任意文件夹 — 下载的专辑将以 ZIP 文件形式保存在那里。未设置自定义文件夹时,将使用浏览器的默认下载位置。',
|
||
s5: '歌曲记录',
|
||
q16: '歌曲记录如何工作?',
|
||
a16: 'Psysonic 直接向 Last.fm 发送记录 — 无需配置 Navidrome。在 设置 → Last.fm 中连接您的 Last.fm 账户并启用记录功能。',
|
||
q17: '何时发送记录?',
|
||
a17: '在您听完曲目的 50% 后提交记录。',
|
||
q22: '播放器栏中的波形是什么?',
|
||
a22: '波形进度条取代了传统的进度滑块。点击任意位置跳转到该位置,或拖动进行拖动播放。已播放部分显示蓝到紫的渐变,缓冲区域稍亮,未播放部分则淡化显示。',
|
||
q24: '可以随机打乱队列吗?',
|
||
a24: '可以。打开队列面板并点击队列标题栏的随机播放图标。当前播放曲目保持在第 1 位 — 其余曲目将随机重新排序。',
|
||
q25: '艺术家页面上的 Last.fm 和 Wikipedia 链接会在浏览器中打开吗?',
|
||
a25: '是的 — 它们会在您的默认系统浏览器中打开。点击时按钮会短暂显示确认标签。',
|
||
s7: '随机混音',
|
||
q26: '什么是随机混音?',
|
||
a26: '随机混音从您的整个音乐库中构建一个随机曲目的播放列表。通过侧边栏的"随机混音"打开并点击"新混音"。您可以在生成前调整曲目数量。',
|
||
q27: '什么是关键词过滤?',
|
||
a27: '关键词过滤会排除流派、标题或专辑名称包含特定词汇的曲目。有声读物会被自动过滤。在 设置 → 随机混音 中添加自定义关键词,或点击曲目列表中的任意流派标签即时添加。',
|
||
q28: '什么是超级流派混音?',
|
||
a28: '超级流派混音将您的音乐库分组为宽泛的类别(摇滚、金属、电子、爵士、古典等),并从该风格构建一个专注的混音。在曲目列表下方选择类别标签。结果会随着每个子流派的获取而逐步显示。',
|
||
s6: '故障排除',
|
||
q18: '封面和艺术家图片加载缓慢。',
|
||
a18: '图片首次加载时从服务器磁盘获取,然后本地缓存 30 天。如果服务器存储较慢,首次访问页面可能需要一些时间。后续访问将瞬间完成。',
|
||
q19: '连接测试失败。',
|
||
a19: '检查 URL 包括端口(如 http://192.168.1.100:4533)。确保防火墙没有阻止连接。在本地网络上尝试使用 http:// 而非 https://。同时验证用户名和密码是否正确。',
|
||
q20: 'Linux 上没有音频。',
|
||
a20: 'Psysonic 提供 .deb(Ubuntu/Debian)、.rpm(Fedora/RHEL)版本,以及通过 AUR 在 Arch/CachyOS 上安装(yay -S psysonic)。没有 AppImage。如果没有音频,请确保 PipeWire 或 PulseAudio 正在运行。',
|
||
q21: '应用在 Linux 上显示黑屏。',
|
||
a21: '这通常是 WebKitGTK 中的 GPU/EGL 驱动问题。使用 GDK_BACKEND=x11 WEBKIT_DISABLE_COMPOSITING_MODE=1 WEBKIT_DISABLE_DMABUF_RENDERER=1 启动。AUR 包和官方 .deb/.rpm 安装程序会自动设置这些环境变量。',
|
||
q29: '什么是交叉淡入淡出和无缝播放?',
|
||
a29: '两者都是 设置 → 音频 中的实验性音频功能。无缝播放预缓冲下一首曲目以消除歌曲间的静音。交叉淡入淡出让当前曲目淡出同时下一首淡入 — 调整持续时间(1-10 秒)以符合您的喜好。',
|
||
q30: 'Psysonic 显示歌词吗?',
|
||
a30: '是的。点击播放器栏的麦克风图标可在队列面板中打开歌词标签。Psysonic 自动从 LRCLIB 获取歌词。如果可用同步歌词,活动行会高亮并随歌曲实时滚动。如果只有纯文本歌词,则静态显示完整文本。',
|
||
q31: '可以自定义键盘快捷键吗?',
|
||
a31: '可以。设置 → 键盘快捷键 允许您重新映射应用内操作(播放/暂停、下一首、上一首、音量增/减、全屏等)到任意按键。设置 → 全局快捷键 允许您分配即使 Psysonic 在后台也能触发的系统级快捷键。',
|
||
q32: '可以更改字体吗?',
|
||
a32: '可以。设置 → 字体 允许您从 10 种字体中选择,包括 IBM Plex Mono、Fira Code、JetBrains Mono、Courier Prime 等。所选字体将应用于整个界面。',
|
||
s8: '离线模式',
|
||
q34: '什么是离线模式?',
|
||
a34: '离线模式(测试版)允许您将专辑缓存到设备,以便在没有活动服务器连接时收听。缓存的曲目存储在本地并直接从磁盘播放 — 播放期间不进行网络请求。',
|
||
q35: '如何缓存专辑以供离线使用?',
|
||
a35: '打开任意专辑并点击专辑标题栏的下载图标。Psysonic 会在后台下载所有曲目。按钮上会显示进度。缓存完成后,图标变为绿色。您可以在离线音乐库页面(侧边栏)查看和移除缓存的专辑。',
|
||
q36: '离线缓存可以使用多少存储空间?',
|
||
a36: '您可以在 设置 → 音乐库 中设置最大缓存大小。达到限制时,专辑页面会显示警告横幅。您可以从离线音乐库中删除单个专辑以释放空间。',
|
||
q37: '如何对歌曲、专辑和艺术家评分?',
|
||
a37: 'Psysonic 通过 OpenSubsonic API 支持 1–5 星评分(需要 Navidrome ≥ 0.53)。可在专辑或播放列表曲目列表、右键菜单或播放器栏中对歌曲评分。专辑在详情页评分,艺术家在艺术家页评分。',
|
||
q38: '可以删除或更改评分吗?',
|
||
a38: '可以。再次点击当前激活的星星即可完全删除评分——第二次点击同一颗星即可清除。点击其他星星可更改评分。',
|
||
q39: '什么是 Skip-to-1★ 和评分过滤器?',
|
||
a39: 'Skip-to-1★ 会在歌曲被连续手动跳过一定次数后自动赋予 1 星评分。在 设置 → 评分 中启用并设置阈值。同样可在此设置随机混音的最低星级过滤条件。',
|
||
q40: '什么是文件夹浏览器?',
|
||
a40: '文件夹浏览器(侧边栏)使用 Miller 列布局浏览服务器音乐目录。点击文件夹查看内容;点击播放图标直接播放或添加到队列。',
|
||
q41: '什么是主题调度器?',
|
||
a41: '设置 → 外观 → 自动切换主题:设置日间主题和夜间主题及开始时间,Psysonic 将在指定时间自动切换主题。',
|
||
q42: '可以调整界面缩放吗?',
|
||
a42: '可以。设置 → 外观 → 界面缩放 可将整个界面缩放至 80%–125%。',
|
||
q43: '可以更改进度条样式吗?',
|
||
a43: '可以。设置 → 外观 → 进度条样式 提供 10 种样式:波形、线条与点、条形、粗条形、分段、霓虹辉光、脉冲波、粒子轨迹、液体填充和复古磁带。',
|
||
q44: '什么是 AutoEQ?',
|
||
a44: '设置 → 音频 中的 10 频段均衡器包含 AutoEQ 查找功能。输入耳机型号即可自动加载校正配置文件。',
|
||
q45: '什么是 Replay Gain?',
|
||
a45: 'Replay Gain 标准化音量,使响亮和安静的专辑以一致的音量播放。在 设置 → 音频 → Replay Gain 中启用;选择曲目模式或专辑模式。',
|
||
q46: '什么是热缓存?',
|
||
a46: '热缓存(Alpha,设置 → 音乐库)将队列中后续曲目预加载到磁盘,实现即时播放,对于慢速或远程服务器尤为有用。Psysonic 保留当前曲目和后续 5 首,达到大小限制时淘汰旧条目。',
|
||
q47: '可以将播放列表缓存到离线吗?',
|
||
a47: '可以。在播放列表详情中点击下载图标,所有曲目将在后台下载。完全缓存后图标变为红色垃圾桶;再次点击即可从离线缓存中删除该播放列表。',
|
||
q48: '什么是无限队列?',
|
||
a48: '当队列播完且关闭了重复播放时,Psysonic会自动添加随机曲目,确保播放不会中断。自动添加的曲目显示在"— 自动添加 —"分隔符下方。',
|
||
q49: '可以通过命令行控制Psysonic吗?',
|
||
a49: '可以。示例:psysonic --player play / pause / next / prev,--player volume 75,--player seek 15,--player mute,--player shuffle,--player repeat off|all|one。还可以切换服务器、音频设备、筛选音乐库和搜索。完整帮助:psysonic --player --help。',
|
||
q50: '如何管理播放列表?',
|
||
a50: '通过侧边栏中的"播放列表"进入。点击"新建播放列表"创建。在详情页可拖拽排序、点击×删除曲目、通过搜索添加歌曲,还可使用"建议"获取智能推荐。',
|
||
q51: '可以备份和恢复设置吗?',
|
||
a51: '可以。设置→备份与恢复可将所有设置、服务器配置、主题和快捷键导出为JSON文件,在其他设备上导入即可一键恢复。',
|
||
q52: '如何更改音频输出设备?',
|
||
a52: '设置→音频→输出设备。Psysonic列出所有可用输出,选择后立即生效。若设备在应用启动后连接,可点击刷新按钮更新列表。',
|
||
q53: '什么是设备同步?',
|
||
a53: '设备同步可将专辑、播放列表或艺术家复制到USB或SD卡。通过侧边栏"Device Sync"打开,选择目标文件夹和来源,点击"传输到设备"。',
|
||
q54: '设备同步中的文件名模板是什么?',
|
||
a54: '模板控制曲目的命名和组织方式。使用预设或通过可点击的令牌自定义:{artist}、{album}、{title}、{track_number}、{disc_number}、{year},以及/作为文件夹分隔符。',
|
||
q55: '设备同步支持跨平台使用吗?',
|
||
a55: '支持。设备上的清单文件包含同步时使用的模板。在不同系统上,Psysonic能正确识别已存在的文件。',
|
||
s9: 'Device Sync',
|
||
q56: '什么是网络电台?',
|
||
a56: '网络电台页面可在Psysonic中播放任何直播流。电台来自Navidrome服务器,可通过管理面板添加或导入.pls/.m3u文件。播放使用HTML5音频。',
|
||
q57: '网络电台支持哪些流格式?',
|
||
a57: 'MP3、AAC、OGG Vorbis及大多数HLS流。MP3和AAC在所有平台均可使用。',
|
||
s10: '网络电台',
|
||
q58: 'Psysonic从哪里获取歌词?',
|
||
a58: '三个可配置来源(设置→歌词):Navidrome服务器、LRCLIB和网易云音乐。每个来源均可启用/禁用,并可拖拽调整优先级。',
|
||
q59: '有没有查看其他用户正在听什么的功能?',
|
||
a59: '有。点击右上角的广播图标,可查看Navidrome服务器上其他用户正在收听的内容,每10秒更新一次。',
|
||
},
|
||
queue: {
|
||
title: '队列',
|
||
savePlaylist: '保存为播放列表',
|
||
updatePlaylist: '更新播放列表',
|
||
filterPlaylists: '筛选播放列表…',
|
||
playlistName: '播放列表名称',
|
||
cancel: '取消',
|
||
save: '保存',
|
||
loadPlaylist: '加载播放列表',
|
||
loading: '加载中…',
|
||
noPlaylists: '未找到播放列表。',
|
||
load: '替换队列并播放',
|
||
appendToQueue: '追加到队列',
|
||
delete: '删除',
|
||
deleteConfirm: '删除播放列表 "{{name}}"?',
|
||
clear: '清空',
|
||
shuffle: '随机打乱队列',
|
||
gapless: '无缝播放',
|
||
crossfade: '交叉淡入淡出',
|
||
infiniteQueue: '无限队列',
|
||
autoAdded: '— 自动添加 —',
|
||
radioAdded: '— 收音机 —',
|
||
hide: '隐藏',
|
||
hideNowPlaying: '隐藏播放信息',
|
||
showNowPlaying: '显示播放信息',
|
||
close: '关闭',
|
||
nextTracks: '即将播放',
|
||
shareQueue: '复制队列分享链接',
|
||
shareQueueEmpty: '队列为空,无法分享。',
|
||
emptyQueue: '队列为空。',
|
||
trackSingular: '首曲目',
|
||
trackPlural: '首曲目',
|
||
showRemaining: '显示剩余时间',
|
||
showTotal: '显示总时间',
|
||
showEta: '显示预计结束时间',
|
||
replayGain: 'ReplayGain',
|
||
rgTrack: '曲目 {{db}} dB',
|
||
rgAlbum: '专辑 {{db}} dB',
|
||
rgPeak: '峰值 {{pk}}',
|
||
sourceOffline: '正在从离线库播放',
|
||
sourceHot: '正在从缓存播放',
|
||
sourceStream: '正在从网络流播放',
|
||
},
|
||
miniPlayer: {
|
||
showQueue: '显示队列',
|
||
hideQueue: '隐藏队列',
|
||
pinOnTop: '置顶',
|
||
pinOff: '取消置顶',
|
||
openMainWindow: '打开主窗口',
|
||
close: '关闭',
|
||
emptyQueue: '队列为空',
|
||
},
|
||
statistics: {
|
||
title: '统计',
|
||
recentlyPlayed: '最近播放',
|
||
mostPlayed: '最常播放的专辑',
|
||
highestRated: '评分最高的专辑',
|
||
genreDistribution: '流派分布(前 20)',
|
||
loadMore: '加载更多',
|
||
statArtists: '艺术家',
|
||
statArtistsTooltip: '仅限专辑艺术家——仅作为单曲艺术家出现(合唱、客串等)且无自己专辑的艺术家不计入此处。',
|
||
statAlbums: '专辑',
|
||
statSongs: '歌曲',
|
||
statGenres: '流派',
|
||
statPlaytime: '音频总时长',
|
||
genreInsights: '流派洞察',
|
||
formatDistribution: '格式分布',
|
||
formatSample: '{{n}} 首曲目的样本',
|
||
computing: '计算中…',
|
||
genreSongs: '{{count}} 首歌曲',
|
||
genreAlbums: '{{count}} 张专辑',
|
||
recentlyAdded: '最近添加',
|
||
decadeDistribution: '按年代分布的专辑',
|
||
decadeAlbums_one: '{{count}} 张专辑',
|
||
decadeAlbums_other: '{{count}} 张专辑',
|
||
decadeUnknown: '未知',
|
||
lfmTitle: 'Last.fm 统计',
|
||
lfmTopArtists: '热门艺术家',
|
||
lfmTopAlbums: '热门专辑',
|
||
lfmTopTracks: '热门曲目',
|
||
lfmPlays: '{{count}} 次播放',
|
||
lfmPeriodOverall: '全部时间',
|
||
lfmPeriod7day: '7 天',
|
||
lfmPeriod1month: '1 个月',
|
||
lfmPeriod3month: '3 个月',
|
||
lfmPeriod6month: '6 个月',
|
||
lfmPeriod12month: '12 个月',
|
||
lfmNotConnected: '在设置中连接 Last.fm 以查看您的统计。',
|
||
lfmRecentTracks: '最近记录',
|
||
lfmNowPlaying: '正在播放',
|
||
lfmJustNow: '刚刚',
|
||
lfmMinutesAgo: '{{n}} 分钟前',
|
||
lfmHoursAgo: '{{n}} 小时前',
|
||
lfmDaysAgo: '{{n}} 天前',
|
||
topRatedSongs: '最高评分歌曲',
|
||
topRatedArtists: '最高评分艺人',
|
||
noRatedSongs: '暂无已评分歌曲。请在专辑或播放列表中为歌曲评分。',
|
||
noRatedArtists: '暂无已评分艺人。',
|
||
},
|
||
player: {
|
||
regionLabel: '音乐播放器',
|
||
openFullscreen: '打开全屏播放器',
|
||
fullscreen: '全屏播放器',
|
||
closeFullscreen: '关闭全屏',
|
||
closeTooltip: '关闭 (Esc)',
|
||
noTitle: '无标题',
|
||
stop: '停止',
|
||
prev: '上一首',
|
||
play: '播放',
|
||
pause: '暂停',
|
||
previewActive: '正在试听',
|
||
previewLabel: '试听',
|
||
delayModalTitle: '定时',
|
||
delayPauseSection: '多久后暂停',
|
||
delayStartSection: '多久后开始',
|
||
delayPreviewPause: '暂停于',
|
||
delayPreviewStart: '开始于',
|
||
delaySchedulePause: '安排暂停',
|
||
delayScheduleStart: '安排开始',
|
||
delayCancelPause: '取消暂停定时',
|
||
delayCancelStart: '取消开始定时',
|
||
delayInactivePause: '仅在正在播放时可用。',
|
||
delayInactiveStart: '仅在暂停且已加载曲目或电台时可用。',
|
||
delayCustomMinutes: '自定义延迟(分钟)',
|
||
delayCustomPlaceholder: '例如 2.5',
|
||
closeDelayModal: '关闭',
|
||
delayIn: '还有',
|
||
delayFmtSec: '{{n}} 秒',
|
||
delayFmtMin: '{{n}} 分钟',
|
||
delayFmtHr: '{{n}} 小时',
|
||
delayCancel: '取消',
|
||
delayApply: '应用',
|
||
next: '下一首',
|
||
repeat: '重复',
|
||
repeatOff: '关闭',
|
||
repeatAll: '全部',
|
||
repeatOne: '单曲',
|
||
progress: '播放进度',
|
||
volume: '音量',
|
||
toggleQueue: '切换队列',
|
||
collapseQueueResize: '收起队列,调整宽度',
|
||
moreOptions: '更多选项',
|
||
equalizer: '均衡器',
|
||
miniPlayer: '迷你播放器',
|
||
lyrics: '歌词',
|
||
fsLyricsToggle: '全屏歌词',
|
||
lyricsLoading: '正在加载歌词…',
|
||
lyricsNotFound: '未找到此曲目的歌词',
|
||
lyricsSourceServer: '来源:服务器',
|
||
lyricsSourceLrclib: '来源:LRCLIB',
|
||
lyricsSourceNetease: '来源:网易云',
|
||
lyricsSourceLyricsplus: '来源:YouLyPlus',
|
||
showDuration: '显示时长',
|
||
showRemainingTime: '显示剩余时间',
|
||
},
|
||
nowPlayingInfo: {
|
||
tab: '信息',
|
||
empty: '播放歌曲以查看信息',
|
||
artist: '艺术家',
|
||
songInfo: '歌曲信息',
|
||
onTour: '巡演',
|
||
noTourEvents: '没有即将到来的演出',
|
||
tourLoading: '加载中…',
|
||
poweredByBandsintown: '巡演数据来自 Bandsintown',
|
||
bioReadMore: '展开',
|
||
bioReadLess: '收起',
|
||
showMoreTours_one: '显示更多 {{count}} 个',
|
||
showMoreTours_other: '显示更多 {{count}} 个',
|
||
showLessTours: '收起',
|
||
enableBandsintownPrompt: '查看即将到来的巡演日期?',
|
||
enableBandsintownPromptDesc: '可选。通过公开的 Bandsintown API 加载当前艺术家的演出。',
|
||
enableBandsintownPrivacy: '启用后,当前播放的艺术家名称将发送到 Bandsintown API 以获取巡演日期。不会发送任何账户或个人数据。',
|
||
enableBandsintownAction: '启用',
|
||
role: {
|
||
artist: '艺术家',
|
||
albumArtist: '专辑艺术家',
|
||
composer: '作曲',
|
||
},
|
||
},
|
||
songInfo: {
|
||
title: '歌曲信息',
|
||
songTitle: '标题',
|
||
artist: '艺术家',
|
||
album: '专辑',
|
||
albumArtist: '专辑艺术家',
|
||
year: '年份',
|
||
genre: '流派',
|
||
duration: '时长',
|
||
track: '曲目',
|
||
format: '格式',
|
||
bitrate: '比特率',
|
||
sampleRate: '采样率',
|
||
bitDepth: '位深度',
|
||
channels: '声道',
|
||
fileSize: '文件大小',
|
||
path: '文件路径',
|
||
replayGainTrack: 'RG 曲目增益',
|
||
replayGainAlbum: 'RG 专辑增益',
|
||
replayGainPeak: 'RG 曲目峰值',
|
||
mono: '单声道',
|
||
stereo: '立体声',
|
||
},
|
||
playlists: {
|
||
title: '播放列表',
|
||
newPlaylist: '新建播放列表',
|
||
unnamed: '未命名播放列表',
|
||
createName: '播放列表名称…',
|
||
create: '创建',
|
||
cancel: '取消',
|
||
empty: '暂无播放列表。',
|
||
emptyPlaylist: '此播放列表为空。',
|
||
addFirstSong: '添加第一首歌曲',
|
||
notFound: '未找到播放列表。',
|
||
songs: '{{n}} 首歌曲',
|
||
playAll: '全部播放',
|
||
shuffle: '随机播放',
|
||
addToQueue: '添加到队列',
|
||
back: '返回播放列表',
|
||
deletePlaylist: '删除',
|
||
confirmDelete: '再次点击确认删除',
|
||
removeSong: '从播放列表中移除',
|
||
addSongs: '添加歌曲',
|
||
searchPlaceholder: '搜索音乐库…',
|
||
noResults: '无结果。',
|
||
suggestions: '推荐歌曲',
|
||
noSuggestions: '暂无推荐。',
|
||
titleBadge: '播放列表',
|
||
refreshSuggestions: '新建议',
|
||
addSong: '添加到播放列表',
|
||
preview: '试听 (30 秒)',
|
||
previewStop: '停止试听',
|
||
playNextSuggestion: '播放下一首',
|
||
suggestionsHint: '双击行可添加到播放列表',
|
||
addSelected: '添加所选',
|
||
cacheOffline: '离线缓存播放列表',
|
||
offlineCached: '播放列表已缓存',
|
||
removeOffline: '从离线缓存中移除',
|
||
offlineDownloading: '正在缓存… ({{done}}/{{total}} 张专辑)',
|
||
publicLabel: '公开',
|
||
privateLabel: '私有',
|
||
editMeta: '编辑播放列表',
|
||
editNamePlaceholder: '播放列表名称…',
|
||
editCommentPlaceholder: '添加描述…',
|
||
editPublic: '公开播放列表',
|
||
editSave: '保存',
|
||
editCancel: '取消',
|
||
changeCover: '更改封面图片',
|
||
changeCoverLabel: '更改照片',
|
||
removeCover: '删除照片',
|
||
coverUpdated: '封面已更新',
|
||
metaSaved: '播放列表已更新',
|
||
downloadZip: '下载 (ZIP)',
|
||
// Toast notifications for multi-select
|
||
addSuccess: '{{count}} 首歌曲已添加到 {{playlist}}',
|
||
addPartial: '{{added}} 首已添加,{{skipped}} 首跳过(重复)',
|
||
addAllSkipped: '全部跳过({{count}} 首重复)',
|
||
addedAsDuplicates: '{{count}} 首歌曲已添加到 {{playlist}}(作为重复项)',
|
||
duplicateConfirmTitle: '已在播放列表中',
|
||
duplicateConfirmMessage: '所有 {{count}} 首歌曲已在 "{{playlist}}" 中。仍要作为重复项添加吗?',
|
||
duplicateConfirmAction: '仍要添加',
|
||
addError: '添加歌曲时出错',
|
||
createAndAddSuccess: '播放列表 "{{playlist}}" 已创建,包含 {{count}} 首歌曲',
|
||
createError: '创建播放列表时出错',
|
||
deleteSuccess: '{{count}} 个播放列表已删除',
|
||
deleteFailed: '删除 {{name}} 时出错',
|
||
deleteSelected: '删除所选',
|
||
deleteSelectedPartial: '所选 {{total}} 个播放列表中只有 {{n}} 个可删除(其余属于他人)。',
|
||
mergeSuccess: '{{count}} 首歌曲已合并到 {{playlist}}',
|
||
mergeNoNewSongs: '没有新歌曲可添加',
|
||
mergeError: '合并播放列表时出错',
|
||
mergeInto: '合并到',
|
||
selectionCount: '{{count}} 已选择',
|
||
select: '选择',
|
||
startSelect: '启用选择',
|
||
cancelSelect: '取消',
|
||
loadingAlbums: '正在解析 {{count}} 张专辑…',
|
||
loadingArtists: '正在解析 {{count}} 位艺术家…',
|
||
myPlaylists: '我的播放列表',
|
||
noOtherPlaylists: '没有其他可用播放列表',
|
||
addToPlaylistSuccess: '{{count}} 首歌曲已添加到 {{playlist}}',
|
||
addToPlaylistNoNew: '{{playlist}} 没有新歌曲',
|
||
addToPlaylistError: '添加到播放列表时出错',
|
||
importCSV: '导入 CSV',
|
||
importCSVTooltip: '从 Spotify CSV 导入',
|
||
csvImportReport: 'CSV 导入报告',
|
||
csvImportTotal: '总计',
|
||
csvImportAdded: '已添加',
|
||
csvImportDuplicates: '重复项',
|
||
csvImportNotFound: '未找到',
|
||
csvImportNetworkErrors: '网络错误',
|
||
csvImportDuplicatesTitle: '重复曲目(已在播放列表中):',
|
||
csvImportNotFoundTitle: '未找到的曲目:',
|
||
csvImportNetworkErrorsTitle: '网络错误(可重试导入):',
|
||
csvImportDownloadReport: '下载报告',
|
||
csvImportClose: '关闭',
|
||
csvImportNoValidTracks: 'CSV 文件中未找到有效曲目',
|
||
csvImportFailed: 'CSV 文件导入失败',
|
||
csvImportToast: '{{added}} 已添加,{{notFound}} 未找到,{{duplicates}} 重复项',
|
||
csvImportDownloadSuccess: '报告下载成功',
|
||
csvImportDownloadError: '报告下载失败',
|
||
},
|
||
smartPlaylists: {
|
||
sectionBasic: '1. 基础',
|
||
sectionGenres: '2. 流派',
|
||
sectionYearsAndFilters: '3. 年份与筛选',
|
||
genreMode: '流派模式',
|
||
genreModeInclude: '包含流派',
|
||
genreModeExclude: '排除流派',
|
||
genreSearchPlaceholder: '筛选流派...',
|
||
availableGenres: '可用',
|
||
selectedGenres: '已选',
|
||
yearMode: '年份模式',
|
||
yearModeInclude: '包含范围',
|
||
yearModeExclude: '排除范围',
|
||
name: '名称(不含前缀)',
|
||
limit: '数量上限',
|
||
limitHint: '要包含在播放列表中的曲目数量(1-{{max}},通常为 50)。',
|
||
artistContains: '艺术家包含…',
|
||
albumContains: '专辑包含…',
|
||
titleContains: '标题包含…',
|
||
minRating: '最低评分',
|
||
minRatingAria: '智能播放列表的最低评分',
|
||
minRatingHint: '0 表示关闭最低阈值;1-5 仅保留评分高于所选值的曲目。',
|
||
fromYear: '起始年份',
|
||
toYear: '结束年份',
|
||
excludeUnrated: '排除未评分曲目',
|
||
compilationOnly: '仅合集',
|
||
create: '新建智能播放列表',
|
||
save: '保存智能播放列表',
|
||
created: '已创建 {{name}}',
|
||
updated: '已更新 {{name}}',
|
||
createFailed: '无法创建智能播放列表。',
|
||
updateFailed: '无法更新智能播放列表。',
|
||
navidromeOnly: '仅 Navidrome 服务器支持创建智能播放列表。',
|
||
loadFailed: '无法从 Navidrome 加载智能播放列表。',
|
||
sortRandom: '排序:随机',
|
||
sortTitleAsc: '排序:标题 A-Z',
|
||
sortTitleDesc: '排序:标题 Z-A',
|
||
sortYearDesc: '排序:年份降序',
|
||
sortYearAsc: '排序:年份升序',
|
||
sortPlayCountDesc: '排序:播放次数降序',
|
||
},
|
||
mostPlayed: {
|
||
title: '最常播放',
|
||
topArtists: '热门艺术家',
|
||
topAlbums: '热门专辑',
|
||
plays: '播放 {{n}} 次',
|
||
sortMost: '最多播放在前',
|
||
sortLeast: '最少播放在前',
|
||
loadMore: '加载更多专辑',
|
||
noData: '暂无播放数据。开始收听吧!',
|
||
noArtists: '所有艺术家已过滤。',
|
||
filterCompilations: '隐藏合辑艺术家(Various Artists、原声带等)',
|
||
filterCompilationsShort: '隐藏合辑',
|
||
},
|
||
radio: {
|
||
title: '网络电台',
|
||
empty: '未配置任何电台。',
|
||
addStation: '添加电台',
|
||
editStation: '编辑',
|
||
deleteStation: '删除电台',
|
||
confirmDelete: '再次点击确认',
|
||
stationName: '电台名称…',
|
||
streamUrl: '流地址…',
|
||
homepageUrl: '主页地址(可选)',
|
||
save: '保存',
|
||
cancel: '取消',
|
||
live: '直播',
|
||
liveStream: '网络电台',
|
||
openHomepage: '打开主页',
|
||
changeCoverLabel: '更换封面',
|
||
removeCover: '移除封面',
|
||
browseDirectory: '搜索目录',
|
||
directoryPlaceholder: '搜索电台…',
|
||
noResults: '未找到电台。',
|
||
stationAdded: '电台已添加',
|
||
filterAll: '全部',
|
||
filterFavorites: '收藏',
|
||
sortManual: '手动',
|
||
sortAZ: 'A → Z',
|
||
sortZA: 'Z → A',
|
||
sortNewest: '最新',
|
||
favorite: '添加到收藏',
|
||
unfavorite: '从收藏移除',
|
||
noFavorites: '没有收藏的电台。',
|
||
listenerCount_one: '{{count}} 位听众',
|
||
listenerCount_other: '{{count}} 位听众',
|
||
recentlyPlayed: '最近播放',
|
||
upNext: '即将播放',
|
||
},
|
||
folderBrowser: {
|
||
empty: '空文件夹',
|
||
error: '加载失败',
|
||
},
|
||
deviceSync: {
|
||
title: '设备同步',
|
||
targetFolder: '目标文件夹',
|
||
noFolderChosen: '未选择文件夹',
|
||
selectDrive: '选择驱动器…',
|
||
refreshDrives: '刷新驱动器',
|
||
noDrivesDetected: '未检测到可移动驱动器',
|
||
browseManual: '手动浏览…',
|
||
free: '可用',
|
||
notMountedVolume: '目标不在已挂载的卷上。驱动器可能已断开。',
|
||
chooseFolder: '选择…',
|
||
filenameTemplate: '文件名模板',
|
||
targetDevice: '目标设备',
|
||
templateHint: '变量:{artist}、{album}、{title}、{track_number}、{disc_number}、{year}',
|
||
cleanupButton: '删除不在选择范围内的文件',
|
||
cleanupNothingToDelete: '无需删除 — 设备已同步。',
|
||
confirmCleanup: '将从设备中删除 {{count}} 个不在当前选择范围内的文件。继续?',
|
||
cleanupComplete: '已从设备中删除 {{count}} 个文件。',
|
||
selectedSources: '已选来源',
|
||
noSourcesSelected: '未选择来源。点击浏览器中的项目以添加。',
|
||
clearAll: '全部清除',
|
||
tabPlaylists: '播放列表',
|
||
tabAlbums: '专辑',
|
||
tabArtists: '艺术家',
|
||
searchPlaceholder: '搜索…',
|
||
syncButton: '同步到设备',
|
||
actionTransfer: '传输到设备',
|
||
actionDelete: '从设备删除',
|
||
actionApplyAll: '应用所有更改',
|
||
templatePreview: '预览',
|
||
templatePresetStandard: '标准',
|
||
templatePresetMultiDisc: '多碟',
|
||
templatePresetAltFolder: '备用文件夹',
|
||
tokenSlashHint: '/ = 文件夹分隔符',
|
||
cancel: '取消',
|
||
noTargetDir: '请先选择目标文件夹。',
|
||
noSources: '请至少选择一个来源。',
|
||
noTracks: '所选来源中未找到曲目。',
|
||
fetchError: '从服务器加载曲目失败。',
|
||
syncComplete: '同步完成。',
|
||
dismiss: '关闭',
|
||
cancelSync: '取消',
|
||
syncCancelled: '同步已取消(已传输 {{done}} / {{total}})。',
|
||
colName: '名称',
|
||
colType: '类型',
|
||
colStatus: '状态',
|
||
onDevice: '设备管理器',
|
||
addSources: '添加…',
|
||
syncResult: '已传输 {{done}},{{skipped}} 已是最新(共 {{total}})',
|
||
deleteFromDevice: '标记为删除({{count}})',
|
||
confirmDelete: '从设备删除 {{count}} 个项目:{{names}}?',
|
||
deleteComplete: '已从设备删除 {{count}} 个项目。',
|
||
manifestImported: '已从设备清单导入 {{count}} 个来源。',
|
||
statusSynced: '已同步',
|
||
statusPending: '待处理',
|
||
statusDeletion: '删除中',
|
||
markForDeletion: '标记为删除',
|
||
removeSource: '移除',
|
||
undoDeletion: '撤销删除',
|
||
syncInBackground: '同步已在后台启动 — 您可以离开此页面。',
|
||
syncInProgress: '{{done}} / {{total}} 首曲目…',
|
||
syncSummary: '同步摘要',
|
||
calculating: '正在计算所需数据…',
|
||
filesToAdd: '要添加的文件:',
|
||
filesToDelete: '要删除的文件:',
|
||
netChange: '净变化:',
|
||
availableSpace: '可用磁盘空间:',
|
||
spaceWarning: '警告:目标设备的可用空间不足。',
|
||
proceed: '继续同步',
|
||
notEnoughSpace: '检测到物理磁盘空间不足!',
|
||
liveSearch: '实时',
|
||
randomAlbumsLabel: '随机专辑',
|
||
},
|
||
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 的工作原理',
|
||
helpTitle: 'Orbit 的工作原理',
|
||
helpIntro: 'Orbit 将 Psysonic 变成一个共享的收听空间。主持人选择音乐;访客同步收听并可以推荐曲目。',
|
||
helpHostOnly: '(主持人)',
|
||
helpSec1Title: '什么是 Orbit?',
|
||
helpSec1Body: '"一起听"模式 — 主持人驱动播放,访客加入收听。一切都通过你自己的 Navidrome 服务器上的播放列表进行;没有外部基础设施。',
|
||
helpSec2Title: '主持人和访客',
|
||
helpSec2Body: '主持人控制播放(播放 / 暂停 / 跳过 / 跳转),并决定会话何时结束。访客跟随主持人的播放,可以推荐曲目,随时离开或重新加入。只有主持人可以踢出或永久封禁参与者。',
|
||
helpSec2WarnHead: '重要:使用独立账户。',
|
||
helpSec2WarnBody: '每个参与者都需要自己的 Navidrome 账户。如果主持人和访客使用同一用户登录,他们的提交会冲突,主持人将永远看不到访客的建议。',
|
||
helpSec3Title: '启动和邀请',
|
||
helpSec3Body: '点击"Orbit"按钮 → 创建会话 → 启动弹窗显示可复制的邀请链接,并可选清空你当前的队列。以任何方式分享该链接。会话运行时,顶部会话栏中的分享按钮可随时再次复制链接。',
|
||
helpSec4Title: '加入',
|
||
helpSec4Body: '使用 Ctrl+V / Cmd+V 在 Psysonic 的任何位置粘贴邀请链接 — 加入提示会自动弹出。或者:「Orbit」→ 加入会话 → 粘贴到字段中。如果链接指向你有账户的服务器,Psysonic 会为你切换。当你在该服务器上有多个账户时,小型选择器会询问使用哪个。',
|
||
helpSec5Title: '推荐曲目',
|
||
helpSec5Body: '在任何曲目列表中:双击一行,或右键 → "添加到 Orbit 会话"。单击会显示提示而不是将整张专辑扔进共享队列 — 这是有意的。明确的批量操作(如"全部播放"或"播放专辑")先要求确认然后追加(永不替换)。',
|
||
helpSec6Title: '共享队列',
|
||
helpSec6Body: '队列显示主持人即将播放的曲目 — 所有人可见。批量添加总是追加到末尾,因此访客的建议不会丢失。自动洗牌定期重新排序队列(可配置:1 / 5 / 10 / 15 / 30 分钟)。如果你的播放偏离主持人,会话栏中的"跟上"按钮会让你回到主持人的实时位置。',
|
||
helpSec7Title: '审批',
|
||
helpSec7Body: '默认情况下,访客建议需要手动审批 — 它们出现在队列面板顶部的"审批"栏中,带有接受 / 拒绝按钮。可以在会话设置中打开自动审批,使所有建议直接生效。',
|
||
helpSec8Title: '参与者和设置',
|
||
helpSec8Body: '打开会话栏中的设置图标以配置洗牌频率、自动审批和"立即洗牌"快捷方式。点击参与者数量查看谁已连接 — 踢出(可通过链接重新加入)或封禁(在该会话中被锁定)。访客也可以看到参与者列表,但仅为只读。',
|
||
helpSec9Title: '结束会话',
|
||
helpSec9Body: '主持人 X → 确认对话框 → 会话对所有人关闭,服务器播放列表会自动清理。访客 X → 访客离开,会话继续运行。如果主持人保持静默 5 分钟,访客会自动退出并收到通知;该窗口内的短时间重连不可见。',
|
||
participantsInviteLabel: '邀请链接',
|
||
participantsCountLabel: '{{count}} 人在会话中',
|
||
participantsHost: '主持人',
|
||
participantsEmpty: '还没有访客',
|
||
participantsKickTooltip: '从会话中移除',
|
||
participantsKickAria: '移除 {{user}}',
|
||
participantsRemoveTooltip: '从会话中移除',
|
||
participantsRemoveAria: '从此会话中移除 {{user}}',
|
||
participantsBanTooltip: '永久封禁',
|
||
participantsBanAria: '永久封禁 {{user}}',
|
||
participantsMuteTooltip: '禁止投歌',
|
||
participantsUnmuteTooltip: '允许投歌',
|
||
participantsMuteAria: '禁止 {{user}} 投歌',
|
||
participantsUnmuteAria: '允许 {{user}} 重新投歌',
|
||
confirmRemoveTitle: '从会话中移除?',
|
||
confirmRemoveBody: '{{user}} 将从会话中移除,但可以通过你的邀请链接重新加入。',
|
||
confirmRemoveConfirm: '移除',
|
||
confirmBanTitle: '永久封禁?',
|
||
confirmBanBody: '{{user}} 将被移除并被阻止重新加入此会话。在会话存在期间无法撤销。',
|
||
confirmBanConfirm: '封禁',
|
||
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: '你已被会话封禁',
|
||
exitRemovedTitle: '你已从会话中移除',
|
||
exitEndedTitle: '主持人已结束会话',
|
||
exitHostTimeoutTitle: '主持人无响应',
|
||
exitHostTimeoutBody: '{{host}} 有一段时间没有发送更新了,所以"{{name}}"在你这边已关闭。你可以随时通过邀请链接重新加入。',
|
||
exitKickedBody: '{{host}} 已将你从"{{name}}"封禁。你无法重新加入。',
|
||
exitRemovedBody: '{{host}} 已将你从"{{name}}"移除。你可以随时通过邀请链接重新加入。',
|
||
exitEndedBody: '"{{name}}"已结束。希望你玩得开心。',
|
||
exitOk: '好的',
|
||
},
|
||
tray: {
|
||
playPause: '播放 / 暂停',
|
||
nextTrack: '下一首',
|
||
previousTrack: '上一首',
|
||
showHide: '显示 / 隐藏',
|
||
exitPsysonic: '退出 Psysonic',
|
||
nothingPlaying: '当前没有播放',
|
||
},
|
||
};
|