diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index 67235d68..a0fdca28 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -244,39 +244,6 @@ export default { recognitionWords: 'Recognition Words', cancelShare: 'Cancel Share', usageCount: 'Used {count} times', - basicSettings: 'Basic Settings', - basicSettingsDesc: 'Set subscription mode, cycle and other basic settings', - mode: 'Subscription Mode', - modeHint: 'Auto: automatically crawl site homepage, Site RSS: subscribe via site RSS link', - rssInterval: 'Site RSS Interval', - rssIntervalHint: 'Set the site RSS running cycle, effective when subscription mode is `Site RSS`', - filterRuleGroup: 'Subscription Priority Rule Group', - filterRuleGroupHint: 'Filter subscriptions based on selected filter rule groups', - bestVersionRuleGroup: 'Version Upgrade Priority Rule Group', - bestVersionRuleGroupHint: 'Filter version upgrade subscriptions based on selected filter rule groups', - timedSearch: 'Subscription Scheduled Search', - timedSearchHint: 'Search all sites every 24 hours to supplement resources that may be missed by subscription', - checkLocalMedia: 'Check Local Media Library', - checkLocalMediaHint: 'Check if resources exist on storage disk to avoid duplicate downloads', - subscribeSites: 'Subscription Sites', - subscribeSitesDesc: 'Only selected sites will be used in subscription.', - saveSuccess: 'Subscription sites saved successfully', - saveFailed: 'Failed to save subscription sites!', - settingsSaveSuccess: 'Subscription basic settings saved successfully', - settingsSaveFailed: 'Failed to save subscription basic settings!', - modes: { - auto: 'Auto', - rss: 'Site RSS', - }, - intervals: { - min5: '5 minutes', - min10: '10 minutes', - min20: '20 minutes', - min30: '30 minutes', - hour1: '1 hour', - hour12: '12 hours', - day1: '1 day', - }, }, recommend: { all: 'All', @@ -361,49 +328,6 @@ export default { site: { noSites: 'No Sites', sitesWillBeShownHere: 'Added and supported sites will be displayed here.', - siteSync: 'Site Synchronization', - siteSyncDesc: 'Quickly sync site data from CookieCloud.', - enableLocalCookieCloud: 'Enable Local CookieCloud Server', - enableLocalCookieCloudHint: - 'Use built-in CookieCloud service to sync site data, service address: http://localhost:3000/cookiecloud', - serviceAddress: 'Service Address', - serviceAddressPlaceholder: 'https://movie-pilot.org/cookiecloud', - serviceAddressHint: 'Remote CookieCloud service address, format: https://movie-pilot.org/cookiecloud', - userKey: 'User KEY', - userKeyHint: 'User KEY generated by CookieCloud browser plugin', - e2ePassword: 'End-to-End Encryption Password', - e2ePasswordHint: 'End-to-end encryption password generated by CookieCloud browser plugin', - autoSyncInterval: 'Auto Sync Interval', - autoSyncIntervalHint: 'Time interval for automatically syncing site cookies from CookieCloud server to MoviePilot', - syncBlacklist: 'Sync Domain Blacklist', - syncBlacklistPlaceholder: 'Multiple domains, separated by commas', - syncBlacklistHint: 'CookieCloud sync domain blacklist, multiple domains separated by commas', - userAgent: 'Browser User-Agent', - userAgentHint: 'User-Agent of the browser with CookieCloud plugin', - siteDataRefresh: 'Site Data Refresh', - siteDataRefreshInterval: 'Site Data Refresh Interval', - siteDataRefreshIntervalHint: 'Time interval for refreshing site user upload/download data', - readSiteMessage: 'Read Site Messages', - readSiteMessageHint: 'Read site messages and send notifications when refreshing data', - siteReset: 'Site Reset', - confirmReset: 'Confirm to delete all site data and resync.', - confirmResetHint: - 'Delete all site data and resync from CookieCloud. Please clear all related site settings before this operation.', - resetSites: 'Reset Site Data', - resettingSites: 'Resetting...', - syncInterval: { - hourly: 'Hourly', - every6Hours: 'Every 6 Hours', - every12Hours: 'Every 12 Hours', - daily: 'Daily', - weekly: 'Weekly', - monthly: 'Monthly', - never: 'Never', - }, - saveSuccess: 'Site settings saved successfully', - saveFailed: 'Failed to save site settings!', - resetSuccess: 'Sites reset successfully, please wait for CookieCloud sync to complete!', - resetFailed: 'Failed to reset sites!', }, message: { loadMore: 'Load More', @@ -516,6 +440,52 @@ export default { copyError: 'Copy failed!', reloading: 'Applying configuration...', }, + site: { + siteSync: 'Site Synchronization', + siteSyncDesc: 'Quickly sync site data from CookieCloud.', + enableLocalCookieCloud: 'Enable Local CookieCloud Server', + enableLocalCookieCloudHint: + 'Use built-in CookieCloud service to sync site data, service address: http://localhost:3000/cookiecloud', + serviceAddress: 'Service Address', + serviceAddressPlaceholder: 'https://movie-pilot.org/cookiecloud', + serviceAddressHint: 'Remote CookieCloud service address, format: https://movie-pilot.org/cookiecloud', + userKey: 'User KEY', + userKeyHint: 'User KEY generated by CookieCloud browser plugin', + e2ePassword: 'End-to-End Encryption Password', + e2ePasswordHint: 'End-to-end encryption password generated by CookieCloud browser plugin', + autoSyncInterval: 'Auto Sync Interval', + autoSyncIntervalHint: + 'Time interval for automatically syncing site cookies from CookieCloud server to MoviePilot', + syncBlacklist: 'Sync Domain Blacklist', + syncBlacklistPlaceholder: 'Multiple domains, separated by commas', + syncBlacklistHint: 'CookieCloud sync domain blacklist, multiple domains separated by commas', + userAgent: 'Browser User-Agent', + userAgentHint: 'User-Agent of the browser with CookieCloud plugin', + siteDataRefresh: 'Site Data Refresh', + siteDataRefreshInterval: 'Site Data Refresh Interval', + siteDataRefreshIntervalHint: 'Time interval for refreshing site user upload/download data', + readSiteMessage: 'Read Site Messages', + readSiteMessageHint: 'Read site messages and send notifications when refreshing data', + siteReset: 'Site Reset', + confirmReset: 'Confirm to delete all site data and resync.', + confirmResetHint: + 'Delete all site data and resync from CookieCloud. Please clear all related site settings before this operation.', + resetSites: 'Reset Site Data', + resettingSites: 'Resetting...', + syncInterval: { + hourly: 'Hourly', + every6Hours: 'Every 6 Hours', + every12Hours: 'Every 12 Hours', + daily: 'Daily', + weekly: 'Weekly', + monthly: 'Monthly', + never: 'Never', + }, + saveSuccess: 'Site settings saved successfully', + saveFailed: 'Failed to save site settings!', + resetSuccess: 'Sites reset successfully, please wait for CookieCloud sync to complete!', + resetFailed: 'Failed to reset sites!', + }, notification: { channels: 'Notification Channels', channelsDesc: 'Set message sending channel parameters.', @@ -644,60 +614,95 @@ export default { organizeSaveFailed: 'Failed to save organization options!', duplicateDirectoryName: 'Duplicate directory names exist! Cannot save, please modify!', }, - }, - rule: { - customRules: 'Custom Rules', - customRulesDesc: 'Custom priority rule items', - priorityRuleGroups: 'Priority Rule Groups', - priorityRuleGroupsDesc: 'Preset priority rule groups for use in search and subscription.', - downloadRules: 'Download Rules', - downloadRulesDesc: 'Prioritize downloads when multiple resources match.', - currentPriorityRules: 'Current Download Priority Rules', - currentPriorityRulesHint: 'Higher priority for items at the front, unselected items are not included in sorting', - saveSuccess: 'Custom rules saved successfully', - saveFailed: 'Failed to save custom rules!', - groupSaveSuccess: 'Priority rule groups saved successfully', - groupSaveFailed: 'Failed to save priority rule groups!', - prioritySaveSuccess: 'Priority rules saved successfully', - prioritySaveFailed: 'Failed to save priority rules!', - emptyRuleId: 'Rules with empty IDs exist! Cannot save, please modify!', - emptyRuleName: 'Rules with empty names exist! Cannot save, please modify!', - duplicateRuleId: 'Duplicate rule IDs exist! Cannot save, please modify!', - duplicateRuleName: 'Duplicate rule names exist! Cannot save, please modify!', - emptyGroupName: 'Rule groups with empty names exist! Cannot save, please modify!', - duplicateGroupName: 'Duplicate rule group names exist! Cannot save, please modify!', - copySuccess: 'Copied to clipboard!', - copyFailed: 'Copy failed: browser may not support or user blocked!', - copyError: 'Copy failed!', - importCustomRules: 'Import Custom Rules', - importRuleGroups: 'Import Priority Rule Groups', - importFailed: 'Failed to import rules! Cannot parse input data!', - importUnknownType: 'Failed to import rules! Unknown data type!', - duplicateValue: 'Duplicate values exist', - importNoId: 'Import failed! Found rules without IDs, may belong to priority rule groups!', - importHasId: 'Import failed! Found rules with IDs, may belong to custom rules!', - torrentPriority: { - torrent: 'Resource Priority', - site: 'Site Priority', - upload: 'Site Upload Amount', - seeder: 'Resource Seeders', + rule: { + customRules: 'Custom Rules', + customRulesDesc: 'Custom priority rule items', + priorityRuleGroups: 'Priority Rule Groups', + priorityRuleGroupsDesc: 'Preset priority rule groups for use in search and subscription.', + downloadRules: 'Download Rules', + downloadRulesDesc: 'Prioritize downloads when multiple resources match.', + currentPriorityRules: 'Current Download Priority Rules', + currentPriorityRulesHint: 'Higher priority for items at the front, unselected items are not included in sorting', + saveSuccess: 'Custom rules saved successfully', + saveFailed: 'Failed to save custom rules!', + groupSaveSuccess: 'Priority rule groups saved successfully', + groupSaveFailed: 'Failed to save priority rule groups!', + prioritySaveSuccess: 'Priority rules saved successfully', + prioritySaveFailed: 'Failed to save priority rules!', + emptyRuleId: 'Rules with empty IDs exist! Cannot save, please modify!', + emptyRuleName: 'Rules with empty names exist! Cannot save, please modify!', + duplicateRuleId: 'Duplicate rule IDs exist! Cannot save, please modify!', + duplicateRuleName: 'Duplicate rule names exist! Cannot save, please modify!', + emptyGroupName: 'Rule groups with empty names exist! Cannot save, please modify!', + duplicateGroupName: 'Duplicate rule group names exist! Cannot save, please modify!', + copySuccess: 'Copied to clipboard!', + copyFailed: 'Copy failed: browser may not support or user blocked!', + copyError: 'Copy failed!', + importCustomRules: 'Import Custom Rules', + importRuleGroups: 'Import Priority Rule Groups', + importFailed: 'Failed to import rules! Cannot parse input data!', + importUnknownType: 'Failed to import rules! Unknown data type!', + duplicateValue: 'Duplicate values exist', + importNoId: 'Import failed! Found rules without IDs, may belong to priority rule groups!', + importHasId: 'Import failed! Found rules with IDs, may belong to custom rules!', + torrentPriority: { + torrent: 'Resource Priority', + site: 'Site Priority', + upload: 'Site Upload Amount', + seeder: 'Resource Seeders', + }, }, - }, - scheduler: { - scheduledTasks: 'Scheduled Tasks', - scheduledTasksDesc: - 'Includes system built-in services and plugin-provided services. Manual execution will not affect the normal schedule of tasks.', - provider: 'Provider', - taskName: 'Task Name', - taskStatus: 'Task Status', - nextRunTime: 'Next Run Time', - execute: 'Execute', - noServices: 'No background services', - submitSuccess: 'Task execution request submitted successfully!', - status: { - running: 'Running', - stopped: 'Stopped', - waiting: 'Waiting', + scheduler: { + scheduledTasks: 'Scheduled Tasks', + scheduledTasksDesc: + 'Includes system built-in services and plugin-provided services. Manual execution will not affect the normal schedule of tasks.', + provider: 'Provider', + taskName: 'Task Name', + taskStatus: 'Task Status', + nextRunTime: 'Next Run Time', + execute: 'Execute', + noServices: 'No background services', + submitSuccess: 'Task execution request submitted successfully!', + status: { + running: 'Running', + stopped: 'Stopped', + waiting: 'Waiting', + }, + }, + subscribe: { + basicSettings: 'Basic Settings', + basicSettingsDesc: 'Set subscription mode, cycle and other basic settings', + mode: 'Subscription Mode', + modeHint: 'Auto: automatically crawl site homepage, Site RSS: subscribe via site RSS link', + rssInterval: 'Site RSS Interval', + rssIntervalHint: 'Set the site RSS running cycle, effective when subscription mode is `Site RSS`', + filterRuleGroup: 'Subscription Priority Rule Group', + filterRuleGroupHint: 'Filter subscriptions based on selected filter rule groups', + bestVersionRuleGroup: 'Version Upgrade Priority Rule Group', + bestVersionRuleGroupHint: 'Filter version upgrade subscriptions based on selected filter rule groups', + timedSearch: 'Subscription Scheduled Search', + timedSearchHint: 'Search all sites every 24 hours to supplement resources that may be missed by subscription', + checkLocalMedia: 'Check Local Media Library', + checkLocalMediaHint: 'Check if resources exist on storage disk to avoid duplicate downloads', + subscribeSites: 'Subscription Sites', + subscribeSitesDesc: 'Only selected sites will be used in subscription.', + saveSuccess: 'Subscription sites saved successfully', + saveFailed: 'Failed to save subscription sites!', + settingsSaveSuccess: 'Subscription basic settings saved successfully', + settingsSaveFailed: 'Failed to save subscription basic settings!', + modes: { + auto: 'Auto', + rss: 'Site RSS', + }, + intervals: { + min5: '5 minutes', + min10: '10 minutes', + min20: '20 minutes', + min30: '30 minutes', + hour1: '1 hour', + hour12: '12 hours', + day1: '1 day', + }, }, }, } diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 9f7723bc..4b36e3ce 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -242,39 +242,6 @@ export default { recognitionWords: '识别词', cancelShare: '取消分享', usageCount: '共 {count} 次复用', - basicSettings: '基础设置', - basicSettingsDesc: '设定订阅模式、周期等基础设置', - mode: '订阅模式', - modeHint: '自动:自动爬取站点首页,站点RSS:通过站点RSS链接订阅', - rssInterval: '站点RSS周期', - rssIntervalHint: '设置站点RSS运行周期,在订阅模式为`站点RSS`时生效', - filterRuleGroup: '订阅优先级规则组', - filterRuleGroupHint: '按选定的过滤规则组对订阅进行过滤', - bestVersionRuleGroup: '洗版优先级规则组', - bestVersionRuleGroupHint: '按选定的过滤规则组对洗版订阅进行过滤', - timedSearch: '订阅定时搜索', - timedSearchHint: '每隔24小时全站搜索,以补全订阅可能漏掉的资源', - checkLocalMedia: '检查本地媒体库资源', - checkLocalMediaHint: '检查存储盘是否存在资源,以避免重复下载', - subscribeSites: '订阅站点', - subscribeSitesDesc: '只有选中的站点才会在订阅中使用。', - saveSuccess: '订阅站点保存成功', - saveFailed: '订阅站点保存失败!', - settingsSaveSuccess: '订阅基础设置保存成功', - settingsSaveFailed: '订阅基础设置保存失败!', - modes: { - auto: '自动', - rss: '站点RSS', - }, - intervals: { - min5: '5分钟', - min10: '10分钟', - min20: '20分钟', - min30: '半小时', - hour1: '1小时', - hour12: '12小时', - day1: '1天', - }, }, recommend: { all: '全部', @@ -400,38 +367,6 @@ export default { saveFailed: '站点设置保存失败!', resetSuccess: '站点重置成功,请等待CookieCloud同步完成!', resetFailed: '站点重置失败!', - 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: '检查站点资源是否有单独的字幕文件并自动下载', - }, }, message: { loadMore: '加载更多', @@ -612,80 +547,147 @@ export default { excludeWordsSaveSuccess: '文件整理屏蔽词保存成功', excludeWordsSaveFailed: '文件整理屏蔽词保存失败!', }, - }, - directory: { - storage: '存储', - storageDesc: '设置本地或网盘存储。', - directory: '目录', - directoryDesc: '设置媒体文件整理目录结构,按先后顺序依次匹配。', - organizeAndScrap: '整理 & 刮削', - organizeAndScrapDesc: '设置重命名格式、刮削选项等。', - scrapSource: '刮削数据源', - scrapSourceHint: '刮削时的元数据来源', - movieRenameFormat: '电影重命名格式', - movieRenameFormatHint: '使用Jinja2语法,格式参考:https://jinja.palletsprojects.com/en/3.0.x/templates', - tvRenameFormat: '电视剧重命名格式', - tvRenameFormatHint: '使用Jinja2语法,格式参考:https://jinja.palletsprojects.com/en/3.0.x/templates', - saveSuccess: '存储设置保存成功', - saveFailed: '存储设置保存失败!', - directorySaveSuccess: '目录设置保存成功', - directorySaveFailed: '目录设置保存失败!', - organizeSaveSuccess: '整理选项设置保存成功', - organizeSaveFailed: '整理选项设置保存失败!', - duplicateDirectoryName: '存在重复目录名称!无法保存,请修改!', - }, - rule: { - customRules: '自定义规则', - customRulesDesc: '自定义优先级规则项', - priorityRuleGroups: '优先级规则组', - priorityRuleGroupsDesc: '预设优先级规则组,以便在搜索和订阅中使用。', - downloadRules: '下载规则', - downloadRulesDesc: '同时命中多个资源时择优下载。', - currentPriorityRules: '当前使用下载优先规则', - currentPriorityRulesHint: '排在前面的优先级越高,未选择的项不纳入排序', - saveSuccess: '自定义规则保存成功', - saveFailed: '自定义规则保存失败!', - groupSaveSuccess: '优先级规则组保存成功', - groupSaveFailed: '优先级规则组保存失败!', - prioritySaveSuccess: '优先规则保存成功', - prioritySaveFailed: '优先规则保存失败!', - emptyRuleId: '存在空ID的规则,无法保存,请修改!', - emptyRuleName: '存在空名字的规则,无法保存,请修改!', - duplicateRuleId: '存在重复规则ID!无法保存,请修改!', - duplicateRuleName: '存在重复规则名称!无法保存,请修改!', - emptyGroupName: '存在空名字的规则组!无法保存,请修改!', - duplicateGroupName: '存在重复规则组名称!无法保存,请修改!', - copySuccess: '已复制到剪贴板!', - copyFailed: '复制失败:可能是浏览器不支持或被用户阻止!', - copyError: '复制失败!', - importCustomRules: '导入自定义规则', - importRuleGroups: '导入优先级规则组', - importFailed: '导入规则失败!无法解析输入的数据!', - importUnknownType: '导入规则失败!未知的数据类型!', - duplicateValue: '存在重名值', - importNoId: '导入失败!发现有规则不存在ID,可能属于优先级规则组!', - importHasId: '导入失败!发现有规则存在相同ID,可能属于自定义规则!', - torrentPriority: { - torrent: '资源优先级', - site: '站点优先级', - upload: '站点上传量', - seeder: '资源做种数', + 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: '检查站点资源是否有单独的字幕文件并自动下载', }, - }, - scheduler: { - scheduledTasks: '定时作业', - scheduledTasksDesc: '包含系统内置服务以及插件提供的服务,手动执行不会影响作业正常的时间表。', - provider: '提供者', - taskName: '任务名称', - taskStatus: '任务状态', - nextRunTime: '下一次执行时间', - execute: '执行', - noServices: '没有后台服务', - submitSuccess: '定时作业执行请求提交成功!', - status: { - running: '正在运行', - stopped: '已停止', - waiting: '等待', + directory: { + storage: '存储', + storageDesc: '设置本地或网盘存储。', + directory: '目录', + directoryDesc: '设置媒体文件整理目录结构,按先后顺序依次匹配。', + organizeAndScrap: '整理 & 刮削', + organizeAndScrapDesc: '设置重命名格式、刮削选项等。', + scrapSource: '刮削数据源', + scrapSourceHint: '刮削时的元数据来源', + movieRenameFormat: '电影重命名格式', + movieRenameFormatHint: '使用Jinja2语法,格式参考:https://jinja.palletsprojects.com/en/3.0.x/templates', + tvRenameFormat: '电视剧重命名格式', + tvRenameFormatHint: '使用Jinja2语法,格式参考:https://jinja.palletsprojects.com/en/3.0.x/templates', + saveSuccess: '存储设置保存成功', + saveFailed: '存储设置保存失败!', + directorySaveSuccess: '目录设置保存成功', + directorySaveFailed: '目录设置保存失败!', + organizeSaveSuccess: '整理选项设置保存成功', + organizeSaveFailed: '整理选项设置保存失败!', + duplicateDirectoryName: '存在重复目录名称!无法保存,请修改!', + }, + rule: { + customRules: '自定义规则', + customRulesDesc: '自定义优先级规则项', + priorityRuleGroups: '优先级规则组', + priorityRuleGroupsDesc: '预设优先级规则组,以便在搜索和订阅中使用。', + downloadRules: '下载规则', + downloadRulesDesc: '同时命中多个资源时择优下载。', + currentPriorityRules: '当前使用下载优先规则', + currentPriorityRulesHint: '排在前面的优先级越高,未选择的项不纳入排序', + saveSuccess: '自定义规则保存成功', + saveFailed: '自定义规则保存失败!', + groupSaveSuccess: '优先级规则组保存成功', + groupSaveFailed: '优先级规则组保存失败!', + prioritySaveSuccess: '优先规则保存成功', + prioritySaveFailed: '优先规则保存失败!', + emptyRuleId: '存在空ID的规则,无法保存,请修改!', + emptyRuleName: '存在空名字的规则,无法保存,请修改!', + duplicateRuleId: '存在重复规则ID!无法保存,请修改!', + duplicateRuleName: '存在重复规则名称!无法保存,请修改!', + emptyGroupName: '存在空名字的规则组!无法保存,请修改!', + duplicateGroupName: '存在重复规则组名称!无法保存,请修改!', + copySuccess: '已复制到剪贴板!', + copyFailed: '复制失败:可能是浏览器不支持或被用户阻止!', + copyError: '复制失败!', + importCustomRules: '导入自定义规则', + importRuleGroups: '导入优先级规则组', + importFailed: '导入规则失败!无法解析输入的数据!', + importUnknownType: '导入规则失败!未知的数据类型!', + duplicateValue: '存在重名值', + importNoId: '导入失败!发现有规则不存在ID,可能属于优先级规则组!', + importHasId: '导入失败!发现有规则存在相同ID,可能属于自定义规则!', + torrentPriority: { + torrent: '资源优先级', + site: '站点优先级', + upload: '站点上传量', + seeder: '资源做种数', + }, + }, + scheduler: { + scheduledTasks: '定时作业', + scheduledTasksDesc: '包含系统内置服务以及插件提供的服务,手动执行不会影响作业正常的时间表。', + provider: '提供者', + taskName: '任务名称', + taskStatus: '任务状态', + nextRunTime: '下一次执行时间', + execute: '执行', + noServices: '没有后台服务', + submitSuccess: '定时作业执行请求提交成功!', + status: { + running: '正在运行', + stopped: '已停止', + waiting: '等待', + }, + }, + subscribe: { + basicSettings: '基础设置', + basicSettingsDesc: '设定订阅模式、周期等基础设置', + mode: '订阅模式', + modeHint: '自动:自动爬取站点首页,站点RSS:通过站点RSS链接订阅', + rssInterval: '站点RSS周期', + rssIntervalHint: '设置站点RSS运行周期,在订阅模式为`站点RSS`时生效', + filterRuleGroup: '订阅优先级规则组', + filterRuleGroupHint: '按选定的过滤规则组对订阅进行过滤', + bestVersionRuleGroup: '洗版优先级规则组', + bestVersionRuleGroupHint: '按选定的过滤规则组对洗版订阅进行过滤', + timedSearch: '订阅定时搜索', + timedSearchHint: '每隔24小时全站搜索,以补全订阅可能漏掉的资源', + checkLocalMedia: '检查本地媒体库资源', + checkLocalMediaHint: '检查存储盘是否存在资源,以避免重复下载', + subscribeSites: '订阅站点', + subscribeSitesDesc: '只有选中的站点才会在订阅中使用。', + saveSuccess: '订阅站点保存成功', + saveFailed: '订阅站点保存失败!', + settingsSaveSuccess: '订阅基础设置保存成功', + settingsSaveFailed: '订阅基础设置保存失败!', + modes: { + auto: '自动', + rss: '站点RSS', + }, + intervals: { + min5: '5分钟', + min10: '10分钟', + min20: '20分钟', + min30: '半小时', + hour1: '1小时', + hour12: '12小时', + day1: '1天', + }, }, }, } diff --git a/src/views/setting/AccountSettingSite.vue b/src/views/setting/AccountSettingSite.vue index 01cb1bda..e3680693 100644 --- a/src/views/setting/AccountSettingSite.vue +++ b/src/views/setting/AccountSettingSite.vue @@ -17,7 +17,7 @@ const progressDialog = ref(false) const isConfirmResetSites = ref(false) // 站点重置按钮文本 -const resetSitesText = ref(t('site.resetSites')) +const resetSitesText = ref(t('setting.site.resetSites')) // 站点重置按钮可用状态 const resetSitesDisabled = ref(false) @@ -43,37 +43,37 @@ const siteSetting = ref({ // 同步间隔下拉框 const CookieCloudIntervalItems = [ - { title: t('site.syncInterval.hourly'), value: 60 }, - { title: t('site.syncInterval.every6Hours'), value: 360 }, - { title: t('site.syncInterval.every12Hours'), value: 720 }, - { title: t('site.syncInterval.daily'), value: 1440 }, - { title: t('site.syncInterval.weekly'), value: 10080 }, - { title: t('site.syncInterval.monthly'), value: 43200 }, - { title: t('site.syncInterval.never'), value: 0 }, + { title: t('setting.site.syncInterval.hourly'), value: 60 }, + { title: t('setting.site.syncInterval.every6Hours'), value: 360 }, + { title: t('setting.site.syncInterval.every12Hours'), value: 720 }, + { title: t('setting.site.syncInterval.daily'), value: 1440 }, + { title: t('setting.site.syncInterval.weekly'), value: 10080 }, + { title: t('setting.site.syncInterval.monthly'), value: 43200 }, + { title: t('setting.site.syncInterval.never'), value: 0 }, ] // 站点数据刷新间隔 const SiteDataRefreshIntervalItems = [ - { title: t('site.syncInterval.hourly'), value: 1 }, - { title: t('site.syncInterval.every6Hours'), value: 6 }, - { title: t('site.syncInterval.every12Hours'), value: 12 }, - { title: t('site.syncInterval.daily'), value: 24 }, - { title: t('site.syncInterval.weekly'), value: 168 }, - { title: t('site.syncInterval.never'), value: 0 }, + { title: t('setting.site.syncInterval.hourly'), value: 1 }, + { title: t('setting.site.syncInterval.every6Hours'), value: 6 }, + { title: t('setting.site.syncInterval.every12Hours'), value: 12 }, + { title: t('setting.site.syncInterval.daily'), value: 24 }, + { title: t('setting.site.syncInterval.weekly'), value: 168 }, + { title: t('setting.site.syncInterval.never'), value: 0 }, ] // 重置站点 async function resetSites() { try { resetSitesDisabled.value = true - resetSitesText.value = t('site.resettingSites') + resetSitesText.value = t('setting.site.resettingSites') const result: { [key: string]: any } = await api.get('site/reset') - if (result.success) $toast.success(t('site.resetSuccess')) - else $toast.error(t('site.resetFailed')) + if (result.success) $toast.success(t('setting.site.resetSuccess')) + else $toast.error(t('setting.site.resetFailed')) resetSitesDisabled.value = false - resetSitesText.value = t('site.resetSites') + resetSitesText.value = t('setting.site.resetSites') } catch (error) { console.log(error) } @@ -115,10 +115,10 @@ async function saveSiteSetting(value: { [key: string]: any }) { try { const result: { [key: string]: any } = await api.post('system/env', value) if (result.success) { - $toast.success(t('site.saveSuccess')) + $toast.success(t('setting.site.saveSuccess')) await reloadSystem() } else { - $toast.error(t('site.saveFailed')) + $toast.error(t('setting.site.saveFailed')) } } catch (error) { console.log(error) @@ -137,8 +137,8 @@ onMounted(() => { - {{ t('site.siteSync') }} - {{ t('site.siteSyncDesc') }} + {{ t('setting.site.siteSync') }} + {{ t('setting.site.siteSyncDesc') }} @@ -146,8 +146,8 @@ onMounted(() => { @@ -156,18 +156,18 @@ onMounted(() => { @@ -177,34 +177,34 @@ onMounted(() => { :type="isPasswordVisible ? 'text' : 'password'" :append-inner-icon="isPasswordVisible ? 'mdi-eye-off-outline' : 'mdi-eye-outline'" @click:append-inner="isPasswordVisible = !isPasswordVisible" - :label="t('site.e2ePassword')" - :hint="t('site.e2ePasswordHint')" + :label="t('setting.site.e2ePassword')" + :hint="t('setting.site.e2ePasswordHint')" persistent-hint /> @@ -223,16 +223,16 @@ onMounted(() => { - + @@ -241,8 +241,8 @@ onMounted(() => { @@ -261,13 +261,13 @@ onMounted(() => { - +