Files
MoviePilot-Frontend/src/locales/zh-CN.ts
T

4604 lines
185 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export default {
common: {
confirm: '确认',
cancel: '取消',
save: '保存',
close: '关闭',
version: '版本',
author: '作者',
delete: '删除',
edit: '编辑',
add: '添加',
search: '搜索',
loading: '加载中',
success: '成功',
error: '错误',
openInNewWindow: '在新窗口中打开',
download: '下载',
inputMessage: '输入消息或命令',
send: '发送',
noData: '暂无数据',
noContent: '没有找到相关内容',
all: '全部',
active: '激活',
inactive: '未激活',
filter: '筛选',
noMatchingData: '没有符合条件的数据',
tryChangingFilters: '请尝试更改筛选条件',
default: '默认',
name: '名称',
create: '新建',
saving: '保存中',
reset: '重置',
theme: '主题',
uiMode: '界面布局',
language: '语言',
pleaseWait: '请稍候...',
viewDetails: '查看详情',
user: '用户',
config: '配置',
pause: '暂停',
enable: '启用',
confirmAction: '确认{action}',
details: '详情',
files: '文件',
share: '分享',
subscribe: '订阅',
unsubscribe: '取消订阅',
media: '媒体',
unknown: '未知',
notFetched: '未获取',
notice: '注意',
itemsPerPage: '每页条数',
pageText: '{0}-{1} 共 {2} 条',
noDataText: '没有数据',
next: '下一步',
previous: '上一步',
skip: '跳过',
loadingText: '加载中...',
networkRequired: '此功能需要网络连接',
networkDisconnected: '网络连接已断开',
featuresLimited: '部分功能可能受限',
serverConnectionFailed: '服务器连接失败',
networkConnectionFailed: '网络连接失败',
requestTimeout: '请求超时',
invalidApiResponse: '服务器返回了无效响应',
apiRequestFailed: '请求失败',
troubleshooting: '疑难解答',
checking: '检查中',
retry: '重试',
networkOnline: '网络在线',
networkOffline: '网络离线',
serviceAvailable: '服务可用',
serviceUnavailable: '服务不可用',
status: '状态',
preset: '预设',
refresh: '刷新',
swUpdateReady: '新版本已就绪,请刷新页面以获取最新功能',
ascending: '升序',
descending: '降序',
versionMismatch: '浏览器缓存版本与服务端版本不一致,请尝试清除缓存',
clearCache: '清除缓存',
sortMode: '排序模式',
sortModeHint: '已进入拖拽排序模式',
exit: '退出',
},
systemUpdate: {
availableTitle: '发现 MoviePilot 新版本',
availableDescription: '更新包将在后台下载,下载完成前不会影响当前任务。',
readyTitle: '更新包已准备完成',
readyDescription: '重启后将安装新版本,当前正在执行的任务会安全停止。',
downloading: '正在下载更新包',
installing: '正在重启并安装更新...',
updateNow: '升级',
later: '稍后',
moreActions: '更多更新选项',
ignoreVersion: '忽略此版本',
restartNow: '立即重启',
restartLater: '稍后重启',
restartTitle: '确认重启安装更新?',
restartDescription: '系统将停止当前任务并重启,重启完成后正式切换到新版本。',
downloadFailed: '更新包下载失败',
installFailed: '无法启动更新安装',
},
mediaType: {
movie: '电影',
tv: '电视剧',
music: '音乐',
anime: '动漫',
collection: '合集',
unknown: '未知',
},
notificationSwitch: {
resourceDownload: '资源下载',
organize: '整理入库',
subscribe: '订阅',
site: '站点',
mediaServer: '媒体服务器',
manual: '手动处理',
plugin: '插件',
agent: '智能体',
other: '其它',
},
actionStep: {
addDownload: '添加下载',
addSubscribe: '添加订阅',
fetchDownloads: '获取下载任务',
fetchMedias: '获取媒体',
fetchRss: '获取RSS资源',
fetchTorrents: '获取站点资源',
filterMedias: '过滤媒体',
filterTorrents: '过滤资源',
scanFile: '扫描目录',
scrapeFile: '刮削文件',
sendEvent: '发送事件',
sendMessage: '发送消息',
transferFile: '整理文件',
invokePlugin: '调用插件',
note: '备注',
},
qualityOptions: {
all: '全部',
blurayOriginal: '蓝光原盘',
remux: 'Remux',
bluray: 'BluRay',
uhd: 'UHD',
webdl: 'WEB-DL',
hdtv: 'HDTV',
h265: 'H265',
h264: 'H264',
},
audioQualityOptions: {
all: '全部音质',
hires: 'Hi-Res 高解析无损',
lossless: '无损(含 Hi-Res',
lossy: '有损',
},
audioFormatOptions: {
all: '全部格式',
lossless: '全部无损格式',
},
resolutionOptions: {
all: '全部',
'4k': '4k',
'1080p': '1080p',
'720p': '720p',
},
effectOptions: {
all: '全部',
dolbyVision: '杜比视界',
dolbyAtmos: '杜比全景声',
hdr: 'HDR',
sdr: 'SDR',
},
theme: {
light: '浅色',
dark: '深色',
auto: '跟随系统',
autoUI: '自动',
transparent: '透明',
glass: '玻璃',
glassSettings: '玻璃设置',
glassAppearance: '材质',
glassAppearanceClear: '透明',
glassAppearanceTinted: '色调',
glassAppearanceFrosted: '磨砂',
glassAppearanceHint: '透明突出壁纸纹理,色调增加颜色覆盖,磨砂通过模糊扩散呈现更厚的玻璃质感。',
glassQuality: '质量',
glassQualityCss: '标准',
glassQualityBalanced: '均衡',
glassQualityHigh: '高质量',
glassQualityCssHint: '静态 CSS 材质,资源占用最低,保留通透、透射与反射,不启用实时流动。',
glassQualityBalancedHint: '共享实时折射,优先平衡流动反馈与 GPU 占用。',
glassQualityHighHint: '完整时序流场、扩散细节与内容保护,GPU 占用更高。',
glassQualityMobileHint: '保留所选档位的材质精度;移动端不启用实时流动。',
glassPreset: '方案',
glassPresetNatural: '自然',
glassPresetGlide: '滑移',
glassPresetLiquid: '液态',
glassPresetHint: '自然均衡克制,滑移强调顺畅移动,液态增强形变与惯性。',
glassDynamicsMode: '动态效果',
glassDynamicsModeFluid: '流体',
glassDynamicsModeRipple: '水漾',
glassDynamicsModeOff: '关闭',
glassDynamicsModeFluidHint: '跟随指针形成连续的流动与折射反馈。',
glassDynamicsModeRippleHint: '指针经过玻璃时产生向相邻表面扩散的水纹。',
glassDynamicsModeOffHint: '保留静态材质,不响应指针动态。',
glassMaterialTuning: '材质参数',
glassDynamicTuning: '动态参数',
glassTranslationStrength: '采样平移',
glassDeformationStrength: '形变强度',
glassFlowStrength: '流动强度',
glassReflectionStrength: '反射亮度',
glassTransmissionStrength: '透射亮度',
glassTransparencyStrength: '通透度',
glassMaterialStrengthHint:
'通透度控制壁纸纹理的可见程度,透射亮度控制玻璃内的背景明暗,反射亮度控制表面反射与高光强度。',
glassOpticalStrengthHint: '采样平移控制整体滑移,形变强度控制局部弯曲,流动强度控制轨迹范围与惯性。',
purple: '幻紫',
custom: '附加样式',
transparency: '透明度',
transparencyAdjust: '透明度调整',
transparencyOpacity: '透明度',
transparencyBlur: '模糊度',
backgroundPosterOpacity: '背景透明度',
backgroundBlur: '背景磨砂效果',
transparencyGlassQuality: '玻璃效果质量',
transparencyGlassQualityLightweight: '轻量',
transparencyGlassQualityRealtime: '实时',
transparencyGlassQualityLightweightHint: '保持接近实时毛玻璃的透明观感,减少密集页面的背景实时采样。',
transparencyGlassQualityRealtimeHint: '使用完整实时毛玻璃路径,视觉质量更高,但可能增加 GPU 占用。',
transparencyReset: '重置',
transparencyLow: '低透明度',
transparencyMedium: '中等透明度',
transparencyHigh: '高透明度',
customCssSaveSuccess: '自定义CSS保存成功,请刷新页面生效!',
customCssSaveFailed: '保存自定义CSS到服务端失败',
deviceNotSupport: '当前设备不支持监听系统主题变化',
customizer: {
title: '主题定制',
subtitle: '实时自定义与预览',
theming: '主题',
primaryColor: '色调',
usePrimaryColor: '使用 {color} 色调',
chooseCustomColor: '选择自定义色调',
skins: '边框',
skinDefault: '无边框',
skinBordered: '有边框',
radius: '圆角',
radiusNone: '无圆角',
radiusSmall: '小圆角',
radiusDefault: '默认',
radiusLarge: '大圆角',
radiusExtra: '更大圆角',
shadow: '阴影',
shadowLevel: '层级 {level}',
semiDarkMenu: '半暗菜单',
layout: '布局',
layoutVertical: '垂直',
layoutCollapsed: '折叠',
layoutHorizontal: '水平',
reset: '重置主题定制',
appModeLayoutLocked: 'App 模式固定使用移动端导航,请切换到桌面界面后再调整布局。',
},
},
app: {
moviepilot: 'MoviePilot',
slogan: '智能影视媒体库管理工具',
recommend: '推荐',
subscribeMovie: '电影订阅',
subscribeTv: '电视剧订阅',
settings: '设置',
selectLanguage: '选择语言',
logout: '退出登录',
restarting: '正在重启...',
confirmRestart: '确认重启系统吗?',
restartTip: '重启后,您将被注销并需要重新登录。',
restartTimeout: '重启超时,系统可能需要更长时间恢复,请稍后手动刷新页面',
restartFailed: '重启失败,请检查系统状态',
offline: '应用已离线',
offlineMessage: '网络连接已断开,部分功能可能受限',
connectionChecking: '正在重新连接 MoviePilot',
connectionCheckingMessage: '正在确认服务状态,当前页面仍可继续浏览。',
serviceUnavailable: '暂时无法连接 MoviePilot',
serviceUnavailableMessage: '服务可能正在启动,或反向代理暂时不可用。',
serviceTimeoutMessage: 'MoviePilot 服务响应超时,稍后将自动重试。',
browserOfflineMessage: '浏览器报告网络不可用,正在尝试直接连接 MoviePilot。',
continueBrowsing: '继续浏览',
online: '应用在线',
onlineMessage: '网络连接已恢复',
freeThreadedExperimentalHint: '实验性 free-threaded 运行时',
freeThreadedGilFallbackWarning: 'free-threaded 运行时已退化为 GIL 模式,请检查后端日志中的原生扩展兼容告警',
},
pwa: {
installApp: '安装 MoviePilot 应用',
installDescription: '获得更好的离线体验和性能',
install: '安装',
installSuccess: '应用安装成功!',
installGuide: '安装指南',
installInstructions: '在 {platform} 上安装 MoviePilot',
installNote: '安装后,您可以从主屏幕快速访问 MoviePilot,并享受离线功能。',
gotIt: '知道了',
// 平台特定的说明
platforms: {
ios: 'iOS',
android: 'Android',
chrome: 'Chrome',
edge: 'Edge',
firefox: 'Firefox',
safari: 'Safari',
desktop: '桌面设备',
mobile: '移动设备',
other: '其他浏览器',
},
// 安装步骤
installSteps: {
ios: {
0: '点击浏览器底部的分享按钮',
1: '选择"添加到主屏幕"',
2: '点击"添加"确认安装',
},
android: {
0: '点击浏览器菜单(三个点)',
1: '选择"添加到主屏幕"或"安装应用"',
2: '点击"安装"确认',
},
chrome: {
0: '点击地址栏右侧的安装图标',
1: '或者点击浏览器菜单中的"安装 MoviePilot"',
2: '点击"安装"确认',
},
edge: {
0: '点击地址栏右侧的"应用可用"图标',
1: '在弹出的面板中点击"安装"按钮',
2: '在确认对话框中点击"安装"',
},
firefox: {
0: '点击地址栏右侧的安装图标',
1: '选择"安装"',
2: '确认安装到桌面',
},
safari: {
0: '点击分享按钮',
1: '选择"添加到主屏幕"',
2: '点击"添加"确认',
},
desktop: {
0: '点击地址栏右侧的安装图标',
1: '选择"安装应用"',
2: '按照提示完成安装',
},
mobile: {
0: '点击浏览器菜单',
1: '选择"添加到主屏幕"',
2: '确认安装',
},
other: {
0: '查找浏览器中的"安装"选项',
1: '通常在地址栏或菜单中',
2: '按照提示完成安装',
},
},
},
login: {
wallpapers: '壁纸',
tagline: '你的智能影视媒体库',
welcomeBack: '欢迎回来',
copyright: '© {year} MoviePilot',
username: '用户名',
password: '密码',
showPassword: '显示密码',
hidePassword: '隐藏密码',
otpCode: '验证码',
stayLoggedIn: '保持登录',
login: '登录',
networkError: '登录失败,请检查网络连接!',
authFailure: '登录失败,请检查用户名、密码或验证码',
permissionDenied: '登录失败,您没有权限访问!',
noPermission: '登录失败,您没有任何功能权限,请联系管理员!',
serverError: '登录失败,服务器错误!',
loginFailed: '登录失败',
secondaryVerification: '二次验证',
orDivider: '或',
loginWithPasskey: '使用通行密钥登录',
loginWithOtp: '验证并登录',
otpPlaceholder: '请输入6位验证码',
passkeyLoginStartFailed: '启动通行密钥认证失败',
passkeyNotSelected: '未选择通行密钥',
passkeyLoginFailed: '通行密钥登录失败',
passkeyAuthCanceled: '通行密钥认证被取消',
passkeyNotSupported: '当前浏览器不支持通行密钥',
passkeySecureContextRequired: '通行密钥需要 HTTPS 安全连接',
mfa: {
back: '返回登录',
methodsUnavailable: '无法获取验证方式,请重新登录',
otpPrompt: '输入身份验证器生成的 6 位验证码',
verificationFailed: '验证失败,请检查验证码后重试',
},
},
menu: {
start: '开始',
discovery: '发现',
subscribe: '订阅',
organize: '整理',
system: '系统',
},
navItems: {
dashboard: '仪表盘',
mediaInfo: '媒体库',
recommend: '推荐',
site: '站点',
search: '搜索',
searchResult: '搜索结果',
download: '下载',
movieSubscribe: '电影订阅',
tvSubscribe: '电视剧订阅',
musicSubscribe: '音乐订阅',
history: '历史记录',
transfer: '整理',
rename: '重命名',
statistic: '统计',
setting: '设置',
plugin: '插件',
user: '用户',
about: '关于',
explore: '探索',
movie: '电影',
tv: '电视剧',
music: '音乐',
workflow: '工作流',
calendar: '日历',
downloadManager: '下载管理',
mediaOrganize: '媒体整理',
fileManager: '文件管理',
pluginManager: '插件',
siteManager: '站点管理',
userManager: '用户管理',
settings: '设定',
},
music: {
title: '音乐搜索',
searchFromGlobal: '在顶部全局搜索中输入歌曲、专辑或艺术家进入音乐搜索',
searchDescription: '歌曲、专辑或艺术家',
noResults: '没有找到匹配的音乐',
searchResources: '搜索资源',
subscribe: '订阅',
unsubscribe: '取消订阅',
album: '专辑',
albumArtist: '专辑艺术家',
albumType: '专辑类型',
albumTracks: '专辑内的音乐',
albumNotFound: '没有找到该专辑',
albums: '专辑',
eps: 'EP',
singles: '单曲',
tracks: '曲目',
track: '音轨',
trackTotal: '曲目数',
trackNumber: '第 {number} 首',
trackCount: '{count} 首',
discNumber: '碟 {number}',
releases: '发行版本',
releaseDate: '发行日期',
duration: '时长',
ratingVotes: '评分人数',
listenCount: '收听次数',
listenCountValue: '收听 {count} 次',
relatedArtists: '关联艺术家',
relatedAlbums: '相关推荐',
artistAlbums: '艺术家的专辑',
artistType: '艺术家类型',
artistNotFound: '没有找到该艺术家',
entityRecording: '单曲',
entityAlbum: '专辑',
entityArtist: '艺术家',
audioQualityHires: 'Hi-Res',
audioQualityLossless: '无损',
audioQualityLossy: '有损',
audioFormatLossless: '无损格式',
gender: '性别',
area: '地区',
lifeSpan: '活跃时间',
aliases: '别名',
filter: {
mode: '模式',
modeChart: '热门榜单',
modeFresh: '新发行',
entity: '榜单',
entityRecording: '热门单曲',
entityAlbum: '热门专辑',
period: '周期',
sort: '排序',
cover: '封面',
scope: '范围',
days: '时间窗口',
daysValue: '近 {days} 天',
thisWeek: '本周',
thisMonth: '本月',
thisYear: '今年',
lastWeek: '过去一周',
lastMonth: '过去一月',
lastQuarter: '过去一季',
lastHalfYear: '过去半年',
lastYear: '过去一年',
allTime: '全部时间',
mostListened: '收听最多',
leastListened: '收听最少',
sortReleaseDate: '发行日期',
sortArtist: '艺术家',
sortReleaseName: '专辑名称',
released: '已发行',
upcoming: '即将发行',
all: '全部',
withCover: '仅有封面',
country: '国家/地区',
countryUs: '美国',
countryGb: '英国',
countryCn: '中国',
countryJp: '日本',
countryKr: '韩国',
},
},
settingTabs: {
system: {
title: '系统',
description:
'基础设置、下载器(Qbittorrent、Transmission)、媒体服务器(Emby、极影视、Jellyfin、Plex、飞牛影视、绿联影视)',
},
directory: {
title: '存储 & 目录',
description: '下载目录、媒体库目录、整理、刮削',
},
site: {
title: '站点',
description: '站点同步、站点数据刷新、站点重置',
},
rule: {
title: '规则',
description: '自定义规则、优先级规则组、下载规则',
},
search: {
title: '搜索 & 下载',
description: '搜索数据源(TheMovieDb、豆瓣、Bangumi)、下载任务标签、搜索站点',
},
subscribe: {
title: '订阅',
description: '订阅站点、订阅模式、订阅规则、洗版规则',
},
scheduler: {
title: '服务',
description: '定时作业',
},
cache: {
title: '缓存',
description: '种子缓存、图片文件缓存管理',
},
notification: {
title: '通知',
description:
'通知渠道(企业微信、微信 ClawBot、Telegram、Slack、钉钉、SynologyChat、VoceChat、WebPush)、消息发送范围',
},
about: {
title: '关于',
description: '软件版本',
},
},
subscribeTabs: {
movie: {
mysub: '我的订阅',
popular: '热门订阅',
},
tv: {
mysub: '我的订阅',
popular: '热门订阅',
share: '订阅分享',
},
music: {
mysub: '我的订阅',
},
},
workflowTabs: {
list: '我的工作流',
share: '工作流分享',
},
pluginTabs: {
installed: '我的插件',
market: '插件市场',
},
discoverTabs: {
themoviedb: 'TheMovieDb',
douban: '豆瓣',
bangumi: 'Bangumi',
anilist: 'AniList',
music: 'MusicBrainz',
},
user: {
admin: '管理员',
normal: '普通用户',
active: '激活',
inactive: '已停用',
noEmail: '未设置邮箱',
movieSubscriptions: '电影订阅',
tvSubscriptions: '剧集订阅',
cannotDeleteCurrentUser: '不能删除当前登录用户!',
confirmDeleteUser: '删除用户 {username} 的所有数据,是否确认?',
deleteSuccess: '用户删除成功',
deleteFailed: '用户删除失败!',
profile: '个人信息',
systemSettings: '系统设定',
wizardSettings: '设置向导',
siteAuth: '用户认证',
helpDocs: '帮助文档',
about: '关于',
restart: '重启',
management: '用户管理',
noUsers: '没有用户',
clickToAddUser: '点击添加用户卡片添加用户',
addUser: '添加用户',
editUser: '编辑用户',
username: '用户名',
usernameHint: '用于登录系统的用户名',
password: '密码',
passwordHint: '请输入登录密码',
confirmPassword: '确认密码',
confirmPasswordHint: '请再次输入密码以确认',
role: '角色',
email: '邮箱',
enabled: '启用',
disabled: '禁用',
status: '状态',
operations: '操作',
},
nav: {
more: '更多',
},
notification: {
center: '通知中心',
markRead: '设为已读',
clear: '清理通知',
clearConfirm: '是否确认清理通知中心内的全部历史消息?',
clearAllMessages: '清理全部消息',
clearSystemMessages: '清理系统消息',
clearMediaMessages: '清理媒体消息',
clearAllConfirm: '是否确认清理通知中心内的全部历史消息?',
clearSystemConfirm: '是否确认清理通知中心内的系统类历史消息?',
clearMediaConfirm: '是否确认清理通知中心内的媒体历史消息?',
clearSuccess: '通知已清理',
clearAllSuccess: '全部通知已清理',
clearSystemSuccess: '系统消息已清理',
clearMediaSuccess: '媒体消息已清理',
clearFailed: '通知清理失败',
empty: '暂无通知',
systemMessages: '系统类消息',
mediaMessages: '媒体消息',
channel: '通知渠道',
name: '名称',
nameHint: '通知渠道名称',
type: '类型',
typeHint: '通知渠道类型',
customTypeHint: '自定义通知类型,用于插件实现场景',
customTypePlaceholder: 'custom',
nameRequired: '请输入名称',
enabled: '启用',
config: '配置',
wechat: {
name: '企业微信',
useBotMode: '使用智能机器人',
useBotModeHint: '开启后使用智能机器人长连接,固定 dmPolicy=open、groupPolicy=disabled',
corpId: '企业ID',
corpIdHint: '企业微信后台企业信息中的企业ID',
corpIdRequired: '企业ID不能为空',
appId: '应用 AgentId',
appIdHint: '企业微信自建应用的AgentId',
appIdRequired: '应用AgentId不能为空',
appSecret: '应用 Secret',
appSecretHint: '企业微信自建应用的Secret',
appSecretRequired: '应用Secret不能为空',
proxy: '代理地址',
proxyHint: '微信消息的转发代理地址,2022年6月20日后创建的自建应用才需要,不使用代理时需要保留默认值',
token: 'Token',
tokenHint: '微信企业自建应用->API接收消息配置中的Token',
encodingAesKey: 'EncodingAESKey',
encodingAesKeyHint: '微信企业自建应用->API接收消息配置中的EncodingAESKey',
botId: '机器人 BotID',
botIdHint: '企业微信智能机器人的 BotID',
botSecret: '机器人 Secret',
botSecretHint: '企业微信智能机器人长连接专用 Secret',
botChatId: '默认通知目标',
botChatIdHint: '可填写用户 userid;如需主动发群消息可填写 group:群聊chatid,不填则默认发给已互动用户',
botChatIdPlaceholder: 'userid 或 group:chatid',
botWsUrl: '长连接地址',
botWsUrlHint: '企业微信智能机器人 WebSocket 地址,通常使用默认值',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
},
wechatclawbot: {
name: '微信 ClawBot',
baseUrl: 'iLink 地址',
baseUrlHint: '微信 ClawBot iLink 服务地址,通常使用默认值',
defaultTarget: '默认通知目标',
defaultTargetHint: '可填写用户 userid;不填则默认发给已互动用户',
defaultTargetPlaceholder: '用户 userid(可选)',
admins: '管理员白名单',
adminsHint: '允许执行斜杠命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
pollTimeout: '轮询超时(秒)',
pollTimeoutHint: '长轮询请求超时时间,建议 20-30 秒',
loginStatus: '登录状态',
connected: '已连接',
waiting: '等待扫码',
scanned: '已扫码,待确认',
confirmed: '已确认,正在建立连接',
expired: '二维码已过期',
refreshQrcode: '刷新二维码',
logout: '退出登录',
noQrcode: '暂无二维码,请先刷新或保存配置后重试',
scanHint: '使用微信扫码绑定后,状态会自动刷新。首次使用请先保存并启用该通知渠道。',
accountId: '账号ID',
qrcodeUpdatedAt: '二维码更新时间',
knownTargets: '最近互动用户',
noKnownTargets: '暂无互动用户记录',
statusLoadFailed: '获取微信 ClawBot 状态失败',
qrcodeRefreshSuccess: '微信 ClawBot 二维码已刷新',
qrcodeRefreshFailed: '刷新微信 ClawBot 二维码失败',
logoutSuccess: '微信 ClawBot 已退出登录',
logoutFailed: '微信 ClawBot 退出登录失败',
},
feishu: {
name: '飞书',
appId: 'App ID',
appIdHint: '飞书开放平台应用的 App ID',
appIdRequired: 'App ID 不能为空',
appSecret: 'App Secret',
appSecretHint: '飞书开放平台应用的 App Secret',
appSecretRequired: 'App Secret 不能为空',
openId: '默认用户 Open ID',
openIdHint: '默认通知接收用户的 Open ID,留空则优先使用互动用户',
openIdPlaceholder: 'ou_xxx',
chatId: '默认群聊 Chat ID',
chatIdHint: '默认通知接收群聊的 Chat ID,和 Open ID 二选一即可',
chatIdPlaceholder: 'oc_xxx',
admins: '管理员白名单',
adminsHint: '允许执行命令和管理操作的 Open ID 列表,多个使用 , 分隔',
adminsPlaceholder: 'Open ID 列表,多个使用 , 分隔',
verificationToken: 'Verification Token',
verificationTokenHint: '飞书事件订阅的 Verification Token,启用事件校验时填写',
encryptKey: 'Encrypt Key',
encryptKeyHint: '飞书事件订阅的 Encrypt Key,启用消息加密时填写',
},
telegram: {
name: 'Telegram',
token: 'Bot Token',
tokenHint: 'Telegram机器人token,格式:123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11',
tokenRequired: 'Bot Token不能为空',
chatId: 'Chat ID',
chatIdHint: '接受消息通知的用户、群组或频道Chat ID',
chatIdRequired: 'Chat ID不能为空',
users: '用户白名单',
usersHint: '可使用Telegram机器人的用户ID清单,多个用户用,分隔,不填写则所有用户都能使用',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
usersPlaceholder: '用户ID列表,多个ID使用,分隔',
apiUrl: '代理API地址',
apiUrlHint: '自定义代理API地址,格式:https://api.telegram.org',
apiUrlPlaceholder: 'https://api.telegram.org',
},
slack: {
name: 'Slack',
oauthToken: 'Slack Bot User OAuth Token',
oauthTokenHint: 'Slack应用`OAuth & Permissions`页面中的`Bot User OAuth Token`',
oauthTokenRequired: 'OAuth Token不能为空',
appToken: 'Slack App-Level Token',
appTokenHint: 'Slack应用`OAuth & Permissions`页面中的`App-Level Token`',
channel: '频道名称',
channelHint: '消息发送频道,默认`全体`',
channelRequired: '频道名称不能为空',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
},
discord: {
name: 'Discord',
botToken: 'Bot Token',
botTokenHint: 'Discord Bot Token(需在开发者后台开启 Message Content Intent',
botTokenRequired: 'Bot Token不能为空',
guildId: '服务器 ID',
guildIdHint: '可选,限制使用的服务器;为空则使用已加入的任意服务器',
guildIdPlaceholder: '123456789012345678',
channelId: '频道 ID',
channelIdHint: '可选,默认广播频道;为空则自动选择可发送消息的频道',
channelIdPlaceholder: '123456789012345678',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
},
dingtalk: {
name: '钉钉',
webhook: '自定义机器人 Webhook',
webhookHint: '钉钉群自定义机器人的完整 Webhook 地址',
webhookRequired: 'Webhook 地址不能为空',
secret: '加签密钥',
secretHint: '机器人安全设置启用“加签”时填写,以 SEC 开头;使用关键词或 IP 白名单时可留空',
},
synologychat: {
name: 'Synology Chat',
webhook: '机器人传入URL',
webhookHint: 'Synology Chat机器人传入URL',
webhookRequired: 'Webhook URL不能为空',
token: '令牌',
tokenHint: 'Synology Chat机器人令牌',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
},
vocechat: {
name: 'VoceChat',
host: '地址',
hostHint: 'VoceChat服务端地址,格式:http(s)://ip:port',
hostRequired: '地址不能为空',
apiKey: '机器人密钥',
apiKeyHint: 'VoceChat机器人密钥',
apiKeyRequired: 'API密钥不能为空',
channelId: '频道ID',
channelIdHint: 'VoceChat的频道ID,不包含#号',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
},
webpush: {
name: 'WebPush',
username: '登录用户名',
usernameHint: '只有对应的用户登录后才会推送消息',
usernameRequired: '用户名不能为空',
},
qqbot: {
name: 'QQ',
appId: 'AppID',
appIdHint: 'QQ 开放平台机器人 AppID',
appIdRequired: 'AppID 不能为空',
appSecret: 'AppSecret',
appSecretHint: 'QQ 开放平台机器人 AppSecret',
appSecretRequired: 'AppSecret 不能为空',
openId: '用户 OpenID',
openIdHint: '默认接收者 openid(单聊),用户需曾与机器人交互过',
openIdPlaceholder: '32位十六进制',
groupOpenId: '群组 OpenID',
groupOpenIdHint: '默认群组 openid(群聊),与用户 OpenID 二选一',
groupOpenIdPlaceholder: '群组 openid',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表,多个ID使用,分隔',
adminsPlaceholder: '用户ID列表,多个ID使用,分隔',
},
},
shortcut: {
title: '捷径',
recognition: {
title: '识别',
subtitle: '名称识别测试',
},
rule: {
title: '规则',
subtitle: '规则测试',
},
log: {
title: '日志',
subtitle: '实时日志',
},
network: {
title: '网络',
subtitle: '网速连通性测试',
},
system: {
title: '系统',
subtitle: '健康检查',
},
words: {
title: '词表',
subtitle: '词表设置',
},
cache: {
title: '缓存',
subtitle: '管理缓存',
},
scheduler: {
title: '服务',
subtitle: '定时服务',
},
},
agentAssistant: {
title: '智能助手',
assistant: '助手',
ready: '随时待命',
thinking: '思考中',
newChat: '新会话',
enterFullscreen: '全屏显示',
exitFullscreen: '退出全屏',
history: '历史会话',
historyLoading: '正在加载历史会话...',
historyLoadFailed: '历史会话加载失败',
noHistory: '暂无历史会话',
deleteHistory: '删除历史会话',
unknownChannel: '未知渠道',
webAgentChannel: '网页助手',
untitledSession: '未命名会话',
emptyTitle: '今天想处理什么?',
emptySubtitle: '站点、订阅、下载、整理任务,都可以直接问我。',
placeholder: '询问 MoviePilot,输入 / 使用命令',
processingPlaceholder: '处理中...',
commandLoading: '正在加载命令...',
commandLoadFailed: '命令列表加载失败',
stop: '停止生成',
download: '下载',
attachFile: '选择图片或文件',
recordVoice: '录制语音',
stopRecording: '停止录音({time}',
attachmentMessage: '附件消息',
removeAttachment: '移除附件',
uploadFailed: '附件上传失败',
recordUnsupported: '当前浏览器不支持录音',
recordPermissionDenied: '无法访问麦克风,请检查浏览器权限',
recordFailed: '录音失败,请重试',
choiceSelected: '已选择:{option}',
choiceExpired: '该选择已失效,请重新发起选择',
error: '智能助手响应失败',
noStream: '当前浏览器无法读取流式响应',
recoveryFailed: '后台回复恢复失败,请稍后重试',
},
workflow: {
components: '动作组件',
clickToAdd: '点击添加',
dragToCanvas: '拖动到画布',
tapComponentHint: '点击组件添加到画布',
dragComponentHint: '拖动组件到画布',
task: {
edit: '编辑任务',
editFlow: '编辑流程',
share: '分享',
moreActions: '更多操作',
continue: '继续执行',
restart: '重新执行',
run: '立即执行',
reset: '重置任务',
delete: '删除任务',
confirmDelete: '是否确认删除任务 {name} ?',
confirmReset: '是否确认重置任务 {name} ?',
deleteSuccess: '删除任务成功!',
deleteFailed: '删除任务失败:{message}',
enableSuccess: '启用任务成功!',
enableFailed: '启用任务失败:{message}',
pauseSuccess: '停用任务成功!',
pauseFailed: '停用任务失败:{message}',
runSuccess: '任务执行完成!',
runFailed: '任务执行失败:{message}',
resetSuccess: '重置任务成功!',
resetFailed: '重置任务失败:{message}',
status: {
success: '成功',
running: '运行中',
failed: '失败',
paused: '暂停',
waiting: '待执行',
},
info: {
trigger: '触发方式',
timer: '定时',
status: '状态',
actionCount: '动作数',
runCount: '已执行 {count} 次',
progress: '进度',
error: '错误信息',
manualTrigger: '手动',
lastExecuted: '上次执行 {time}',
neverExecuted: '从未执行',
executionIncomplete: '上次执行尚未完成',
executingAction: '正在执行 {name}',
noActions: '暂无动作',
},
},
scanFile: {
title: '扫描目录',
subtitle: '扫描目录文件到队列',
storage: '存储',
directory: '目录',
},
addDownload: {
title: '添加下载',
subtitle: '添加资源到下载器',
downloader: '下载器',
category: '分类',
savePath: '保存路径',
sequential: '顺序下载',
forceResume: '强制继续',
firstLastPiece: '优先首尾文件',
onlyLack: '仅下载缺失资源',
categoryPlaceholder: '多个使用,分隔',
savePathPlaceholder: '留空自动',
},
addSubscribe: {
title: '添加订阅',
subtitle: '添加资源到订阅',
type: '类型',
name: '名称',
season: '季',
episode: '集',
},
fetchMedias: {
title: '获取媒体',
subtitle: '从媒体服务器获取媒体信息',
source: '数据源',
searchType: '搜索类型',
type: '类型',
name: '名称',
year: '年份',
ranking: '榜单',
api: '插件API',
apiPath: 'API路径',
selectRanking: '选择榜单',
tmdbTrending: 'TMDB 流行趋势',
doubanShowing: '豆瓣正在热映',
bangumiCalendar: 'Bangumi 每日放送',
tmdbMovies: 'TMDB 热门电影',
tmdbTvs: 'TMDB 热门电视剧',
doubanMovieHot: '豆瓣热门电影',
doubanTvHot: '豆瓣热门电视剧',
doubanTvAnimation: '豆瓣热门动漫',
doubanMovies: '豆瓣最新电影',
doubanTvs: '豆瓣最新电视剧',
doubanMovieTop250: '豆瓣电影TOP250',
doubanTvWeeklyChinese: '豆瓣国产剧集榜',
doubanTvWeeklyGlobal: '豆瓣全球剧集榜',
},
filterMedias: {
title: '过滤媒体',
subtitle: '根据条件过滤媒体',
type: '类型',
name: '名称',
year: '年份',
vote: '评分',
},
scrapeFile: {
title: '刮削文件',
subtitle: '刮削文件元数据',
},
sendEvent: {
title: '发送事件',
subtitle: '发送系统事件',
},
fetchDownloads: {
title: '获取下载',
subtitle: '获取下载器任务',
loop: '循环执行',
loopInterval: '循环间隔',
},
fetchRss: {
title: '获取RSS',
subtitle: '获取RSS订阅',
url: 'URL',
userAgent: 'User-Agent',
timeout: '超时时间',
matchMedia: '匹配媒体数据',
useProxy: '使用代理',
},
fetchTorrents: {
title: '获取站点资源',
subtitle: '获取站点种子列表',
searchType: '搜索类型',
searchOptions: {
name: '名称',
mediaList: '媒体列表',
},
name: '名称',
year: '年份',
type: '类型',
season: '季',
sites: '站点',
matchMedia: '匹配媒体数据',
},
sendMessage: {
title: '发送消息',
subtitle: '发送系统消息',
channel: '渠道',
userId: '用户ID',
},
transferFile: {
title: '传输文件',
subtitle: '传输文件到目标目录',
source: '源目录',
sourceOptions: {
fileList: '文件列表',
downloads: '下载列表',
},
},
filterTorrents: {
title: '过滤资源',
subtitle: '对资源列表数据进行过滤',
quality: '质量',
resolution: '分辨率',
effect: '特效',
size: '大小范围',
include: '包含(关键字、正则式)',
exclude: '排除(关键字、正则式)',
ruleGroups: '过滤规则组',
},
invokePlugin: {
title: '调用插件',
subtitle: '调用插件执行特定操作',
plugin: '插件',
actionid: '动作ID',
actionParams: '动作参数',
loadPluginSettingFailed: '加载插件设置失败',
},
note: {
title: '备注',
subtitle: '添加流程说明注释',
content: '备注内容',
placeholder: '请输入备注内容...',
},
title: '工作流',
share: '工作流分享',
searchShares: '搜索工作流分享',
noShareData: '暂无分享的工作流',
sharer: '分享人',
trigger: '触发方式',
timer: '定时器',
manualTrigger: '手动触发',
actionCount: '动作数量',
preview: {
title: '流程概览',
actionCount: '{count} 个动作',
flowCount: '{count} 条连接',
moreActions: '另有 {count} 个',
hasBranches: '含分支',
unknownAction: '未知动作',
},
normalFork: '复用工作流',
cancelShare: '取消分享',
cancelSuccess: '取消分享成功',
cancelFailed: '取消分享失败:{message}',
usageCount: '复用 {count} 次',
addSuccess: '复用 {name} 成功!',
addFailed: '复用 {name} 失败:{message}',
noWorkflow: '没有工作流',
noWorkflowDescription: '点击添加按钮创建工作流任务。',
},
dashboard: {
storage: '存储空间',
storageSummary: '可用 {available} / 总容量 {total}',
mediaStatistic: '媒体统计',
recommendedMedia: '推荐媒体',
selectRecommendSource: '选择推荐媒体来源',
previousRecommend: '上一项推荐',
nextRecommend: '下一项推荐',
showRecommend: '查看第 {index} 项推荐',
noRecommendations: '当前来源暂无推荐媒体',
recommendLoadFailed: '推荐媒体加载失败',
weeklyOverview: '入库统计',
realTimeSpeed: '实时速率',
scheduler: '后台任务',
cpu: 'CPU',
cpuUsage: 'CPU 使用率',
memory: '内存',
memoryUsage: '内存使用',
memoryUsed: '已使用',
memoryCached: '已缓存',
memoryAvailable: '可用',
averageUsage: '平均使用',
network: '网络流量',
upload: '上行',
download: '下行',
uploadSpeed: '上传速度',
downloadSpeed: '下载速度',
library: '我的媒体库',
playing: '继续观看',
latest: '最新入库',
noLatest: '暂无最近入库记录',
noPlaying: '暂无继续观看记录',
noLibrary: '暂无媒体库数据',
mediaServerLoadFailed: '媒体服务器数据加载失败',
staleData: '刷新失败,当前显示上次数据',
recentImports: '近期整理',
viewAll: '查看全部',
settings: '设置仪表板',
chooseContent: '选择您想在页面显示的内容',
editLayout: '编辑布局',
exitEditMode: '完成编辑',
resetLayout: '恢复默认布局',
dragHandle: '拖动组件',
current: '当前',
episodes: '剧集',
users: '用户',
activeUsers: '活跃用户',
noSchedulers: '没有后台服务',
transferQueue: '整理队列',
transferProgress: '{completed} / {total} 个文件',
taskRunning: '进行中',
taskWaiting: '等待中',
noRecentImports: '暂无近期整理记录',
monthlyAddition: '+{count} 本月新增',
quickActions: {
title: '快捷操作',
downloadManager: '下载管理',
globalSearch: '全局搜索',
fileManager: '文件管理',
systemSettings: '系统设置',
cacheManager: '缓存管理',
pluginCenter: '插件中心',
},
systemInfo: {
title: '系统信息',
hostname: '主机名称',
operatingSystem: '操作系统',
runtime: '运行时间',
runtimeValue: '{days}天 {hours}小时 {minutes}分',
version: '版本',
checkUpdate: '检查更新',
},
weeklyOverviewDescription: '最近一周入库了 {count} 部影片',
speed: {
totalUpload: '总上传量',
totalDownload: '总下载量',
freeSpace: '磁盘剩余空间',
},
processes: {
title: '系统进程',
pid: '进程ID',
name: '进程名称',
runtime: '运行时间',
memory: '内存占用',
},
errors: {
loadMediaServer: '加载媒体服务器设置失败:',
loadLatest: '加载媒体服务器 "{server}" 的最近入库失败:',
},
},
media: {
status: {
inLibrary: '已入库',
missing: '缺失',
partiallyMissing: '部分缺失',
subscribed: '已订阅',
seasonsSubscribed: '已订阅 {count} 季',
allSeasonsSubscribed: '已全部订阅',
},
minutes: '分钟',
overview: '简介',
seasons: '季',
specials: '特别篇',
seasonNumber: '第 {number} 季',
episodeCount: '{count}集',
episodeGroups: {
select: '选择剧集组',
default: '默认',
summary: '{seasons} 季 · {episodes} 集',
current: '当前:{name} · {seasons} 季 · {episodes} 集',
previous: '查看上一组剧集组',
next: '查看更多剧集组',
},
actions: {
searchResource: '搜索资源',
searchSubtitle: '搜索字幕',
subscribe: '订阅',
playOnline: '在线播放',
playInApp: 'APP播放',
playInWeb: '网页播放',
},
search: {
byTitle: '标题',
byImdb: 'IMDB链接',
},
info: {
originalTitle: '原始标题',
status: '状态',
releaseDate: '上映日期',
digitalRelease: '数字发行',
physicalRelease: '实体发行',
originalLanguage: '原始语言',
productionCountries: '出品国家',
productionCompanies: '制作公司',
doubanId: '豆瓣ID',
},
subscribe: {
normal: '订阅',
bestVersion: '洗版订阅',
addFailed: '添加订阅失败:{reason}',
canceled: '已取消订阅!',
cancelFailed: '取消订阅失败:{reason}',
},
castAndCrew: '演员阵容',
recommendations: '推荐',
similar: '类似',
error: {
title: '出错啦!',
noMediaInfo: '未识别到媒体信息。',
},
server: {
plex: 'Plex',
jellyfin: 'Jellyfin',
emby: 'Emby',
zspace: '极影视',
appLaunchFailed: 'APP启动失败,正在跳转到网页版',
appNotInstalled: '未检测到APP,正在跳转到网页版',
downloadApp: '下载APP',
},
},
subscribe: {
normalSub: '订阅',
versionSub: '洗版订阅',
addSuccess: '添加{name}成功!',
addFailed: '添加{name}失败:{message}',
modeUpdateSuccess: '已更新为{mode}',
cancelSuccess: '已取消订阅!',
cancelFailed: '取消订阅失败:{message}',
notFound: '订阅不存在!',
requestFailed: '请求失败,请稍后重试',
native: {
invalidMedia: '无法打开原生订阅:媒体信息格式无效。',
missingId: '无法打开原生订阅:请提供有效的媒体数据源 ID。',
missingTitle: '无法打开原生订阅:请提供媒体标题。',
unsupportedType: '无法打开原生订阅:媒体类型必须是电影或电视剧。',
permissionDenied: '当前用户没有订阅权限。',
},
filterSubscriptions: '筛选订阅',
name: '名称',
searchShares: '搜索订阅分享',
keyword: '关键词',
noShareData: '未获取到分享订阅数据,未开启数据分享或服务器无法连接。',
noPopularData: '未获取到热门订阅数据,未开启数据分享或服务器无法连接。',
noFilterData: '没有筛选到相关内容,请更换筛选条件。',
noSubscribeData: '请通过搜索添加电影、电视剧订阅。',
sharer: '分享人',
follow: '关注',
unfollow: '取消关注',
recognitionWords: '识别词',
cancelShare: '取消分享',
usageCount: '共 {count} 次复用',
confirmToggle: '是否{action}订阅 {name}',
toggleSuccess: '{name} 已{action}',
toggleFailed: '{action}失败:{message}',
resetConfirm: '重置后 {name} 将恢复初始状态,已下载记录将被清除,未入库的内容将会重新下载,是否确认?',
resetSuccess: '{name} 重置成功!',
resetFailed: '{name} 重置失败:{message}',
shareStatistics: '分享统计',
shareCount: '个分享',
totalReuseCount: '次复用',
ranking: '排名',
noStatisticsData: '暂无分享统计数据',
bestVersion: '洗版中',
bestVersionEpisodeShort: '分集',
bestVersionWholeShort: '全集',
bestVersionEpisodeProgressTooltip: '已洗版 {completed} · 已下载 {downloaded} · 共 {total} 集',
subscribeProgressTooltip: '已下载 {downloaded} · 共 {total} 集',
completed: '订阅完成',
subscribing: '订阅中',
notStarted: '未开始',
pending: '待定',
paused: '暂停',
cardStatePaused: '已暂停',
cardStatePending: '待定中',
mediaDetail: '媒体详情',
fileStatistics: '文件统计',
sortTitle: '排序',
sort: {
custom: '自定义',
lastUpdate: '最后更新时间',
addTime: '添加时间',
lackEpisode: '缺失集数',
},
selectedCount: '已选择 {count}/{total} 项',
noSelectedItems: '请先选择要操作的订阅',
batchSelectAll: '选择全部订阅',
batchDeselectAll: '取消全选订阅',
exitBatchMode: '退出批量操作',
batchEnable: '批量启用',
batchPause: '批量暂停',
batchDelete: '批量删除',
batchEnableConfirm: '确定要启用选中的 {count} 个订阅吗?',
batchPauseConfirm: '确定要暂停选中的 {count} 个订阅吗?',
batchDeleteConfirm: '确定要删除选中的 {count} 个订阅吗?此操作不可恢复!',
batchEnableSuccess: '成功启用 {count} 个订阅',
batchPauseSuccess: '成功暂停 {count} 个订阅',
batchDeleteSuccess: '成功删除 {count} 个订阅',
batchEnableFailed: '启用失败 {count} 个订阅',
batchPauseFailed: '暂停失败 {count} 个订阅',
batchDeleteFailed: '删除失败 {count} 个订阅',
batchEnableError: '批量启用操作失败',
batchPauseError: '批量暂停操作失败',
batchDeleteError: '批量删除操作失败',
minSubscribers: '最小订阅人数',
},
recommend: {
all: '全部',
categoryMovie: '电影',
categoryTV: '电视剧',
categoryAnime: '动漫',
categoryMusic: '音乐',
categoryRankings: '榜单',
trendingNow: '流行趋势',
nowShowing: '正在热映',
bangumiDaily: 'Bangumi每日放送',
anilistTrendingNow: 'AniList 当前趋势',
anilistPopularThisSeason: 'AniList 本季热门',
listenBrainzWeekly: '本周热门音乐',
doubanMusic: '豆瓣音乐推荐',
tmdbHotMovies: 'TMDB热门电影',
tmdbHotTVShows: 'TMDB热门电视剧',
doubanHotMovies: '豆瓣热门电影',
doubanHotTVShows: '豆瓣热门电视剧',
doubanHotAnime: '豆瓣热门动漫',
doubanNewMovies: '豆瓣最新电影',
doubanNewTVShows: '豆瓣最新电视剧',
doubanTop250: '豆瓣电影TOP250',
doubanChineseTVRankings: '豆瓣国产剧集榜',
doubanGlobalTVRankings: '豆瓣全球剧集榜',
noCategoryContent: '当前分类下没有可显示的内容',
configureContent: '设置显示内容',
customizeContent: '自定义推荐',
selectContentToDisplay: '选择您想在页面显示的内容',
selectAll: '全选',
selectNone: '全不选',
},
discover: {
customizeTabs: '自定义探索标签',
configureTabsHint: '拖动调整标签顺序,并选择要显示的标签',
selectAll: '全选',
selectNone: '全不选',
saveSettingsFailed: '探索标签设置保存失败,请稍后重试',
},
downloading: {
noDownloader: '没有下载器',
configureDownloader: '请先在设置中正确配置并启用下载器。',
title: '下载',
noTask: '没有任务',
noTaskDescription: '正在下载的任务将会显示在这里。',
},
resource: {
searchResults: '资源搜索结果',
subtitleSearchResults: '字幕搜索结果',
keyword: '关键词',
title: '标题',
year: '年份',
season: '季',
switchingView: '切换视图',
backToHome: '返回首页',
searching: '正在搜索,请稍候...',
noData: '没有数据',
noResourceFound: '未搜索到任何资源',
filteredNoResults: '找到 {count} 个资源,但均不符合过滤规则',
searchStreamTimeout: '搜索连接长时间无响应,请稍后重试',
searchStreamDisconnected: '搜索连接已中断,请稍后重试',
aiRecommend: '智能推荐',
reRecommend: '重新生成推荐',
aiRecommendError: '智能推荐失败',
refreshSearch: '重新搜索',
},
browse: {
actor: '演员',
},
appcenter: {
others: '其他',
},
notFound: {
title: '⚠️ 页面不存在',
description: '您想要访问的页面不存在,请检查地址是否正确。',
backButton: '返回',
},
torrent: {
selectAll: '全选',
clear: '清除',
clearFilters: '清除筛选',
confirm: '确定',
resources: '个资源',
noResults: '没有找到匹配的资源',
sortDefault: '默认',
sortSite: '站点',
sortSize: '大小',
sortSeeder: '做种数',
sortPublishTime: '发布时间',
filterSite: '站点',
filterSeason: '季',
filterFreeState: '促销状态',
filterVideoCode: '视频编码',
filterEdition: '质量',
filterResolution: '分辨率',
filterReleaseGroup: '制作组',
noMatchingResults: '没有数据',
allFilters: '综合筛选',
clearAll: '清除全部',
},
calendar: {
episode: '第{number}集',
libraryProgress: '已入库 {completed}/{total}',
currentEpisodeInLibrary: '本集已入库',
currentEpisodePartiallyInLibrary: '本集部分入库',
currentEpisodeNotInLibrary: '本集未入库',
libraryStateComplete: '已入库',
libraryStatePartial: '部分入库',
libraryStateNone: '未入库',
compactLibraryProgress: '{state} ({completed}/{total})',
libraryUpdatedAt: '最近更新 {time}',
libraryUpdatedAtShort: '{time}',
expandDayEvents: '展开当天剩余 {count} 个条目',
mobileFilterTitle: '订阅日历',
itemCount: '{count} 项',
hideExpired: '隐藏过期',
showExpired: '显示过期',
today: '今天',
todayUpdated: '今天更新',
upcoming: '即将播出',
expired: '已播出',
episodeCount: '{count} 集',
mobileEpisodeTitle: '第 {number} 集',
runtimeMinutes: '{minutes} 分钟',
movie: '电影',
imageLoadFailed: '加载失败',
noMatchingEvents: '暂无符合筛选条件的日历内容',
mediaTypeFilterTitle: '媒体类型筛选',
filterAll: '全部',
filterMovie: '电影',
filterTv: '电视剧',
},
storage: {
name: '名称',
type: '类型',
customTypeHint: '自定义存储类型,用于插件等场景',
usedPercent: '已使用 {percent}%',
noConfigNeeded: '此存储类型无需配置参数,请直接配置目录!',
notConfigured: '未配置',
local: '本地',
alipan: '阿里云盘',
u115: '115网盘',
rclone: 'RClone',
alist: 'OpenList',
alistgo: 'AList',
smb: 'SMB网络共享',
custom: '自定义',
},
filterRules: {
specSub: '特效字幕',
cnSub: '中文字幕',
cnVoi: '国语配音',
gz: '官种',
notCnVoi: '排除: 国语配音',
hkVoi: '粤语配音',
notHkVoi: '排除: 粤语配音',
free: '促销: 免费',
audioHires: '音质: Hi-Res',
audioLossless: '音质: 无损',
audioFlac: '音频格式: FLAC',
audioAlac: '音频格式: ALAC',
audioApe: '音频格式: APE',
audioWav: '音频格式: WAV',
audioDsd: '音频格式: DSD',
audioMp3: '音频格式: MP3',
audioAac: '音频格式: AAC',
audioOpus: '音频格式: OPUS',
bitrate320: '最低码率: 320 kbps',
bitrate256: '最低码率: 256 kbps',
bitrate192: '最低码率: 192 kbps',
resolution4k: '分辨率: 4K',
resolution1080p: '分辨率: 1080P',
resolution720p: '分辨率: 720P',
not720p: '排除: 720P',
qualityBlu: '质量: 蓝光原盘',
notBlu: '排除: 蓝光原盘',
qualityBluray: '质量: BLURAY',
notBluray: '排除: BLURAY',
qualityUhd: '质量: UHD',
notUhd: '排除: UHD',
qualityRemux: '质量: REMUX',
notRemux: '排除: REMUX',
qualityWebdl: '质量: WEB-DL',
notWebdl: '排除: WEB-DL',
quality60fps: '质量: 60fps',
not60fps: '排除: 60fps',
codecH265: '编码: H265',
notH265: '排除: H265',
codecH264: '编码: H264',
notH264: '排除: H264',
effectDolby: '效果: 杜比视界',
notDolby: '排除: 杜比视界',
effectAtmos: '效果: 杜比全景声',
notAtmos: '排除: 杜比全景声',
effectHdr: '效果: HDR',
notHdr: '排除: HDR',
effectSdr: '效果: SDR',
notSdr: '排除: SDR',
effect3d: '效果: 3D',
not3d: '排除: 3D',
},
transferType: {
copy: '复制',
move: '移动',
link: '硬链接',
softlink: '软链接',
},
site: {
noSites: '没有站点',
sitesWillBeShownHere: '已添加并支持的站点将会在这里显示。',
noFilterData: '没有符合条件的站点',
title: '站点',
status: {
enabled: '启用',
disabled: '停用',
},
fields: {
url: '站点地址',
priority: '优先级',
status: '状态',
rss: 'RSS地址',
timeout: '超时时间(秒)',
downloader: '下载器',
cookie: '站点Cookie',
userAgent: '站点User-Agent',
authorization: '请求头(Authorization',
apiKey: '令牌(API Key',
limitAccess: '限制站点访问频率',
limitInterval: '单位周期(秒)',
limitCount: '周期内访问次数',
limitSeconds: '访问间隔(秒)',
useProxy: '使用代理访问',
browserSimulation: '浏览器仿真',
selectFile: '选择文件',
},
hints: {
url: '格式:http://www.example.com/',
priority: '优先级越小越优先',
status: '站点启用/停用',
rss: '订阅模式为`站点RSS`时使用的订阅链接,如未自动获取需手动补充',
timeout: '站点请求超时时间,为0时不限制',
downloader: '此站点使用的下载器',
cookie: '站点请求头中的Cookie信息',
userAgent: '获取Cookie的浏览器对应的User-Agent',
authorization: '站点请求头中的Authorization信息,特殊站点需要',
apiKey: '站点的访问API Key,特殊站点需要',
limitInterval: '限流控制的单位周期时长',
limitCount: '单位周期内允许的访问次数',
limitSeconds: '每次访问需要间隔的最小时间',
useProxy: '使用代理服务器访问该站点',
browserSimulation: '使用浏览器模拟真实访问该站点',
import: '批量导入站点数据,支持JSON格式文件',
selectFile: '选择JSON文件',
dragDropFile: '拖拽文件到此处或点击选择文件',
supportedFormat: '支持JSON格式的站点配置文件',
},
actions: {
add: '新增站点',
edit: '编辑站点',
import: '导入',
export: '导出',
startImport: '开始导入',
},
messages: {
addSuccess: '新增站点成功',
addFailed: '新增站点失败',
updateSuccess: '更新成功',
updateFailed: '更新失败',
exportSuccess: '站点导出成功',
exportFailed: '站点导出失败',
importSuccess: '成功导入 {count} 个站点',
importFailed: '站点导入失败',
importPartialFailed: '导入完成,成功 {success} 个,失败 {failed} 个',
importAllFailed: '导入失败,{count} 个站点全部导入失败',
noDataToImport: '没有数据可导入',
noValidData: '没有有效的数据',
someInvalidData: '部分数据无效,有效数据 {valid}/{total} 个',
invalidFileType: '不支持的文件类型,请选择JSON文件',
invalidFileFormat: '文件格式无效,请检查文件内容',
parseFileError: '文件解析失败,请检查文件格式',
previewData: '预览数据 ({count} 个站点)',
importing: '正在导入... ({progress}%)',
importErrors: '导入过程中出现 {count} 个错误',
},
errors: {
loadDownloader: '加载下载器设置失败',
title: '导入错误详情',
failed: '导入失败',
details: '错误详情',
},
results: {
successTitle: '成功导入的站点',
success: '导入成功',
},
testConnectivity: '测试连通性',
testing: '测试中 ...',
testSuccess: '{name} 连通性测试成功,可正常使用!',
testFailed: '{name} 连通性测试失败:{message}',
connectionNormal: '连接正常',
connectionSlow: '连接缓慢',
connectionFailed: '连接失败',
connectionUnknown: '连接未知',
deleteConfirm: '是否确认删除站点?',
deleteSuccess: '{name} 删除成功!',
deleteFailed: '{name} 删除失败:{message}',
browseResources: '浏览资源',
deleteSite: '删除站点',
updateCookie: '更新Cookie',
viewUserData: '查看用户数据',
statistics: '统计信息',
totalSites: '总站点数',
normalSites: '正常站点',
slowSites: '缓慢站点',
failedSites: '失败站点',
averageTime: '平均耗时',
successRate: '成功率',
successCount: '成功次数',
failCount: '失败次数',
lastAccess: '最后访问',
timeRecords: '耗时记录',
recentTimeRecords: '最近耗时记录',
accessTime: '访问时间',
responseTime: '响应时间',
noTimeRecords: '暂无耗时记录',
preview: {
title: '预览站点',
showing: '显示 {count}/{total}',
unnamed: '未命名站点',
noUrl: '无站点地址',
invalid: '数据无效',
},
},
message: {
loadMore: '加载更多',
noMoreData: '没有更多数据',
},
logging: {
level: '级别',
time: '时间',
program: '程序',
content: '内容',
refreshing: '正在刷新',
initializing: '正在初始化',
searchPlaceholder: '搜索日志内容',
allLevels: '全部级别',
followTail: '跟随最新日志',
wrapLines: '自动换行',
pauseStream: '暂停日志流',
resumeStream: '恢复日志流',
waitingForLogs: '等待日志输出...',
paused: '已暂停',
connected: '实时更新中',
lineCount: '显示 {visible}/{total} 行',
jumpToLatest: '查看最新 ({count})',
},
moduleTest: {
normal: '正常',
disabled: '未启用',
error: '错误',
checking: '正在检查...',
complete: '检查完成',
preparing: '准备检查...',
totalModules: '总模块数',
recheck: '重新检查',
requestFailed: '网络请求失败',
},
nameTest: {
recognize: '识别',
recognizing: '识别中...',
recognizeAgain: '重新识别',
title: '标题',
titleHint: '输入种子名、发布标题或文件名,音频文件名将按音乐识别',
subtitle: '副标题',
subtitleHint: '可选,补充种子描述、别名或发布信息以提高识别准确度',
source: '识别数据源',
sourceHint: '默认使用后台识别设置,可为本次测试单独切换',
customWords: '识别词',
customWordsPlaceholder: '每行输入一组识别规则,可直接用于本次识别测试',
customWordsHint: '格式与"识别词管理"一致:屏蔽词 / 被替换词 => 替换词 / 前定位词 <> 后定位词 >> 集偏移量',
saveWords: '保存识别词',
saveWordsSuccess: '识别词已保存到识别词表末尾',
saveWordsNoChange: '识别词已存在,无需重复保存',
saveWordsFailed: '识别词保存失败',
requestFailed: '识别请求失败',
unrecognized: '未识别到媒体',
waitingResult: '等待识别结果',
analysisTitle: '解析链路',
analysisSubtitle: '标题预处理、元信息和媒体匹配结果',
summary: {
year: '年份',
episode: '季集',
type: '类型',
source: '数据源',
},
steps: {
original: {
title: '原始标题',
caption: '进入识别流程的原始字符串',
},
words: {
title: '识别词',
caption: '自定义识别词应用情况',
value: '命中 {count} 条',
none: '未应用识别词',
},
meta: {
title: '元信息',
caption: '解析出的名称、季集和资源信息',
},
classification: {
title: '媒体分类',
},
source: {
title: '识别数据源',
caption: '本次识别匹配到的媒体数据源',
},
media: {
title: '媒体 ID',
caption: '最终匹配到的媒体数据源原生 ID',
},
},
},
netTest: {
notTested: '未测试',
testing: '测试中...',
normal: '正常',
},
ruleTest: {
test: '测试',
testing: '正在测试...',
testAgain: '重新测试',
title: '标题',
titleHint: '输入用于模拟搜索或下载结果的发布标题',
subtitle: '副标题',
subtitleHint: '可选,补充发布描述、标签或站点副标题以参与识别和过滤',
ruleGroup: '规则组',
ruleGroupHint: '选择要验证的过滤规则组',
ruleGroupPlaceholder: '请选择',
priority: '优先级:{value}',
noPriorityRule: '未命中任何优先级规则!',
requestFailed: '规则测试请求失败',
waitingResult: '等待规则测试结果',
matched: '命中过滤规则',
priorityLabel: '优先级',
analysisTitle: '过滤链路',
analysisSubtitle: '规则组、媒体识别、过滤命中和优先级排序',
ruleCount: '{count} 条',
summary: {
priority: '优先级',
ruleGroup: '规则组',
ruleCount: '规则数',
media: '媒体',
},
steps: {
group: {
title: '规则组',
caption: '当前规则组包含 {count} 条优先级规则',
empty: '规则组暂无规则',
},
media: {
title: '媒体识别',
caption: '过滤前先识别媒体上下文',
none: '未识别到媒体',
},
filter: {
title: '过滤命中',
matched: '资源符合过滤规则',
pending: '未得到命中结果',
},
priority: {
title: '排序结果',
caption: '命中资源换算后的优先级',
empty: '未生成优先级',
},
},
},
setting: {
about: {
title: '关于 MoviePilot',
softwareVersion: '软件版本',
frontendVersion: '前端版本',
systemUptime: '系统已运行',
browserVersion: '浏览器缓存版本',
authVersion: '认证资源版本',
indexerVersion: '站点资源版本',
configDir: '配置目录',
dataDir: '数据目录',
timezone: '时区',
latest: '最新',
supportingSites: '支持站点',
support: '支持',
documentation: '文档',
feedback: '问题反馈',
channel: '发布频道',
versions: '软件版本',
latestVersion: '最新软件版本',
currentVersion: '当前版本',
viewChangelog: '查看变更日志',
changelog: '变更日志',
dataDirectory: '/moviepilot',
expand: '展开',
collapse: '收起',
clearCache: '清除缓存',
versionStatistic: '版本统计',
versionStatisticTitle: '安装版本统计',
totalInstallUsers: '安装用户',
activeToday: '今日活跃',
active7Days: '7日活跃',
active30Days: '30日活跃',
backendVersionStatistic: '后端版本',
frontendVersionStatistic: '前端版本',
version: '版本',
users: '用户数',
lastUpdated: '更新时间',
noVersionStatisticData: '暂无统计数据',
uptimeUnits: {
day: '{count}天',
days: '{count}天',
hour: '{count}小时',
hours: '{count}小时',
minute: '{count}分钟',
minutes: '{count}分钟',
second: '{count}秒',
seconds: '{count}秒',
},
},
system: {
custom: '自定义',
basicSettings: '基础设置',
basicSettingsDesc: '设置服务器的全局功能',
appDomain: '访问域名',
appDomainHint: 'MoviePilot 的访问地址,用于通知快捷跳转和通行密钥校验',
wallpaper: '背景壁纸',
wallpaperHint: '选择登陆页面背景来源',
recognizeSource: '识别数据源',
recognizeSourceHint: '设置默认媒体信息识别数据源',
apiToken: 'API令牌',
apiTokenHint: '设置外部请求MoviePilot API时使用的token值',
apiTokenMinChars: '不能小于16位字符',
apiTokenRequired: '必填项;请输入API Token',
apiTokenLength: 'API Token不得低于16位',
githubToken: 'Github Token',
githubTokenFormat: 'ghp_**** 或 github_pat_****',
githubTokenHint: '用于提高插件等访问Github API时的限流阈值,建议配置,否则插件可能无法正常使用',
ocrHost: '验证码识别服务器',
ocrHostHint: '用于站点签到、更新站点Cookie等识别验证码',
aiAgent: '启用智能助手',
aiAgentEnable: '启用智能助手',
aiAgentEnableHint: '启用后可使用智能助手功能,需要配置LLM相关参数',
aiAgentSectionTitle: '智能助手配置',
aiAgentSectionDesc: '启用后可在消息会话中使用 Agent 能力,也可开启失败整理接管和智能推荐。',
llmProvider: 'LLM提供商',
llmProviderHint: '选择使用的LLM服务提供商',
llmModel: 'LLM模型名称',
llmModelHint: '指定使用的LLM模型,如deepseek-v4-flash、gpt-5.4等',
llmModelPlaceholder: '请输入或选择LLM模型名称',
llmModelResolvedHint: '已根据模型目录自动回填最大上下文为 {context}K,来源:{source}',
llmThinking: '思考模式 / 深度',
llmThinkingHint:
'思考深度:off/auto/minimal/low/medium/high/max/xhigh;不支持的级别会按 provider 能力自动映射到最近值',
llmThinkingLevelOff: '关闭 (off)',
llmThinkingLevelAuto: '自动 (auto)',
llmThinkingLevelMinimal: '最小 (minimal)',
llmThinkingLevelLow: '低 (low)',
llmThinkingLevelMedium: '中 (medium)',
llmThinkingLevelHigh: '高 (high)',
llmThinkingLevelMax: '极高 (max)',
llmThinkingLevelXhigh: '超高 (xhigh)',
llmSupportImageInput: '模型支持图片输入',
llmSupportImageInputHint:
'启用后,消息中的图片会按多模态图片发送给 LLM;关闭后图片会作为附件保存到本地,并将文件路径提供给智能助手处理',
llmSupportAudioInput: '支持音频输入',
llmSupportAudioInputHint: '启用后,智能助手会将用户发送的音频消息转写为文字再处理',
llmSupportAudioOutput: '支持音频输出',
llmSupportAudioOutputHint: '启用后,智能助手可以在支持的渠道上发送语音回复',
llmMaxContextTokens: 'LLM 最大上下文 Token 数量 (K)',
llmMaxContextTokensHint:
'设定 LLM 记录会话历史的最大 Token 数量上限(千),超出后将自动修整历史记录以节省 Token 消耗及防止超出 LLM 限制',
llmApiKey: 'LLM API密钥',
llmApiKeyHint: 'LLM服务提供商的API密钥,用于身份验证',
llmApiKeyPlaceholder: '请输入API密钥',
llmBaseUrl: 'LLM基础URL',
llmBaseUrlHint: 'LLM API的基础URL地址,用于自定义API端点',
llmBaseUrlPlaceholder: '请输入LLM API基础URL',
llmUseProxy: '使用系统代理',
llmUseProxyHint: '启用后,Agent 连接当前 LLM 提供商时会应用高级设置中的系统代理',
llmUserAgent: 'User-Agent',
llmUserAgentHint: 'OpenAI 兼容接口请求使用的 User-Agent,留空则使用 SDK 默认值',
llmUserAgentPlaceholder: '留空则使用SDK默认User-Agent',
llmApiProtocol: 'API 协议',
llmApiProtocolHint: 'OpenAI 兼容接口的请求协议:自动按模型能力选择,或强制使用 Chat Completions / Responses',
llmApiProtocolAuto: '自动 (auto)',
llmApiProtocolChatCompletions: 'Chat Completions',
llmApiProtocolResponses: 'Responses',
llmWebSearchMode: '联网搜索',
llmWebSearchModeHint:
'选择 MoviePilot 本地搜索、模型服务端搜索、自动回退或完全关闭;服务端搜索仅在当前模型声明支持时可用',
llmWebSearchModeBuiltinSupportedHint:
'当前模型支持官方托管搜索;选择“模型服务端”或“自动”时会按所需协议调用,无需额外搜索密钥',
llmWebSearchModeLocal: 'MoviePilot 本地搜索',
llmWebSearchModeBuiltin: '模型服务端搜索',
llmWebSearchModeAuto: '自动(服务端优先)',
llmWebSearchModeDisabled: '关闭联网搜索',
llmTemperature: '温度参数',
llmTemperatureHint: '控制回复随机性,数值越低越稳定,越高越发散;后端默认 0.3,通常建议 0-2',
llmProviderAuth: '提供商授权',
llmProviderAuthHint: '支持账号登录授权的提供商,可以直接在这里完成登录并复用授权状态。',
llmProviderConnectedAs: '当前已连接:{label}',
llmProviderDisconnect: '断开授权',
llmProviderDisconnected: '已断开提供商授权',
llmProviderAuthDialogTitle: '提供商授权',
llmProviderPopupBlocked: '浏览器拦截了授权窗口,请手动点击下方按钮继续。',
llmProviderDeviceCode: '设备码',
llmProviderOpenAuthPage: '打开授权页面',
llmProviderCheckAuthStatus: '检查授权状态',
audioInputProvider: '音频输入提供商',
audioInputProviderHint:
'用于识别用户音频消息的服务,支持 OpenAI 音频接口、Chat Audio 兼容接口、Xiaomi MiMo 和 MiniMax',
audioProviderOpenAiAudio: 'OpenAI Audio 兼容',
audioProviderChatAudio: 'Chat Audio 兼容',
audioProviderMimo: '小米 MiMo',
audioProviderMinimax: 'MiniMax',
audioInputApiKey: '音频输入 API密钥',
audioInputApiKeyHint: '音频输入转写使用的 API 密钥',
audioInputBaseUrl: '音频输入基础URL',
audioInputBaseUrlHint:
'音频输入接口基础URL,Chat Audio 类服务可填写对应兼容地址,MiMo 默认 https://api.xiaomimimo.com/v1MiniMax 默认 https://api.minimaxi.com/v1',
audioInputModel: '音频输入模型',
audioInputModelHint: '用于将音频内容转换为文字的模型名称',
audioInputLanguage: '识别语言',
audioInputLanguageHint: '音频转写默认语言,例如 zh、en,留空时按后端默认处理',
audioOutputProvider: '音频输出提供商',
audioOutputProviderHint:
'用于生成语音回复的服务,支持 OpenAI 音频接口、Chat Audio 兼容接口、Xiaomi MiMo 和 MiniMax',
audioOutputApiKey: '音频输出 API密钥',
audioOutputApiKeyHint: '文字转语音使用的 API 密钥',
audioOutputBaseUrl: '音频输出基础URL',
audioOutputBaseUrlHint:
'音频输出接口基础URL,Chat Audio 类服务可填写对应兼容地址,MiMo 默认 https://api.xiaomimimo.com/v1MiniMax 默认 https://api.minimaxi.com/v1',
audioOutputModel: '音频输出模型',
audioOutputModelHint: '用于将文字内容转换为语音的模型名称',
audioOutputVoice: '语音音色',
audioOutputVoiceHint: '语音合成使用的发音人或音色标识',
audioOutputIncludeText: '语音回复附带文字',
audioOutputIncludeTextHint: '发送语音回复时,同时附带一份文字内容',
llmTestAction: '测试调用',
llmTestSuccessToast: 'LLM 调用测试成功',
llmTestFailedToast: 'LLM 调用测试失败',
llmTestFailedToastWithMessage: 'LLM 调用测试失败:{message}',
aiAgentGlobal: '全局智能助手',
aiAgentGlobalHint:
'启用全局智能助手:默认使用智能体交互,使用 /noai 临时使用传统交互;关闭全局智能助手:默认使用传统交互,使用 /ai 临时使用智能体交互',
aiAgentJobInterval: '定时唤醒',
aiAgentJobIntervalHint: '设置定时唤醒的检查间隔,选择"不启用"则不执行定时任务',
aiAgentVerbose: '啰嗦模式',
aiAgentVerboseHint: '开启后会在智能体回复时显示工具调用过程',
aiAgentHideEntry: '隐藏全局入口',
aiAgentHideEntryHint: '仅隐藏页面右下角的智能助手浮动入口,不影响消息渠道和后台智能助手功能',
aiAgentJobIntervalDisabled: '不启用',
aiAgentJobInterval1h: '1小时',
aiAgentJobInterval3h: '3小时',
aiAgentJobInterval6h: '6小时',
aiAgentJobInterval12h: '12小时',
aiAgentJobInterval24h: '24小时',
aiAgentJobInterval1w: '1周',
aiAgentJobInterval1M: '1个月',
aiAgentMcpTitle: '外部 MCP 工具',
aiAgentMcpSummary: '已配置 {total} 个 MCP 服务器,启用 {enabled} 个。',
aiAgentMcpSettings: '设置 MCP',
aiAgentMcpDialogTitle: 'Agent MCP 设置',
aiAgentMcpDialogDesc: '配置外部 MCP 服务器,并测试可提供给智能助手的工具。',
aiAgentMcpAddServer: '添加服务器',
aiAgentMcpEmpty: '尚未配置 MCP 服务器。',
aiAgentMcpNewServer: '新的 MCP 服务器',
aiAgentMcpUnnamedServer: '未命名服务器',
aiAgentMcpName: '服务器名称',
aiAgentMcpTransport: '传输协议',
aiAgentMcpTransportStdio: 'stdio',
aiAgentMcpTransportSse: 'SSE',
aiAgentMcpTransportHttp: 'HTTP',
aiAgentMcpEnabled: '启用服务器',
aiAgentMcpEnabledHint: '启用后,智能助手会在运行时加载该服务器提供的工具',
aiAgentMcpRequireAdmin: '仅管理员可调用',
aiAgentMcpRequireAdminHint: '建议保持开启,避免普通用户调用高权限外部工具',
aiAgentMcpTimeout: '超时时间(秒)',
aiAgentMcpToolPrefix: '工具名前缀',
aiAgentMcpToolPrefixHint: '留空时会根据服务器名称自动生成,避免不同服务器工具名冲突',
aiAgentMcpDescription: '说明',
aiAgentMcpCommand: '启动命令',
aiAgentMcpArgs: '启动参数',
aiAgentMcpArgsHint: '每行一个参数,例如 -y 或 server-filesystem',
aiAgentMcpEnv: '环境变量',
aiAgentMcpKeyValueHint: '每行一个 KEY=VALUE',
aiAgentMcpUrl: '服务地址',
aiAgentMcpHeaders: '请求头',
aiAgentMcpTest: '测试连接',
aiAgentMcpSaveSuccess: 'MCP 配置已保存',
aiAgentMcpSaveFailed: 'MCP 配置保存失败',
advancedSettings: '高级设置',
advancedSettingsDesc: '系统进阶设置,特殊情况下才需要调整',
downloaders: '下载器',
downloadersDesc: '只有默认下载器才会被默认使用。',
aiAgentRetryTransfer: '文件整理失败智能接管',
aiAgentRetryTransferHint:
'启用后,当文件整理失败时,智能助手将自动接管并尝试重新整理,利用AI能力解决识别和匹配问题',
aiRecommendEnabled: '搜索结果智能推荐',
aiRecommendEnabledHint:
'启用搜索结果智能推荐功能,开启后将在搜索结果页面显示智能推荐按钮,可根据用户偏好智能推荐资源',
aiRecommendUserPreference: '用户偏好',
aiRecommendUserPreferenceHint: '设置智能推荐时的用户偏好,例如:4K WEB-DL Dolby Vision',
aiRecommendMaxItems: '智能推荐分析条目上限',
aiRecommendMaxItemsHint:
'限制发送给智能助手进行分析的搜索结果数量,数量越多分析越慢且消耗 Token 越多,建议先手动筛选,筛选出大致范围后再进行智能推荐',
mediaServers: '媒体服务器',
mediaServersDesc: '所有启用的媒体服务器都会被使用。',
trimeMedia: '飞牛影视',
system: '系统',
media: '媒体',
network: '网络',
log: '日志',
data: '数据',
lab: '实验室',
downloaderSaveSuccess: '下载器设置保存成功',
downloaderSaveFailed: '下载器设置保存失败!',
defaultDownloaderNotice: '未设置默认下载器,已将【{name}】作为默认下载器',
mediaServerSaveSuccess: '媒体服务器设置保存成功',
mediaServerSaveFailed: '媒体服务器设置保存失败!',
saveFailed: '设置保存失败:{message}',
basicSaveSuccess: '基础设置保存成功',
advancedSaveSuccess: '高级设置保存成功',
copySuccess: '已复制到剪贴板!',
copyFailed: '复制失败:可能是浏览器不支持或被用户阻止!',
copyError: '复制失败!',
reloading: '正在应用配置...',
qbittorrent: 'Qbittorrent',
transmission: 'Transmission',
rtorrent: 'rTorrent',
emby: 'Emby',
zspace: '极影视',
jellyfin: 'Jellyfin',
plex: 'Plex',
ugreen: '绿联影视',
navidrome: 'Navidrome 音乐服务器',
reloadSuccess: '系统配置已生效',
reloadFailed: '重载系统失败!',
auxAuthEnable: '用户辅助认证',
auxAuthEnableHint: '允许外部服务进行登录认证以及自动创建用户',
globalImageCache: '全局图片缓存',
globalImageCacheHint: '将媒体图片缓存到本地,提升图片加载速度',
subscribeStatisticShare: '分享订阅数据',
subscribeStatisticShareHint: '分享订阅统计数据到热门订阅,供其他MPer参考',
pluginStatisticShare: '上报插件安装数据',
pluginStatisticShareHint: '上报插件安装数据给服务器,用于统计展示插件安装情况',
usageStatisticShare: '上报安装版本统计',
usageStatisticShareHint: '上报匿名安装ID和当前前后端版本,用于统计各版本安装用户数',
workflowStatisticShare: '分享工作流数据',
workflowStatisticShareHint: '分享工作流统计数据到热门工作流,供其他MPer参考',
bigMemoryMode: '大内存模式',
bigMemoryModeHint: '使用更大的内存缓存数据,提升系统性能',
dbWalEnable: '数据库WAL模式',
dbWalEnableHint: '可提升读写并发性能,但可能在异常情况下增加数据丢失风险,更改后需重启生效',
tmdbApiDomain: 'TMDB API服务地址',
tmdbApiDomainPlaceholder: 'api.themoviedb.org',
tmdbApiDomainHint: '自定义 TheMovieDb API域名或代理地址',
tmdbApiDomainRequired: '请输入TMDB API域名',
tmdbApiKey: 'TMDB API Key',
tmdbApiKeyPlaceholder: '请输入 TMDB API Key',
tmdbApiKeyHint: '设置 TheMovieDb API Key',
tmdbApiKeyRequired: '请输入TMDB API Key',
acoustIdApiKey: 'AcoustID API Key',
acoustIdApiKeyPlaceholder: '请输入 AcoustID API Key',
acoustIdApiKeyHint: '用于通过音频指纹识别 MusicBrainz 录音 ID',
acoustIdApiKeyRequired: '请输入 AcoustID API Key',
musicMetadataToSimplified: '音乐媒体信息转简体中文',
musicMetadataToSimplifiedHint: '将识别结果中的曲名、艺术家、专辑和分类等音乐信息强制转换为简体中文',
tmdbImageDomain: 'TMDB 图片服务地址',
tmdbImageDomainPlaceholder: 'image.tmdb.org',
tmdbImageDomainHint: '自定义 TheMovieDb 图片服务域名或代理地址',
tmdbImageDomainRequired: '请输入图片服务域名',
musicCoverProxy: '音乐封面代理地址',
musicCoverProxyPlaceholder: 'https://your-proxy.example.com',
musicCoverProxyHint:
'自定义音乐封面代理地址,用于解决 coverartarchive.org 无法访问导致的封面不显示问题,留空则使用官方地址',
tmdbLocale: 'TMDB 元数据语言',
tmdbLocalePlaceholder: 'zh',
tmdbLocaleHint: '自定义 TheMovieDb 元数据语言',
metaCacheExpire: '单条媒体元数据缓存有效期',
metaCacheExpireHint: '每条识别元数据的独立有效期,为 0 时使用内置默认值',
metaCacheExpireRequired: '请输入元数据缓存时间',
metaCacheExpireMin: '元数据缓存时间必须大于等于0',
scrapFollowTmdb: '跟随TMDB识别整理',
scrapFollowTmdbHint: '关闭时以整理历史记录为准(如有),避免TMDB数据在订阅中途修改',
scrapOriginalImage: 'TMDB 刮削原语种图片',
scrapOriginalImageHint: '刮削原语种图片,否则刮削元数据语种图片',
fanartEnable: 'Fanart图片数据源',
fanartEnableHint: '使用 fanart.tv 的图片数据',
fanartLang: 'Fanart语言',
fanartLangHint: '设置Fanart图片的语言偏好,多选时按优先级顺序排列',
recognizePluginFirst: '优先使用插件识别',
recognizePluginFirstHint: '优先调用插件识别媒体信息,若插件命中则不再调用原生识别',
mediaRecognizeShare: '共享使用媒体识别数据',
mediaRecognizeShareHint: '识别成功后上报关键字与媒体ID,识别失败时优先回查共享识别结果',
githubProxy: 'Github加速代理',
githubProxyPlaceholder: '留空表示不使用代理',
githubProxyHint: '使用代理加速Github访问速度',
pipProxy: 'PIP加速代理',
pipProxyPlaceholder: '留空表示不使用代理',
pipProxyHint: '使用代理加速插件等pip库安装速度',
dohEnable: 'DNS Over HTTPS',
dohEnableHint: '使用DOH对特定域名进行解析,以防止DNS污染',
dohResolvers: 'DOH 服务器',
dohResolversPlaceholder: 'https://dns.google/dns-query,1.1.1.1',
dohResolversHint: 'DNS解析服务器地址,多个地址使用逗号分隔',
dohDomains: 'DOH 域名',
dohDomainsPlaceholder: 'example.com,example2.com',
dohDomainsHint: '使用DOH解析的域名,多个域名使用逗号分隔',
debug: '调试模式',
debugHint: '启用调试模式后,日志将以DEBUG级别记录,以便排查问题',
logLevel: '日志等级',
logLevelHint: '设置日志记录的级别,用于控制日志输出量',
logMaxFileSize: '日志文件最大容量(MB)',
logMaxFileSizeHint: '限制单个日志文件的最大容量,超出后将自动分割日志',
logMaxFileSizeRequired: '日志文件最大大小',
logMaxFileSizeMin: '日志文件最大容量必须大于等于1',
logBackupCount: '日志文件最大备份数量',
logBackupCountHint: '设置每个模块日志文件的最大备份数量,超过后将覆盖旧日志',
logBackupCountRequired: '请输入日志文件最大备份数量',
logBackupCountMin: '日志文件最大备份数量必须大于等于1',
logFileFormat: '日志文件格式',
logFileFormatHint: '设置日志文件的输出格式,用于自定义日志的显示内容',
dbBackupEnable: '启用数据备份',
dbBackupEnableHint: '按计划自动创建数据库备份',
dbBackupCron: '备份周期',
dbBackupCronHint: 'Cron 表达式,留空不启用定时备份',
dbBackupCronInvalid: '备份周期必须留空或使用有效的 Cron 表达式',
dbBackupPath: '备份目录',
dbBackupPathPlaceholder: '/config/database_backup',
dbBackupPathHint: '留空使用配置目录下的 database_backup,支持本地存储路径',
dbBackupRetentionDays: '备份过期天数',
dbBackupRetentionDaysHint: '单位:天,0 表示不限制',
dbBackupRetentionDaysInvalid: '备份过期天数必须是大于等于 0 的整数',
dbBackupMaxCount: '最大保留份数',
dbBackupMaxCountHint: '0 表示不限制',
dbBackupMaxCountInvalid: '最大保留份数必须是大于等于 0 的整数',
dbBackupOnUpgrade: '升级前自动备份',
dbBackupOnUpgradeHint: '检测到数据库结构需要升级时,自动创建备份',
dbBackupManagement: '数据库备份',
dbBackupManagementHint: '还原备份前必须停止 MoviePilot。',
dbBackupRestoreGuide: '查看还原命令',
dbBackupRefresh: '刷新备份列表',
dbBackupCreate: '立即备份',
dbBackupCreateSuccess: '数据库备份已创建',
dbBackupCreateFailed: '数据库备份创建失败,请查看日志',
dbBackupLoadFailed: '备份列表加载失败',
dbBackupName: '备份名称',
dbBackupType: '类型',
dbBackupCreatedAt: '创建时间',
dbBackupSize: '大小',
dbBackupActions: '操作',
dbBackupActionsName: '管理备份 {name}',
dbBackupVerify: '校验',
dbBackupVerifySuccess: '数据库备份校验通过',
dbBackupVerifyInvalid: '数据库备份校验未通过',
dbBackupVerifyFailed: '数据库备份校验失败,请查看日志',
dbBackupDelete: '删除',
dbBackupDeleteTitle: '删除数据库备份',
dbBackupDeleteConfirm: '确定删除 {name} 吗?删除后无法恢复。',
dbBackupDeleteSuccess: '数据库备份已删除',
dbBackupDeleteFailed: '数据库备份删除失败,请查看日志',
dbBackupEmpty: '暂无数据库备份',
dataCleanupEnable: '启用数据清理',
dataCleanupEnableHint: '自动清理超过保留期限的数据',
dataCleanupDaysRequired: '请输入清理周期',
dataCleanupDaysMin: '清理周期必须大于等于0',
dataCleanupMessageDays: '消息表保留天数',
dataCleanupMessageDaysHint: '单位:天,0 表示不清理消息表数据',
dataCleanupDownloadHistoryDays: '下载历史表保留天数',
dataCleanupDownloadHistoryDaysHint: '0 表示保留全部下载历史',
dataCleanupSiteUserDataDays: '站点数据表保留天数',
dataCleanupSiteUserDataDaysHint: '单位:天,0 表示不清理站点用户数据表',
dataCleanupTransferHistoryDays: '整理历史表保留天数',
dataCleanupTransferHistoryDaysHint: '单位:天,0 表示不清理整理历史表',
downloadFilesCleanupNotice: '下载文件表没有独立时间字段,会跟随下载历史表的保留周期清理其孤儿记录。',
pluginAutoReload: '插件热加载',
pluginAutoReloadHint: '修改插件文件后自动重新加载,开发插件时使用',
pluginLocalRepoPaths: '本地插件仓库路径',
pluginLocalRepoPathsHint: '本地插件仓库目录,多个目录用英文逗号分隔,支持相对路径和绝对路径',
encodingDetectionPerformanceMode: '编码探测性能模式',
encodingDetectionPerformanceModeHint: '优先提升探测效率,但可能降低编码探测的准确性',
rustAccel: 'Rust 加速',
rustAccelHint: '启用后使用后端 Rust 扩展加速过滤、RSS、索引器和媒体识别等热路径',
rustAccelRequiredHint: '当前 free-threaded 运行时固定使用 Rust 加速',
rustAccelUnavailableHint: '当前后端未安装或未加载 Rust 加速扩展,无法启用',
transferThreads: '文件整理线程数',
transferThreadsHint: '多线程整理文件可以提高速度,但可能增加系统资源占用',
tokenizedSearch: '分词搜索',
tokenizedSearchHint: '提升整理历史记录搜索精度,但可能增加性能开销和意外结果',
monitorNetworkFastMode: '网络存储快速监控',
monitorNetworkFastModeHint:
'允许网络/FUSE 挂载目录使用内核通知的快速监控模式,仅当确认挂载能正常下发文件变更通知时开启,否则新文件将无法被监控发现,保存后将自动重建监控并即时生效',
transferMaxFailedRetries: '整理失败重试次数',
transferMaxFailedRetriesHint:
'自动整理失败后允许重试的最大次数,避免一次网络或识别抖动让文件永久漏整理;次数用尽后需手动整理或删除整理记录。取值 1-10,整理成功或删除记录时计数清零,保存后即时生效',
transferFailureNotificationAggregation: '按媒体聚合整理失败通知',
transferFailureNotificationAggregationHint:
'开启后,同一媒体同一季在短时间内产生的整理失败会合并发送,并展示失败数量、原因统计和批量处理入口;关闭时逐条发送',
fsProxyEnabled: '本地文件操作隔离',
fsProxyEnabledHint:
'在独立子进程中执行本地文件的读取、复制、移动与删除。CloudDrive2 等 FUSE 挂载失去响应时,这类操作会永久卡住且无法中断,进而拖死整理队列与目录监控;隔离后可在超时后强制回收并转为普通错误,由既有的重试机制接管。关闭后退回直接调用,行为与旧版一致',
fsProxyTimeout: '文件操作超时(秒)',
fsProxyTimeoutHint:
'读取属性、列目录、删除、重命名等快速操作的等待上限,超时即判定挂载无响应并回收子进程。仅在开启「本地文件操作隔离」时生效,保存后即时生效',
fsProxyStallTimeout: '文件复制停滞超时(秒)',
fsProxyStallTimeoutHint:
'复制文件时允许「完全没有进度」的最长时间。判断依据是进度是否推进而不是总耗时,因此复制数小时的大文件不会被误判,只有传输彻底卡死才会中断。仅在开启「本地文件操作隔离」时生效,保存后即时生效',
tmdbLanguage: {
zhCN: '简体中文',
zhTW: '繁体中文',
en: '英文',
},
fanartLanguage: {
zh: '中文',
en: '英文',
ja: '日文',
ko: '韩文',
de: '德文',
fr: '法文',
es: '西班牙文',
it: '意大利文',
pt: '葡萄牙文',
ru: '俄文',
},
logLevelItems: {
debug: 'DEBUG - 调试',
info: 'INFO - 信息',
warning: 'WARNING - 警告',
error: 'ERROR - 错误',
critical: 'CRITICAL - 严重',
},
wallpaperItems: {
tmdb: 'TMDB电影海报',
bing: 'Bing每日壁纸',
mediaserver: '媒体服务器',
none: '无壁纸',
customize: '自定义',
},
mb: 'MB',
hour: '小时',
day: '天',
customizeWallpaperApi: '自定义壁纸API地址',
customizeWallpaperApiHint: '会获取API返回内容中所有允许的安全域名地址的图片,需要同步设置安全域名地址',
customizeWallpaperApiRequired: '必填项;请输入自定义壁纸API',
securityImageDomains: '安全图片域名',
securityImageDomainsHint: '允许缓存的图片域名白名单,用于控制可信任的图片来源',
noSecurityImageDomains: '暂无安全域名',
securityImageDomainAdd: '添加域名,如:image.tmdb.org',
imageProxyAllowedPrivateRanges: '图片代理允许非公网网段',
imageProxyAllowedPrivateRangesHint:
'仅对已命中安全图片域名的地址生效,用于 TUN 映射、内网 CDN 等特殊场景;配置过宽会降低 SSRF 防护强度',
noImageProxyAllowedPrivateRanges: '暂无允许网段',
imageProxyAllowedPrivateRangeAdd: '添加 CIDR,如:198.18.0.0/15',
proxyHost: '代理服务器',
proxyHostHint: '设置代理服务器地址,支持:http(s)、socks5、socks5h 等协议',
moviePilotDevUpdate: '跟踪 Dev 开发版',
moviePilotDevUpdateHint: '每次重启时更新到当前 v3 开发分支的最新代码',
autoUpdateResource: '自动更新站点资源',
autoUpdateResourceHint: '重启时自动检测和更新站点资源包',
// 刮削开关设置
scrapingSwitchSettings: '刮削开关设置',
scrapingSwitchSettingsDesc: '控制各类媒体文件的刮削功能开关',
movie: '电影',
tv: '电视剧',
season: '季',
episode: '集',
movieNfo: 'NFO',
moviePoster: '海报',
movieBackdrop: '背景图',
movieLogo: 'Logo',
movieDisc: '光盘图',
movieBanner: '横幅图',
movieThumb: '缩略图',
tvNfo: 'NFO',
seasonNfo: 'NFO',
tvPoster: '海报',
tvBackdrop: '背景图',
tvBanner: '横幅图',
tvLogo: 'Logo',
tvThumb: '缩略图',
seasonPoster: '海报',
seasonBanner: '横幅图',
seasonThumb: '缩略图',
episodeNfo: 'NFO',
episodeThumb: '缩略图',
music: '音乐',
musicNfo: '音乐标签',
musicPoster: '封面',
musicLyrics: '歌词',
scrapingSwitchSaveFailed: '刮削开关设置保存失败:{message}',
scrapingSwitchSaveError: '刮削开关设置保存失败',
policy: {
skipDesc: '跳过刮削,不生成该文件',
missingOnlyDesc: '仅在缺失时刮削,已存在则保持不变',
overwriteDesc: '始终刮削,已存在则覆盖',
},
},
site: {
siteSync: '站点同步',
siteSyncDesc: '从CookieCloud快速同步站点数据',
enableLocalCookieCloud: '启用本地CookieCloud服务器',
enableLocalCookieCloudHint: '使用内建CookieCloud服务同步站点数据,服务地址为:http://localhost:3000/cookiecloud',
serviceAddress: '服务地址',
serviceAddressPlaceholder: 'https://movie-pilot.org/cookiecloud',
serviceAddressHint: '远端CookieCloud服务地址,格式:https://movie-pilot.org/cookiecloud',
userKey: '用户KEY',
userKeyHint: 'CookieCloud浏览器插件生成的用户KEY',
e2ePassword: '端对端加密密码',
e2ePasswordHint: 'CookieCloud浏览器插件生成的端对端加密密码',
cookieCloudAuthHeader: '上传认证 Header',
cookieCloudAuthHeaderHint: '留空表示关闭上传认证,启用后上传端或反向代理需要发送 X-CookieCloud-Auth',
autoSyncInterval: '自动同步间隔',
autoSyncIntervalHint: '从CookieCloud服务器自动同步站点Cookie到MoviePilot的时间间隔',
syncBlacklist: '同步域名黑名单',
syncBlacklistPlaceholder: '多个域名,分割',
syncBlacklistHint: 'CookieCloud同步域名黑名单,多个域名,分割',
userAgent: '浏览器User-Agent',
userAgentHint: 'CookieCloud插件所在的浏览器的User-Agent',
siteDataRefresh: '站点数据刷新',
siteOptions: '站点选项',
browserEmulation: '浏览器仿真',
browserEmulationHint: '站点访问仿真方式,支持 CloakBrowser 或 FlareSolverr',
ocrHost: '验证码识别服务器',
ocrHostHint: '用于站点签到、更新站点Cookie等识别验证码',
flaresolverrUrl: 'FlareSolverr 服务地址',
flaresolverrUrlHint: '当仿真方式为 FlareSolverr 时生效,例如:http://127.0.0.1:8191',
siteDataRefreshInterval: '站点数据刷新间隔',
siteDataRefreshIntervalHint: '刷新站点用户上传下载等数据的时间间隔',
searchResourcePages: '搜索资源获取页数',
searchResourcePagesHint: '站点资源搜索时从当前页开始连续获取的页数,默认 1 页',
readSiteMessage: '阅读站点消息',
readSiteMessageHint: '刷新数据时读取站点消息并发送通知',
siteReset: '站点重置',
confirmReset: '确认删除所有站点数据并重新同步。',
confirmResetHint: '删除所有站点数据并重新从CookieCloud同步,操作请先清空涉及站点的相关设置。',
resetSites: '重置站点数据',
resettingSites: '正在重置...',
syncInterval: {
hourly: '每小时',
every6Hours: '每6小时',
every12Hours: '每12小时',
daily: '每天',
weekly: '每周',
monthly: '每月',
never: '永不',
},
saveSuccess: '保存站点设置成功',
saveFailed: '站点设置保存失败!',
resetSuccess: '站点重置成功,请等待CookieCloud同步完成!',
resetFailed: '站点重置失败!',
},
notification: {
channels: '通知渠道',
channelsDesc: '设置消息发送渠道参数',
organizeSuccess: '资源入库',
downloadAdded: '资源下载',
subscribeAdded: '添加订阅',
subscribeComplete: '订阅完成',
templateConfigTitle: '通知模板',
templateConfigDesc: '设置通知模板,支持Jinja2语法。',
templateSaveFailed: '模板保存失败!',
templateSaveSuccess: '模板保存成功',
templateLoadFailed: '模板加载失败!',
scope: '通知发送范围',
scopeDesc: '对应消息类型只会发送给设定的用户。',
messageType: '消息类型',
scopeRange: '范围',
operationUserOnly: '仅操作用户',
adminOnly: '仅管理员',
userAndAdmin: '操作用户和管理员',
allUsers: '所有用户',
sendTime: '通知发送时间',
sendTimeDesc: '设定消息发送的时间范围。',
startTime: '开始时间',
endTime: '结束时间',
saveSuccess: '通知设置保存成功',
saveFailed: '通知设置保存失败!',
switchSaveSuccess: '消息类型开关保存成功',
switchSaveFailed: '消息类型开关保存失败!',
timeSaveSuccess: '通知发送时间保存成功',
timeSaveFailed: '通知发送时间保存失败!',
channel: '通知',
wechat: '企业微信',
wechatClawBot: '微信 ClawBot',
feishu: '飞书',
resourceDownload: '资源下载',
mediaImport: '整理入库',
subscription: '订阅',
site: '站点',
mediaServer: '媒体服务器',
manualProcess: '手动处理',
plugin: '插件',
other: '其它',
telegram: 'Telegram',
slack: 'Slack',
dingTalk: '钉钉',
synologyChat: 'SynologyChat',
voceChat: 'VoceChat',
webPush: 'WebPush',
qq: 'QQ',
custom: '自定义通知',
},
words: {
summary: '共 {sections} 类词表 · {entries} 条配置',
sectionListLabel: '词表分类',
switchHint: '点击左侧项目切换编辑',
entryCount: '{count} 条',
ruleCount: '共 {count} 条规则',
listLabel: '词表内容(每行一个规则)',
lineNumbers: '行号',
syntaxHighlighting: '语法高亮',
saved: '已保存',
unsaved: '有未保存修改',
saveChanges: '保存更改',
guideTitle: '语法提示',
dragToSort: '拖动调整顺序',
noRules: '暂无集数定位规则',
identifiersShort: '识别词',
releaseGroupsShort: '制作组',
customizationShort: '占位符',
excludeWordsShort: '屏蔽词',
episodeFormatRuleShort: '集数规则',
customIdentifiers: '自定义识别词',
identifiersDesc: '添加规则对种子名或者文件名进行预处理以校正识别',
identifiersPlaceholder: '每行输入一组识别规则',
identifiersHint: '支持正则表达式,特殊字符需要\\转义,一行为一组',
formatTitle: '支持的配置格式(注意空格):',
formatContent:
'屏蔽词\n' +
'被替换词 => 替换词\n' +
'前定位词 <> 后定位词 >> 集偏移量(EP\n' +
'被替换词 => 替换词 && 前定位词 <> 后定位词 >> 集偏移量(EP\n' +
'其中替换词支持格式:&#123;[tmdbid/doubanid/bangumiid/anilistid=xxx;type=movie/tv;g=xxx;s=xxx;e=xxx]&#125; 直接指定媒体数据源ID识别,其中g为剧集组编号,s、e为季数和集数(均可选)',
identifierSaveSuccess: '自定义识别词保存成功',
identifierSaveFailed: '自定义识别词保存失败!',
customReleaseGroups: '自定义制作组/字幕组',
releaseGroupsDesc: '添加无法识别的制作组/字幕组。',
releaseGroupsPlaceholder: '每行输入一个制作组/字幕组',
releaseGroupsHint: '支持正则表达式,特殊字符需要\\转义,一行代表一个制作组/字幕组',
releaseGroupSaveSuccess: '自定义制作组/字幕组保存成功',
releaseGroupSaveFailed: '自定义制作组/字幕组保存失败!',
customization: '自定义占位符',
customizationDesc: '添加自定义占位符识别正则,重命名格式中添加{customization}使用。',
customizationPlaceholder: '每行输入一个占位符识别正则',
customizationHint: '支持正则表达式,特殊字符需要\\转义,多个匹配对象请换行分隔',
customizationSaveSuccess: '自定义占位符保存成功',
customizationSaveFailed: '自定义占位符保存失败!',
transferExcludeWords: '文件整理屏蔽词',
excludeWordsDesc: '目录名或文件名中包含屏蔽词时不进行整理。',
excludeWordsPlaceholder: '每行输入一个屏蔽词',
excludeWordsHint: '支持正则表达式,特殊字符需要\\转义,一行代表一个屏蔽词',
excludeWordsSaveSuccess: '文件整理屏蔽词保存成功',
excludeWordsSaveFailed: '文件整理屏蔽词保存失败!',
episodeFormatRule: '手动整理集数定位规则',
episodeFormatRuleDesc: '用于匹配媒体文件名,命中后自动生成对应的集数定位正则。',
episodeFormatRuleName: '规则名称',
episodeFormatRuleNameHint: '输入规则的名称',
episodeFormatRulePattern: '正则表达式',
episodeFormatRulePatternHint: '必须包含 (?&lt;ep&gt;...) 命名组',
episodeFormatRuleMinSize: '最小大小(MB',
episodeFormatRuleMinSizeHint: '小于此大小的文件将不参与匹配',
episodeFormatRuleGuideTitle: '提示',
episodeFormatRuleGuideContent:
'从上到下依次匹配,第一个匹配的则使用该规则。\n' +
'按文件名实际结构编写匹配规则:\n' +
'固定文本直接匹配,集数必须使用命名分组 (?&lt;ep&gt;...) 标记;\n' +
'其余不固定但需要保留位置的内容,可使用 (?&lt;a&gt;...)、(?&lt;b&gt;...) 等命名分组承接。\n' +
'如需按字面量匹配 [](). 等特殊字符,请进行转义;\n' +
'建议使用 ^ 和 $ 完整约束整条文件名,其中 $ 尤其重要,可避免只匹配前半段就被误判为命中。',
episodeFormatRuleAdd: '新增规则',
episodeFormatRuleEdit: '编辑规则',
episodeFormatRuleDeleteConfirm: '确定要删除该规则吗?',
episodeFormatRuleEmptyError: '名称和正则表达式不能为空',
episodeFormatRuleSaveSuccess: '集数定位规则保存成功',
episodeFormatRuleSaveFailed: '集数定位规则保存失败!',
},
search: {
basicSettings: '基础设置',
basicSettingsDesc: '设定数据源、规则组等基础信息',
recognizeSource: '识别数据源',
recognizeSourceDesc: '默认使用TMDB。豆瓣识别中文作品通常更友好,但有些国外作品信息不完整。',
themoviedb: 'TheMovieDb',
douban: '豆瓣',
filterRuleGroup: '过滤规则组',
filterRuleGroupDesc: '设置下载过程中使用的过滤规则组。',
downloadLabel: '下载任务标签',
downloadLabelDesc: '下载器中的下载标签,用于过滤查询。',
downloadLabelHint: '支持增加多个标签,英文逗号分隔',
downloadSite: '搜索站点',
downloadSiteDesc: '设置指定分类搜索的站点范围。',
movieSites: '电影站点',
tvSites: '电视剧站点',
animeSites: '动漫站点',
saveSites: '保存站点',
saveSuccess: '保存搜索设置成功',
saveFailed: '搜索设置保存失败!',
saveRuleFailed: '规则保存失败!',
movieCategory: '电影',
tvCategory: '电视剧',
animeCategory: '动漫',
downloadUser: '远程搜索自动下载用户',
downloadUserHint: '使用Telegram、企业微信等搜索时是否自动下载,使用逗号分割,设置为 all 代表所有用户自动择优下载',
multipleNameSearch: '多名称资源搜索',
multipleNameSearchHint: '使用多个名称(中文、英文等)搜索站点资源并合并搜索结果,会增加站点访问频率',
downloadSubtitle: '下载站点字幕',
downloadSubtitleHint: '检查站点资源是否有单独的字幕文件并自动下载',
mediaSource: '媒体搜索数据源',
mediaSourceHint: '搜索媒体信息时使用的数据源以及排序',
filterRuleGroupHint: '搜索媒体信息时按选定的过滤规则组对结果进行过滤',
downloadUserPlaceholder: '用户ID1,用户ID2',
downloadLabelPlaceholder: 'MOVIEPILOT',
},
directory: {
storage: '存储',
storageDesc: '设置本地或网盘存储',
directory: '目录',
mediaType: '媒体类型',
directoryDesc: '设置媒体文件整理目录结构,按先后顺序依次匹配。',
organizeAndScrap: '整理 & 刮削',
organizeAndScrapDesc: '设置重命名格式、刮削选项等。',
scrapSource: '刮削数据源',
scrapSourceHint: '刮削时的元数据来源',
mountedLocalDiskDeleteEmptyDirs: '挂载盘删除空目录',
mountedLocalDiskDeleteEmptyDirsHint: '关闭后,移动整理不会清理网络或 FUSE 挂载的本地源目录。',
movieRenameFormat: '电影重命名格式',
movieRenameFormatHint: '使用Jinja2语法,格式参考:https://jinja.palletsprojects.com/en/3.0.x/templates',
tvRenameFormat: '电视剧重命名格式',
tvRenameFormatHint: '使用Jinja2语法,格式参考:https://jinja.palletsprojects.com/en/3.0.x/templates',
musicRenameFormat: '音乐重命名格式',
musicRenameFormatHint: '使用Jinja2语法,可使用 artist、album、track、disc 等音乐字段',
saveSuccess: '存储设置保存成功',
saveFailed: '存储设置保存失败!',
directorySaveSuccess: '目录设置保存成功',
directorySaveFailed: '目录设置保存失败!',
organizeSaveSuccess: '整理选项设置保存成功',
organizeSaveFailed: '整理选项设置保存失败!',
duplicateDirectoryName: '存在重复目录名称!无法保存,请修改!',
defaultDirName: '目录',
storageSaveSuccess: '存储设置保存成功',
storageSaveFailed: '存储设置保存失败!',
},
category: {
title: '分类策略',
subtitle: '配置媒体自动分类规则,按类型、语言、地区等条件自动归类',
movie: '电影 (Movie)',
tv: '电视剧 (TV)',
name: '分类名称 (目录名)',
genre: '内容类型 (Genre)',
language: '语种 (Language)',
languagePlaceholder: '如: zh,cn,en (使用逗号分隔)',
country: '国家/地区 (Country)',
countryPlaceholder: '如: US,CN,JP',
year: '年份 (Year)',
yearPlaceholder: '如: 2023, 2020-2024',
addMovie: '添加电影分类',
addTv: '添加电视剧分类',
saveSuccess: '分类策略保存成功',
loadFailed: '加载分类配置失败',
saveFailed: '保存失败: {message}',
},
rule: {
customRules: '自定义规则',
customRulesDesc: '自定义优先级规则项',
priorityRuleGroups: '优先级规则组',
priorityRuleGroupsDesc: '预设优先级规则组,以便在搜索和订阅中使用。',
downloadRules: '下载规则',
downloadRulesDesc: '同时命中多个资源时择优下载。',
resourcePriority: '资源优先级',
sitePriority: '站点优先级',
siteUpload: '站点上传量',
resourceSeeder: '资源做种数',
emptyIdError: '存在空ID的规则,无法保存,请修改!',
emptyNameError: '存在空名字的规则,无法保存,请修改!',
duplicateIdError: '存在重复规则ID!无法保存,请修改!',
duplicateNameError: '存在重复规则名称!无法保存,请修改!',
customRuleSaveSuccess: '自定义规则保存成功',
customRuleSaveFailed: '自定义规则保存失败!',
emptyGroupNameError: '存在空名字的规则组!无法保存,请修改!',
duplicateGroupNameError: '存在重复规则组名称!无法保存,请修改!',
ruleGroupSaveSuccess: '优先级规则组保存成功',
ruleGroupSaveFailed: '优先级规则组保存失败!',
customRuleCopySuccess: '自定义规则已复制到剪贴板!',
customRuleCopyFailed: '自定义规则复制失败:可能是浏览器不支持或被用户阻止!',
customRuleCopyError: '自定义规则复制失败!',
ruleGroupCopySuccess: '优先级规则组已复制到剪贴板!',
ruleGroupCopyFailed: '优先级规则组复制失败:可能是浏览器不支持或被用户阻止!',
ruleGroupCopyError: '优先级规则组复制失败!',
currentPriorityRules: '当前使用下载优先规则',
currentPriorityRulesHint: '排在前面的优先级越高,未选择的项不纳入排序',
importCustomRules: '导入自定义规则',
importRuleGroups: '导入优先级规则组',
importFailed: '导入规则失败!无法解析输入的数据!',
importUnknownType: '导入规则失败!未知的数据类型!',
duplicateValue: '存在重名值',
importNoId: '导入失败!发现有规则不存在ID,可能属于优先级规则组!',
importHasId: '导入失败!发现有规则存在相同ID,可能属于自定义规则!',
},
scheduler: {
title: '定时作业',
subtitle: '包含系统内置服务以及插件提供的服务',
provider: '提供者',
taskName: '任务名称',
taskStatus: '任务状态',
nextRunTime: '下一次执行时间',
execute: '执行',
noService: '没有后台服务',
running: '正在运行',
stopped: '已停止',
waiting: '等待',
executeSuccess: '定时作业执行请求提交成功!',
mobileWaitingAfter: '{time}之后',
mobileNoNextRun: '暂无排期',
},
subscribe: {
basicSettings: '基础设置',
basicSettingsDesc: '设定订阅模式、周期等基础设置',
subscribeSites: '订阅站点',
subscribeSitesDesc: '只有选中的站点才会在订阅中使用。',
mode: '订阅模式',
modeHint: '自动:自动爬取站点首页,站点RSS:通过站点RSS链接订阅',
rssInterval: '站点RSS周期',
rssIntervalHint: '设置站点RSS运行周期,在订阅模式为`站点RSS`时生效',
filterRuleGroup: '订阅优先级规则组',
filterRuleGroupHint: '按选定的过滤规则组对订阅进行过滤',
bestVersionRuleGroup: '洗版优先级规则组',
bestVersionRuleGroupHint: '按选定的过滤规则组对洗版订阅进行过滤',
timedSearch: '订阅定时搜索',
timedSearchHint: '每隔指定时间全站搜索,以补全订阅可能漏掉的资源',
searchInterval: '订阅搜索时间间隔',
searchIntervalHint: '设置订阅搜索的时间间隔,仅在开启订阅定时搜索时生效',
checkLocalMedia: '检查文件系统资源',
checkLocalMediaHint: '扫描存储目录中是否已存在相应资源文件,以避免重复下载;不管是否开启都会检查媒体服务器',
modes: {
auto: '自动',
rss: '站点RSS',
},
intervals: {
min5: '5分钟',
min10: '10分钟',
min20: '20分钟',
min30: '半小时',
hour1: '1小时',
hour12: '12小时',
day1: '1天',
day3: '3天',
week1: '一周',
},
saveSuccess: '订阅站点保存成功',
saveFailed: '订阅站点保存失败!',
settingsSaveSuccess: '订阅基础设置保存成功',
settingsSaveFailed: '订阅基础设置保存失败!',
},
cache: {
title: '缓存管理',
subtitle: '管理多类系统缓存',
cacheType: '缓存类型',
torrentCache: '资源缓存',
recognitionCache: '识别缓存',
recognitionType: '类型',
recognitionTypeOptions: {
all: '全部',
media: '电影/电视剧',
music: '音乐',
},
totalCount: '总条数',
siteCount: '站点数',
recognized: '已识别',
sharedRecognized: '共享识别',
recognizedOnly: '仅已识别',
unrecognizedOnly: '仅未识别',
allStatuses: '全部状态',
filterByTitle: '按标题筛选',
filterBySite: '按站点筛选',
filterRecognitionCache: '搜索缓存键、标题或 {source} ID',
filterAllRecognitionCache: '搜索缓存键、标题、艺术家或识别 ID',
selectSite: '选择站点',
loadingMore: '加载中...',
refresh: '刷新缓存',
refreshList: '刷新列表',
listRefreshSuccess: '缓存列表已刷新',
deleteSelected: '删除选中',
clearAll: '清空缓存',
refreshSuccess: '缓存刷新完成',
refreshFailed: '刷新缓存失败',
clearSuccess: '缓存清理完成',
clearFailed: '清理缓存失败',
deleteSuccess: '缓存项删除成功',
deleteFailed: '删除缓存项失败',
deleteSelectedSuccess: '成功删除 {count} 个缓存项',
deleteSelectedFailed: '删除缓存项失败',
loadFailed: '加载缓存数据失败',
selectDeleteWarning: '请选择要删除的缓存项',
reidentify: '重新识别',
reidentifySuccess: '重新识别完成',
reidentifyFailed: '重新识别失败',
poster: '海报',
cacheKey: '识别请求',
tmdbId: 'TMDB ID',
musicbrainzId: 'MusicBrainz ID',
doubanId: '豆瓣 ID',
torrentTitle: '标题',
site: '站点',
size: '大小',
publishTime: '发布时间',
recognitionResult: '识别结果',
recognitionStatus: '识别状态',
actions: '操作',
unrecognized: '未识别',
noData: '暂无缓存数据',
noDataHint: '点击"刷新缓存"按钮获取最新的种子缓存',
noRecognitionCache: '暂无 {source} 识别缓存',
noRecognitionCacheHint: '完成媒体识别后,缓存记录会显示在这里',
reidentifyDialog: {
title: '重新识别',
torrentInfo: '种子信息',
tmdbId: 'TMDB ID',
tmdbIdHint: '可选,手动指定TMDB ID进行识别',
doubanId: '豆瓣 ID',
doubanIdHint: '可选,手动指定豆瓣ID进行识别',
bangumiId: 'Bangumi ID',
anilistId: 'AniList ID',
mediaSource: '识别数据源',
mediaSourceHint: '仅用于本次重新识别,不修改系统默认数据源',
mediaId: '媒体 ID',
mediaIdHint: '可选,填写所选数据源中的原生媒体 ID;留空时按标题识别',
autoHint: '如果不指定ID,将自动重新识别该种子',
cancel: '取消',
confirm: '重新识别',
},
mediaType: {
movie: '电影',
tv: '电视剧',
music: '音乐',
unknown: '未知',
},
musicType: {
recording: '单曲',
album: '专辑',
artist: '艺术家',
},
clearConfirm: '确认清空所有缓存吗?',
recognitionClearConfirm: '确认清空全部 {source} 识别缓存吗?',
recognitionClearAllConfirm: '确认清空全部识别缓存(影视与音乐)吗?',
tmdbClearConfirm: '确认清空全部 TheMovieDb 识别缓存吗?',
recognitionSource: {
themoviedb: 'TheMovieDb',
douban: '豆瓣',
bangumi: 'Bangumi',
anilist: 'AniList',
musicbrainz: 'MusicBrainz',
theaudiodb: 'TheAudioDB',
doubanmusic: '豆瓣音乐',
},
},
},
dialog: {
progress: {
processing: '处理中',
},
subscribeSeason: {
title: '订阅 - {title}',
selectMode: '选择订阅方式',
selectGroup: '选择剧集组',
defaultGroup: '默认',
seasonCount: '{count} 季',
episodeCount: '{count} 集',
seasonNumber: '第 {number} 季',
airDate: '首播于 {date}',
voteAverage: '{score}',
status: {
exists: '已入库',
partial: '部分缺失',
missing: '缺失',
},
submit: '提交订阅',
selectSeasons: '请选择订阅季',
},
userAddEdit: {
add: '添加用户',
edit: '编辑用户',
username: '用户名',
usernameRequired: '用户名不能为空',
password: '密码',
passwordMinLength: '密码长度不能少于6位',
confirmPassword: '确认密码',
confirmPasswordRequired: '请确认密码',
passwordMismatch: '两次输入的密码不一致',
email: '邮箱',
nickname: '昵称',
status: '状态',
active: '激活',
inactive: '已停用',
superUser: '超级用户',
otp: '启用二次验证',
avatar: '头像',
uploadAvatar: '上传头像',
resetDefaultAvatar: '重置默认头像',
restoreCurrentAvatar: '还原当前头像',
notifications: '通知',
wechat: '企业微信ID',
wechatClawBot: '微信 ClawBot ID',
telegram: 'Telegram ID',
slack: 'Slack ID',
discord: 'Discord ID',
vocechat: 'VoceChat ID',
synologyChat: 'SynologyChat ID',
webPush: 'WebPush',
creatingUser: '正在创建【{name}】用户,请稍后',
updatingUser: '正在更新【{name}】用户,请稍后',
usernameExists: '用户名已存在',
userCreated: '用户【{name}】创建成功',
userCreateFailed: '创建用户失败:{message}',
userUpdateSuccess: '用户【{name}】更新成功',
userUpdateFailed: '更新用户失败:{message}',
userDeleteSuccess: '用户【{name}】删除成功',
userDeleteFailed: '删除用户失败:{message}',
invalidFile: '上传的文件不符合要求,请重新选择头像',
fileSizeLimit: '文件大小不得大于800KB',
avatarUploadSuccess: '新头像上传成功,待保存后生效!',
resetAvatarSuccess: '已重置为默认头像,待保存后生效!',
restoreAvatarSuccess: '已还原当前使用头像!',
deleteConfirm: '确认删除用户【{name}】吗?',
saveUserInfo: '保存用户信息',
cannotDeleteCurrentUser: '不能删除当前登录用户',
deleteUser: '删除用户',
permissions: {
title: '权限设置',
presetNormal: '普通用户',
presetAdmin: '管理员',
discovery: '发现',
discoveryDesc: '访问推荐和探索功能',
search: '搜索',
searchDesc: '搜索站点资源和添加下载',
subscribe: '订阅',
subscribeDesc: '管理电影和电视剧订阅',
manage: '管理',
manageDesc: '访问下载管理和站点管理等功能',
categoryTitle: '权限分类',
categoryHint: '先启用权限分类,再选择该分类下允许访问的具体功能',
summary: '已启用 {categories} 类 / {features} 项功能',
featureTitleSuffix: '功能',
featureHint: '取消勾选后,该功能会从导航、应用中心和路由访问中隐藏',
disabledCategoryHint: '当前分类未启用,功能项将随分类一起不可访问',
selectAll: '全选',
clear: '清空',
default: '默认',
featureScope: '功能范围',
features: {
recommend: '推荐',
explore: '探索',
resourceSearch: '资源搜索',
movieSubscribe: '电影订阅',
tvSubscribe: '电视剧订阅',
musicSubscribe: '音乐订阅',
calendar: '订阅日历',
subscribeShare: '订阅分享',
workflow: '工作流',
downloading: '下载管理',
history: '媒体整理',
fileManager: '文件管理',
site: '站点管理',
},
featureDescriptions: {
recommend: '推荐页与榜单内容入口',
explore: '探索页、媒体发现与详情浏览',
resourceSearch: '站点资源搜索与资源结果页',
movieSubscribe: '电影订阅列表和热门电影',
tvSubscribe: '电视剧订阅列表、热门剧集和分享标签',
musicSubscribe: '音乐订阅列表与自动资源搜索',
calendar: '订阅排期与日历视图',
subscribeShare: '订阅分享列表访问',
workflow: '工作流列表与分享入口',
downloading: '当前下载任务管理',
history: '整理历史与入库记录',
fileManager: '文件浏览和文件管理',
site: '站点列表、站点状态和站点维护',
},
},
},
searchBar: {
search: '搜索',
searchPlaceholder: '搜索电影、剧集以及更多...',
recentSearches: '最近搜索',
noRecentSearches: '没有最近搜索记录',
functions: '功能',
noFunctionsFound: '没有匹配的功能',
plugins: '插件',
noPluginsFound: '没有匹配的插件',
subscriptions: '订阅',
noSubscriptionsFound: '没有匹配的订阅',
searchSites: '搜索站点',
selectSites: '选择站点',
collections: '系列合集',
collectionSearch: '相关的系列作品',
actorSearch: '相关的演员、导演等',
historySearch: '相关的历史记录',
subscribeShareSearch: '相关的订阅分享',
siteResources: '站点资源',
searchInSites: '在站点中搜索种子资源',
searchMusicInSites: '在站点中搜索音乐资源',
searchSubtitlesInSites: '在站点中搜索字幕资源',
relatedResources: '相关资源',
relatedMusicResources: '相关音乐资源',
relatedSubtitles: '相关字幕',
searchTip: '可搜索电影、电视剧、演员、资源等',
emptySearchHint: '输入关键字开始搜索',
escClose: '关闭',
openSearch: '打开搜索',
mediaSourceFor: '{type}搜索数据源',
searchWithSource: '使用 {source} 搜索',
},
searchSite: {
selectSites: '选择站点',
siteSearch: '站点搜索',
searchAllSites: '已选择 {selected}/{total} 个站点',
selectAll: '选择全部',
deselectAll: '取消全选',
confirm: '确认',
cancel: '取消',
},
importCode: {
import: '导入',
title: '导入代码',
},
addDownload: {
confirmDownload: '确认下载',
downloader: '下载器(默认)',
saveDirectory: '保存目录(自动)',
defaultPlaceholder: '留空默认',
autoPlaceholder: '留空自动匹配',
downloading: '下载中...',
startDownload: '开始下载',
downloadSuccess: '{site} {title} 下载成功!',
downloadFailed: '{site} {title} 下载失败:{message}',
unrecognizedTitle: '无法识别媒体信息',
unrecognizedContent: '无法识别此资源的媒体信息,是否仍要下载?',
continueDownload: '继续下载',
showAdvancedOptions: '显示高级选项',
hideAdvancedOptions: '隐藏高级选项',
},
addSubtitleDownload: {
confirmDownload: '确认下载字幕',
saveDirectory: '保存目录(自动)',
autoPlaceholder: '留空自动匹配',
downloading: '下载中...',
startDownload: '下载字幕',
downloaded: '已下载',
downloadSuccess: '{site} {title} 字幕下载成功!',
downloadFailed: '{site} {title} 字幕下载失败:{message}',
},
subscribeShare: {
shareSubscription: '分享订阅',
season: '第 {number} 季',
title: '标题',
description: '说明',
descriptionHint: '填写关于该订阅的说明,订阅中的搜索词、识别词等将会默认包含在分享中',
shareUser: '分享用户',
shareUserHint: '分享人的昵称',
confirmShare: '确认分享',
shareSuccess: '{name} 分享成功!',
shareFailed: '{name} 分享失败:{message}',
},
workflowShare: {
shareWorkflow: '分享工作流',
title: '标题',
description: '说明',
descriptionHint: '填写关于该工作流的说明,工作流的动作和流程将会默认包含在分享中',
shareUser: '分享用户',
shareUserHint: '分享人的昵称',
confirmShare: '确认分享',
shareSuccess: '{name} 分享成功!',
shareFailed: '{name} 分享失败:{message}',
securityWarning: '安全提醒',
securityWarningMessage: '分享前请确保工作流没有敏感信息,比如RSS链接中的PassKey等,避免产生信息泄露。',
},
u115Auth: {
loginTitle: '115网盘授权',
openAuthWindow: '打开授权窗口',
authorizing: '请在新窗口中完成授权...',
authSuccess: '授权成功!',
authFailed: '授权失败或已过期',
authCanceled: '授权已取消,请重试',
urlEmpty: '授权URL为空',
urlFetchFailed: '获取授权URL失败',
popupBlocked: '无法打开授权窗口,请检查浏览器弹窗设置',
complete: '完成',
reset: '重置',
},
aliyunAuth: {
loginTitle: '阿里云盘登录',
scanQrCode: '请用阿里云盘 App 扫码',
scanned: '已扫码',
complete: '完成',
reset: '重置',
},
rcloneConfig: {
title: 'RClone配置',
filePath: 'rclone配置文件路径',
fileContent: 'rclone配置文件内容',
defaultContent: '# 请在此处填写rclone配置文件内容 \n# 请参考 https://rclone.org/docs/ \n# 存储节点名必须为:MP',
complete: '完成',
reset: '重置',
},
alistConfig: {
title: 'OpenList配置',
serverUrl: 'OpenList服务地址',
username: '用户名',
password: '密码',
tokenUrl: '获取Token地址',
loginType: '登录方式',
loginTypeOptions: {
guest: '访客',
username: '用户名密码',
token: '令牌',
},
complete: '完成',
reset: '重置',
},
alistgoConfig: {
title: 'AList配置',
serverUrl: 'AList服务地址',
},
smbConfig: {
title: 'SMB网络共享配置',
host: 'SMB服务器地址',
hostHint: 'SMB服务器的IP地址或主机名',
share: '共享名称',
shareHint: '要连接的共享文件夹名称',
username: '用户名',
usernameHint: 'SMB登录用户名',
password: '密码',
passwordHint: 'SMB登录密码',
domain: '域名',
domainHint: 'SMB域名,如WORKGROUP或域控制器名称',
complete: '完成',
reset: '重置',
},
workflowAddEdit: {
addTitle: '添加工作流',
editTitle: '编辑工作流',
name: '名称',
namePlaceholder: '工作流名称',
desc: '描述',
descPlaceholder: '工作流描述',
maxWorkers: '最大并行数',
enabled: '启用',
triggerType: '触发类型',
triggerTypeTimer: '定时触发',
triggerTypeEvent: '事件触发',
triggerTypeManual: '手动触发',
schedule: '定时执行',
cronExpr: 'Cron表达式',
cronExprDesc: '工作流定时执行的cron表达式',
eventType: '事件类型',
eventTypePlaceholder: '请选择事件类型',
nameRequired: '请填写完整信息!',
triggerRequired: '请选择触发类型!',
timerRequired: '请填写定时表达式!',
eventTypeRequired: '请选择事件类型!',
addSuccess: '创建任务成功,请编辑流程!',
addFailed: '创建任务失败:{message}',
editSuccess: '修改任务成功!',
editFailed: '修改任务失败:{message}',
cancel: '取消',
confirm: '确认',
},
workflowActions: {
title: '编辑流程',
noActionsMessage: '工作流没有动作,请添加动作',
addAction: '添加动作',
editAction: '编辑动作',
deleteAction: '删除动作',
moveUp: '上移',
moveDown: '下移',
nameLabel: '动作名称',
nameRequired: '动作名称不能为空',
typeLabel: '动作类型',
typeRequired: '动作类型不能为空',
paramsLabel: '动作参数',
outputLabel: '动作输出',
saveAction: '保存动作',
cancelAction: '取消',
confirmDeleteTitle: '确认删除动作',
confirmDeleteMessage: '确定要删除此动作吗?此操作无法撤销。',
yesDelete: '是的,删除',
noCancel: '取消',
invalidConnection: '非法连接:不能连接自身或同类型端口!',
componentNotFound: '组件 {component} 未找到',
componentAdded: '已添加组件到画布',
saveSuccess: '保存任务流程成功!',
saveFailed: '保存任务流程失败:{message}',
importTitle: '导入任务流程',
importSuccess: '导入成功!',
importFailed: '导入失败!',
codeCopied: '任务流程代码已复制到剪贴板!',
edgeSettingsTitle: '流程条件',
edgeConditionLabel: '流转条件',
conditionAlways: '无条件流转',
conditionHasOutput: '有{field}输出',
conditionNoOutput: '没有{field}输出',
conditionHasValue: '{field}有值',
conditionCustom: '自定义条件(保留现有)',
edgeNoConditionFields: '上一节点没有可用于条件判断的输出',
edgeConditionalLabel: '条件',
edgeSave: '保存',
edgeCancel: '取消',
edgeSaveSuccess: '流程条件已保存',
},
siteCookieUpdate: {
title: '更新站点Cookie & UA',
processing: '请稍候...',
updating: '正在更新 {site} Cookie & UA...',
success: '{site} 更新Cookie & UA成功!',
failed: '{site} 更新失败:{message}',
requestFailed: '请求失败,请稍后重试',
updateButton: '开始更新',
},
siteAddEdit: {
addTitle: '添加站点',
editTitle: '编辑站点',
nameLabel: '站点名称',
urlLabel: '站点URL',
iconLabel: '站点图标',
uploadIcon: '上传图标',
cookie: 'Cookie',
rssUrl: 'RSS链接',
enableLabel: '启用',
pubEnableLabel: '资源公开',
priorityLabel: '优先级',
signInLabel: '签到',
proxies: '代理',
userInfo: '用户信息',
cancel: '取消',
confirm: '保存',
},
pluginConfig: {
title: '插件配置',
save: '保存',
close: '关闭',
viewData: '查看数据',
saving: '正在保存 {name} 配置...',
saveSuccess: '插件 {name} 配置已保存',
saveFailed: '插件 {name} 配置保存失败:{message}',
},
pluginData: {
title: '插件数据',
save: '保存',
close: '关闭',
},
pluginMarketSetting: {
title: '插件市场设置',
repoUrl: '插件仓库地址',
repoPlaceholder: '格式:https://github.com/jxxghp/MoviePilot-Plugins/,https://github.com/xxxx/xxxxxx/',
repoHint: '多个地址可使用换行或英文逗号分隔',
urlPlaceholder: '输入插件仓库地址',
textPlaceholder: 'https://github.com/jxxghp/MoviePilot-Plugins/\nhttps://github.com/xxxx/xxxxxx/',
repoCountHint: '当前已维护 {count} 个插件仓库地址',
listMode: '列表维护',
textMode: '文本维护',
textHint: '直接粘贴仓库地址串,一行一个或使用英文逗号分隔。',
addRepo: '添加仓库',
noRepos: '暂无插件仓库地址',
invalidUrl: '请输入有效的URL地址',
duplicateUrl: '该地址已存在',
invalidText: '文本中有 {count} 个无效地址,请修正后保存。',
invalidTextIgnored: '已忽略 {count} 个无效地址',
duplicateTextIgnored: '重复地址会在保存时自动去重。',
syncSources: '同步插件源',
syncSuccess: '已同步插件源,新增 {added} 个,共 {total} 个',
syncFailed: '同步插件源失败:{message}',
close: '关闭',
save: '保存',
saveSuccess: '插件仓库保存成功',
saveFailed: '插件仓库保存失败:{message}',
},
userAuth: {
title: '用户认证',
codeLabel: '认证码',
codePlaceholder: '请输入认证码',
authBtn: '开始认证',
closeBtn: '关闭',
selectSite: '选择认证站点',
selectSiteRequired: '请选择认证站点!',
siteConfigNotExist: '站点配置不存在!',
fieldRequired: '请输入{name}',
authSuccess: '用户认证成功,请重新登录!',
authFailed: '认证失败:{message}',
},
transferQueue: {
title: '整理队列',
queueSummary: '{media} 部媒体 · {tasks} 个文件',
mediaList: '媒体队列',
mediaProgressCount: '{completed} / {total} 个文件',
overallCount: '{completed} / {total} 个文件',
mediaFileSummary: '{count} 个文件 · 共 {size}',
fileName: '文件名',
operation: '操作',
cancelTask: '取消任务',
name: '名称',
type: '类型',
state: '状态',
progress: '进度',
startTime: '开始时间',
speedTitle: '速度',
pathTitle: '路径',
sizeTitle: '大小',
waitingState: '等待中',
runningState: '正在整理',
finishedState: '完成',
failedState: '失败',
cancelledState: '已取消',
noTasks: '没有正在整理的任务',
noTasksHint: '开始整理后,这里会显示任务进度和状态。',
processing: '请稍候 ...',
stopAll: '全部停止',
startAll: '全部开始',
refresh: '刷新',
close: '关闭',
processingFile: '正在整理',
overallProgress: '整体进度',
currentFileProgress: '当前文件进度',
processingStatus: '整理中',
},
reorganize: {
title: '整理',
sourceTitle: '源文件',
targetTitle: '目标文件',
processingTitle: '处理中',
confirmTitle: '确认',
selectFile: '选择文件',
selectTarget: '选择目标',
selectMediaType: '选择媒体类型',
movie: '电影',
tv: '电视剧',
selectTmdbId: '选择TMDB ID',
selectMediaInfo: '选择媒体信息',
selectTargetPath: '选择目标路径',
selectTargetDir: '选择目标目录',
selectFileName: '选择文件名',
confirmMoving: '请确认移动!',
sourceLabel: '源文件:',
targetLabel: '目标目录:',
filenameLabel: '文件名:',
close: '关闭',
next: '下一步',
previous: '上一步',
confirm: '确认',
manualTitle: '手动整理',
multipleItemsTitle: '共 {count} 项',
singleItemTitle: '{path}',
targetStorage: '目的存储',
targetStorageHint: '整理目的存储,选择自动时由后端匹配',
transferType: '整理方式',
transferTypeHint: '文件操作整理方式,选择自动时使用后端匹配结果或默认规则',
targetPath: '目的路径',
targetPathHint: '整理目的路径,选择自动将由后端按源路径匹配',
targetPathPlaceholder: '选择自动或输入路径',
mediaType: '类型',
mediaTypeHint: '文件的媒体类型',
musicEntity: '音乐实体',
mediaSource: '数据源',
mediaSourceHint: '默认使用后台识别设置,可为本次整理与刮削单独切换',
tmdbId: 'TheMovieDb编号',
doubanId: '豆瓣编号',
bangumiId: 'Bangumi编号',
anilistId: 'AniList编号',
mediaId: '媒体 ID',
mediaIdHint: '按名称查询媒体编号,留空自动识别',
mediaIdPlaceholder: '留空自动识别',
mediaIdInvalid: '媒体ID格式无效',
mediaSearchInput: '搜索媒体',
mediaSearchPlaceholder: '输入媒体名称',
episodeGroup: '剧集组',
episodeGroupHint: '输入 TMDB 编号后自动查询剧集组,也可手动填写剧集组编号',
episodeGroupPlaceholder: '先输入 TMDB 编号',
defaultEpisodeGroup: '不指定剧集组',
defaultEpisodeGroupHint: '使用 TMDB 默认季集排序',
seasonCount: '{count} 季',
episodeCount: '{count} 集',
season: '季',
seasonHint: '第几季',
episodeDetail: '集',
episodeDetailHint: '集数或范围,如1或1,2',
episodeDetailPlaceholder: '起始集,终止集',
episodeFormat: '集数定位',
episodeFormatHint: '使用{ep}定位文件名中的集数部分以辅助识别',
episodeFormatPlaceholder: '使用{ep}定位集数',
episodeFormatRecommendAction: '智能生成',
episodeFormatRecommendLoading: '生成中...',
episodeFormatRecommendSelectFile: '请先选择单个文件、单个目录,或多个文件',
episodeFormatRecommendInvalidSelection: '当前选择不满足智能生成条件',
episodeFormatRecommendNeedWords: '手动整理集数定位规则为空,请先前往词表填写',
episodeFormatRecommendSuccess: '已生成集数定位模板',
episodeFormatRecommendOverwriteSuccess: '已用智能生成结果覆盖当前集数定位',
episodeFormatRecommendFailed: '集数定位生成失败,请稍后重试',
episodeFormatRecommendRule: '命中规则:{rule}',
episodeFormatRecommendSample: '样本文件:{file}',
episodeFormatRuleDetails: '手动整理集数定位规则',
episodeFormatFinal: '最终集数定位:{format}',
episodeFormatManualInput: '手动输入集数定位',
episodeFormatRulePattern: '规则正则:{pattern}',
episodeOffset: '集数偏移',
episodeOffsetHint: '集数偏移运算,如-10或EP*2',
episodeOffsetPlaceholder: '如-10',
episodePart: '指定Part',
episodePartHint: '指定Part,如part1',
episodePartPlaceholder: '如part1',
minFileSize: '最小文件大小(MB',
minFileSizeHint: '只整理大于最小文件大小的文件',
typeFolderOption: '按类型分类',
typeFolderHint: '整理时目的路径下按媒体类型添加子目录',
categoryFolderOption: '按类别分类',
categoryFolderHint: '整理时在目的路径下按媒体类别添加子目录',
scrapeOption: '刮削元数据',
scrapeHint: '整理完成后自动刮削元数据',
fromHistoryOption: '复用历史识别信息',
fromHistoryHint: '使用历史整理记录中已识别的媒体信息',
previewTitle: '整理结果预览',
previewSubtitle: '点击“预览”后可查看本次整理的预计入库结果,不会实际改动文件',
previewResult: '预览',
previewLoading: '正在生成预览结果...',
previewRequestFailed: '预览请求失败',
transferRequestFailed: '整理请求失败',
previewTotal: '总数 {count}',
previewSuccess: '成功 {count}',
previewFailed: '失败 {count}',
previewMediaInfo: '媒体信息',
previewMediaName: '名称',
previewMediaType: '类型',
previewSeasonInfo: '季信息',
previewSeasonLabel: '季',
previewEpisodeCount: '总集数',
customWordsApplied: '识别词应用详情',
customWordsSameRules: '{count} 个文件应用相同识别词',
previewAfterColumn: '整理后',
previewBeforeColumn: '整理前',
previewFileNameColumn: '文件名',
previewEmptyTitle: '尚未生成预览',
previewEmptyDescription: '点击“预览”按钮后,在这里查看整理结果预览。',
noPreviewData: '暂无预览结果',
noFailedPreviewData: '当前没有失败项',
copySuccess: '路径已复制',
copyFailed: '复制失败',
addToQueue: '加入整理队列',
reorganizeNow: '立即整理',
reorganizeAgain: '重新整理',
historyFound: '检测到 {count} 条成功整理记录。重新整理会清理旧目标和历史记录;移动模式会保留当前源文件。',
auto: '自动',
processing: '正在处理 ...',
successMessage: '文件 {name} 已加入整理队列!',
},
subscribeMode: {
title: '选择订阅方式',
normal: '普通订阅',
bestVersion: '洗版',
bestVersionEpisode: '分集洗版',
bestVersionFull: '全集洗版',
},
subscribeEdit: {
titleDefault: '默认订阅规则',
titleEdit: '编辑订阅',
seasonFormat: '第 {number} 季',
tabs: {
basic: '基础',
advance: '进阶',
},
searchKeyword: '搜索关键词',
searchKeywordHint: '指定搜索站点时使用的关键词',
totalEpisode: '总集数',
totalEpisodeHint: '剧集总集数',
startEpisode: '开始集数',
startEpisodeHint: '开始订阅集数',
quality: '质量',
qualityHint: '订阅资源质量',
resolution: '分辨率',
resolutionHint: '订阅资源分辨率',
effect: '特效',
effectHint: '订阅资源特效',
audioQuality: '音质等级',
audioQualityHint: '按 Hi-Res、无损或有损等级筛选',
audioFormat: '音频格式',
audioFormatHint: '按 FLAC、ALAC、DSD、MP3 等格式筛选',
minBitrate: '最低码率',
minBitrateHint: '资源标题必须声明不低于该码率',
minBitDepth: '最低位深',
minBitDepthHint: '资源标题必须声明不低于该位深',
minSampleRate: '最低采样率',
minSampleRateHint: '资源标题必须声明不低于该采样率',
subscribeSites: '订阅站点',
subscribeSitesHint: '订阅的站点范围,不选使用系统设置',
downloader: '下载器',
downloaderHint: '指定该订阅使用的下载器',
savePath: '保存路径',
savePathHint: '指定该订阅的下载保存路径,留空自动使用设定的下载目录',
bestVersion: '洗版',
bestVersionHint: '根据洗版优先级进行洗版订阅',
musicBestVersionHint: '持续下载音质分数更高的版本,达到顶级 Hi-Res 后完成',
bestVersionFull: '全集洗版',
bestVersionFullHint: '只下载覆盖全集的整包资源,不按单集拆包下载',
searchImdbid: '使用 ImdbID 搜索',
searchImdbidHint: '开启后使用 ImdbID 精确搜索资源',
showEditDialog: '订阅时编辑更多规则',
showEditDialogHint: '添加订阅时显示此编辑订阅对话框',
include: '包含(关键字、正则式)',
includeHint: '包含规则,支持正则表达式',
exclude: '排除(关键字、正则式)',
excludeHint: '排除规则,支持正则表达式',
filterGroups: '优先级规则组',
filterGroupsHint: '按选定的过滤规则组对订阅进行过滤',
episodeGroup: '指定剧集组',
episodeGroupHint: '按特定剧集组识别和刮削',
season: '指定季',
seasonHint: '指定任意季订阅',
mediaCategory: '自定义类别',
mediaCategoryHint: '指定类别名称,留空自动识别',
customWords: '自定义识别词',
customWordsHint: '只对该订阅使用的识别词',
customWordsPlaceholder:
'屏蔽词\n被替换词 => 替换词\n前定位词 <> 后定位词 >> 集偏移量(EP\n被替换词 => 替换词 && 前定位词 <> 后定位词 >> 集偏移量(EP)\n其中替换词支持格式:&#123;[tmdbid/doubanid/bangumiid/anilistid=xxx;type=movie/tv;g=xxx;s=xxx;e=xxx]&#125; 直接指定媒体数据源ID识别,其中g为剧集组编号,s、e为季数和集数(均可选)',
cancelSubscribe: '取消订阅',
save: '保存',
cancelSubscribeConfirm: '是否确认取消订阅?',
updateSuccess: '{name} 更新成功!',
updateFailed: '{name} 更新失败:{message}',
defaultSaveSuccess: '{type}订阅默认规则保存成功',
defaultSaveFailed: '{type}订阅默认规则保存失败:{message}',
},
subscribeFiles: {
title: '订阅文件',
noFilesMessage: '暂无文件',
close: '关闭',
downloadTab: '下载文件',
libraryTab: '媒体库文件',
episodeColumn: '集',
torrentColumn: '种子',
fileColumn: '文件',
itemsPerPage: '每页条数',
pageText: '{0}-{1} 共 {2} 条',
loadingText: '加载中...',
noData: '没有数据',
season: '第 {number} 季',
movieEpisode: '电影',
totalEpisodes: '总集数',
downloadedCount: '下载',
libraryCount: '入库',
missingCount: '缺失 {count}',
episodeList: '集数',
episodeTotal: '{count} 集',
filePath: '文件路径',
copyPath: '复制路径',
copySuccess: '路径已复制',
copyFailed: '复制失败',
noPath: '暂无路径',
noOverview: '暂无简介',
noTabFiles: '暂无{tab}',
statusInLibrary: '已入库',
statusDownloaded: '已下载',
statusMissing: '待入库',
subscribeRunning: '订阅中',
subscribePending: '待处理',
subscribePaused: '已暂停',
subscribeNew: '新订阅',
unknownTorrent: '未知种子',
downloader: '下载器',
},
subscribeHistory: {
title: '{type}订阅历史',
resubscribe: '重新订阅',
resubscribeMovie: '正在重新订阅 {name}...',
resubscribeTv: '正在重新订阅 {name} 第 {season} 季...',
resubscribeMusic: '正在重新订阅 {name}...',
season: '第 {season} 季',
noData: '没有已完成的订阅',
noDataHint: '完成的订阅会显示在这里',
},
downloadHistory: {
title: '下载历史',
actions: '下载历史操作',
unknownTitle: '未知媒体',
noData: '没有下载历史',
noDataHint: '已添加的下载任务会显示在这里',
loadFailed: '下载历史加载失败',
deleteFailed: '下载历史删除失败',
},
siteUserData: {
title: '站点用户数据',
updateTime: '更新时间',
username: '用户名',
uploadTitle: '上传量',
uploadTotal: '总上传量',
downloadTitle: '下载量',
downloadTotal: '总下载量',
seedingTitle: '做种数',
seedingCount: '总做种数',
seedingSize: '总做种体积',
userLevel: '用户等级',
msgCount: '未读消息',
inviteCount: '邀请数',
bonus: '积分',
ratio: '分享率',
joinTime: '加入时间',
trafficHistory: '历史流量',
seedingDistribution: '做种分布',
volumeTitle: '体积',
countTitle: '数量:',
noData: '无',
refreshing: '正在刷新站点数据...',
loadFailed: '加载站点数据失败',
refreshFailed: '刷新站点数据失败',
close: '关闭',
},
siteResource: {
browseTitle: '浏览 - {name}',
searchKeyword: '搜索关键字',
resourceCategory: '资源分类',
noCategory: '该站点未配置资源分类',
search: '搜索',
itemsPerPage: '每页条数',
noData: '没有数据',
loading: '加载中...',
loadFailed: '资源加载失败,请重试',
titleColumn: '标题',
timeColumn: '时间',
sizeColumn: '大小',
seedersColumn: '做种',
peersColumn: '下载',
viewDetails: '查看详情',
downloadTorrent: '下载种子文件',
pageText: '{0}-{1} 共 {2} 条',
},
forkSubscribe: {
title: '复制订阅',
selectSubscriber: '选择复制目标',
overwriteExisting: '覆盖现有订阅',
overwriteExistingHint: '目标用户已存在该订阅时,是否覆盖',
confirm: '确认',
cancel: '取消',
},
},
file: {
newFolder: '新建文件夹',
autoRecognizeName: '自动识别名称',
createFolder: '创建文件夹',
fileName: '文件名',
fileSize: '文件大小',
fileType: '文件类型',
lastModified: '修改时间',
actions: '操作',
rename: '重命名',
delete: '删除',
confirmFileDelete: '确认删除',
upload: '上传',
download: '下载',
preview: '预览',
selectAll: '全选',
deselectAll: '取消全选',
moveUp: '返回上一级',
sortByName: '按名称排序',
sortByTime: '按时间排序',
currentName: '当前名称',
newName: '新名称',
includeSubfolders: '自动重命名目录内所有媒体文件',
emptyFolder: '空文件夹',
noFilesInFolder: '该文件夹内没有文件',
autoRecognize: '自动识别名称',
directoryTree: '目录树',
rootDirectory: '根目录',
noDirectories: '没有可用的目录',
directory: '目录',
file: '文件',
size: '大小',
modifyTime: '修改时间',
noFiles: '没有目录或文件',
emptyDirectory: '空目录',
confirmDelete: '是否确认删除{type} {name}',
confirmBatchDelete: '是否确认删除选中的 {count} 个项目?',
deleting: '正在删除 {name}...',
recognize: '识别',
recognizing: '正在识别 {path}...',
recognizeFailed: '{path} 识别失败!',
scrape: '刮削',
manualScrape: '手动刮削',
scraping: '正在刮削 {path}...',
scrapeCompleted: '{path} 削刮完成!',
confirmScrape: '是否确认刮削 {path}',
confirmBatchScrape: '是否确认刮削选中的 {count} 项?',
renaming: '正在重命名 {name}...',
renamingAll: '正在重命名 {path} 及目录内所有文件...',
close: '关闭',
loadingDirectoryStructure: '加载目录结构...',
reorganize: '整理',
filterPlaceholder: '搜索(支持 * ? 通配符)',
},
person: {
alias: '别名:',
credits: '参演作品',
biography: '个人简介',
birthday: '出生日期',
placeOfBirth: '出生地',
},
error: {
title: '出错啦!',
networkError: '无法获取到媒体信息,请检查网络连接。',
serverError: '服务器错误,请稍后重试。',
notFound: '找不到请求的资源。',
},
plugin: {
sort: {
popular: '热门',
rating: '评分',
name: '插件名称',
author: '作者',
repository: '插件仓库',
latest: '最新发布',
},
installingPlugin: '正在安装插件...',
installing: '正在安装 {name} v{version} ...',
installSuccess: '插件 {name} 安装成功!',
sourceRestoring: '正在恢复插件文件',
dependencyInstalling: '正在安装插件依赖',
runtimeLoading: '正在加载插件',
sourceMissing: '插件文件缺失',
dependencyPending: '插件依赖未就绪',
runtimeReady: '插件等待加载',
blockedByPolicy: '未通过用户认证,请查看日志',
runtimeLoadFailed: '插件加载失败,请查看日志',
installFailed: '插件 {name} 安装失败:{message}',
filterPlugins: '过滤插件',
name: '名称',
hasNewVersion: '有新版本',
running: '运行中',
author: '作者',
label: '标签',
repository: '仓库',
sortTitle: '排序',
filter: '过滤:{name}',
noMatchingContent: '没有找到匹配的内容',
pleaseInstallFromMarket: '请从插件市场安装插件',
allPluginsInstalled: '所有插件已安装',
searchPlugins: '搜索插件',
searchPlaceholder: '按插件名称或描述搜索',
uninstalling: '正在卸载 {name} ...',
uninstallSuccess: '插件 {name} 卸载成功!',
uninstallFailed: '插件 {name} 卸载失败:{message}',
updating: '正在更新 {name} ...',
updateSuccess: '插件 {name} 更新成功!',
updateFailed: '插件 {name} 更新失败:{message}',
noPlugins: '没有安装插件',
installed: '已安装',
notInstalled: '未安装',
hasUpdate: '有更新',
configuring: '配置',
enable: '启用',
disable: '禁用',
settings: '设置',
about: '关于',
projectHome: '项目主页',
updateHistory: '更新说明',
versionHistory: '版本历史',
releaseVersionsLoadFailed: 'Release 版本加载失败',
latestVersion: '最新',
currentVersion: '当前',
installReleaseVersion: '安装',
confirmInstallOldRelease:
'是否确认安装 {name} v{version}?该版本缺少主程序兼容元数据,安装后可能无法加载或运行异常。',
local: '本地',
systemVersion: '系统版本',
incompatibleSystemVersion: '当前 MoviePilot 版本不满足插件要求,无法安装',
installToLocal: '安装到本地',
totalDownloads: '共 {count} 次下载',
rating: '插件评分',
ratingSummary: '{rating} 分,共 {count} 人评分',
yourRating: '我的评分',
submitRating: '提交评分',
ratingSuccess: '已提交对插件 {name} 的评分',
ratingFailed: '评分提交失败:{message}',
viewData: '查看数据',
update: '更新',
reset: '重置',
uninstall: '卸载',
viewLogs: '查看日志',
authorHome: '作者主页',
confirmUninstall: '是否确认卸载插件 {name}',
confirmReset: '此操作将恢复插件 {name} 的默认设置,并清除所有相关数据,确定要继续吗?',
resetSuccess: '插件 {name} 数据已重置',
resetFailed: '插件 {name} 重置失败:{message}',
updateHistoryTitle: '{name} 版本历史',
updateHistoryEmpty: '暂未获取到更新说明',
updateHistoryLoadFailed: '读取更新说明失败,请稍后重试',
updateToLatest: '更新到最新版本',
updatingTo: '更新 {name} 到 {version} 版本...',
folderNameEmpty: '文件夹名称不能为空',
folderExists: '文件夹已存在',
folderCreateSuccess: '文件夹创建成功',
folderRenameSuccess: '文件夹重命名成功',
folderRenameFailed: '重命名文件夹失败',
folderDeleteSuccess: '文件夹删除成功',
folderDeleteFailed: '删除文件夹失败',
removeFromFolderSuccess: '插件已移出文件夹',
operationFailed: '操作失败',
saveFolderConfigFailed: '保存文件夹配置失败',
newFolder: '新建文件夹',
folderName: '文件夹名称',
cancel: '取消',
create: '创建',
clone: '分身',
cloneTitle: '创建插件分身',
cloneSubtitle: '为 {name} 创建独立的分身实例',
cloneFeature: '插件分身功能',
cloneDescription: '创建插件的独立副本,拥有独立的配置和数据,适用于多账号、测试环境等场景',
suffix: '分身后缀',
suffixPlaceholder: '例如:Test、Backup、Site1',
suffixHint: '用于区分分身的唯一标识,只能包含英文字母和数字',
suffixRequired: '分身后缀不能为空',
suffixFormatError: '只能包含英文字母和数字',
suffixLengthError: '长度不能超过20个字符',
cloneName: '分身名称',
cloneNamePlaceholder: '例如:自动备份 测试版',
cloneNameHint: '分身插件的显示名称(可选)',
cloneDefaultName: '{name} 分身',
cloneDescriptionLabel: '分身描述',
cloneDescriptionPlaceholder: '描述这个分身的用途和特点...',
cloneDescriptionHint: '详细描述分身插件的用途(可选)',
cloneDefaultDescription: '{description} (分身版本)',
cloneVersion: '版本号',
cloneVersionPlaceholder: '例如:1.0、2.1.0',
cloneVersionHint: '自定义分身插件的版本号(可选)',
cloneIcon: '图标URL',
cloneIconPlaceholder: 'https://example.com/icon.png',
cloneIconHint: '自定义分身插件的图标(可选)',
cloneNotice: '分身插件创建后默认为禁用状态,需要手动配置启用。分身后缀一旦确定无法修改。',
createClone: '创建分身',
cloning: '正在创建 {name} 的分身...',
cloneSuccess: '插件分身 {name} 创建成功!',
cloneFailed: '插件分身创建失败:{message}',
cloneFailedGeneral: '插件分身创建失败',
logTitle: '插件日志',
quickAccess: '快速访问',
tapToOpen: '点击返回主界面',
noPluginsWithPage: '暂无可用插件',
recentlyUsed: '最近使用',
allPlugins: '所有插件',
noRecentPlugins: '无',
},
profile: {
personalInfo: '个人信息',
uploadNewAvatar: '上传新头像',
avatarFormatError: '上传的文件不符合要求,请重新选择头像',
avatarSizeError: '文件大小不得大于800KB',
avatarUploadSuccess: '新头像上传成功,待保存后生效!',
resetAvatarSuccess: '已重置为默认头像,待保存后生效!',
restoreAvatarSuccess: '已还原当前使用头像!',
savingInProgress: '正在保存中,请稍后...',
usernameRequired: '用户名不能为空',
passwordMismatch: '两次输入的密码不一致',
usernameChangeSuccess: '【{oldName}】更名【{newName}】,用户信息保存成功!',
saveSuccess: '用户信息保存成功!',
saveFailedWithNameChange: '【{oldName}】更名【{newName}】,信息保存失败:{message}',
saveFailed: '用户信息保存失败:{message}',
nickname: '昵称',
nicknamePlaceholder: '显示昵称,优先于用户名显示',
accountBinding: '账号绑定',
wechatUser: '企业微信用户',
wechatClawBotUser: '微信 ClawBot 用户',
feishuUser: '飞书用户',
telegramUser: 'Telegram用户',
slackUser: 'Slack用户',
discordUser: 'Discord用户',
vocechatUser: 'VoceChat用户',
synologychatUser: 'SynologyChat用户',
doubanUser: '豆瓣用户',
setupAuthenticator: '设置二次验证',
authenticatorManagement: '二次验证',
authenticatorEnabled: '二次验证已启用',
clearAuthenticatorTip: '关闭后可以重新设置身份验证器。',
clearAuthenticator: '关闭二次验证',
enableTwoFactor: '启用二次验证',
disableTwoFactor: '关闭二次验证',
accountSecurity: '账号安全',
otpSecondFactor: '密码登录需二次验证',
passkeyPasswordless: '无需密码直接登录',
enabled: '已启用',
keysCount: '{count} 个密钥',
passkeyManagement: '通行密钥管理',
registerNewPasskey: '注册新通行密钥',
passkeyDescription: '通行密钥可以让您无需密码即可快速安全地登录。',
passkeyAppDescription:
'通行密钥是一种更简单、更安全的登录方式,可以替代密码进行登录。您可以使用 iCloud 钥匙串、Bitwarden 等支持通行密钥的应用程序或硬件密钥完成验证。',
passkeyName: '通行密钥名称',
passkeyNamePlaceholder: '例如:iPhone、Windows Hello',
registerPasskey: '注册通行密钥',
createdAt: '创建于',
lastUsedAt: '最后使用时间',
noPasskeys: '您还没有注册任何通行密钥',
passkeyNameRequired: '请输入通行密钥名称',
passkeyRegisterSuccess: '通行密钥注册成功',
passkeyRegisterFailed: '注册失败',
passkeyRegisterCancelled: '注册被取消',
passkeyDeleteSuccess: '通行密钥已删除',
passkeyDeleteFailed: '删除失败',
deletePasskey: '删除通行密钥',
passkeyDomainWarning:
'通行密钥(PassKey)的可用性与 {domain} 紧密相关。在公网环境下,请务必在“基础设置”中配置正确的访问域名。域名变更或配置错误将导致通行密钥无法使用。',
accessDomain: '访问域名',
otpGenerateFailed: '获取身份验证器设置失败:{message}',
otpDisableSuccess: '二次验证已关闭',
otpDisableFailed: '关闭二次验证失败:{message}',
otpCodeRequired: '请填写6位验证码',
otpEnableSuccess: '二次验证已启用',
otpEnableFailed: '启用二次验证失败:{message}',
confirmToDisableOtp: '关闭二次验证前需要验证登录密码。',
confirmToDeletePasskey: '为了安全起见,删除通行密钥需要验证您的登录密码。',
authenticatorAppDescription:
'使用 Google Authenticator、Microsoft Authenticator、Authy 或 1Password 等验证器应用扫描二维码,获取 6 位验证码。',
secretKeyTip: '如果您在使用二维码时遇到困难,请在您的应用程序中选择手动输入以上代码。',
enterVerificationCode: '输入身份验证器生成的 6 位验证码',
avatarFormatTip: '允许 JPG、PNG、GIF、WEBP 格式, 最大尺寸 800KB。',
},
transferHistory: {
title: '转移历史',
searchPlaceholder: '搜索(支持 * ? 通配符)',
titleColumn: '标题',
pathColumn: '路径',
modeColumn: '转移方式',
sizeColumn: '大小',
dateColumn: '时间',
statusColumn: '状态',
actionsColumn: '操作',
seasonEpisode: '季集/类别',
transferQueue: '转移队列',
groupMode: '分组模式',
listMode: '列表模式',
deleteConfirm: '确认删除 {title} {seasons}{episodes} ?',
deleteConfirmBatch: '确认删除 {count} 条记录 ?',
deleteFailed: '删除失败:{message}',
deleteRequestFailed: '删除失败:请求异常',
batchDeleteFailed: '删除失败:{failed}/{total}',
deleting: '正在删除 {name}...',
deleteRecordOnly: '仅删除转移记录',
deleteSourceOnly: '删除转移记录和源文件',
deleteDestOnly: '删除转移记录和媒体库文件',
deleteAll: '删除转移记录、源文件和媒体库文件',
transferMode: {
copy: '复制',
move: '移动',
link: '硬链接',
softlink: '软链接',
rclone_copy: 'Rclone复制',
rclone_move: 'Rclone移动',
},
status: {
success: '成功',
failed: '失败',
unknown: '未知',
},
noData: '没有数据',
loading: '加载中...',
pageSize: '每页条数',
pageInfo: '{begin} - {end} / {total}',
selectedCount: '已选择 {count}/{total} 项',
aiRedoDisabled: '请先在系统设置中启用 AI 智能助手',
aiRedoQueued: '已提交智能助手整理任务:{title}',
aiRedoFailed: '提交智能助手整理任务失败',
actions: {
aiRedo: '智能助手整理',
aiRedoPending: '智能助手整理中...',
batchAiRedo: '智能助手批量整理',
batchSelect: '批量选择',
exitBatchSelect: '退出批量选择',
exitBatchMode: '退出批量操作',
selectAll: '全部选中',
deselectAll: '取消全选',
redo: '重新整理',
delete: '删除',
batchRedo: '批量重新整理',
batchDelete: '批量删除',
},
batchOperationTitle: '批量操作',
progress: {
processing: '处理中',
pleaseWait: '请稍候...',
},
table: {
emptyTitle: '操作',
},
},
customRule: {
error: {
emptyIdName: '规则ID和规则名称不能为空',
idOccupied: '当前规则ID已被内置规则占用',
nameOccupied: '当前规则名称已被内置规则占用',
idExists: '规则ID【{id}】已存在',
nameExists: '规则名称【{name}】已存在',
},
title: '{id} - 配置',
field: {
ruleId: '规则ID',
ruleName: '规则名称',
include: '包含',
exclude: '排除',
sizeRange: '资源体积(MB',
seeders: '做种人数',
publishTime: '发布时间(分钟)',
},
placeholder: {
ruleId: '必填;不可与其他规则ID重名',
ruleName: '必填;不可与其他规则名称重名',
include: '关键字/正则表达式',
exclude: '关键字/正则表达式',
sizeRange: '0/1-10',
seeders: '0/1-10',
publishTime: '0/1-10',
},
hint: {
ruleId: '字符与数字组合,不能含空格',
ruleName: '使用别名便于区分规则',
include: '必须包含的关键字或正则表达式,多个值使用|分隔',
exclude: '不能包含的关键字或正则表达式,多个值使用|分隔',
sizeRange: '最小资源文件体积或体积范围(剧集计算单集平均大小)',
seeders: '最小做种人数或做种人数范围',
publishTime: '距离资源发布的最小时间间隔或时间区间',
},
action: {
confirm: '确定',
},
},
downloader: {
title: '下载器',
name: '名称',
type: '类型',
enabled: '启用',
customTypeHint: '自定义下载器类型,用于插件等场景',
rtorrentHostHint: 'HTTP: http://ip:port/RPC2 或 SCGI: scgi://ip:port',
default: '默认',
host: '地址',
apiKey: 'API Key',
username: '用户名',
password: '密码',
qbittorrentApiKeyHint: 'qBittorrent 5.2+ 可直接使用 WebUI API Key;填写后将优先使用 API Key 登录。',
category: '自动分类管理',
sequentail: '顺序下载',
force_resume: '强制继续',
first_last_piece: '优先首尾文件',
incomplete_files_ext: '未完成文件后缀',
incomplete_files_extHint: '下载未完成时追加 .!qB 后缀,完成后自动移除',
rename_partial_files: '未完成文件后缀',
rename_partial_filesHint: '下载未完成时追加 .part 后缀,完成后自动移除',
saveSuccess: '下载器设置保存成功',
saveFailed: '下载器设置保存失败',
nameRequired: '不能为空,且不能重名',
nameDuplicate: '名称已存在',
defaultChanged: '存在默认下载器,已替换',
hostRequired: '地址不能为空',
usernameRequired: '用户名不能为空',
passwordRequired: '密码不能为空',
pathMapping: '路径映射',
pathMappingRequired: '路径不能为空',
pathMappingError: '必须以 / 开头',
storagePath: '存储路径',
downloadPath: '下载路径',
},
filterRule: {
title: '过滤规则',
groupName: '规则组名称',
priority: '优先级',
rules: '规则',
add: '添加规则',
import: '导入规则',
share: '分享规则',
save: '保存规则',
nameRequired: '规则组名称不能为空',
nameDuplicate: '规则组名称已存在',
importSuccess: '规则导入成功',
importFailed: '规则导入失败',
shareSuccess: '规则已复制到剪贴板',
shareFailed: '规则复制失败',
mediaType: '媒体类型',
category: '媒体类别',
mediaTypeItems: {
movie: '电影',
tv: '电视剧',
anime: '动漫',
collection: '合集',
unknown: '未知',
},
},
mediaserver: {
type: '类型',
customTypeHint: '自定义媒体服务器类型,用于插件等场景',
enableMediaServer: '启用媒体服务器',
syncInterval: '自动同步间隔',
syncIntervalHint: '留空时使用旧版全局默认值({interval} 小时),设置为 0 时关闭此服务器的自动同步',
nameRequired: '必填,不可重名',
serverAlias: '媒体服务器的别名',
host: '地址',
hostPlaceholder: 'http(s)://ip:port',
hostHint: '服务端地址,格式:http(s)://ip:port',
playHost: '外网播放地址',
playHostPlaceholder: 'http(s)://domain:port',
playHostHint: '跳转播放页面使用的地址,格式:http(s)://domain:port',
apiKey: 'API密钥',
embyApiKeyHint: 'Emby设置->高级->API密钥中生成的密钥',
jellyfinApiKeyHint: 'Jellyfin设置->高级->API密钥中生成的密钥',
plexToken: 'X-Plex-Token',
plexTokenHint: '浏览器F12->网络,从Plex请求URL中获取的X-Plex-Token',
username: '用户名',
usernameHint: '登录用户名',
password: '密码',
passwordHint: '登录密码',
accessCode: '访问码',
accessCodeHint: '飞牛系统设置->安全性->访问设置中开启的访问码,未开启请留空',
syncLibraries: '同步媒体库',
syncLibrariesHint: '只有选中的媒体库才会被同步',
scanMode: '扫描模式',
scanModeHint: '用于全库刷新和按库刷新:新添加和修改 / 补充缺失 / 覆盖扫描',
verifySsl: '校验 SSL 证书',
verifySslHint: '开启后会校验 HTTPS 证书;如使用自签名证书可关闭',
scanModeOptions: {
newAndModified: '新添加和修改',
supplementMissing: '补充缺失',
fullOverride: '覆盖扫描',
},
nameExists: '【{name}】已存在,请替换为其他名称',
hostRequired: '地址不能为空',
apiKeyRequired: 'API密钥不能为空',
tokenRequired: 'Token不能为空',
usernameRequired: '用户名不能为空',
passwordRequired: '密码不能为空',
},
bangumi: {
category: '类别',
sort: '排序',
year: '年份',
cat: {
other: '其他',
tv: 'TV',
ova: 'OVA',
movie: 'Movie',
web: 'WEB',
},
sortType: {
rank: '排名',
date: '日期',
},
},
anilist: {
sort: '排序',
genre: '风格',
format: '形式',
season: '季度',
year: '年份',
status: '状态',
country: '地区',
sortType: {
popularity: '热门优先',
trending: '趋势优先',
score: '评分优先',
newest: '最新开播',
},
formatType: {
tv: 'TV',
tv_short: '短篇 TV',
movie: '剧场版',
ova: 'OVA',
ona: 'ONA',
special: '特别篇',
music: '音乐',
},
seasonType: {
winter: '冬季',
spring: '春季',
summer: '夏季',
fall: '秋季',
},
statusType: {
releasing: '连载中',
finished: '已完结',
not_yet_released: '未播出',
},
countryType: {
jp: '日本',
cn: '中国大陆',
kr: '韩国',
tw: '中国台湾',
},
genreType: {
action: '动作',
adventure: '冒险',
comedy: '喜剧',
drama: '剧情',
fantasy: '奇幻',
horror: '恐怖',
mahoushoujo: '魔法少女',
mecha: '机甲',
music: '音乐',
mystery: '悬疑',
psychological: '心理',
romance: '爱情',
scifi: '科幻',
sliceoflife: '日常',
sports: '运动',
supernatural: '超自然',
thriller: '惊悚',
},
},
tmdb: {
type: '类型',
sort: '排序',
genre: '风格',
language: '语言',
rating: '评分',
sortType: {
popularityDesc: '热度降序',
popularityAsc: '热度升序',
releaseDateDesc: '上映日期降序',
releaseDateAsc: '上映日期升序',
firstAirDateDesc: '首播日期降序',
firstAirDateAsc: '首播日期升序',
voteAverageDesc: '评分降序',
voteAverageAsc: '评分升序',
time: '最新',
count: '热门',
rating: '评分',
},
genreType: {
action: '动作',
adventure: '冒险',
animation: '动画',
comedy: '喜剧',
crime: '犯罪',
documentary: '纪录片',
drama: '剧情',
family: '家庭',
fantasy: '奇幻',
history: '历史',
horror: '恐怖',
music: '音乐',
mystery: '悬疑',
romance: '爱情',
scienceFiction: '科幻',
tvMovie: '电视电影',
thriller: '惊悚',
war: '战争',
western: '西部',
actionAdventure: '动作冒险',
kids: '儿童',
news: '新闻',
reality: '真人秀',
sciFiFantasy: '科幻奇幻',
soap: '肥皂剧',
talk: '戏剧',
warPolitics: '战争政治',
},
languageType: {
zh: '中文',
en: '英语',
ja: '日语',
ko: '韩语',
fr: '法语',
de: '德语',
es: '西班牙语',
it: '意大利语',
ru: '俄语',
pt: '葡萄牙语',
ar: '阿拉伯语',
hi: '印地语',
th: '泰语',
},
},
douban: {
type: '类型',
sort: '排序',
genre: '风格',
zone: '地区',
year: '年代',
music: {
genre: {
pop: '流行',
rock: '摇滚',
folk: '民谣',
electronic: '电子',
jazz: '爵士',
classical: '古典',
soundtrack: '原声',
indie: '独立音乐',
instrumental: '纯音乐',
},
region: { mainland: '内地', hongKong: '香港', taiwan: '台湾', cantonese: '粤语' },
sort: { comprehensive: '综合排序', rating: '评分排序', date: '日期排序', markCount: '标注次数' },
},
sortType: {
comprehensive: '综合排序',
releaseDate: '首播时间',
recentHot: '近期热度',
highScore: '高分优先',
},
genreType: {
comedy: '喜剧',
romance: '爱情',
action: '动作',
scienceFiction: '科幻',
animation: '动画',
mystery: '悬疑',
crime: '犯罪',
thriller: '惊悚',
adventure: '冒险',
music: '音乐',
history: '历史',
fantasy: '奇幻',
horror: '恐怖',
war: '战争',
biography: '传记',
musical: '歌舞',
martialArts: '武侠',
erotic: '情色',
disaster: '灾难',
western: '西部',
documentary: '纪录片',
shortFilm: '短片',
},
zoneType: {
chinese: '华语',
europeanAmerican: '欧美',
korean: '韩国',
japanese: '日本',
mainlandChina: '中国大陆',
usa: '美国',
hongKong: '中国香港',
taiwan: '中国台湾',
uk: '英国',
france: '法国',
germany: '德国',
italy: '意大利',
spain: '西班牙',
india: '印度',
thailand: '泰国',
russia: '俄罗斯',
canada: '加拿大',
australia: '澳大利亚',
ireland: '爱尔兰',
sweden: '瑞典',
brazil: '巴西',
denmark: '丹麦',
},
yearType: {
'2020s': '2020年代',
'2010s': '2010年代',
'2000s': '2000年代',
'1990s': '90年代',
'1980s': '80年代',
'1970s': '70年代',
'1960s': '60年代',
},
},
directory: {
alias: '目录别名',
mediaType: '媒体类型',
mediaCategory: '媒体类别',
resourceStorage: '资源存储',
resourceDirectory: '资源目录',
sortByType: '按类型分类',
sortByCategory: '按类别分类',
autoTransfer: '自动整理',
monitorMode: '监控模式',
libraryStorage: '媒体库存储',
libraryDirectory: '媒体库目录',
transferType: '整理方式',
transferTypeHint: '文件操作整理方式,硬链接节省空间,复制更安全',
overwriteMode: '覆盖模式',
overwriteModeHint: '当目标文件已存在时的处理方式',
smartRename: '智能重命名',
scrapingMetadata: '刮削元数据',
sendNotification: '发送通知',
noTransfer: '不整理',
downloaderMonitor: '下载器监控',
directoryMonitor: '目录监控',
manualTransfer: '手动整理',
performanceMode: '性能模式',
compatibilityMode: '兼容模式',
pleaseSelectStorage: '请选择存储',
pleaseSelectLibraryStorage: '请选择媒体库存储',
pleaseSelectDownloadStorage: '请选择下载存储',
noSupportedTransferType: '没有支持的整理方式',
never: '从不',
always: '总是',
byFileSize: '按文件大小',
keepLatestOnly: '仅保留最新',
},
validators: {
required: '此项为必填项',
number: '请输入数字',
},
folder: {
settingAppearance: '设置外观',
rename: '重命名',
deleteFolder: '删除文件夹',
folderNameCannotBeEmpty: '文件夹名称不能为空',
confirmDeleteFolder: '确定要删除文件夹 "{folderName}" 吗?文件夹中的插件将移回主列表。',
folderSettingsSaved: '文件夹设置已保存',
renameFolder: '重命名文件夹',
folderName: '文件夹名称',
folderAppearanceSettings: '文件夹外观设置',
showFolderIcon: '显示文件夹图标',
icon: '图标',
iconColor: '图标颜色',
backgroundGradient: '背景渐变',
customBackgroundImageURL: '自定义背景图片URL(可选)',
customBackgroundImageHint: '支持网络图片URL,留空则使用渐变背景',
pluginCount: '{count} 个插件',
},
setupWizard: {
title: '欢迎使用 MoviePilot ',
subtitle: '按向导完成配置,即刻开始使用。',
completed: '配置向导完成!',
failed: '配置向导失败,请重试',
complete: '完成配置',
loading: '正在加载配置数据...',
testing: '正在测试',
connectivityTestSuccess: '连通性测试通过',
connectivityTestFailed: '连通性测试失败',
testingStorage: '正在测试存储目录',
checkingStorage: '检查存储目录连通性',
storageTestFailed: '存储目录测试失败',
testingDownloader: '正在测试下载器',
checkingDownloader: '检查下载器连通性',
downloaderTestFailed: '下载器测试失败',
downloaderNotSelected: '未选择下载器',
unsupportedDownloaderType: '不支持的下载器类型: {type}',
testingMediaServer: '正在测试媒体服务器',
checkingMediaServer: '检查媒体服务器连通性',
mediaServerTestFailed: '媒体服务器测试失败',
mediaServerNotSelected: '未选择媒体服务器',
unsupportedMediaServerType: '不支持的媒体服务器类型: {type}',
testingNotification: '正在测试消息通知',
checkingNotification: '检查消息通知连通性',
notificationTestFailed: '消息通知测试失败',
notificationNotSelected: '未选择通知类型',
unsupportedNotificationType: '不支持的通知类型: {type}',
testFailedHint: '请检查配置是否正确,修改后可以重新测试',
saveStepFailed: '保存步骤设置失败',
basicSettingsSaved: '基础设置保存成功',
saveBasicSettingsFailed: '保存基础设置失败',
storageSettingsSaved: '存储设置保存成功',
saveStorageSettingsFailed: '保存存储设置失败',
downloaderSettingsSaved: '下载器设置保存成功',
saveDownloaderSettingsFailed: '保存下载器设置失败',
mediaServerSettingsSaved: '媒体服务器设置保存成功',
saveMediaServerSettingsFailed: '保存媒体服务器设置失败',
notificationSettingsSaved: '通知设置保存成功',
saveNotificationSettingsFailed: '保存通知设置失败',
saveSiteAuthSettingsFailed: '保存用户站点认证设置失败:{message}',
saveAgentSettingsFailed: '保存智能助手设置失败',
preferenceSettingsSaved: '偏好设置保存成功',
savePreferenceSettingsFailed: '保存偏好设置失败',
passwordUpdateSuccess: '密码更新成功',
passwordUpdateFailed: '密码更新失败',
userCreateSuccess: '用户创建成功',
basic: {
title: '基础设置',
description: '设置访问域名、用户名密码和网络配置',
appDomain: '访问域名',
appDomainHint: 'MoviePilot 的访问地址,用于通知快捷跳转和通行密钥校验',
wallpaper: '背景壁纸',
wallpaperHint: '选择登录页面背景来源',
recognizeSource: '识别数据源',
recognizeSourceHint: '设置默认媒体信息识别数据源',
apiToken: 'API 令牌',
apiTokenHint: '访问MoviePilot API 需要的访问令牌,请记录下来以便后续使用',
currentUserHint: '当前用户,不可修改',
passwordOptionalHint: '留空表示不修改密码',
confirmPasswordHint: '确认新密码',
apiTokenRequired: 'API Token不能为空',
},
siteAuth: {
title: '用户认证',
description: '配置用户站点认证与辅助认证',
info: '用户站点认证说明',
infoDesc: '完成站点认证后可解锁站点能力与部分插件权限。此步骤可选,后续也可在个人菜单中继续配置。',
selectSiteHint: '选择一个支持认证的站点,并填写该站点要求的认证参数',
submitHint: '点击下一步时将立即向认证站点发起校验,认证成功后会保存当前参数。',
siteConfigNotExist: '认证站点配置不存在',
fieldRequired: '请输入{name}',
},
storage: {
title: '存储',
description: '配置下载目录和媒体库目录',
info: '存储配置说明',
infoDesc: '配置本地存储目录,用于下载和媒体库管理',
downloadPath: '下载目录',
downloadPathHint: '设置下载文件的存储路径',
libraryPath: '媒体库目录',
libraryPathHint: '设置媒体文件的存储路径',
downloadPathRequired: '下载目录不能为空',
libraryPathRequired: '媒体库目录不能为空',
},
downloader: {
title: '下载器',
description: '配置下载器',
info: '下载器配置说明',
infoDesc: '配置下载器用于下载资源,可选择qBittorrent或Transmission',
type: '下载器类型',
typeHint: '选择要使用的下载器类型',
name: '下载器名称',
nameHint: '为下载器设置一个名称',
qbittorrentConfig: 'qBittorrent 配置',
transmissionConfig: 'Transmission 配置',
host: '服务器地址',
username: '用户名',
password: '密码',
downloadPath: '下载路径',
},
mediaServer: {
title: '媒体服务器',
description: '配置媒体服务器',
info: '媒体服务器配置说明',
infoDesc: '配置媒体服务器用于媒体库管理,可选择Emby、极影视、Jellyfin、Plex、飞牛影视或绿联影视',
type: '媒体服务器类型',
typeHint: '选择要使用的媒体服务器类型',
name: '服务器名称',
nameHint: '为媒体服务器设置一个名称',
embyConfig: 'Emby 配置',
zspaceConfig: '极影视 配置',
jellyfinConfig: 'Jellyfin 配置',
plexConfig: 'Plex 配置',
host: '服务器地址',
apiKey: 'API 密钥',
token: '访问令牌',
},
notification: {
title: '通知',
description: '配置通知渠道',
info: '通知配置说明',
infoDesc: '配置通知渠道用于接收系统消息(可选)',
type: '通知类型',
typeHint: '选择要使用的通知渠道类型',
name: '通知名称',
nameHint: '为通知渠道设置一个名称',
feishuConfig: '飞书配置',
telegramConfig: 'Telegram 配置',
emailConfig: '邮件配置',
botToken: '机器人令牌',
chatId: '聊天ID',
smtpServer: 'SMTP 服务器',
smtpPort: 'SMTP 端口',
senderEmail: '发送邮箱',
senderPassword: '发送密码',
receiverEmail: '接收邮箱',
},
agent: {
title: '智能助手',
description: '配置 Agent 助手与 LLM 参数',
info: '智能助手配置说明',
infoDesc: '启用后可在消息会话中使用 Agent 能力,也可开启失败整理接管和智能推荐。',
providerRequired: 'LLM 提供商不能为空',
apiKeyRequired: 'LLM API 密钥不能为空',
authOrApiKeyRequired: '请填写 LLM API 密钥或先完成提供商授权',
modelRequired: 'LLM 模型名称不能为空',
maxContextTokensRequired: 'LLM 最大上下文 Token 数量必须大于 0',
recommendMaxItemsRequired: '智能推荐分析条目上限必须大于 0',
},
preferences: {
title: '资源偏好',
description: '设置资源下载偏好',
info: '资源偏好说明',
infoDesc: '设置资源下载的偏好,系统将根据这些偏好自动选择最佳资源',
quality: '质量偏好',
qualityHint: '选择偏好的视频质量',
subtitle: '字幕偏好',
subtitleHint: '选择偏好的字幕类型',
resolution: '分辨率偏好',
resolutionHint: '选择偏好的视频分辨率',
presetRules: '预设规则',
detailedConfig: '详细配置',
quickPresets: '快速预设',
quickPresetsDesc: '选择预设配置,系统将自动应用对应的规则',
personalizationOptions: '个性化选项',
personalizationOptionsDesc: '根据您的需求调整规则',
excludeDolbyVision: '排除杜比视界',
excludeDolbyVisionHint: '选中后规则中将排除杜比视界资源',
excludeBluray: '排除蓝光原盘',
excludeBlurayHint: '选中后规则中将排除蓝光原盘资源',
presets: {
'4k-enthusiast': {
name: '4K发烧友',
description: '追求最高画质,优先4K',
},
'balanced': {
name: '平衡模式',
description: '画质与存储空间的平衡选择',
},
'space-saver': {
name: '节省空间',
description: '优先较小文件,节省存储空间',
},
'free-priority': {
name: '免费优先',
description: '优先免费资源,其它的没有要求',
},
},
},
},
}