diff --git a/src/renderer/components/Task/TaskActions.vue b/src/renderer/components/Task/TaskActions.vue index 743ecda0b..0b8a962c4 100644 --- a/src/renderer/components/Task/TaskActions.vue +++ b/src/renderer/components/Task/TaskActions.vue @@ -1,5 +1,18 @@ diff --git a/src/renderer/store/modules/task.js b/src/renderer/store/modules/task.js index 0bb63f429..edd23b76e 100644 --- a/src/renderer/store/modules/task.js +++ b/src/renderer/store/modules/task.js @@ -1,9 +1,9 @@ -import api from '@/api' -import { EMPTY_STRING, TASK_STATUS } from '@shared/constants' -import { checkTaskIsBT, intersection } from '@shared/utils' +import api from "@/api"; +import { EMPTY_STRING, TASK_STATUS } from "@shared/constants"; +import { checkTaskIsBT, intersection } from "@shared/utils"; const state = { - currentList: 'active', + currentList: "active", taskDetailVisible: false, currentTaskGid: EMPTY_STRING, enabledFetchPeers: false, @@ -12,301 +12,283 @@ const state = { currentTaskPeers: [], seedingList: [], taskList: [], - selectedGidList: [] -} + selectedGidList: [], +}; -const getters = { -} +const getters = {}; const mutations = { - UPDATE_SEEDING_LIST (state, seedingList) { - state.seedingList = seedingList + UPDATE_SEEDING_LIST(state, seedingList) { + state.seedingList = seedingList; }, - UPDATE_TASK_LIST (state, taskList) { - state.taskList = taskList + UPDATE_TASK_LIST(state, taskList) { + state.taskList = taskList; }, - UPDATE_SELECTED_GID_LIST (state, gidList) { - state.selectedGidList = gidList + UPDATE_SELECTED_GID_LIST(state, gidList) { + state.selectedGidList = gidList; }, - CHANGE_CURRENT_LIST (state, currentList) { - state.currentList = currentList + CHANGE_CURRENT_LIST(state, currentList) { + state.currentList = currentList; }, - CHANGE_TASK_DETAIL_VISIBLE (state, visible) { - state.taskDetailVisible = visible + CHANGE_TASK_DETAIL_VISIBLE(state, visible) { + state.taskDetailVisible = visible; }, - UPDATE_CURRENT_TASK_GID (state, gid) { - state.currentTaskGid = gid + UPDATE_CURRENT_TASK_GID(state, gid) { + state.currentTaskGid = gid; }, - UPDATE_ENABLED_FETCH_PEERS (state, enabled) { - state.enabledFetchPeers = enabled + UPDATE_ENABLED_FETCH_PEERS(state, enabled) { + state.enabledFetchPeers = enabled; }, - UPDATE_CURRENT_TASK_ITEM (state, task) { - state.currentTaskItem = task + UPDATE_CURRENT_TASK_ITEM(state, task) { + state.currentTaskItem = task; }, - UPDATE_CURRENT_TASK_FILES (state, files) { - state.currentTaskFiles = files + UPDATE_CURRENT_TASK_FILES(state, files) { + state.currentTaskFiles = files; }, - UPDATE_CURRENT_TASK_PEERS (state, peers) { - state.currentTaskPeers = peers - } -} + UPDATE_CURRENT_TASK_PEERS(state, peers) { + state.currentTaskPeers = peers; + }, +}; const actions = { - changeCurrentList ({ commit, dispatch }, currentList) { - commit('CHANGE_CURRENT_LIST', currentList) - commit('UPDATE_SELECTED_GID_LIST', []) - dispatch('fetchList') - }, - fetchList ({ commit, state }) { - return api.fetchTaskList({ type: state.currentList }) - .then((data) => { - commit('UPDATE_TASK_LIST', data) + changeCurrentList({ commit, dispatch }, currentList) { + commit("CHANGE_CURRENT_LIST", currentList); + commit("UPDATE_SELECTED_GID_LIST", []); + dispatch("fetchList"); + }, + fetchList({ commit, state }) { + return api.fetchTaskList({ type: state.currentList }).then((data) => { + commit("UPDATE_TASK_LIST", data); - const { selectedGidList } = state - const gids = data.map((task) => task.gid) - const list = intersection(selectedGidList, gids) - commit('UPDATE_SELECTED_GID_LIST', list) - }) - }, - selectTasks ({ commit }, list) { - commit('UPDATE_SELECTED_GID_LIST', list) - }, - selectAllTask ({ commit, state }) { - const gids = state.taskList.map((task) => task.gid) - commit('UPDATE_SELECTED_GID_LIST', gids) - }, - fetchItem ({ dispatch }, gid) { - return api.fetchTaskItem({ gid }) - .then((data) => { - dispatch('updateCurrentTaskItem', data) - }) - }, - fetchItemWithPeers ({ dispatch }, gid) { - return api.fetchTaskItemWithPeers({ gid }) - .then((data) => { - console.log('fetchItemWithPeers===>', data) - dispatch('updateCurrentTaskItem', data) - }) - }, - showTaskDetailByGid ({ commit, dispatch }, gid) { - api.fetchTaskItem({ gid }) - .then((task) => { - dispatch('updateCurrentTaskItem', task) - commit('UPDATE_CURRENT_TASK_GID', task.gid) - commit('CHANGE_TASK_DETAIL_VISIBLE', true) - }) - }, - showTaskDetail ({ commit, dispatch }, task) { - dispatch('updateCurrentTaskItem', task) - commit('UPDATE_CURRENT_TASK_GID', task.gid) - commit('CHANGE_TASK_DETAIL_VISIBLE', true) - }, - hideTaskDetail ({ commit }) { - commit('CHANGE_TASK_DETAIL_VISIBLE', false) - }, - toggleEnabledFetchPeers ({ commit }, enabled) { - commit('UPDATE_ENABLED_FETCH_PEERS', enabled) - }, - updateCurrentTaskItem ({ commit }, task) { - commit('UPDATE_CURRENT_TASK_ITEM', task) + const { selectedGidList } = state; + const gids = data.map((task) => task.gid); + const list = intersection(selectedGidList, gids); + commit("UPDATE_SELECTED_GID_LIST", list); + }); + }, + selectTasks({ commit }, list) { + commit("UPDATE_SELECTED_GID_LIST", list); + }, + selectAllTask({ commit, state }) { + const gids = state.taskList.map((task) => task.gid); + commit("UPDATE_SELECTED_GID_LIST", gids); + }, + fetchItem({ dispatch }, gid) { + return api.fetchTaskItem({ gid }).then((data) => { + dispatch("updateCurrentTaskItem", data); + }); + }, + fetchItemWithPeers({ dispatch }, gid) { + return api.fetchTaskItemWithPeers({ gid }).then((data) => { + console.log("fetchItemWithPeers===>", data); + dispatch("updateCurrentTaskItem", data); + }); + }, + showTaskDetailByGid({ commit, dispatch }, gid) { + api.fetchTaskItem({ gid }).then((task) => { + dispatch("updateCurrentTaskItem", task); + commit("UPDATE_CURRENT_TASK_GID", task.gid); + commit("CHANGE_TASK_DETAIL_VISIBLE", true); + }); + }, + showTaskDetail({ commit, dispatch }, task) { + dispatch("updateCurrentTaskItem", task); + commit("UPDATE_CURRENT_TASK_GID", task.gid); + commit("CHANGE_TASK_DETAIL_VISIBLE", true); + }, + hideTaskDetail({ commit }) { + commit("CHANGE_TASK_DETAIL_VISIBLE", false); + }, + toggleEnabledFetchPeers({ commit }, enabled) { + commit("UPDATE_ENABLED_FETCH_PEERS", enabled); + }, + updateCurrentTaskItem({ commit }, task) { + commit("UPDATE_CURRENT_TASK_ITEM", task); if (task) { - commit('UPDATE_CURRENT_TASK_FILES', task.files) - commit('UPDATE_CURRENT_TASK_PEERS', task.peers) + commit("UPDATE_CURRENT_TASK_FILES", task.files); + commit("UPDATE_CURRENT_TASK_PEERS", task.peers); } else { - commit('UPDATE_CURRENT_TASK_FILES', []) - commit('UPDATE_CURRENT_TASK_PEERS', []) + commit("UPDATE_CURRENT_TASK_FILES", []); + commit("UPDATE_CURRENT_TASK_PEERS", []); } }, - updateCurrentTaskGid ({ commit }, gid) { - commit('UPDATE_CURRENT_TASK_GID', gid) - }, - addUri ({ dispatch }, data) { - const { uris, outs, options } = data - return api.addUri({ uris, outs, options }) - .then(() => { - dispatch('fetchList') - dispatch('app/updateAddTaskOptions', {}, { root: true }) - }) - }, - addTorrent ({ dispatch }, data) { - const { torrent, options } = data - return api.addTorrent({ torrent, options }) - .then(() => { - dispatch('fetchList') - dispatch('app/updateAddTaskOptions', {}, { root: true }) - }) + updateCurrentTaskGid({ commit }, gid) { + commit("UPDATE_CURRENT_TASK_GID", gid); + }, + addUri({ dispatch }, data) { + const { uris, outs, options } = data; + return api.addUri({ uris, outs, options }).then(() => { + dispatch("fetchList"); + dispatch("app/updateAddTaskOptions", {}, { root: true }); + }); + }, + addTorrent({ dispatch }, data) { + const { torrent, options } = data; + return api.addTorrent({ torrent, options }).then(() => { + dispatch("fetchList"); + dispatch("app/updateAddTaskOptions", {}, { root: true }); + }); + }, + addMetalink({ dispatch }, data) { + const { metalink, options } = data; + return api.addMetalink({ metalink, options }).then(() => { + dispatch("fetchList"); + dispatch("app/updateAddTaskOptions", {}, { root: true }); + }); + }, + getTaskOption(_, gid) { + return new Promise((resolve) => { + api.getOption({ gid }).then((data) => { + resolve(data); + }); + }); }, - addMetalink ({ dispatch }, data) { - const { metalink, options } = data - return api.addMetalink({ metalink, options }) - .then(() => { - dispatch('fetchList') - dispatch('app/updateAddTaskOptions', {}, { root: true }) - }) + changeTaskOption(_, payload) { + const { gid, options } = payload; + return api.changeOption({ gid, options }); }, - getTaskOption (_, gid) { - return new Promise((resolve) => { - api.getOption({ gid }) - .then((data) => { - resolve(data) - }) - }) - }, - changeTaskOption (_, payload) { - const { gid, options } = payload - return api.changeOption({ gid, options }) - }, - removeTask ({ state, dispatch }, task) { - const { gid } = task + removeTask({ state, dispatch }, task) { + const { gid } = task; if (gid === state.currentTaskGid) { - dispatch('hideTaskDetail') + dispatch("hideTaskDetail"); } - return api.removeTask({ gid }) - .finally(() => { - dispatch('fetchList') - dispatch('saveSession') - }) + return api.removeTask({ gid }).finally(() => { + dispatch("fetchList"); + dispatch("saveSession"); + }); }, - forcePauseTask ({ dispatch }, task) { - const { gid, status } = task + forcePauseTask({ dispatch }, task) { + const { gid, status } = task; if (status !== TASK_STATUS.ACTIVE) { - return Promise.resolve(true) + return Promise.resolve(true); } - return api.forcePauseTask({ gid }) - .finally(() => { - dispatch('fetchList') - dispatch('saveSession') - }) - }, - pauseTask ({ dispatch }, task) { - const { gid } = task - const isBT = checkTaskIsBT(task) - const promise = isBT ? api.forcePauseTask({ gid }) : api.pauseTask({ gid }) + return api.forcePauseTask({ gid }).finally(() => { + dispatch("fetchList"); + dispatch("saveSession"); + }); + }, + pauseTask({ dispatch }, task) { + const { gid } = task; + const isBT = checkTaskIsBT(task); + const promise = isBT ? api.forcePauseTask({ gid }) : api.pauseTask({ gid }); promise.finally(() => { - dispatch('fetchList') - dispatch('saveSession') - }) - return promise - }, - resumeTask ({ dispatch }, task) { - const { gid } = task - return api.resumeTask({ gid }) - .finally(() => { - dispatch('fetchList') - dispatch('saveSession') - }) - }, - pauseAllTask ({ dispatch }) { - return api.pauseAllTask() + dispatch("fetchList"); + dispatch("saveSession"); + }); + return promise; + }, + resumeTask({ dispatch }, task) { + const { gid } = task; + return api.resumeTask({ gid }).finally(() => { + dispatch("fetchList"); + dispatch("saveSession"); + }); + }, + pauseAllTask({ dispatch }) { + return api + .pauseAllTask() .catch(() => { - return api.forcePauseAllTask() + return api.forcePauseAllTask(); }) .finally(() => { - dispatch('fetchList') - dispatch('saveSession') - }) - }, - resumeAllTask ({ dispatch }) { - return api.resumeAllTask() - .finally(() => { - dispatch('fetchList') - dispatch('saveSession') - }) - }, - addToSeedingList ({ state, commit }, gid) { - const { seedingList } = state + dispatch("fetchList"); + dispatch("saveSession"); + }); + }, + resumeAllTask({ dispatch }) { + return api.resumeAllTask().finally(() => { + dispatch("fetchList"); + dispatch("saveSession"); + }); + }, + addToSeedingList({ state, commit }, gid) { + const { seedingList } = state; if (seedingList.includes(gid)) { - return + return; } - const list = [ - ...seedingList, - gid - ] - commit('UPDATE_SEEDING_LIST', list) - }, - removeFromSeedingList ({ state, commit }, gid) { - const { seedingList } = state - const idx = seedingList.indexOf(gid) + const list = [...seedingList, gid]; + commit("UPDATE_SEEDING_LIST", list); + }, + removeFromSeedingList({ state, commit }, gid) { + const { seedingList } = state; + const idx = seedingList.indexOf(gid); if (idx === -1) { - return + return; } - const list = [...seedingList.slice(0, idx), ...seedingList.slice(idx + 1)] - commit('UPDATE_SEEDING_LIST', list) + const list = [...seedingList.slice(0, idx), ...seedingList.slice(idx + 1)]; + commit("UPDATE_SEEDING_LIST", list); }, - stopSeeding ({ dispatch }, { gid }) { + stopSeeding({ dispatch }, { gid }) { const options = { - seedTime: 0 - } - return dispatch('changeTaskOption', { gid, options }) + seedTime: 0, + }; + return dispatch("changeTaskOption", { gid, options }); }, - removeTaskRecord ({ state, dispatch }, task) { - const { gid, status } = task + removeTaskRecord({ state, dispatch }, task) { + const { gid, status } = task; if (gid === state.currentTaskGid) { - dispatch('hideTaskDetail') + dispatch("hideTaskDetail"); } - const { ERROR, COMPLETE, REMOVED } = TASK_STATUS + const { ERROR, COMPLETE, REMOVED } = TASK_STATUS; if ([ERROR, COMPLETE, REMOVED].indexOf(status) === -1) { - return + return; } - return api.removeTaskRecord({ gid }) - .finally(() => dispatch('fetchList')) + return api.removeTaskRecord({ gid }).finally(() => dispatch("fetchList")); }, - saveSession () { - api.saveSession() + saveSession() { + api.saveSession(); }, - purgeTaskRecord ({ dispatch }) { - return api.purgeTaskRecord() - .finally(() => dispatch('fetchList')) + purgeTaskRecord({ dispatch }) { + return api.purgeTaskRecord().finally(() => dispatch("fetchList")); }, - toggleTask ({ dispatch }, task) { - const { status } = task - const { ACTIVE, WAITING, PAUSED } = TASK_STATUS + toggleTask({ dispatch }, task) { + const { status } = task; + const { ACTIVE, WAITING, PAUSED } = TASK_STATUS; if (status === ACTIVE) { - return dispatch('pauseTask', task) + return dispatch("pauseTask", task); } else if (status === WAITING || status === PAUSED) { - return dispatch('resumeTask', task) + return dispatch("resumeTask", task); } }, - batchResumeSelectedTasks ({ state }) { - const gids = state.selectedGidList + batchResumeSelectedTasks({ state }) { + const gids = state.selectedGidList; if (gids.length === 0) { - return + return; } - return api.batchResumeTask({ gids }) + return api.batchResumeTask({ gids }); }, - batchPauseSelectedTasks ({ state }) { - const gids = state.selectedGidList + batchPauseSelectedTasks({ state }) { + const gids = state.selectedGidList; if (gids.length === 0) { - return + return; } - return api.batchPauseTask({ gids }) + return api.batchPauseTask({ gids }); }, - batchForcePauseTask (_, gids) { - return api.batchForcePauseTask({ gids }) + batchForcePauseTask(_, gids) { + return api.batchForcePauseTask({ gids }); }, - batchResumeTask (_, gids) { - return api.batchResumeTask({ gids }) + batchResumeTask(_, gids) { + return api.batchResumeTask({ gids }); }, - batchRemoveTask ({ dispatch }, gids) { - return api.batchRemoveTask({ gids }) - .finally(() => { - dispatch('fetchList') - dispatch('saveSession') - }) - } -} + batchRemoveTask({ dispatch }, gids) { + return api.batchRemoveTask({ gids }).finally(() => { + dispatch("fetchList"); + dispatch("saveSession"); + }); + }, +}; export default { namespaced: true, state, getters, mutations, - actions -} + actions, +}; diff --git a/src/shared/locales/en-US/task.js b/src/shared/locales/en-US/task.js index eb60b2687..7a128737b 100644 --- a/src/shared/locales/en-US/task.js +++ b/src/shared/locales/en-US/task.js @@ -1,120 +1,131 @@ export default { - 'active': 'Downloading', - 'waiting': 'Waiting', - 'stopped': 'Stopped', - 'new-task': 'New Task', - 'new-bt-task': 'New BT Task', - 'open-file': 'Open Torrent File...', - 'uri-task': 'URL', - 'torrent-task': 'Torrent', - 'uri-task-tips': 'One task url per line (supports magnet)', - 'thunder-link-tips': 'Tip: Thunder links may not be downloadable after decoding', - 'new-task-uris-required': 'Please enter at least one valid resource url', - 'new-task-torrent-required': 'Please select a torrent file', - 'file-name': 'Name', - 'file-extension': 'Extension', - 'file-size': 'Size', - 'file-completed-size': 'Completed', - 'selected-files-sum': 'Selected: {{selectedFilesCount}} files, total size {{selectedFilesTotalSize}}', - 'select-at-least-one': 'Please select at least one file', - 'task-gid': 'GID', - 'task-name': 'Task Name', - 'task-out': 'Rename', - 'task-out-tips': 'Optional', - 'task-split': 'Splits', - 'task-dir': 'Save to', - 'pause-task': 'Pause Task', - 'task-ua': 'UA', - 'task-user-agent': 'User-Agent', - 'task-authorization': 'Authorization', - 'task-referer': 'Referer', - 'task-cookie': 'Cookie', - 'task-proxy': 'Proxy', - 'task-error-info': 'Error', - 'task-piece': 'Piece', - 'task-piece-length': 'Piece Size', - 'task-num-pieces': 'Pieces', - 'task-bittorrent-info': 'Torrent Info', - 'task-info-hash': 'Hash', - 'task-bittorrent-creation-date': 'Creation Date', - 'task-bittorrent-comment': 'Comment', - 'task-progress-info': 'Progress', - 'task-status': 'Status', - 'task-num-seeders': 'Seeders', - 'task-connections': 'Connections', - 'task-file-size': 'Size', - 'task-download-speed': 'Download Speed', - 'task-upload-speed': 'Upload Speed', - 'task-download-length': 'Downloaded', - 'task-upload-length': 'Uploaded', - 'task-ratio': 'Ratio', - 'task-peer-host': 'Host', - 'task-peer-ip': 'IP', - 'task-peer-client': 'Client', - 'navigate-to-downloading': 'Navigate to Downloading', - 'show-advanced-options': 'Advanced Options', - 'copyright-warning': 'Copyright Warning', - 'copyright-warning-message': 'The file you want to download may be copyrighted audio or video, please ensure that you have permission to access to it.', - 'copyright-yes': 'Yes, I have permission', - 'copyright-no': 'No, I don\'t have permission', - 'copyright-error-message': 'Failed to add task due to copyright issue', - 'pause-task-success': 'Successfully paused task "{{taskName}}"', - 'pause-task-fail': 'Failed to pause task "{{taskName}}"', - 'resume-task': 'Resume Task', - 'resume-task-success': 'Successfully resumed task "{{taskName}}"', - 'resume-task-fail': 'Failed to resume task "{{taskName}}"', - 'delete-task': 'Delete Task', - 'delete-selected-tasks': 'Delete Selected Tasks', - 'delete-task-confirm': 'Are you sure you want to remove download task "{{taskName}}"?', - 'batch-delete-task-confirm': 'Are you sure you want to remove {{count}} download tasks in batch?', - 'delete-task-label': 'Delete with Files', - 'delete-task-success': 'Successfully deleted task "{{taskName}}"', - 'delete-task-fail': 'Failed to delete task "{{taskName}}"', - 'remove-task-file-fail': 'Failed to delete task file(s), please delete them manually', - 'remove-task-config-file-fail': 'Failed to delete task config file, please delete it manually', - 'move-task-up': 'Move Task Up', - 'move-task-down': 'Move Task Down', - 'pause-all-task': 'Pause All Tasks', - 'pause-all-task-success': 'Successfully paused all tasks', - 'pause-all-task-fail': 'Failed to pause all tasks', - 'resume-all-task': 'Resume All Tasks', - 'resume-all-task-success': 'Successfully resumed all tasks', - 'resume-all-task-fail': 'Failed to resume all tasks', - 'select-all-task': 'Select All Tasks', - 'clear-recent-tasks': 'Clear Recent Tasks', - 'purge-record': 'Purge Task Record', - 'purge-record-success': 'Successfully purged task records', - 'purge-record-fail': 'Failed to purge task records', - 'batch-delete-task-success': 'Successfully delete tasks in batch', - 'batch-delete-task-fail': 'Failed to delete tasks in batch', - 'refresh-list': 'Refresh Task List', - 'no-task': 'There are no current tasks', - 'copy-link': 'Copy Link', - 'copy-link-success': 'Successfully copied link', - 'remove-record': 'Remove Task Record', - 'remove-record-confirm': 'Are you sure you want to remove download record for "{{taskName}}"?', - 'remove-record-label': 'Delete with Files', - 'remove-record-success': 'Successfully removed task record for "{{taskName}}"', - 'remove-record-fail': 'Failed to remove task record for "{{taskName}}"', - 'show-in-folder': 'Show Task In Folder', - 'file-not-exist': 'Target file does not exist or has been deleted', - 'file-path-error': 'File path error', - 'opening-task-message': 'Opening "{{taskName}}" ...', - 'get-task-name': 'Getting task name...', - 'remaining-prefix': 'Remaining', - 'select-torrent': 'Drag torrent file here, or click to select', - 'task-detail-title': 'Task Details', - 'task-info-dialog-title': '{{title}} Details', - 'download-start-message': 'Started downloading {{taskName}}', - 'download-pause-message': 'Paused downloading {{taskName}}', - 'download-stop-message': 'Stopped downloading {{taskName}}', - 'download-error-message': 'Error occurred when downloading {{taskName}}', - 'download-complete-message': 'Completed downloading {{taskName}}', - 'download-complete-notify': 'Download Completed', - 'bt-download-complete-message': 'Completed downloading {{taskName}}, seeding', - 'bt-download-complete-notify': 'BT Download Completed, seeding...', - 'bt-download-complete-tips': 'Tips: You can stop a task to end its seeding', - 'bt-stopping-seeding-tip': 'Stopping seeding, it will take some time to disconnect, please wait patiently', - 'download-fail-message': 'Failed to download {{taskName}}', - 'download-fail-notify': 'Download Failed' -} + active: "Downloading", + waiting: "Waiting", + stopped: "Stopped", + "new-task": "New Task", + "new-bt-task": "New BT Task", + "open-file": "Open Torrent File...", + "uri-task": "URL", + "torrent-task": "Torrent", + "uri-task-tips": "One task url per line (supports magnet)", + "thunder-link-tips": + "Tip: Thunder links may not be downloadable after decoding", + "new-task-uris-required": "Please enter at least one valid resource url", + "new-task-torrent-required": "Please select a torrent file", + "file-name": "Name", + "file-extension": "Extension", + "file-size": "Size", + "file-completed-size": "Completed", + "selected-files-sum": + "Selected: {{selectedFilesCount}} files, total size {{selectedFilesTotalSize}}", + "select-at-least-one": "Please select at least one file", + "task-gid": "GID", + "task-name": "Task Name", + "task-out": "Rename", + "task-out-tips": "Optional", + "task-split": "Splits", + "task-dir": "Save to", + "pause-task": "Pause Task", + "task-ua": "UA", + "task-user-agent": "User-Agent", + "task-authorization": "Authorization", + "task-referer": "Referer", + "task-cookie": "Cookie", + "task-proxy": "Proxy", + "task-error-info": "Error", + "task-piece": "Piece", + "task-piece-length": "Piece Size", + "task-num-pieces": "Pieces", + "task-bittorrent-info": "Torrent Info", + "task-info-hash": "Hash", + "task-bittorrent-creation-date": "Creation Date", + "task-bittorrent-comment": "Comment", + "task-progress-info": "Progress", + "task-status": "Status", + "task-num-seeders": "Seeders", + "task-connections": "Connections", + "task-file-size": "Size", + "task-download-speed": "Download Speed", + "task-upload-speed": "Upload Speed", + "task-download-length": "Downloaded", + "task-upload-length": "Uploaded", + "task-ratio": "Ratio", + "task-peer-host": "Host", + "task-peer-ip": "IP", + "task-peer-client": "Client", + "navigate-to-downloading": "Navigate to Downloading", + "show-advanced-options": "Advanced Options", + "copyright-warning": "Copyright Warning", + "copyright-warning-message": + "The file you want to download may be copyrighted audio or video, please ensure that you have permission to access to it.", + "copyright-yes": "Yes, I have permission", + "copyright-no": "No, I don't have permission", + "copyright-error-message": "Failed to add task due to copyright issue", + "pause-task-success": 'Successfully paused task "{{taskName}}"', + "pause-task-fail": 'Failed to pause task "{{taskName}}"', + "resume-task": "Resume Task", + "resume-task-success": 'Successfully resumed task "{{taskName}}"', + "resume-task-fail": 'Failed to resume task "{{taskName}}"', + "delete-task": "Delete Task", + "delete-selected-tasks": "Delete Selected Tasks", + "delete-task-confirm": + 'Are you sure you want to remove download task "{{taskName}}"?', + "batch-delete-task-confirm": + "Are you sure you want to remove {{count}} download tasks in batch?", + "delete-task-label": "Delete with Files", + "delete-task-success": 'Successfully deleted task "{{taskName}}"', + "delete-task-fail": 'Failed to delete task "{{taskName}}"', + "remove-task-file-fail": + "Failed to delete task file(s), please delete them manually", + "remove-task-config-file-fail": + "Failed to delete task config file, please delete it manually", + "move-task-up": "Move Task Up", + "move-task-down": "Move Task Down", + "pause-all-task": "Pause All Tasks", + "pause-all-task-success": "Successfully paused all tasks", + "pause-all-task-fail": "Failed to pause all tasks", + "resume-all-task": "Resume All Tasks", + "resume-all-task-success": "Successfully resumed all tasks", + "resume-all-task-fail": "Failed to resume all tasks", + "select-all-task": "Select All Tasks", + "clear-recent-tasks": "Clear Recent Tasks", + "purge-record": "Purge Task Record", + "purge-record-success": "Successfully purged task records", + "purge-record-fail": "Failed to purge task records", + "batch-delete-task-success": "Successfully delete tasks in batch", + "batch-delete-task-fail": "Failed to delete tasks in batch", + "refresh-list": "Refresh Task List", + "no-task": "There are no current tasks", + "copy-link": "Copy Link", + "copy-link-success": "Successfully copied link", + "remove-record": "Remove Task Record", + "remove-record-confirm": + 'Are you sure you want to remove download record for "{{taskName}}"?', + "remove-record-label": "Delete with Files", + "remove-record-success": + 'Successfully removed task record for "{{taskName}}"', + "remove-record-fail": 'Failed to remove task record for "{{taskName}}"', + "show-in-folder": "Show Task In Folder", + "file-not-exist": "Target file does not exist or has been deleted", + "file-path-error": "File path error", + "opening-task-message": 'Opening "{{taskName}}" ...', + "get-task-name": "Getting task name...", + "remaining-prefix": "Remaining", + "select-torrent": "Drag torrent file here, or click to select", + "task-detail-title": "Task Details", + "task-info-dialog-title": "{{title}} Details", + "download-start-message": "Started downloading {{taskName}}", + "download-pause-message": "Paused downloading {{taskName}}", + "download-stop-message": "Stopped downloading {{taskName}}", + "download-error-message": "Error occurred when downloading {{taskName}}", + "download-complete-message": "Completed downloading {{taskName}}", + "download-complete-notify": "Download Completed", + "bt-download-complete-message": "Completed downloading {{taskName}}, seeding", + "bt-download-complete-notify": "BT Download Completed, seeding...", + "bt-download-complete-tips": "Tips: You can stop a task to end its seeding", + "bt-stopping-seeding-tip": + "Stopping seeding, it will take some time to disconnect, please wait patiently", + "download-fail-message": "Failed to download {{taskName}}", + "download-fail-notify": "Download Failed", + "all-task": "Select All Tasks", +}; diff --git a/src/shared/locales/zh-CN/task.js b/src/shared/locales/zh-CN/task.js index 1790ff0f4..6f38054f5 100644 --- a/src/shared/locales/zh-CN/task.js +++ b/src/shared/locales/zh-CN/task.js @@ -1,120 +1,123 @@ export default { - 'active': '下载中', - 'waiting': '等待中', - 'stopped': '已停止', - 'new-task': '新建任务', - 'new-bt-task': '新建 BT 任务', - 'open-file': '打开种子文件...', - 'uri-task': '链接任务', - 'torrent-task': '种子任务', - 'uri-task-tips': '添加多个下载链接时,请确保每行只有一个链接(支持磁力链)', - 'thunder-link-tips': '友情提示:迅雷链接解码之后的资源不一定存在', - 'new-task-uris-required': '请至少输入一个有效的下载地址', - 'new-task-torrent-required': '请先选择种子文件', - 'file-name': '文件名', - 'file-extension': '扩展名', - 'file-size': '大小', - 'file-completed-size': '已完成', - 'selected-files-sum': '已选:{{selectedFilesCount}}个文件,共 {{selectedFilesTotalSize}}', - 'select-at-least-one': '请选择至少一个文件', - 'task-gid': 'GID', - 'task-name': '任务名称', - 'task-out': '重命名', - 'task-out-tips': '选填', - 'task-split': '分片数', - 'task-dir': '存储路径', - 'task-ua': 'UA', - 'task-user-agent': 'User-Agent', - 'task-authorization': 'Authorization', - 'task-referer': 'Referer', - 'task-cookie': 'Cookie', - 'task-proxy': '代理', - 'task-error-info': '错误信息', - 'task-piece': '分片', - 'task-piece-length': '分片大小', - 'task-num-pieces': '分片数量', - 'task-bittorrent-info': '种子信息', - 'task-info-hash': 'Hash', - 'task-bittorrent-creation-date': '发布时间', - 'task-bittorrent-comment': '备注', - 'task-progress-info': '任务进度', - 'task-status': '任务状态', - 'task-num-seeders': '种子数', - 'task-connections': '连接数', - 'task-file-size': '文件大小', - 'task-download-speed': '下载速度', - 'task-upload-speed': '上传速度', - 'task-download-length': '已下载', - 'task-upload-length': '已上传', - 'task-ratio': '分享率', - 'task-peer-host': '服务器', - 'task-peer-ip': 'IP', - 'task-peer-client': '客户端', - 'navigate-to-downloading': '跳转到下载页面', - 'show-advanced-options': '高级选项', - 'copyright-warning': '版权提醒', - 'copyright-warning-message': '您要下载的文件可能是有版权的音视频,请确保您有相应的版权方授权。', - 'copyright-yes': '是,我有版权方授权', - 'copyright-no': '否', - 'copyright-error-message': '因版权问题,添加任务失败', - 'pause-task': '暂停任务', - 'pause-task-success': '暂停任务 "{{taskName}}" 成功', - 'pause-task-fail': '暂停任务 "{{taskName}}" 失败', - 'resume-task': '恢复任务', - 'resume-task-success': '恢复任务 "{{taskName}}" 成功', - 'resume-task-fail': '恢复任务 "{{taskName}}" 失败', - 'delete-task': '移除任务', - 'delete-selected-tasks': '移除选中的任务', - 'delete-task-confirm': '你确定要移除 "{{taskName}}" 下载任务吗?', - 'batch-delete-task-confirm': '你确定要批量移除{{count}}个下载任务吗?', - 'delete-task-label': '同时删除文件', - 'delete-task-success': '移除任务 "{{taskName}}" 成功', - 'delete-task-fail': '移除任务 "{{taskName}}" 失败', - 'remove-task-file-fail': '删除任务文件失败,请手动删除', - 'remove-task-config-file-fail': '删除任务配置文件失败,请手动删除', - 'move-task-up': '上移任务', - 'move-task-down': '下移任务', - 'pause-all-task': '暂停所有任务', - 'pause-all-task-success': '暂停所有任务成功', - 'pause-all-task-fail': '暂停所有任务失败', - 'resume-all-task': '恢复所有任务', - 'resume-all-task-success': '恢复所有任务成功', - 'resume-all-task-fail': '恢复所有任务失败', - 'select-all-task': '选中所有任务', - 'clear-recent-tasks': '清除最近的下载记录', - 'purge-record': '清除下载记录', - 'purge-record-success': '清除下载记录成功', - 'purge-record-fail': '清除下载记录失败', - 'batch-delete-task-success': '批量移除任务成功', - 'batch-delete-task-fail': '批量移除任务失败', - 'refresh-list': '刷新任务列表', - 'no-task': '当前没有下载任务', - 'copy-link': '拷贝链接', - 'copy-link-success': '拷贝链接成功', - 'remove-record': '移除下载记录', - 'remove-record-confirm': '你确定要移除 "{{taskName}}" 下载记录吗?', - 'remove-record-label': '同时删除文件', - 'remove-record-success': '移除 "{{taskName}}" 下载记录成功', - 'remove-record-fail': '移除 "{{taskName}}" 下载记录失败', - 'show-in-folder': '在文件夹中显示', - 'file-not-exist': '目标文件不存在或已删除', - 'file-path-error': '文件路径异常', - 'opening-task-message': '正在打开 "{{taskName}}" ...', - 'get-task-name': '获取任务名中...', - 'remaining-prefix': '剩余', - 'select-torrent': '将种子拖到此处,或点击选择', - 'task-detail-title': '任务详情', - 'task-info-dialog-title': '{{title}} 详情', - 'download-start-message': '开始下载 {{taskName}}', - 'download-pause-message': '暂停下载 {{taskName}}', - 'download-stop-message': '{{taskName}} 下载中止', - 'download-error-message': '{{taskName}} 下载发生错误', - 'download-complete-message': '{{taskName}} 下载完成', - 'download-complete-notify': '下载完成', - 'bt-download-complete-message': '{{taskName}} 下载完成,正在做种...', - 'bt-download-complete-notify': 'BT 任务下载完成,正在做种...', - 'bt-download-complete-tips': '提示:你可以停止任务结束做种', - 'bt-stopping-seeding-tip': '正在停止做种,断开连接需要些时间,请耐心等待...', - 'download-fail-message': '{{taskName}} 下载失败', - 'download-fail-notify': '下载失败' -} + active: "下载中", + waiting: "等待中", + stopped: "已停止", + "new-task": "新建任务", + "new-bt-task": "新建 BT 任务", + "open-file": "打开种子文件...", + "uri-task": "链接任务", + "torrent-task": "种子任务", + "uri-task-tips": "添加多个下载链接时,请确保每行只有一个链接(支持磁力链)", + "thunder-link-tips": "友情提示:迅雷链接解码之后的资源不一定存在", + "new-task-uris-required": "请至少输入一个有效的下载地址", + "new-task-torrent-required": "请先选择种子文件", + "file-name": "文件名", + "file-extension": "扩展名", + "file-size": "大小", + "file-completed-size": "已完成", + "selected-files-sum": + "已选:{{selectedFilesCount}}个文件,共 {{selectedFilesTotalSize}}", + "select-at-least-one": "请选择至少一个文件", + "task-gid": "GID", + "task-name": "任务名称", + "task-out": "重命名", + "task-out-tips": "选填", + "task-split": "分片数", + "task-dir": "存储路径", + "task-ua": "UA", + "task-user-agent": "User-Agent", + "task-authorization": "Authorization", + "task-referer": "Referer", + "task-cookie": "Cookie", + "task-proxy": "代理", + "task-error-info": "错误信息", + "task-piece": "分片", + "task-piece-length": "分片大小", + "task-num-pieces": "分片数量", + "task-bittorrent-info": "种子信息", + "task-info-hash": "Hash", + "task-bittorrent-creation-date": "发布时间", + "task-bittorrent-comment": "备注", + "task-progress-info": "任务进度", + "task-status": "任务状态", + "task-num-seeders": "种子数", + "task-connections": "连接数", + "task-file-size": "文件大小", + "task-download-speed": "下载速度", + "task-upload-speed": "上传速度", + "task-download-length": "已下载", + "task-upload-length": "已上传", + "task-ratio": "分享率", + "task-peer-host": "服务器", + "task-peer-ip": "IP", + "task-peer-client": "客户端", + "navigate-to-downloading": "跳转到下载页面", + "show-advanced-options": "高级选项", + "copyright-warning": "版权提醒", + "copyright-warning-message": + "您要下载的文件可能是有版权的音视频,请确保您有相应的版权方授权。", + "copyright-yes": "是,我有版权方授权", + "copyright-no": "否", + "copyright-error-message": "因版权问题,添加任务失败", + "pause-task": "暂停任务", + "pause-task-success": '暂停任务 "{{taskName}}" 成功', + "pause-task-fail": '暂停任务 "{{taskName}}" 失败', + "resume-task": "恢复任务", + "resume-task-success": '恢复任务 "{{taskName}}" 成功', + "resume-task-fail": '恢复任务 "{{taskName}}" 失败', + "delete-task": "移除任务", + "delete-selected-tasks": "移除选中的任务", + "delete-task-confirm": '你确定要移除 "{{taskName}}" 下载任务吗?', + "batch-delete-task-confirm": "你确定要批量移除{{count}}个下载任务吗?", + "delete-task-label": "同时删除文件", + "delete-task-success": '移除任务 "{{taskName}}" 成功', + "delete-task-fail": '移除任务 "{{taskName}}" 失败', + "remove-task-file-fail": "删除任务文件失败,请手动删除", + "remove-task-config-file-fail": "删除任务配置文件失败,请手动删除", + "move-task-up": "上移任务", + "move-task-down": "下移任务", + "pause-all-task": "暂停所有任务", + "pause-all-task-success": "暂停所有任务成功", + "pause-all-task-fail": "暂停所有任务失败", + "resume-all-task": "恢复所有任务", + "resume-all-task-success": "恢复所有任务成功", + "resume-all-task-fail": "恢复所有任务失败", + "select-all-task": "选中所有任务", + "clear-recent-tasks": "清除最近的下载记录", + "purge-record": "清除下载记录", + "purge-record-success": "清除下载记录成功", + "purge-record-fail": "清除下载记录失败", + "batch-delete-task-success": "批量移除任务成功", + "batch-delete-task-fail": "批量移除任务失败", + "refresh-list": "刷新任务列表", + "no-task": "当前没有下载任务", + "copy-link": "拷贝链接", + "copy-link-success": "拷贝链接成功", + "remove-record": "移除下载记录", + "remove-record-confirm": '你确定要移除 "{{taskName}}" 下载记录吗?', + "remove-record-label": "同时删除文件", + "remove-record-success": '移除 "{{taskName}}" 下载记录成功', + "remove-record-fail": '移除 "{{taskName}}" 下载记录失败', + "show-in-folder": "在文件夹中显示", + "file-not-exist": "目标文件不存在或已删除", + "file-path-error": "文件路径异常", + "opening-task-message": '正在打开 "{{taskName}}" ...', + "get-task-name": "获取任务名中...", + "remaining-prefix": "剩余", + "select-torrent": "将种子拖到此处,或点击选择", + "task-detail-title": "任务详情", + "task-info-dialog-title": "{{title}} 详情", + "download-start-message": "开始下载 {{taskName}}", + "download-pause-message": "暂停下载 {{taskName}}", + "download-stop-message": "{{taskName}} 下载中止", + "download-error-message": "{{taskName}} 下载发生错误", + "download-complete-message": "{{taskName}} 下载完成", + "download-complete-notify": "下载完成", + "bt-download-complete-message": "{{taskName}} 下载完成,正在做种...", + "bt-download-complete-notify": "BT 任务下载完成,正在做种...", + "bt-download-complete-tips": "提示:你可以停止任务结束做种", + "bt-stopping-seeding-tip": "正在停止做种,断开连接需要些时间,请耐心等待...", + "download-fail-message": "{{taskName}} 下载失败", + "download-fail-notify": "下载失败", + "all-task": "全选", +};