579 lines
25 KiB
TypeScript
579 lines
25 KiB
TypeScript
export const zh = {
|
||
// Header
|
||
myTube: "MyTube",
|
||
manage: "管理",
|
||
settings: "设置",
|
||
logout: "退出",
|
||
pleaseEnterUrlOrSearchTerm: "请输入视频链接或搜索关键词",
|
||
unexpectedErrorOccurred: "发生意外错误,请重试",
|
||
uploadVideo: "上传视频",
|
||
enterUrlOrSearchTerm: "输入视频链接或搜索关键词",
|
||
manageVideos: "管理视频",
|
||
instruction: "使用说明",
|
||
|
||
// Home
|
||
pasteUrl: "粘贴视频或合集链接",
|
||
download: "下载",
|
||
search: "搜索",
|
||
recentDownloads: "最近下载",
|
||
noDownloads: "暂无下载",
|
||
downloadStarted: "开始下载",
|
||
downloadFailed: "下载失败",
|
||
loadingVideos: "加载视频中...",
|
||
searchResultsFor: "搜索结果:",
|
||
fromYourLibrary: "来自您的媒体库",
|
||
noMatchingVideos: "媒体库中未找到匹配视频",
|
||
fromYouTube: "来自 YouTube",
|
||
loadingYouTubeResults: "加载 YouTube 结果中...",
|
||
noYouTubeResults: "未找到 YouTube 结果",
|
||
noVideosYet: "暂无视频。提交视频链接以开始下载您的第一个视频!",
|
||
views: "次观看",
|
||
|
||
// Settings
|
||
general: "常规",
|
||
security: "安全",
|
||
videoDefaults: "播放器默认设置",
|
||
downloadSettings: "下载设置",
|
||
language: "语言",
|
||
websiteName: "网站名称",
|
||
websiteNameHelper: "{current}/{max} 字符 (默认: {default})",
|
||
infiniteScroll: "无限滚动",
|
||
infiniteScrollDisabled: "启用无限滚动时禁用",
|
||
maxVideoColumns: "最大视频列数 (主页)",
|
||
videoColumns: "视频列数 (主页)",
|
||
columnsCount: "{count} 列",
|
||
enableLogin: "启用登录保护",
|
||
password: "密码",
|
||
enterPassword: "输入密码",
|
||
togglePasswordVisibility: "切换密码可见性",
|
||
passwordHelper: "留空以保持当前密码,或输入新密码以更改",
|
||
passwordSetHelper: "设置访问应用程序的密码",
|
||
autoPlay: "自动播放视频",
|
||
autoLoop: "自动循环播放",
|
||
maxConcurrent: "最大同时下载数",
|
||
saveSettings: "保存设置",
|
||
saving: "保存中...",
|
||
backToManage: "返回管理",
|
||
settingsSaved: "设置保存成功",
|
||
settingsFailed: "保存设置失败",
|
||
debugMode: "调试模式",
|
||
debugModeDescription: "显示或隐藏控制台消息(需要刷新)",
|
||
tagsManagement: "标签管理",
|
||
newTag: "新标签",
|
||
tags: "标签",
|
||
tagsManagementNote: "添加或删除标签后,请记得点击“保存设置”以应用更改。",
|
||
|
||
// Database
|
||
database: "数据库",
|
||
migrateDataDescription:
|
||
"从旧版 JSON 文件迁移数据到新的 SQLite 数据库。此操作可以安全地多次运行(将跳过重复项)。",
|
||
migrateDataButton: "从 JSON 迁移数据",
|
||
scanFiles: "扫描文件",
|
||
scanFilesSuccess: "扫描完成。添加了 {count} 个新视频。",
|
||
scanFilesDeleted: " 移除了 {count} 个缺失文件。",
|
||
scanFilesFailed: "扫描失败",
|
||
scanFilesConfirmMessage:
|
||
"系统将扫描视频路径的根文件夹。新文件将被添加,缺失的视频文件将从系统中移除。",
|
||
scanning: "扫描中...",
|
||
migrateConfirmation: "您确定要迁移数据吗?这可能需要一些时间。",
|
||
migrationResults: "迁移结果",
|
||
migrationReport: "迁移报告",
|
||
migrationSuccess: "迁移完成。请查看警报中的详细信息。",
|
||
migrationNoData: "迁移完成但未找到数据。",
|
||
migrationFailed: "迁移失败",
|
||
migrationWarnings: "警告",
|
||
migrationErrors: "错误",
|
||
itemsMigrated: "项已迁移",
|
||
fileNotFound: "未找到文件于",
|
||
noDataFilesFound: "未找到可迁移的数据文件。请检查您的卷映射。",
|
||
removeLegacyData: "删除旧数据",
|
||
removeLegacyDataDescription:
|
||
"删除旧的 JSON 文件(videos.json, collections.json 等)以释放磁盘空间。请仅在确认数据已成功迁移后执行此操作。",
|
||
removeLegacyDataConfirmTitle: "删除旧数据?",
|
||
removeLegacyDataConfirmMessage:
|
||
"确定要删除旧的 JSON 数据文件吗?此操作无法撤销。",
|
||
legacyDataDeleted: "旧数据删除成功。",
|
||
formatLegacyFilenames: "格式化旧文件名",
|
||
formatLegacyFilenamesDescription:
|
||
"批量将所有视频文件、缩略图和字幕重命名为新的标准格式:标题-作者-YYYY。此操作将修改磁盘上的文件名并更新数据库记录。",
|
||
formatLegacyFilenamesButton: "格式化文件名",
|
||
formatFilenamesSuccess:
|
||
"处理: {processed}\n重命名: {renamed}\n错误: {errors}",
|
||
formatFilenamesDetails: "详情:",
|
||
formatFilenamesMore: "...还有 {count} 项",
|
||
formatFilenamesError: "格式化文件名失败: {error}",
|
||
deleteLegacyDataButton: "删除旧数据",
|
||
cleanupTempFiles: "清理临时文件",
|
||
cleanupTempFilesDescription:
|
||
"从上传目录中删除所有临时下载文件(.ytdl、.part)。这有助于释放未完成或已取消下载占用的磁盘空间。",
|
||
cleanupTempFilesConfirmTitle: "清理临时文件?",
|
||
cleanupTempFilesConfirmMessage:
|
||
"这将永久删除上传目录中的所有.ytdl和.part文件。请确保没有正在进行的下载。",
|
||
cleanupTempFilesActiveDownloads:
|
||
"有活动下载时无法清理。请等待所有下载完成或取消它们。",
|
||
itemsPerPage: "每页显示数量",
|
||
itemsPerPageHelper: "每页显示的视频数量 (默认: 12)",
|
||
showYoutubeSearch: "显示 YouTube 搜索结果",
|
||
visitorMode: "访客模式(只读)",
|
||
visitorModeReadOnly: "访客模式:只读",
|
||
visitorModeDescription: "只读模式。隐藏的视频对访客不可见。",
|
||
visitorModePasswordPrompt: "请输入网站密码以更改访客模式设置。",
|
||
cleanupTempFilesSuccess: "成功删除了 {count} 个临时文件。",
|
||
cleanupTempFilesFailed: "清理临时文件失败",
|
||
|
||
// Cookie Settings
|
||
cookieSettings: "Cookie 设置",
|
||
cookieUploadDescription:
|
||
'上传 cookies.txt 以通过 YouTube 机器人检测并启用 Bilibili 字幕下载。文件将自动重命名为 cookies.txt。(例如:使用 "Get cookies.txt LOCALLY" 扩展导出 cookies)',
|
||
uploadCookies: "上传 Cookie",
|
||
onlyTxtFilesAllowed: "仅允许 .txt 文件",
|
||
cookiesUploadedSuccess: "Cookie 上传成功",
|
||
cookiesUploadFailed: "上传 Cookies 失败",
|
||
cookiesFound: "已找到 cookies.txt",
|
||
cookiesNotFound: "未找到 cookies.txt",
|
||
deleteCookies: "删除 Cookies",
|
||
confirmDeleteCookies:
|
||
"您确定要删除 cookies 文件吗?这将影响您下载有年龄限制或仅限会员视频的能力。",
|
||
cookiesDeletedSuccess: "Cookies 删除成功",
|
||
cookiesDeleteFailed: "删除 Cookies 失败",
|
||
|
||
// Cloud Drive
|
||
cloudDriveSettings: "云端存储 (OpenList)",
|
||
cloudDriveDescription:
|
||
"自动上传视频到云存储 (Alist) 并扫描云端新文件。上传成功后将删除本地文件。",
|
||
enableAutoSave: "启用云端同步",
|
||
apiUrl: "API 地址",
|
||
apiUrlHelper: "例如:https://your-alist-instance.com/api/fs/put",
|
||
token: "Token",
|
||
publicUrl: "公开访问域名",
|
||
publicUrlHelper:
|
||
"用于访问文件的公开域名(例如:https://your-cloudflare-tunnel-domain.com)。如果设置,将使用此域名而不是 API 地址来访问文件。",
|
||
uploadPath: "上传路径",
|
||
cloudDrivePathHelper: "云端存储中的目录路径,例如:/mytube-uploads",
|
||
scanPaths: "扫描路径",
|
||
scanPathsHelper:
|
||
"每行一个路径。系统将扫描这些路径下的视频。留空则使用默认上传路径。示例:\n/a/电影\n/b/纪录片",
|
||
cloudDriveNote:
|
||
"启用此功能后,新下载的视频将自动上传到云端存储,本地文件将被删除。视频将通过代理从云端存储播放。",
|
||
cloudScanAdded: "从云端添加",
|
||
testing: "测试中...",
|
||
testConnection: "测试连接",
|
||
sync: "同步",
|
||
syncToCloud: "双向同步",
|
||
syncWarning:
|
||
"此操作将上传本地视频到云端并扫描云端新文件。上传后,本地文件将被删除。",
|
||
syncing: "正在同步...",
|
||
syncCompleted: "同步完成",
|
||
syncFailed: "同步失败",
|
||
syncReport: "总计: {total} | 已上传: {uploaded} | 失败: {failed}",
|
||
syncErrors: "错误:",
|
||
fillApiUrlToken: "请先填写API URL和Token",
|
||
connectionTestSuccess: "连接测试成功!设置有效。",
|
||
connectionFailedStatus: "连接失败:服务器返回状态 {status}",
|
||
connectionFailedUrl: "无法连接到服务器。请检查API URL。",
|
||
authFailed: "认证失败。请检查您的Token。",
|
||
connectionTestFailed: "连接测试失败:{error}",
|
||
syncFailedMessage: "同步失败。请重试。",
|
||
foundVideosToSync: "发现 {count} 个包含本地文件的视频等待同步",
|
||
uploadingVideo: "正在上传: {title}",
|
||
clearThumbnailCache: "清除缩略图本地缓存",
|
||
clearing: "清除中...",
|
||
clearThumbnailCacheSuccess: "缩略图缓存清除成功。下次访问时将重新生成。",
|
||
clearThumbnailCacheError: "清除缩略图缓存失败",
|
||
clearThumbnailCacheConfirmMessage: "这将清除所有云端视频的本地缩略图缓存。下次访问时将从云端重新生成。确定继续吗?",
|
||
|
||
// Manage
|
||
manageContent: "内容管理",
|
||
videos: "视频",
|
||
collections: "合集",
|
||
allVideos: "所有视频",
|
||
delete: "删除",
|
||
backToHome: "返回首页",
|
||
confirmDelete: "确定要删除吗?",
|
||
deleteSuccess: "删除成功",
|
||
deleteFailed: "删除失败",
|
||
noVideos: "未找到视频",
|
||
noCollectionsFound: "未找到合集",
|
||
noCollections: "未找到合集",
|
||
searchVideos: "搜索视频...",
|
||
thumbnail: "缩略图",
|
||
title: "标题",
|
||
author: "作者",
|
||
authors: "作者列表",
|
||
created: "创建时间",
|
||
name: "名称",
|
||
size: "大小",
|
||
actions: "操作",
|
||
deleteCollection: "删除合集",
|
||
deleteVideo: "删除视频",
|
||
noVideosFoundMatching: "未找到匹配的视频。",
|
||
|
||
// Video Player
|
||
playing: "播放",
|
||
paused: "暂停",
|
||
next: "下一个",
|
||
previous: "上一个",
|
||
loop: "循环",
|
||
autoPlayOn: "自动播放已开启",
|
||
autoPlayOff: "自动播放已关闭",
|
||
autoPlayNext: "自动播放下一个",
|
||
videoNotFound: "未找到视频",
|
||
videoNotFoundOrLoaded: "未找到视频或无法加载。",
|
||
deleting: "删除中...",
|
||
addToCollection: "添加到合集",
|
||
originalLink: "原始链接",
|
||
source: "来源:",
|
||
addedDate: "添加日期:",
|
||
latestComments: "最新评论",
|
||
noComments: "暂无评论。",
|
||
hideComments: "隐藏评论",
|
||
showComments: "显示评论",
|
||
upNext: "接下来播放",
|
||
noOtherVideos: "没有其他视频",
|
||
currentlyIn: "当前所在:",
|
||
collectionWarning: "添加到其他合集将从当前合集中移除。",
|
||
addToExistingCollection: "添加到现有合集:",
|
||
selectCollection: "选择合集",
|
||
add: "添加",
|
||
createNewCollection: "创建新合集:",
|
||
collectionName: "合集名称",
|
||
create: "创建",
|
||
removeFromCollection: "从合集中移除",
|
||
confirmRemoveFromCollection: "确定要从合集中移除此视频吗?",
|
||
remove: "移除",
|
||
loadingVideo: "加载视频中...",
|
||
current: "(当前)",
|
||
rateThisVideo: "给视频评分",
|
||
enterFullscreen: "全屏",
|
||
exitFullscreen: "退出全屏",
|
||
share: "分享",
|
||
editTitle: "编辑标题",
|
||
hideVideo: "使视频在访客模式下隐藏",
|
||
showVideo: "使视频在访客模式下可见",
|
||
toggleVisibility: "切换可见性",
|
||
titleUpdated: "标题更新成功",
|
||
titleUpdateFailed: "更新标题失败",
|
||
refreshThumbnail: "刷新缩略图",
|
||
thumbnailRefreshed: "缩略图刷新成功",
|
||
thumbnailRefreshFailed: "刷新缩略图失败",
|
||
videoUpdated: "视频更新成功",
|
||
videoUpdateFailed: "更新视频失败",
|
||
failedToLoadVideos: "加载视频失败。请稍后再试。",
|
||
videoRemovedSuccessfully: "视频删除成功",
|
||
failedToDeleteVideo: "删除视频失败",
|
||
pleaseEnterSearchTerm: "请输入搜索词",
|
||
failedToSearch: "搜索失败。请稍后再试。",
|
||
searchCancelled: "搜索已取消",
|
||
openInExternalPlayer: "在外部播放器中打开",
|
||
playWith: "使用此应用播放...",
|
||
deleteAllFilteredVideos: "删除所有过滤后的视频",
|
||
confirmDeleteFilteredVideos:
|
||
"您确定要删除通过选定标签过滤的 {count} 个视频吗?",
|
||
deleteFilteredVideosSuccess: "成功删除 {count} 个视频。",
|
||
deletingVideos: "正在删除视频...",
|
||
|
||
// Login
|
||
signIn: "登录",
|
||
verifying: "验证中...",
|
||
incorrectPassword: "密码错误",
|
||
loginFailed: "验证密码失败",
|
||
defaultPasswordHint: "默认密码:123",
|
||
checkingConnection: "正在检查连接...",
|
||
connectionError: "连接错误",
|
||
backendConnectionFailed:
|
||
"无法连接到服务器。请检查后端是否正在运行并确保端口已开放,然后重试。",
|
||
retry: "重试",
|
||
resetPassword: "重置密码",
|
||
resetPasswordTitle: "重置密码",
|
||
resetPasswordMessage:
|
||
"您确定要重置密码吗?当前密码将被重置为一个随机的8位字符串,并显示在后端日志中。",
|
||
resetPasswordConfirm: "重置",
|
||
resetPasswordSuccess: "密码已重置。请查看后端日志以获取新密码。",
|
||
waitTimeMessage: "请等待 {time} 后再试。",
|
||
tooManyAttempts: "失败尝试次数过多。",
|
||
linkCopied: "链接已复制到剪贴板",
|
||
copyFailed: "复制链接失败",
|
||
|
||
// Collection Page
|
||
loadingCollection: "加载合集中...",
|
||
collectionNotFound: "未找到合集",
|
||
noVideosInCollection: "此合集中没有视频。",
|
||
back: "返回",
|
||
|
||
// Snackbar Messages
|
||
videoDownloading: "视频下载中",
|
||
downloadStartedSuccessfully: "下载已成功开始",
|
||
collectionCreatedSuccessfully: "集合创建成功",
|
||
videoAddedToCollection: "视频已添加到集合",
|
||
videoRemovedFromCollection: "视频已从集合中移除",
|
||
collectionDeletedSuccessfully: "集合删除成功",
|
||
failedToDeleteCollection: "删除集合失败",
|
||
|
||
// Author Videos
|
||
loadVideosError: "加载视频失败,请稍后再试。",
|
||
unknownAuthor: "未知",
|
||
noVideosForAuthor: "未找到该作者的视频。",
|
||
deleteAuthor: "删除作者",
|
||
deleteAuthorConfirmation:
|
||
"您确定要删除作者 {author} 吗?这将删除该作者的所有视频。",
|
||
authorDeletedSuccessfully: "作者删除成功",
|
||
failedToDeleteAuthor: "删除作者失败",
|
||
|
||
// Delete Collection Modal
|
||
deleteCollectionTitle: "删除合集",
|
||
deleteCollectionConfirmation: "确定要删除合集",
|
||
collectionContains: "此合集包含",
|
||
deleteCollectionOnly: "仅删除合集",
|
||
deleteCollectionAndVideos: "删除合集及所有视频",
|
||
|
||
// Common
|
||
loading: "加载中...",
|
||
error: "错误",
|
||
success: "成功",
|
||
cancel: "取消",
|
||
close: "关闭",
|
||
ok: "确定",
|
||
confirm: "确认",
|
||
save: "保存",
|
||
note: "注意",
|
||
on: "开启",
|
||
off: "关",
|
||
continue: "继续",
|
||
expand: "展开",
|
||
collapse: "收起",
|
||
|
||
// Video Card
|
||
unknownDate: "未知日期",
|
||
part: "分P",
|
||
collection: "合集",
|
||
|
||
// Upload Modal
|
||
selectVideoFile: "选择视频文件",
|
||
pleaseSelectVideo: "请选择视频文件",
|
||
uploadFailed: "上传失败",
|
||
failedToUpload: "视频上传失败",
|
||
uploading: "上传中...",
|
||
upload: "上传",
|
||
|
||
// Bilibili Modal
|
||
bilibiliCollectionDetected: "检测到 Bilibili 合集",
|
||
bilibiliSeriesDetected: "检测到 Bilibili 系列",
|
||
multiPartVideoDetected: "检测到多P视频",
|
||
collectionHasVideos: "此合集包含 {count} 个视频。",
|
||
seriesHasVideos: "此系列包含 {count} 个视频。",
|
||
videoHasParts: "此视频包含 {count} 个分P。",
|
||
downloadAllVideos: "下载所有 {count} 个视频",
|
||
downloadAllParts: "下载所有 {count} 个分P",
|
||
downloadThisVideoOnly: "仅下载此视频",
|
||
downloadCurrentPartOnly: "仅下载当前分P",
|
||
processing: "处理中...",
|
||
wouldYouLikeToDownloadAllParts: "您想要下载所有分P吗?",
|
||
wouldYouLikeToDownloadAllVideos: "您想要下载所有视频吗?",
|
||
allPartsAddedToCollection: "所有分P将被添加到此合集",
|
||
allVideosAddedToCollection: "所有视频将被添加到此合集",
|
||
queued: "已排队",
|
||
waitingInQueue: "等待中",
|
||
|
||
// Downloads
|
||
downloads: "下载",
|
||
activeDownloads: "进行中的下载",
|
||
manageDownloads: "管理下载",
|
||
queuedDownloads: "排队中的下载",
|
||
downloadHistory: "下载历史",
|
||
clearQueue: "清空队列",
|
||
clearHistory: "清空历史",
|
||
noActiveDownloads: "暂无进行中的下载",
|
||
noQueuedDownloads: "暂无排队的下载",
|
||
noDownloadHistory: "暂无下载历史",
|
||
downloadCancelled: "下载已取消",
|
||
queueCleared: "队列已清空",
|
||
historyCleared: "历史已清空",
|
||
removedFromQueue: "已从队列移除",
|
||
removedFromHistory: "已从历史移除",
|
||
status: "状态",
|
||
progress: "进度",
|
||
speed: "速度",
|
||
finishedAt: "完成时间",
|
||
failed: "失败",
|
||
|
||
// Batch Download
|
||
batchDownload: "批量下载",
|
||
batchDownloadDescription: "在下方粘贴多个链接,每行一个。",
|
||
urls: "链接",
|
||
addToQueue: "添加到队列",
|
||
batchTasksAdded: "已添加 {count} 个任务",
|
||
addBatchTasks: "添加批量任务",
|
||
|
||
// Subscriptions
|
||
subscribeToAuthor: "订阅作者",
|
||
subscribeConfirmationMessage: "您确定要订阅 {author} 吗?",
|
||
subscribeDescription: "系统将自动检查此作者的新视频并下载。",
|
||
checkIntervalMinutes: "检查间隔(分钟)",
|
||
subscribe: "订阅",
|
||
subscriptions: "订阅",
|
||
interval: "间隔",
|
||
lastCheck: "上次检查",
|
||
platform: "平台",
|
||
unsubscribe: "取消订阅",
|
||
confirmUnsubscribe: "您确定要取消订阅 {author} 吗?",
|
||
subscribedSuccessfully: "订阅成功",
|
||
unsubscribedSuccessfully: "取消订阅成功",
|
||
subscriptionAlreadyExists: "您已订阅此作者。",
|
||
minutes: "分钟",
|
||
never: "从未",
|
||
downloadAllPreviousVideos: "下载此作者的所有历史视频",
|
||
downloadAllPreviousWarning:
|
||
"警告:这将下载此作者的所有历史视频。这可能会消耗大量存储空间,并可能触发机器人检测机制,导致平台临时或永久封禁。使用风险自负。",
|
||
continuousDownloadTasks: "连续下载任务",
|
||
taskStatusActive: "进行中",
|
||
taskStatusPaused: "已暂停",
|
||
taskStatusCompleted: "已完成",
|
||
taskStatusCancelled: "已取消",
|
||
downloaded: "已下载",
|
||
cancelTask: "取消任务",
|
||
confirmCancelTask: "您确定要取消 {author} 的下载任务吗?",
|
||
taskCancelled: "任务已成功取消",
|
||
deleteTask: "删除任务",
|
||
confirmDeleteTask: "您确定要删除 {author} 的任务记录吗?此操作无法撤销。",
|
||
taskDeleted: "任务已成功删除",
|
||
|
||
// Existing Video Detection
|
||
existingVideoDetected: "检测到已下载视频",
|
||
videoAlreadyDownloaded: "此视频已下载过。",
|
||
viewVideo: "查看视频",
|
||
previouslyDeletedVideo: "曾下载并删除的视频",
|
||
previouslyDeleted: "已删除",
|
||
videoWasDeleted: "此视频曾经下载过,但已被删除。",
|
||
downloadAgain: "再次下载",
|
||
downloadedOn: "下载时间",
|
||
deletedOn: "删除时间",
|
||
existingVideo: "已存在的视频",
|
||
skipped: "已跳过",
|
||
videoSkippedExists: "视频已存在,跳过下载",
|
||
videoSkippedDeleted: "视频曾被删除,跳过下载",
|
||
history: "历史",
|
||
downloading: "下载中...",
|
||
poweredBy: "由 MyTube 提供支持",
|
||
|
||
// Instruction Page
|
||
instructionSection1Title: "1. 下载与任务管理",
|
||
instructionSection1Desc: "本模块包含视频获取、批量任务及文件导入等功能。",
|
||
instructionSection1Sub1: "链接下载:",
|
||
instructionSection1Item1Label: "基础下载:",
|
||
instructionSection1Item1Text:
|
||
"在链接文本框中粘贴各类视频网站的链接即可直接下载。",
|
||
instructionSection1Item2Label: "权限说明:",
|
||
instructionSection1Item2Text:
|
||
"部分需要会员或登录才能观看的网站,请先在浏览器内另开标签页登录对应账号,以获取下载权限。",
|
||
instructionSection1Sub2: "智能识别:",
|
||
instructionSection1Item3Label: "YouTube 作者订阅:",
|
||
instructionSection1Item3Text:
|
||
"当粘贴链接为作者个人空间时,系统将询问是否订阅。订阅后,系统可设定时间间隔,自动扫描并下载该作者的更新。",
|
||
instructionSection1Item4Label: "Bilibili 合集下载:",
|
||
instructionSection1Item4Text:
|
||
"当粘贴链接为 Bilibili 收藏夹/合集时,系统将询问是否下载整个合集内容。",
|
||
instructionSection1Sub3: "高级工具(下载管理页):",
|
||
instructionSection1Item5Label: "批量添加任务:",
|
||
instructionSection1Item5Text:
|
||
"支持一次性粘贴多个下载链接(请按行区分),进行批量添加。",
|
||
instructionSection1Item6Label: "扫描文件:",
|
||
instructionSection1Item6Text:
|
||
"自动搜索视频储存根目录及一级文件夹下的所有文件。此功能适用于管理员在服务器后台直接存入文件后,将其批量同步至系统。",
|
||
instructionSection1Item7Label: "上传视频:",
|
||
instructionSection1Item7Text:
|
||
"支持直接从客户端单独上传本地视频文件到服务器。",
|
||
|
||
instructionSection2Title: "2. 视频库管理",
|
||
instructionSection2Desc: "对已下载或导入的视频资源进行维护和编辑。",
|
||
instructionSection2Sub1: "合集/视频删除:",
|
||
instructionSection2Text1:
|
||
"在管理页面删除合集时,系统提供两种选择:仅删除合集列表项(保留文件),或连同合集内的物理文件一并彻底删除。",
|
||
instructionSection2Sub2: "缩略图修复:",
|
||
instructionSection2Text2:
|
||
"若遇到下载后视频无封面的情况,可点击视频缩略图上的刷新按钮,系统将重新抓取视频首帧作为新的缩略图。",
|
||
|
||
instructionSection3Title: "3. 系统设置",
|
||
instructionSection3Desc: "配置系统参数、维护数据及扩展功能。",
|
||
instructionSection3Sub1: "安全设定:",
|
||
instructionSection3Text1:
|
||
"设置系统登录密码(默认初始密码为 123,建议首次登录后修改)。",
|
||
instructionSection3Sub2: "标签管理:",
|
||
instructionSection3Text2:
|
||
"支持添加或删除视频分类标签。注意: 所有操作完成后,必须点击页面底端的“保存”按钮方可生效。",
|
||
instructionSection3Sub3: "系统维护:",
|
||
instructionSection3Item1Label: "清理临时文件:",
|
||
instructionSection3Item1Text:
|
||
"用于清除因后端偶发故障而残留的临时下载文件,释放空间。",
|
||
instructionSection3Item2Label: "数据库迁移:",
|
||
instructionSection3Item2Text:
|
||
"专为早期版本用户设计。使用此功能可将数据从 JSON 迁移至新的 SQLite 数据库。迁移成功后,可点击删除按钮清理旧的历史数据。",
|
||
instructionSection3Sub4: "扩展服务:",
|
||
instructionSection3Item3Label: "OpenList 云盘:",
|
||
instructionSection3Item3Text:
|
||
"(开发中)支持连接用户自行部署的 OpenList 服务,在此处添加配置后可实现云盘联动。",
|
||
|
||
// Sorting
|
||
sort: "排序",
|
||
sortBy: "排序方式",
|
||
dateDesc: "添加日期 (最新)",
|
||
dateAsc: "添加日期 (最早)",
|
||
viewsDesc: "观看次数 (从高到低)",
|
||
viewsAsc: "观看次数 (从低到高)",
|
||
nameAsc: "名称 (A-Z)",
|
||
random: "随机播放",
|
||
|
||
// yt-dlp Configuration
|
||
ytDlpConfiguration: "yt-dlp 配置",
|
||
ytDlpConfigurationDescription: "配置 yt-dlp 下载选项。详见",
|
||
ytDlpConfigurationDocs: "文档",
|
||
ytDlpConfigurationDescriptionEnd: "了解更多信息。",
|
||
customize: "自定义",
|
||
hide: "隐藏",
|
||
reset: "重置",
|
||
more: "更多",
|
||
proxyOnlyApplyToYoutube: "代理仅应用于Youtube",
|
||
moveSubtitlesToVideoFolder: "字幕位置",
|
||
moveSubtitlesToVideoFolderOn: "与视频在同一文件夹",
|
||
moveSubtitlesToVideoFolderOff: "在独立字幕文件夹",
|
||
moveSubtitlesToVideoFolderDescription:
|
||
"启用后,字幕文件将被移动到与视频文件相同的文件夹中。禁用后,它们将被移动到独立的字幕文件夹中。",
|
||
moveThumbnailsToVideoFolder: "封面位置",
|
||
moveThumbnailsToVideoFolderOn: "与视频在一起",
|
||
moveThumbnailsToVideoFolderOff: "在独立的图片文件夹中",
|
||
moveThumbnailsToVideoFolderDescription:
|
||
"启用后,封面文件将被移动到与视频文件相同的文件夹中。禁用后,它们将被移动到独立的图片文件夹中。",
|
||
|
||
// Cloudflare Tunnel
|
||
cloudflaredTunnel: "Cloudflare 穿透",
|
||
enableCloudflaredTunnel: "启用 Cloudflare 穿透",
|
||
cloudflaredToken: "Token",
|
||
cloudflaredTokenHelper: "在此粘贴您的 Token,或留空以使用随机 Quick Tunnel。",
|
||
|
||
// Database Export/Import
|
||
exportImportDatabase: "导出/导入数据库",
|
||
exportImportDatabaseDescription:
|
||
"将数据库导出为备份文件或导入之前导出的备份。导入将使用备份数据覆盖现有数据。",
|
||
exportDatabase: "导出数据库",
|
||
importDatabase: "导入数据库",
|
||
onlyDbFilesAllowed: "仅允许 .db 文件",
|
||
importDatabaseWarning:
|
||
"警告:导入数据库将覆盖所有现有数据。请确保首先导出当前数据库作为备份。",
|
||
selectDatabaseFile: "选择数据库文件",
|
||
databaseExportedSuccess: "数据库导出成功",
|
||
databaseExportFailed: "数据库导出失败",
|
||
databaseImportedSuccess: "数据库导入成功。现有数据已被备份数据覆盖。",
|
||
databaseImportFailed: "数据库导入失败",
|
||
cleanupBackupDatabases: "清理备份数据库",
|
||
cleanupBackupDatabasesWarning:
|
||
"警告:此操作将永久删除所有在之前导入时创建的备份数据库文件(mytube-backup-*.db.backup)。此操作无法撤销。您确定要继续吗?",
|
||
backupDatabasesCleanedUp: "备份数据库清理成功",
|
||
backupDatabasesCleanupFailed: "清理备份数据库失败",
|
||
restoreFromLastBackup: "从最后备份恢复",
|
||
restoreFromLastBackupWarning:
|
||
"警告:这将从最后一个自动备份文件恢复数据库。所有当前数据将被备份数据覆盖。此操作无法撤销。您确定要继续吗?",
|
||
restoreFromLastBackupSuccess: "从备份成功恢复数据库",
|
||
restoreFromLastBackupFailed: "从备份恢复失败",
|
||
lastBackupDate: "最后备份日期",
|
||
noBackupAvailable: "没有可用的备份",
|
||
};
|