mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 14:55:43 +00:00
10fc489ce9
* fix(themes): show an offline banner when the Theme Store is unavailable When the registry can't be fetched and no catalogue is cached, the store now shows a clear offline banner (icon, message, retry) in place of the list, and hides the search/filter toolbar — there is nothing to browse. The cached-catalogue fallback with its offline indicator is unchanged, so the store still works offline when a catalogue was previously cached. * docs(themes): note the offline-banner PR in the Theme Store entry Add PR #1013 to the still-unreleased Theme Store changelog and credits entry, alongside the other follow-ups.
652 lines
39 KiB
TypeScript
652 lines
39 KiB
TypeScript
export const settings = {
|
||
title: '设置',
|
||
language: '语言',
|
||
languageEn: 'English',
|
||
languageDe: 'Deutsch',
|
||
languageEs: 'Español',
|
||
languageFr: 'Français',
|
||
languageNl: 'Nederlands',
|
||
languageNb: 'Norsk',
|
||
languageRu: 'Русский',
|
||
languageZh: '中文',
|
||
languageRo: 'Română',
|
||
font: '字体',
|
||
fontHintOpenDyslexic: '阅读障碍友好 · 不支持中文',
|
||
theme: '主题',
|
||
appearance: '外观',
|
||
servers: '服务器',
|
||
serverName: '服务器名称',
|
||
serverUrl: '服务器地址',
|
||
serverUrlPlaceholder: '192.168.1.100:4533 或 https://music.example.com',
|
||
serverAlternateUrl: '备用地址(可选)',
|
||
serverAlternateUrlPlaceholderPublic: 'https://music.example.com',
|
||
serverAlternateUrlPlaceholderLocal: '192.168.1.100:4533',
|
||
serverAlternateUrlHintAddPublic: '可以添加一个公共地址,便于在家庭网络之外访问。',
|
||
serverAlternateUrlHintAddLocal: '可以添加一个本地地址,在家中连接更快。',
|
||
serverBothLanError: '两个地址都是本地地址——保留一个或添加一个公共地址。',
|
||
dualAddressVerifying: '正在确认两个地址指向同一台服务器…',
|
||
dualAddressMismatch: '两个地址指向不同的服务器。请检查拼写后重试。',
|
||
dualAddressInsufficient: '无法确认两个地址是同一台服务器。请删除一个地址以继续。',
|
||
dualAddressUnreachable: '无法连接到 {{host}}。请检查地址和网络后重试。',
|
||
urlRemigrationTitle: '移动你的资料库数据?',
|
||
urlRemigrationMessage: '更改地址将把所有资料库、分析和封面缓存数据从 {{oldKey}} 移动到 {{newKey}}。此操作无法撤销。',
|
||
urlRemigrationConfirm: '移动数据',
|
||
urlRemigrationProgress: '正在移动资料库数据…',
|
||
urlRemigrationFailureInspect: '无法检查将要移动的内容。请重试或打开调试日志。',
|
||
urlRemigrationFailureRun: '资料库数据移动失败。已保存的数据保持不变——请重试。',
|
||
urlRemigrationFailureCoverRename: '资料库数据已移动,但封面文件无法重命名。封面将在下次访问时重新生成。',
|
||
shareUsesLocalUrl: '在分享链接中使用本地地址',
|
||
shareUsesLocalUrlDesc: '影响 Orbit 邀请和资料库分享。默认:公共地址。',
|
||
serverUsername: '用户名',
|
||
serverPassword: '密码',
|
||
addServer: '添加服务器',
|
||
addServerTitle: '添加新服务器',
|
||
editServer: '编辑',
|
||
editServerTitle: '编辑服务器',
|
||
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: '浏览器内封面和艺术家图片缓存(IndexedDB)。存满时,最旧的条目将自动移除。',
|
||
cacheUsedImages: '图片:',
|
||
cacheUsedOffline: '离线曲目:',
|
||
cacheUsedHot: '占用空间:',
|
||
hotCacheTrackCount: '缓存曲目数:',
|
||
cacheMaxLabel: '最大容量',
|
||
cacheClearBtn: '清除缓存',
|
||
cacheClearWarning: '将清除所有已缓存的封面和艺术家图片,需要时会重新下载。',
|
||
cacheClearConfirm: '清除图片缓存',
|
||
cacheClearCancel: '取消',
|
||
mediaDirTitle: '媒体文件夹',
|
||
mediaDirDesc: '本地播放根目录。离线音乐库使用 library/;队列预缓冲使用 cache/。',
|
||
mediaDirDefault: '默认(应用数据)',
|
||
mediaDirChange: '更改文件夹',
|
||
mediaDirClear: '重置为默认',
|
||
mediaDirHint: '新下载将保存到此位置。现有文件保留在原路径,直到你删除它们。',
|
||
offlineStorageTitle: '离线存储',
|
||
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 将继续在系统托盘中运行,而不是退出。',
|
||
clockFormat: '时间格式',
|
||
clockFormatDesc: '队列预计结束时间和睡眠定时器预览使用的时间格式。',
|
||
clockFormatAuto: '自动(跟随系统)',
|
||
clockFormatTwentyFour: '24 小时制',
|
||
clockFormatTwelve: '12 小时制(AM/PM)',
|
||
preloadMiniPlayer: '预加载迷你播放器',
|
||
preloadMiniPlayerDesc: '在应用启动时于后台构建迷你播放器窗口,使其首次打开即可立即显示内容。会占用少量额外内存。',
|
||
linuxWebkitSmoothScroll: '滚轮平滑(Linux)',
|
||
linuxWebkitSmoothScrollDesc: '开:惯性滚动。关:逐行,类似 GTK。',
|
||
linuxWebkitInputForceRepaint: '获得焦点时重绘输入框(Linux)',
|
||
linuxWebkitInputForceRepaintDesc: '针对 WebKitGTK 2.50.x 文本框点击后冻结的临时方案。聚焦时搜索图标会短暂闪烁。',
|
||
linuxWaylandTextRender: 'Wayland 文本渲染(Linux)',
|
||
linuxWaylandTextRenderDesc: '界面字体平滑立即生效。WebKit 硬件加速策略(锐利 / GPU)会保存并在下次启动应用时应用;运行中反复切换可能导致 WebKitGTK 卡死。',
|
||
linuxWaylandTextRenderBalanced: '平衡',
|
||
linuxWaylandTextRenderSharp: '锐利(偏 CPU)',
|
||
linuxWaylandTextRenderGpu: 'GPU 优先',
|
||
linuxWaylandTextRenderMinimal: '最小(默认 CSS 平滑)',
|
||
discordRichPresence: 'Discord Rich Presence',
|
||
discordRichPresenceDesc: '在 Discord 个人资料上显示当前播放的曲目。需要 Discord 处于运行状态。',
|
||
discordCoverSource: '封面来源',
|
||
discordCoverSourceDesc: '从何处获取 Discord 个人资料上显示的专辑封面。',
|
||
discordCoverNone: '无(仅显示应用图标)',
|
||
discordCoverServer: '服务器(通过专辑信息)',
|
||
discordCoverApple: 'Apple Music',
|
||
discordOptions: 'Discord 高级选项',
|
||
discordTemplates: '自定义文本模板',
|
||
discordTemplatesDesc: '自定义在 Discord 个人资料上显示的信息。变量:{title}, {artist}, {album}',
|
||
discordTemplateDetails: '主行 (details)',
|
||
discordTemplateState: '副行 (state)',
|
||
discordTemplateLargeText: '专辑提示 (largeText)',
|
||
discordTemplateName: '用户列表行 (name)',
|
||
nowPlayingEnabled: '在实时窗口中显示',
|
||
nowPlayingEnabledDesc: '将当前播放的曲目广播到服务器的实时听众视图。禁用以停止发送播放数据。',
|
||
enableBandsintown: 'Bandsintown 巡演日期',
|
||
enableBandsintownDesc: '在信息标签页中显示当前艺术家的即将到来的演出。数据通过公开的 Bandsintown API 获取。',
|
||
lyricsServerFirst: '优先使用服务器歌词',
|
||
lyricsServerFirstDesc: '先查询服务器提供的歌词(内嵌标签、sidecar 文件),再查询 LRCLIB。禁用则优先使用 LRCLIB。',
|
||
enableNeteaselyrics: '网易云音乐歌词',
|
||
enableNeteaselyricsDesc: '当服务器和 LRCLIB 均无结果时,使用网易云音乐作为最终歌词来源。对亚洲及国际音乐覆盖最佳。',
|
||
lyricsSourcesTitle: '歌词来源',
|
||
lyricsSourcesDesc: '选择要查询的歌词来源及其顺序。拖动以排序。已禁用的来源将被跳过。',
|
||
lyricsSourceServer: '服务器',
|
||
lyricsSourceLrclib: 'LRCLIB',
|
||
lyricsSourceNetease: '网易云音乐',
|
||
lyricsYouLyPlus: 'YouLyPlus(卡拉OK)',
|
||
lyricsYouLyPlusDesc: '来自社区后端(Apple Music、Spotify、Musixmatch、QQ 音乐)的逐字同步歌词。优先尝试;下方启用的来源作为后备。',
|
||
lyricsSourcesFallbackHint: 'YouLyPlus 找不到时用作后备。拖动可重新排序。',
|
||
lyricsSourcesPrimaryHint: '按顺序尝试。拖动可重新排序。全部关闭 = 禁用歌词。',
|
||
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 按钮关闭。',
|
||
libraryGridMaxColumnsTitle: '资料库卡片网格',
|
||
libraryGridMaxColumnsPerfHint: '列数越多,每行显示的卡片越多,布局与绘制开销通常也越大;在超大曲库或较慢设备上更明显。',
|
||
libraryGridMaxColumnsRangeLabel: '最大列数({{min}}–{{max}})',
|
||
libraryGridMaxColumnsDesc: '适用于专辑、艺人、播放列表、电台、离线及其他卡片式资料库视图。列数越少卡片越大,通常对 CPU 更友好。',
|
||
libraryIndexTitle: '本地资料库索引(预览)',
|
||
libraryIndexDesc: '为每个服务器保留曲目数据库的本地副本,使浏览和搜索保持快速并支持离线使用。初始同步会针对所有已配置的服务器运行;离线的服务器会自动重试。',
|
||
libraryIndexDeltaHint: '后台增量同步每 30 秒检查已绑定的服务器,并在到期时运行——通常每 5–45 分钟一次,取决于资料库大小和负载。',
|
||
libraryIndexEnable: '启用本地资料库索引',
|
||
libraryIndexEnableAllDesc: '在后台为所有已配置的服务器建立索引并同步。',
|
||
libraryIndexNoServer: '请先添加服务器。',
|
||
libraryIndexServerListTitle: '已索引的服务器',
|
||
libraryIndexAllExcluded: '所有服务器均已排除同步。请重新启用索引或添加服务器。',
|
||
libraryIndexServerOffline: '服务器离线——同步已推迟',
|
||
libraryIndexServerDeferred: '已推迟',
|
||
libraryIndexServerSyncing: '同步中…',
|
||
libraryIndexFullResync: '完全重新同步',
|
||
libraryIndexDeltaSync: '增量同步',
|
||
libraryIndexExcludeServer: '排除同步',
|
||
libraryIndexExcludingServer: '正在排除…',
|
||
libraryIndexExcludedTitle: '已排除同步',
|
||
libraryIndexIncludeServer: '重新纳入',
|
||
libraryIndexIncludingServer: '正在纳入…',
|
||
libraryIndexStatus: '状态',
|
||
libraryIndexStatusIdle: '空闲',
|
||
libraryIndexStatusProbing: '正在检查服务器…',
|
||
libraryIndexStatusInitial: '初始同步中…',
|
||
libraryIndexStatusReady: '就绪({{count}} 首曲目)',
|
||
libraryIndexStatusError: '错误——请查看日志',
|
||
libraryIndexProgressIngest: '已索引 {{count}} 首曲目…',
|
||
libraryIndexProgressVerify: '已验证 {{checked}}(移除 {{deleted}})',
|
||
libraryIndexSyncNow: '立即同步',
|
||
libraryIndexVerify: '验证资料库完整性',
|
||
libraryIndexCancel: '取消',
|
||
libraryIndexAutoReconcile: '数量下降时自动核对',
|
||
libraryIndexAutoReconcileDesc: '当服务器报告的曲目少于预期时,自动检查已删除的曲目。',
|
||
libraryIndexSyncError: '资料库同步失败:{{error}}',
|
||
libraryIndexBindError: '无法启用索引:{{error}}',
|
||
randomMixTitle: '随机混音黑名单',
|
||
luckyMixMenuTitle: '在菜单中显示“好运混音”',
|
||
luckyMixMenuDesc: '在“创建混音”中启用“好运混音”,并在分离导航时作为独立菜单项显示。仅当当前服务器启用 AudioMuse 时可见。',
|
||
randomMixBlacklistTitle: '自定义过滤关键词',
|
||
randomMixBlacklistDesc: '当任何关键词匹配流派、标题、专辑或艺术家时,歌曲将被排除(当上方复选框开启时生效)。',
|
||
randomMixBlacklistPlaceholder: '添加关键词…',
|
||
randomMixBlacklistAdd: '添加',
|
||
randomMixBlacklistEmpty: '尚未添加自定义关键词。',
|
||
randomMixHardcodedTitle: '内置关键词(复选框开启时生效)',
|
||
tabAudio: '音频',
|
||
tabStorage: '离线与缓存',
|
||
tabAppearance: '外观',
|
||
tabThemes: '主题',
|
||
themesYourThemesTitle: '你的主题',
|
||
themesCvdTooltip: '色觉障碍友好 — 绿色盲、红色盲、蓝色盲',
|
||
themeStoreTitle: '主题商店',
|
||
themeStoreSubmitText: '做了自己的主题?与社区分享——更多信息见主题仓库。',
|
||
themeStoreSubmitLink: '打开主题仓库',
|
||
themeStoreSearchPlaceholder: '搜索主题…',
|
||
themeStoreFilterMode: '按模式筛选',
|
||
themeStoreModeAll: '全部',
|
||
themeStoreModeDark: '深色',
|
||
themeStoreModeLight: '浅色',
|
||
themeStoreRefresh: '刷新',
|
||
themeStoreLoading: '正在加载主题…',
|
||
themeStoreError: '无法加载主题商店。请检查网络连接。',
|
||
themeStoreRetry: '重试',
|
||
themeStoreOfflineTitle: '主题商店已离线',
|
||
themeStoreEmpty: '没有符合筛选条件的主题。',
|
||
themeStoreActive: '使用中',
|
||
themeStoreEnlarge: '放大预览',
|
||
themeStoreByAuthor: '作者:{{author}}',
|
||
themeMigrationNoticeTitle: '主题已移至商店',
|
||
themeMigrationNoticeBody: '{{themes}} 不再内置于应用中。你可以在主题商店(设置 → 主题)重新安装,或选择其他主题。',
|
||
themeMigrationNoticeOpen: '打开主题商店',
|
||
themeStoreOffline: '正在显示上次缓存的目录——你似乎处于离线状态。',
|
||
themeStoreInstall: '安装',
|
||
themeStoreInstalling: '正在安装…',
|
||
themeStoreApply: '应用',
|
||
themeStoreUpdate: '更新',
|
||
themeStoreUpdating: '正在更新…',
|
||
themeStoreUninstall: '卸载',
|
||
themeStoreInstallFailed: '安装失败',
|
||
themeStorePagePrev: '上一页',
|
||
themeStorePageNext: '下一页',
|
||
themeStorePageStatus: '第 {{page}} 页,共 {{total}} 页',
|
||
themeImportTitle: '导入主题',
|
||
themeImportButton: '导入主题…',
|
||
themeImporting: '正在导入…',
|
||
themeImportHint: '加载打包为 .zip 的主题(manifest.json + theme.css)。',
|
||
themeImportSuccess: '已导入“{{name}}”。',
|
||
themeImportErrorTitle: '无法导入此主题',
|
||
themeImportErrorBody: '它不符合 Psysonic 主题格式。可能是为其他版本制作的,或文件不完整——请确认选择了正确的 .zip,或联系主题作者。',
|
||
themeImportErrorDetails: '技术细节',
|
||
themeImportConfirmTitle: '安装主题?',
|
||
themeImportConfirmBody: '安装来自 {{author}} 的“{{name}}”?',
|
||
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: '主舞台',
|
||
queueModeTitle: '队列显示模式',
|
||
queueModeQueueSub: '仅显示即将播放的曲目。当前曲目保留在标题栏中,播放完毕后从列表移除。',
|
||
queueModePlaylistSub: '在列表中保留整个队列,当前曲目在顶部高亮显示;已播放的曲目保留。',
|
||
queueModeTimelineSub: '将当前曲目居中显示,已播放的历史在上方,即将播放的曲目(按随机顺序)在下方。',
|
||
queueToolbarTitle: '队列工具栏',
|
||
queueToolbarReset: '重置为默认',
|
||
queueToolbarSeparator: '分隔符',
|
||
sidebarTitle: '侧边栏',
|
||
sidebarReset: '重置为默认',
|
||
artistLayoutTitle: '艺术家页面板块',
|
||
artistLayoutDesc: '拖动以重新排序,切换以隐藏艺术家页面的各个板块。没有数据的板块会自动跳过。',
|
||
artistLayoutReset: '重置为默认',
|
||
artistLayoutBio: '艺术家简介',
|
||
artistLayoutTopTracks: '热门曲目',
|
||
artistLayoutSimilar: '相似艺术家',
|
||
artistLayoutAlbums: '专辑',
|
||
artistLayoutFeatured: '也参与了',
|
||
playlistLayoutTitle: '播放列表页面布局',
|
||
playlistLayoutDesc: '在播放列表页面上显示或隐藏各个元素。',
|
||
playlistLayoutReset: '重置为默认',
|
||
playerBarTitle: '播放器栏',
|
||
playerBarReset: '重置为默认',
|
||
playerBarStarRating: '星级评分',
|
||
playerBarFavorite: '收藏(心形)',
|
||
playerBarLastfmLove: 'Last.fm 喜欢',
|
||
playerBarPlaybackRate: '播放速度',
|
||
playerBarEqualizer: '均衡器',
|
||
playerBarMiniPlayer: '迷你播放器',
|
||
playbackRateTitle: '播放速度',
|
||
playbackRateEnabled: '启用播放速度',
|
||
playbackRateEnabledDesc: '全局调整所有曲目的播放速度。不适用于电台和预览。',
|
||
playbackRateStrategy: '策略',
|
||
playbackRateStrategySpeed: '速度',
|
||
playbackRateStrategyVarispeed: '随速变调',
|
||
playbackRateStrategyPreserve: '音高',
|
||
playbackRateSpeed: '速度',
|
||
playbackRatePitch: '音高',
|
||
playbackRateDerivedPitch: '速度引起的音高偏移:{{value}}',
|
||
playbackRateAutoPitch: '音高会自动校正。',
|
||
playbackRateHint: '「速度」保持音高不变。「随速变调」会随速度改变音高。「音高」可手动偏移。比「随速变调」占用更多 CPU。不适用于电台、预览或 Orbit。',
|
||
playbackRateNeutral: '在 1.0× 且无音高偏移时,播放为正常速度。',
|
||
playbackRateOrbitPaused: 'Orbit 会话期间不生效 — 播放保持 1.0× 以同步。',
|
||
playbackRateOrbitPausedShort: 'Orbit:1.0× 同步。',
|
||
advancedMode: '高级',
|
||
advancedModeTooltip: '在所有设置选项卡中显示高级选项。由社区贡献,未必体现 Psysonic 维护者的设计理念。',
|
||
advancedBadge: '高级',
|
||
sidebarDrag: '拖动以重新排序',
|
||
sidebarFixed: '始终显示',
|
||
nowPlayingTopTitle: '"正在播放"置顶',
|
||
nowPlayingTopDesc: '将"正在播放"固定在侧边栏顶部,而非底部。',
|
||
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: '预缓冲下一首曲目以消除歌曲间的间隙',
|
||
preservePlayNextOrder: '保留"下一首播放"顺序',
|
||
preservePlayNextOrderDesc: '新添加的"下一首播放"项目排在现有项目之后,而不是插到前面。',
|
||
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 中',
|
||
nextTrackBufferingTitle: '缓冲',
|
||
infiniteQueue: '无限队列',
|
||
infiniteQueueDesc: '队列播完时自动追加随机曲目',
|
||
experimental: '实验性',
|
||
sidebarLyricsStyle: '歌词滚动样式',
|
||
sidebarLyricsStyleClassic: '经典',
|
||
sidebarLyricsStyleClassicDesc: '活动行居中显示。',
|
||
sidebarLyricsStyleApple: 'Apple Music-like',
|
||
sidebarLyricsStyleAppleDesc: '活动行固定在顶部,带有平滑弹簧动画。',
|
||
seekbarStyle: '进度条样式',
|
||
seekbarStyleDesc: '选择播放进度条的外观',
|
||
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: '缩放',
|
||
confirmDeleteServerLibrary: '是否同时删除该服务器的本地库索引?点击“取消”可保留缓存副本以供离线使用。',
|
||
waveformCacheClearBtn: '清除波形缓存',
|
||
waveformCacheCleared: '波形缓存已清除({{count}} 行)。',
|
||
waveformCacheClearFailed: '清除波形缓存失败。',
|
||
useCustomTitlebar: '自定义标题栏',
|
||
useCustomTitlebarDesc: '用与应用主题匹配的内置标题栏替换系统标题栏。关闭后将使用原生 GNOME/GTK 标题栏。',
|
||
analyticsStrategyTitle: '分析策略',
|
||
analyticsStrategyDesc: '选择库的分析方式。',
|
||
analyticsStrategyLabel: '策略',
|
||
analyticsStrategyLazy: '懒加载',
|
||
analyticsStrategyLazyDesc: '仅在播放歌曲或进入热缓存/离线缓存时分析——CPU 和网络占用最低。',
|
||
analyticsStrategyAdvanced: '激进',
|
||
analyticsStrategyAdvancedDesc: '更激进的后台扫描。完成后可获得所有歌曲 BPM,并可即时加载响度与波形。',
|
||
analyticsStrategyPriorityTitle: '分析优先级(始终生效)',
|
||
analyticsStrategyPriorityHigh: '1 — 当前播放:优先下载并分析(播放字节、响度回填,或在需要时走 HTTP)。',
|
||
analyticsStrategyPriorityMiddle: '2 — 即将播放:队列中接下来的约 5 首及热缓存邻近曲目——优先从缓存/已下载字节分析,未命中时才做 HTTP 回填。',
|
||
analyticsStrategyPriorityLow: '3 — 库批处理(仅“激进”):自动后台队列排在末尾;按水位线(约 3× workers)补充,无需等待队列清空。',
|
||
analyticsStrategyServerLabel: '服务器',
|
||
analyticsStrategyProgressLabel: '分析进度:',
|
||
analyticsStrategyProgressValue: '{{percent}}% ({{done}}/{{total}})',
|
||
analyticsStrategyActionsLabel: '操作',
|
||
analyticsStrategyParallelismLabel: '并行 worker',
|
||
analyticsStrategyParallelismValue: '{{n}} 线程',
|
||
analyticsStrategyParallelismDesc: '同时下载并分析的歌曲数量(HTTP + CPU)。数值越高,补齐库分析越快,但会占用更多网络和 CPU。',
|
||
analyticsStrategyAdvancedWarning: '“激进”模式在后台库批处理运行期间会占用更多 CPU 和网络带宽。',
|
||
analyticsStrategyServerRemoved: '已移除的服务器',
|
||
analyticsStrategyClearAction: '清除分析',
|
||
analyticsStrategyClearTitle: '清除分析?',
|
||
analyticsStrategyClearDesc: '清除 {{server}} 的分析将删除缓存的波形与响度数据。稍后重新添加该服务器可能需要较长时间重新索引。',
|
||
analyticsStrategyClearCancel: '取消',
|
||
analyticsStrategyClearConfirm: '清除分析',
|
||
analyticsStrategyClearSuccess: '已清除已移除服务器的分析数据。',
|
||
analyticsStrategyClearError: '清除已移除服务器的分析数据失败。',
|
||
analyticsStrategyProgressEmptyAfterFailed: '100%(0/0,受失败歌曲阻塞)',
|
||
analyticsFailedTracksOpenTitle: '失败歌曲:{{count}}',
|
||
analyticsFailedTracksTitle: '分析失败歌曲 — {{server}}',
|
||
analyticsFailedTracksDesc: '这些歌曲在 decode/enrichment 中反复失败,已被排除在自动后台分析之外。',
|
||
analyticsFailedTracksLoading: '正在加载失败歌曲列表…',
|
||
analyticsFailedTracksEmpty: '该服务器没有失败歌曲。',
|
||
analyticsFailedTracksClose: '关闭',
|
||
analyticsFailedTracksExport: '导出列表',
|
||
analyticsFailedTracksExportSuccess: '失败歌曲列表已导出({{count}})。',
|
||
analyticsFailedTracksExportError: '导出失败歌曲列表失败。',
|
||
analyticsFailedTracksRescan: '重新扫描失败歌曲',
|
||
analyticsFailedTracksRescanSuccess: '已为 {{count}} 首失败歌曲安排重新扫描。',
|
||
analyticsFailedTracksRescanError: '无法重新扫描失败歌曲。',
|
||
analyticsFailedTracksLoadError: '无法加载失败歌曲。',
|
||
backupImportAny: '导入备份',
|
||
backupImportAnyConfirm: '导入所选备份文件并应用其内容(设置、库数据库或完整备份)。是否继续?',
|
||
backupModeFull: '完整',
|
||
backupModeLibrary: '库数据库',
|
||
backupModeConfig: '配置',
|
||
backupFullDesc: '将设置与库数据库打包到一个备份文件中。',
|
||
backupFullExport: '导出完整备份',
|
||
backupFullImport: '导入完整备份',
|
||
backupFullImportConfirm: '这将覆盖设置、替换当前库数据库并移动到 .bak。是否继续?',
|
||
backupFullExportSuccess: '完整备份已导出。',
|
||
backupFullImportSuccess: '完整备份已导入——正在重载…',
|
||
backupFullImportError: '无法导入完整备份。',
|
||
backupLibraryExport: '导出数据库',
|
||
backupLibraryExportDesc: '创建一个压缩归档,其中包含干净的库数据库 SQLite 快照。',
|
||
backupLibraryImport: '导入数据库',
|
||
backupLibraryImportDesc: '从归档文件恢复库数据库。切换前会将当前数据库移动到 .bak。',
|
||
backupLibraryImportConfirm: '这将替换当前库数据库并移动到 .bak。是否继续?',
|
||
backupLibraryExportSuccess: '数据库备份已导出。',
|
||
backupLibraryImportSuccess: '数据库备份已导入。',
|
||
backupLibraryImportError: '无法导入数据库备份。',
|
||
backupOverlayExportTitle: '正在创建备份…',
|
||
backupOverlayImportTitle: '正在恢复备份…',
|
||
backupOverlayHint: '处理文件时你可以保持窗口打开。输入会暂时锁定。',
|
||
};
|