Repository: mayswind/AriaNg Branch: master Commit: 7ad711a4f1e6 Files: 110 Total size: 1.2 MB Directory structure: gitextract_pqu1y9il/ ├── .circleci/ │ └── config.yml ├── .editorconfig ├── .eslintrc.json ├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── gulpfile.js ├── i18n/ │ └── en.sample.txt ├── package.json ├── scripts/ │ └── publish_dailybuild.sh └── src/ ├── index.html ├── langs/ │ ├── cz_CZ.txt │ ├── de_DE.txt │ ├── es.txt │ ├── fr_FR.txt │ ├── it_IT.txt │ ├── ja_JP.txt │ ├── pl_PL.txt │ ├── ru_RU.txt │ ├── zh_Hans.txt │ └── zh_Hant.txt ├── robots.txt ├── scripts/ │ ├── config/ │ │ ├── aria2Errors.js │ │ ├── aria2Options.js │ │ ├── aria2RpcConstants.js │ │ ├── buildConfiguration.js │ │ ├── configuration.js │ │ ├── constants.js │ │ ├── defaultLanguage.js │ │ ├── fileTypes.js │ │ ├── initiator.js │ │ └── languages.js │ ├── controllers/ │ │ ├── command.js │ │ ├── debug.js │ │ ├── list.js │ │ ├── main.js │ │ ├── new.js │ │ ├── settings-aria2.js │ │ ├── settings-ariang.js │ │ ├── status.js │ │ └── task-detail.js │ ├── core/ │ │ ├── __core.js │ │ ├── __fix.js │ │ ├── app.js │ │ ├── root.js │ │ └── router.js │ ├── directives/ │ │ ├── autoFocus.js │ │ ├── blobDownload.js │ │ ├── chart.js │ │ ├── exportCommandApiDialog.js │ │ ├── indeterminate.js │ │ ├── pieceBar.js │ │ ├── pieceMap.js │ │ ├── placeholder.js │ │ ├── setting.js │ │ ├── settingDialog.js │ │ ├── tooltip.js │ │ └── validUrls.js │ ├── filters/ │ │ ├── dateDuration.js │ │ ├── fileOrderBy.js │ │ ├── logOrderBy.js │ │ ├── longDate.js │ │ ├── peerOrderBy.js │ │ ├── percent.js │ │ ├── reverse.js │ │ ├── taskOrderBy.js │ │ ├── taskStatus.js │ │ ├── timeDisplayName.js │ │ └── volume.js │ └── services/ │ ├── aria2HttpRpcService.js │ ├── aria2RpcService.js │ ├── aria2SettingService.js │ ├── aria2TaskService.js │ ├── aria2WebSocketRpcService.js │ ├── ariaNgAssetsCacheService.js │ ├── ariaNgCommonService.js │ ├── ariaNgFileService.js │ ├── ariaNgKeyboardService.js │ ├── ariaNgLanguageLoader.js │ ├── ariaNgLocalizationService.js │ ├── ariaNgLogService.js │ ├── ariaNgMonitorService.js │ ├── ariaNgNotificationService.js │ ├── ariaNgSettingService.js │ ├── ariaNgStorageService.js │ ├── ariaNgTitleService.js │ └── ariaNgVersionService.js ├── styles/ │ ├── controls/ │ │ ├── angular-promise-buttons.css │ │ ├── chart.css │ │ ├── global-status.css │ │ ├── new-task-table.css │ │ ├── piece-bar-map.css │ │ ├── settings-table.css │ │ └── task-table.css │ ├── core/ │ │ ├── core.css │ │ └── extend.css │ └── theme/ │ ├── default-dark.css │ └── default.css └── views/ ├── debug.html ├── export-command-api-dialog.html ├── list.html ├── new.html ├── notification-reloadable.html ├── setting-dialog.html ├── setting.html ├── settings-aria2.html ├── settings-ariang.html ├── status.html └── task-detail.html ================================================ FILE CONTENTS ================================================ ================================================ FILE: .circleci/config.yml ================================================ version: 2 defaults: &defaults docker: - image: circleci/node:14.17.0-browsers working_directory: ~/AriaNg jobs: build: <<: *defaults steps: - checkout - run: npm install - run: sudo npm install -g gulp - run: gulp clean build - save_cache: key: v1-ariang-{{ .Environment.CIRCLE_SHA1 }} paths: - ~/AriaNg publish_daily_build: <<: *defaults steps: - restore_cache: key: v1-ariang-{{ .Environment.CIRCLE_SHA1 }} - add_ssh_keys: fingerprints: - run: bash ./scripts/publish_dailybuild.sh workflows: version: 2 build_and_publish: jobs: - build - publish_daily_build: requires: - build filters: branches: only: master ================================================ FILE: .editorconfig ================================================ # EditorConfig helps developers define and maintain consistent # coding styles between different editors and IDEs # editorconfig.org root = true [*] # change these settings to your own preference indent_style = space indent_size = 4 # we recommend you to keep these unchanged end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false [package.json] indent_style = space indent_size = 2 ================================================ FILE: .eslintrc.json ================================================ { "env": { "browser": true, "node": true }, "extends": [ "angular", "eslint:recommended" ], "parserOptions": { "sourceType": "module" }, "rules": { "indent": [ "error", 4 ], "linebreak-style": [ "error", "unix" ], "quotes": [ "error", "single" ], "semi": [ "error", "always" ] } } ================================================ FILE: .gitattributes ================================================ * text=auto ================================================ FILE: .gitignore ================================================ # Created by .ignore support plugin (hsz.mobi) ### Yeoman template node_modules/ bower_components/ *.log build/ dist/ ### Windows template # Windows image file caches Thumbs.db ehthumbs.db # Folder config file Desktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msm *.msp # Windows shortcuts *.lnk ### Linux template *~ # temporary files which can be created if a process still has a handle open of a deleted file .fuse_hidden* # KDE directory preferences .directory # Linux trash folder which might appear on any partition or disk .Trash-* ### JetBrains template # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 .idea/ *.iml # Mongo Explorer plugin: .idea/mongoSettings.xml ## File-based project format: *.iws ## Plugin-specific files: # IntelliJ /out/ # mpeltonen/sbt-idea plugin .idea_modules/ # JIRA plugin atlassian-ide-plugin.xml # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties fabric.properties ### Node template # Logs logs *.log npm-debug.log* # Runtime data pids *.pid *.seed # Directory for instrumented libs generated by jscoverage/JSCover lib-cov # Coverage directory used by tools like istanbul coverage # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) .grunt # node-waf configuration .lock-wscript # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release # Dependency directories node_modules jspm_packages # Optional npm cache directory .npm # Optional REPL history .node_repl_history ### OSX template .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # Visual Studio Code .vscode/ *.code-workspace .tmp ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2016-2026 MaysWind (i@mayswind.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # AriaNg [![License](https://img.shields.io/github/license/mayswind/AriaNg.svg?style=flat)](https://github.com/mayswind/AriaNg/blob/master/LICENSE) [![Lastest Build](https://img.shields.io/circleci/project/github/mayswind/AriaNg.svg?style=flat)](https://circleci.com/gh/mayswind/AriaNg/tree/master) [![Lastest Release](https://img.shields.io/github/release/mayswind/AriaNg.svg?style=flat)](https://github.com/mayswind/AriaNg/releases) ## Introduction AriaNg is a modern web frontend making [aria2](https://github.com/aria2/aria2) easier to use. AriaNg is written in pure html & javascript, thus it does not need any compilers or runtime environment. You can just put AriaNg in your web server and open it in your browser. AriaNg uses responsive layout, and supports any desktop or mobile devices. ## Features 1. Pure Html & Javascript, no runtime required 2. Responsive design, supporting desktop and mobile devices 3. User-friendly interface * Sort tasks (by name, size, progress, remaining time, download speed, etc.), files, bittorrent peers * Search tasks * Retry tasks * Adjust task order by dragging * More information of tasks (health percentage, client information of bt peers, etc.) * Filter files by specified file types (videos, audios, pictures, documents, applications, archives, etc.) or file extensions * Tree view for multi-directory task * Download / upload speed chart for aria2 or single task * Full support for aria2 settings 4. Dark theme 5. Url command line api support 6. Download finished notification 7. Multi-languages support 8. Multi aria2 RPC host support 9. Exporting and Importing settings support 10. Less bandwidth usage, only requesting incremental data ## Screenshots #### Desktop ![AriaNg](https://raw.githubusercontent.com/mayswind/AriaNg-WebSite/master/screenshots/desktop.png) #### Mobile Device ![AriaNg](https://raw.githubusercontent.com/mayswind/AriaNg-WebSite/master/screenshots/mobile.png) ## Installation AriaNg now provides three versions, standard version, all-in-one version and [AriaNg Native](https://github.com/mayswind/AriaNg-Native). Standard version is suitable for deployment in the web server, and provides on-demand loading. All-In-One version is suitable for local using, and you can download it and just open the only html file in browser. [AriaNg Native](https://github.com/mayswind/AriaNg-Native) is also suitable for local using, and is no need for browser. #### Prebuilt release Latest Release: [https://github.com/mayswind/AriaNg/releases](https://github.com/mayswind/AriaNg/releases) Latest Daily Build (Standard Version): [https://github.com/mayswind/AriaNg-DailyBuild/archive/master.zip](https://github.com/mayswind/AriaNg-DailyBuild/archive/master.zip) #### Building from source Make sure you have [Node.js](https://nodejs.org/), [NPM](https://www.npmjs.com/) and [Gulp](https://gulpjs.com/) installed. Then download the source code, and follow these steps. ##### Standard Version $ npm install $ gulp clean build ##### All-In-One Version $ npm install $ gulp clean build-bundle The builds will be placed in the dist directory. #### Usage Notes Since AriaNg standard version loads language resources asynchronously, you may not open index.html directly on the local file system to run AriaNg. It is recommended that you can use the all-in-one version or deploy AriaNg in a web container or download [AriaNg Native](https://github.com/mayswind/AriaNg-Native) that does not require a browser to run. ## Translating Everyone is welcome to contribute translations. All translations files are put in `/src/langs/`. You can just modify and commit a new pull request. If you want to translate AriaNg to a new language, you can add language configuration to `/src/scripts/config/languages.js`, then copy `/i18n/en.sample.txt` to `/src/langs/` and rename it to the language code to be translated, then you can start the translation work. Currently available translations: | Tag | Language | Contributors | | --- | --- | --- | | cz-CZ | Čeština | [@vorm04](https://github.com/vorm04) | | de-DE | Deutsch | [@Malonsow](https://github.com/Malonsow) | | en | English | / | | es | Español | [@castillofrancodamian](https://github.com/castillofrancodamian) | | fr-FR | Français | [@Valaraukar86](https://github.com/Valaraukar86) | | it-IT | Italiano | [@ale-saglia](https://github.com/ale-saglia) | | ja-JP | 日本語 | [@massangoDa](https://github.com/massangoDa) | | pl-PL | Polski | [@Pirania3680](https://github.com/Pirania3680) | | ru-RU | Русский | [@gazizovemil](https://github.com/gazizovemil) | | zh-Hans | 简体中文 | / | | zh-Hant | 繁體中文 | [@zhtw2013](https://github.com/zhtw2013) [@ChiaYen-Kan](https://github.com/ChiaYen-Kan) | Don't see your language? Help us add it! ## Documents 1. [English](http://ariang.mayswind.net) 2. [Simplified Chinese (简体中文)](http://ariang.mayswind.net/zh_Hans) ## Demo Please visit [http://ariang.mayswind.net/latest](http://ariang.mayswind.net/latest) ## Third Party Extensions There are some third-party applications based on AriaNg, so you can use AriaNg in more scenarios or devices. Please visit [Third Party Extensions](http://ariang.mayswind.net/3rd-extensions.html) for more information. ## License [MIT](https://github.com/mayswind/AriaNg/blob/master/LICENSE) ================================================ FILE: gulpfile.js ================================================ const gulp = require('gulp'); const gulpLoadPlugins = require('gulp-load-plugins'); const browserSync = require('browser-sync'); const del = require('del'); const fs = require('fs'); const git = require('git-rev-sync'); const tryFn = require('nice-try'); const saveLicense = require('uglify-save-license'); const $ = gulpLoadPlugins(); const reload = browserSync.reload; gulp.task('clean', () => del(['.tmp', 'dist'])); gulp.task('lint', () => gulp.src([ 'src/scripts/**/*.js' ]).pipe(reload({stream: true, once: true})) .pipe($.eslint.format()) .pipe($.if(!browserSync.active, $.eslint.failAfterError())) .pipe(gulp.dest('src/scripts'))); gulp.task('prepare-fonts', () => gulp.src([ 'node_modules/font-awesome/fonts/fontawesome-webfont.*' ]).pipe(gulp.dest('.tmp/fonts'))); gulp.task('process-fonts', gulp.series('prepare-fonts', () => gulp.src([ '.tmp/fonts/**/*' ]).pipe(gulp.dest('dist/fonts')))); gulp.task('prepare-langs', () => gulp.src([ 'src/langs/**/*' ]).pipe(gulp.dest('.tmp/langs'))); gulp.task('process-langs', gulp.series('prepare-langs', () => gulp.src([ '.tmp/langs/**/*' ]).pipe(gulp.dest('dist/langs')))); gulp.task('prepare-styles', () => gulp.src([ 'src/styles/**/*.css' ]).pipe($.autoprefixer()) .pipe(gulp.dest('.tmp/styles')) .pipe(reload({stream: true}))); gulp.task('prepare-scripts', () => gulp.src([ 'src/scripts/**/*.js' ]).pipe($.plumber()) .pipe($.injectVersion({replace: '${ARIANG_VERSION}'})) .pipe($.replace(/\${ARIANG_BUILD_COMMIT}/g, tryFn(git.short) || 'Local')) .pipe(gulp.dest('.tmp/scripts')) .pipe(reload({stream: true}))); gulp.task('prepare-views', () => gulp.src([ 'src/views/**/*.html' ]).pipe($.htmlmin({collapseWhitespace: true})) .pipe($.angularTemplatecache({module: 'ariaNg', filename: 'views/templates.js', root: 'views/'})) .pipe(gulp.dest('.tmp/scripts'))); gulp.task('prepare-html', gulp.series('prepare-styles', 'prepare-scripts', 'prepare-views', () => gulp.src([ 'src/*.html' ]).pipe($.useref({searchPath: ['.tmp', 'src', '.']})) .pipe($.if('js/*.js', $.replace(/\/\/# sourceMappingURL=.*/g, ''))) .pipe($.if('css/*.css', $.replace(/\/\*# sourceMappingURL=.* \*\/$/g, ''))) .pipe($.if(['js/moment-with-locales-*.min.js', 'js/plugins.min.js', 'js/aria-ng.min.js'], $.uglify({output: {comments: saveLicense}}))) .pipe($.if(['css/plugins.min.css', 'css/aria-ng.min.css'], $.cssnano({safe: true, autoprefixer: false}))) .pipe($.replace(/url\((\.\.\/fonts\/[a-zA-Z0-9\-]+\.woff2)(\?[a-zA-Z0-9\-_=.]+)?\)/g, (match, fileName) => { return 'url(' + fileName + ')'; // remove version of woff2 file (woff2 file should be cached via application cache) })) .pipe($.if(['js/plugins.min.js', 'js/aria-ng.min.js', 'css/plugins.min.css', 'css/aria-ng.min.css'], $.rev())) .pipe($.if('*.html', $.htmlmin({collapseWhitespace: true}))) .pipe($.revReplace()) .pipe(gulp.dest('.tmp')))); gulp.task('process-html', gulp.series('prepare-html', () => gulp.src([ '.tmp/*.html' ]).pipe($.replace(//, '')) .pipe(gulp.dest('dist')))); gulp.task('process-assets', gulp.series('process-html', () => gulp.src([ '.tmp/css/**/*', '.tmp/js/**/*' ], {base: '.tmp'}) .pipe(gulp.dest('dist')))); gulp.task('prepare-assets-bundle', () => gulp.src([ 'src/favicon.png' ]).pipe(gulp.dest('.tmp'))); gulp.task('process-assets-bundle', gulp.series('prepare-fonts', 'prepare-langs', 'prepare-html', 'prepare-assets-bundle', () => gulp.src('.tmp/index.html') .pipe($.replace(//g, (match, fileName) => { const content = fs.readFileSync('.tmp/' + fileName, 'utf8'); return ''; })) .pipe($.replace(/'; })) .pipe($.replace(/url\(\.\.\/(fonts\/[a-zA-Z0-9\-]+\.woff)(\?[a-zA-Z0-9\-_=.]+)?\)/g, (match, fileName) => { if (!fs.existsSync('.tmp/' + fileName)) { return match; } const contentBuffer = fs.readFileSync('.tmp/' + fileName); const contentBase64 = contentBuffer.toString('base64'); return 'url(data:application/x-font-woff;base64,' + contentBase64 + ')'; })) .pipe($.replace(//g, (match, fileName) => { if (!fs.existsSync('.tmp/' + fileName)) { return match; } const contentBuffer = fs.readFileSync('.tmp/' + fileName); const contentBase64 = contentBuffer.toString('base64'); return ''; })) .pipe($.replace('', () => { const langDir = '.tmp/langs/'; let result = ''; const fileNames = fs.readdirSync(langDir, 'utf8'); if (fileNames.length > 0) { result = ''; } return result; })) .pipe($.replace(/<[a-z]+( [a-z\-]+="[a-zA-Z0-9\- ]+")* [a-z\-]+="((favicon.ico)|(tileicon.png)|(touchicon.png))"\/?>/g, '')) .pipe(gulp.dest('dist')))); gulp.task('process-full-extras', () => gulp.src([ 'LICENSE', 'src/*.*', '!src/*.html' ], { dot: true }).pipe(gulp.dest('dist'))); gulp.task('process-tiny-extras', () => gulp.src([ 'LICENSE' ]).pipe(gulp.dest('dist'))); gulp.task('info', () => gulp.src([ 'dist/**/*' ]).pipe($.size({title: 'build', gzip: true}))); gulp.task('build', gulp.series('lint', 'process-fonts', 'process-langs', 'process-assets', 'process-full-extras', 'info')); gulp.task('build-bundle', gulp.series('lint', 'process-assets-bundle', 'process-tiny-extras', 'info')); gulp.task('serve', gulp.series('prepare-styles', 'prepare-scripts', 'prepare-fonts', () => { browserSync({ notify: false, port: 9000, server: { baseDir: ['.tmp', 'src'], routes: { '/node_modules': 'node_modules' } } }); gulp.watch([ 'src/*.html', 'src/*.ico', 'src/*.png', 'src/langs/*.txt', 'src/views/*.html', 'src/imgs/**/*', '.tmp/fonts/**/*' ]).on('change', reload); gulp.watch('src/styles/**/*.css', gulp.series('prepare-styles')); gulp.watch('src/scripts/**/*.js', gulp.series('prepare-scripts')); gulp.watch('src/fonts/**/*', gulp.series('prepare-fonts')); })); gulp.task('serve:dist', () => { browserSync({ notify: false, port: 9000, server: { baseDir: ['dist'] } }); }); gulp.task('default', gulp.series('clean', 'build')); ================================================ FILE: i18n/en.sample.txt ================================================ [global] AriaNg Version=AriaNg Version Operation Result=Operation Result Operation Succeeded=Operation Succeeded is connected=is connected Error=Error OK=OK Confirm=Confirm Cancel=Cancel Close=Close True=True False=False DEBUG=Debug INFO=Info WARN=Warn ERROR=Error Connecting=Connecting Connected=Connected Disconnected=Disconnected Reconnecting=Reconnecting Waiting to reconnect=Waiting to reconnect Global=Global New=New Start=Start Pause=Pause Retry=Retry Retry Selected Tasks=Retry Selected Tasks Delete=Delete Select All=Select All Select None=Select None Select Invert=Select Invert Select All Failed Tasks=Select All Failed Tasks Select All Completed Tasks=Select All Completed Tasks Select All Tasks=Select All Tasks Display Order=Display Order Copy Download Url=Copy Download Url Copy Magnet Link=Copy Magnet Link Help=Help Search=Search Default=Default Expand=Expand Collapse=Collapse Expand All=Expand All Collapse All=Collapse All Open=Open Save=Save Import=Import Remove Task=Remove Task Remove Selected Task=Remove Selected Task Clear Stopped Tasks=Clear Stopped Tasks Click to view task detail=Click to view task detail By File Name=By File Name By File Size=By File Size By Progress=By Progress By Selected Status=By Selected Status By Remaining=By Remaining By Download Speed=By Download Speed By Upload Speed=By Upload Speed By Peer Address=By Peer Address By Client Name=By Client Name Filters=Filters Download=Download Upload=Upload Downloading=Downloading Pending Verification=Pending Verification Verifying=Verifying Seeding=Seeding Waiting=Waiting Paused=Paused Completed=Completed Error Occurred=Error Occurred Removed=Removed Finished / Stopped=Finished / Stopped Uncompleted=Uncompleted Click to pin=Click to pin Settings=Settings AriaNg Settings=AriaNg Settings Aria2 Settings=Aria2 Settings Basic Settings=Basic Settings HTTP/FTP/SFTP Settings=HTTP/FTP/SFTP Settings HTTP Settings=HTTP Settings FTP/SFTP Settings=FTP/SFTP Settings BitTorrent Settings=BitTorrent Settings Metalink Settings=Metalink Settings RPC Settings=RPC Settings Advanced Settings=Advanced Settings AriaNg Debug Console=AriaNg Debug Console Aria2 Status=Aria2 Status File Name=File Name File Size=File Size Progress=Progress Share Ratio=Share Ratio Remaining=Remaining Download Speed=Download Speed Upload Speed=Upload Speed Links=Links Torrent File=Torrent File Metalink File=Metalink File File Name:=File Name: Options=Options Overview=Overview Pieces=Pieces Files=Files Peers=Peers Task Name=Task Name Task Size=Task Size Task Status=Task Status Error Description=Error Description Health Percentage=Health Percentage Info Hash=Info Hash Seeders=Seeders Connections=Connections Seed Creation Time=Seed Creation Time Download Url=Download Url Download Dir=Download Dir BT Tracker Servers=BT Tracker Servers Copy=Copy (Choose Files)=(Choose Files) Videos=Videos Audios=Audios Pictures=Pictures Documents=Documents Applications=Applications Archives=Archives Other=Other Custom=Custom Custom Choose File=Custom Choose File Address=Address Client=Client Status=Status Speed=Speed (local)=(local) No Data=No Data No connected peers=No connected peers Failed to change some tasks state.=Failed to change some tasks state. Confirm Retry=Confirm Retry Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK. Failed to retry this task.=Failed to retry this task. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} tasks have been retried and {{failedCount}} tasks are failed. Confirm Remove=Confirm Remove Are you sure you want to remove the selected task?=Are you sure you want to remove the selected task? Failed to remove some task(s).=Failed to remove some task(s). Confirm Clear=Confirm Clear Are you sure you want to clear stopped tasks?=Are you sure you want to clear stopped tasks? Download Links:=Download Links: Download Now=Download Now Download Later=Download Later Open Torrent File=Open Torrent File Open Metalink File=Open Metalink File Support multiple URLs, one URL per line.=Support multiple URLs, one URL per line. Your browser does not support loading file!=Your browser does not support loading file! The selected file type is invalid!=The selected file type is invalid! Failed to load file!=Failed to load file! Download Completed=Download Completed BT Download Completed=BT Download Completed Download Error=Download Error AriaNg Url=AriaNg Url Command API Url=Command API Url Export Command API=Export Command API Export=Export Copied=Copied Pause After Task Created=Pause After Task Created Language=Language Theme=Theme Light=Light Dark=Dark Follow system settings=Follow system settings Debug Mode=Debug Mode Page Title=Page Title Preview=Preview Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Example: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Updating Page Title Interval Enable Browser Notification=Enable Browser Notification Browser Notification Sound=Browser Notification Sound Browser Notification Frequency=Browser Notification Frequency Unlimited=Unlimited High (Up to 10 Notifications / 1 Minute)=High (Up to 10 Notifications / 1 Minute) Middle (Up to 1 Notification / 1 Minute)=Middle (Up to 1 Notification / 1 Minute) Low (Up to 1 Notification / 5 Minutes)=Low (Up to 1 Notification / 5 Minutes) WebSocket Auto Reconnect Interval=WebSocket Auto Reconnect Interval Aria2 RPC Alias=Aria2 RPC Alias Aria2 RPC Address=Aria2 RPC Address Aria2 RPC Protocol=Aria2 RPC Protocol Aria2 RPC Http Request Method=Aria2 RPC Http Request Method POST method only supports aria2 v1.15.2 and above.=POST method only supports aria2 v1.15.2 and above. Aria2 RPC Request Headers=Aria2 RPC Request Headers Support multiple request headers, one header per line, each line containing "header name: header value".=Support multiple request headers, one header per line, each line containing "header name: header value". Aria2 RPC Secret Token=Aria2 RPC Secret Token Activate=Activate Reset Settings=Reset Settings Confirm Reset=Confirm Reset Are you sure you want to reset all settings?=Are you sure you want to reset all settings? Clear Settings History=Clear Settings History Are you sure you want to clear all settings history?=Are you sure you want to clear all settings history? Delete RPC Setting=Delete RPC Setting Add New RPC Setting=Add New RPC Setting Are you sure you want to remove rpc setting "{rpcName}"?=Are you sure you want to remove rpc setting "{{rpcName}}"? Updating Global Stat Interval=Updating Global Stat Interval Updating Task Information Interval=Updating Task Information Interval Keyboard Shortcuts=Keyboard Shortcuts Supported Keyboard Shortcuts=Supported Keyboard Shortcuts Set Focus On Search Box=Set Focus On Search Box Swipe Gesture=Swipe Gesture Change Tasks Order by Drag-and-drop=Change Tasks Order by Drag-and-drop Action After Creating New Tasks=Action After Creating New Tasks Navigate to Task List Page=Navigate to Task List Page Navigate to Task Detail Page=Navigate to Task Detail Page Action After Retrying Task=Action After Retrying Task Navigate to Downloading Tasks Page=Navigate to Downloading Tasks Page Stay on Current Page=Stay on Current Page Remove Old Tasks After Retrying=Remove Old Tasks After Retrying Confirm Task Removal=Confirm Task Removal Include Prefix When Copying From Task Details=Include Prefix When Copying From Task Details Show Pieces Info In Task Detail Page=Show Pieces Info In Task Detail Page Pieces Amount is Less than or Equal to {value}=Pieces Amount is Less than or Equal to {{value}} RPC List Display Order=RPC List Display Order Each Task List Page Uses Independent Display Order=Each Task List Page Uses Independent Display Order Recently Used=Recently Used RPC Alias=RPC Alias Import / Export AriaNg Settings=Import / Export AriaNg Settings Import Settings=Import Settings Export Settings=Export Settings AriaNg settings data=AriaNg settings data Confirm Import=Confirm Import Are you sure you want to import all settings?=Are you sure you want to import all settings? Invalid settings data format!=Invalid settings data format! Data has been copied to clipboard.=Data has been copied to clipboard. Supported Placeholder=Supported Placeholder AriaNg Title=AriaNg Title Current RPC Alias=Current RPC Alias Downloading Count=Downloading Count Waiting Count=Waiting Count Stopped Count=Stopped Count You have disabled notification in your browser. You should change your browser's settings before you enable this function.=You have disabled notification in your browser. You should change your browser's settings before you enable this function. Language resource has been updated, please reload the page for the changes to take effect.=Language resource has been updated, please reload the page for the changes to take effect. Configuration has been modified, please reload the page for the changes to take effect.=Configuration has been modified, please reload the page for the changes to take effect. Reload AriaNg=Reload AriaNg Show Secret=Show Secret Hide Secret=Hide Secret Aria2 Version=Aria2 Version Enabled Features=Enabled Features Operations=Operations Reconnect=Reconnect Save Session=Save Session Shutdown Aria2=Shutdown Aria2 Confirm Shutdown=Confirm Shutdown Are you sure you want to shutdown aria2?=Are you sure you want to shutdown aria2? Session has been saved successfully.=Session has been saved successfully. Aria2 has been shutdown successfully.=Aria2 has been shutdown successfully. Toggle Navigation=Toggle Navigation Shortcut=Shortcut Global Rate Limit=Global Rate Limit Loading=Loading... More Than One Day=More than 1 day Unknown=Unknown Bytes=Bytes Hours=Hours Minutes=Minutes Seconds=Seconds Milliseconds=Milliseconds Http=Http Http (Disabled)=Http (Disabled) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (Disabled) WebSocket (Security)=WebSocket (Security) Http and WebSocket would be disabled when accessing AriaNg via Https.=Http and WebSocket would be disabled when accessing AriaNg via Https. POST=POST GET=GET Enabled=Enabled Disabled=Disabled Always=Always Never=Never BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=Changes to the settings take effect after refreshing page. Logging Time=Logging Time Log Level=Log Level Auto Refresh=Auto Refresh Refresh Now=Refresh Now Clear Logs=Clear Logs Are you sure you want to clear debug logs?=Are you sure you want to clear debug logs? Show Detail=Show Detail Log Detail=Log Detail Aria2 RPC Debug=Aria2 RPC Debug Aria2 RPC Request Method=Aria2 RPC Request Method Aria2 RPC Request Parameters=Aria2 RPC Request Parameters Aria2 RPC Response=Aria2 RPC Response Execute=Execute RPC method is illegal!=RPC method is illegal! AriaNg does not support this RPC method!=AriaNg does not support this RPC method! RPC request parameters are invalid!=RPC request parameters are invalid! Type is illegal!=Type is illegal! Parameter is invalid!=Parameter is invalid! Option value cannot be empty!=Option value cannot be empty! Input number is invalid!=Input number is invalid! Input number is below min value!=Input number is below min value {{value}}! Input number is above max value!=Input number is above max value {{value}}! Input value is invalid!=Input value is invalid! Protocol is invalid!=Protocol is invalid! RPC host cannot be empty!=RPC host cannot be empty! RPC secret is not base64 encoded!=RPC secret is not base64 encoded! URL is not base64 encoded!=URL is not base64 encoded! Tap to configure and get started with AriaNg.=Tap to configure and get started with AriaNg. Cannot initialize WebSocket!=Cannot initialize WebSocket! Cannot connect to aria2!=Cannot connect to aria2! Access Denied!=Access Denied! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=You cannot use AriaNg because this browser does not meet the minimum requirements for data storage. [error] unknown=Unknown error occurred. operation.timeout=Operation timed out. resource.notfound=Resource was not found. resource.notfound.max-file-not-found=Resource was not found. See --max-file-not-found option. download.aborted.lowest-speed-limit=Download is aborted because download speed was too slow. See --lowest-speed-limit option. network.problem=Network problem occurred. resume.notsupported=Remote server does not support resume. space.notenough=There was not enough disk space available. piece.length.different=Piece length was different from one in .aria2 control file. See --allow-piece-length-change option. download.sametime=aria2 was downloading same file at that moment. download.torrent.sametime=aria2 was downloading same file at that moment. file.exists=File already existed. See --allow-overwrite option. file.rename.failed=Failed to rename file. See --auto-file-renaming option. file.open.failed=Failed to open existing file. file.create.failed=Failed to create new file or truncate existing file. io.error=Filesystem error occurred. directory.create.failed=Failed to create directory. name.resolution.failed=Failed to resolve domain name. metalink.file.parse.failed=Failed to parse Metalink document. ftp.command.failed=FTP command failed. http.response.header.bad=HTTP response header was bad or unexpected. redirects.toomany=Too many redirects occurred. http.authorization.failed=HTTP authorization failed. bencoded.file.parse.failed=Failed to parse bencoded file (usually ".torrent" file). torrent.file.corrupted=The ".torrent" file was corrupted or missing information that aria2 needed. magnet.uri.bad=Magnet URI was bad. option.bad=Bad/unrecognized option was given or unexpected option argument was given. server.overload=The remote server was unable to handle the request due to a temporary overloading or maintenance. rpc.request.parse.failed=Failed to parse JSON-RPC request. checksum.failed=Checksum validation failed. [languages] Czech=Czech German=German English=English Spanish=Spanish French=French Italian=Italian Polish=Polish Russian=Russian Simplified Chinese=Simplified Chinese Traditional Chinese=Traditional Chinese [format] longdate=MM/DD/YYYY HH:mm:ss time.millisecond={{value}} Millisecond time.milliseconds={{value}} Milliseconds time.second={{value}} Second time.seconds={{value}} Seconds time.minute={{value}} Minute time.minutes={{value}} Minutes time.hour={{value}} Hour time.hours={{value}} Hours requires.aria2-version=Requires aria2 v{{version}} or higher task.new.download-links=Download Links ({{count}} Links): task.pieceinfo=Completed: {{completed}}, Total: {{total}} task.error-occurred=Error Occurred ({{errorcode}}) task.verifying-percent=Verifying ({{verifiedPercent}}%) settings.file-count=({{count}} Files) settings.total-count=(Total Count: {{count}}) debug.latest-logs=Latest {{count}} Logs [rpc.error] unauthorized=Authorization Failed! [option] true=True false=False default=Default none=None hide=Hide full=Full http=Http https=Https ftp=Ftp mem=Memory Only get=GET tunnel=TUNNEL plain=Plain arc4=ARC4 binary=Binary ascii=ASCII debug=Debug info=Info notice=Notice warn=Warn error=Error adaptive=adaptive epoll=epoll falloc=falloc feedback=feedback geom=geom inorder=inorder kqueue=kqueue poll=poll port=port prealloc=prealloc random=random select=select trunc=trunc SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Download Path dir.description= log.name=Log File log.description=The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, or this option is omitted, no log is written to disk at all. max-concurrent-downloads.name=Max Concurrent Downloads max-concurrent-downloads.description= check-integrity.name=Check Integrity check-integrity.description=Check file integrity by validating piece hashes or a hash of entire file. This option has effect only in BitTorrent, Metalink downloads with checksums or HTTP(S)/FTP downloads with --checksum option. continue.name=Resume Download continue.description=Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads. all-proxy.name=Proxy Server all-proxy.description=Use a proxy server for all protocols. You also can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy This affects all downloads. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=Proxy User Name all-proxy-user.description= all-proxy-passwd.name=Proxy Password all-proxy-passwd.description= checksum.name=Checksum checksum.description=Set checksum. The option value format is TYPE\=DIGEST. TYPE is hash type. The supported hash type is listed in Hash Algorithms in aria2c -v. DIGEST is hex digest. For example, setting sha-1 digest looks like this: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 This option applies only to HTTP(S)/FTP downloads. connect-timeout.name=Connect Timeout connect-timeout.description=Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. dry-run.name=Dry Run dry-run.description=If true is given, aria2 just checks whether the remote file is available and doesn't download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. lowest-speed-limit.name=Lowest Speed Limit lowest-speed-limit.description=Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M (1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. max-connection-per-server.name=Max Connection Per Server max-connection-per-server.description= max-file-not-found.name=Max File Not Found Try Times max-file-not-found.description=If aria2 receives "file not found" status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. The number of retry attempt is counted toward --max-tries, so it should be configured too. max-tries.name=Max Try Times max-tries.description=Set number of tries. 0 means unlimited. min-split-size.name=Min Split Size min-split-size.description=aria2 does not split less than 2*SIZE byte range. For example, let's consider downloading 20MiB file. If SIZE is 10M, aria2 can split file into 2 range [0-10MiB) and [10MiB-20MiB) and download it using 2 sources(if --split >= 2, of course). If SIZE is 15M, since 2*15M > 20MiB, aria2 does not split file and download it using 1 source. You can append K or M (1K = 1024, 1M = 1024K). Possible Values: 1M-1024M. netrc-path.name=.netrc Path netrc-path.description= no-netrc.name=Disable netrc no-netrc.description= no-proxy.name=No Proxy List no-proxy.description=Specify a comma separated list of host names, domains and network addresses with or without a subnet mask where no proxy should be used. out.name=File Name out.description=The file name of the downloaded file. It is always relative to the directory given in --dir option. When the --force-sequential option is used, this option is ignored. proxy-method.name=Proxy Method proxy-method.description=Set the method to use in proxy request. METHOD is either GET or TUNNEL. HTTPS downloads always use TUNNEL regardless of this option. remote-time.name=Remote File Timestamp remote-time.description=Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. reuse-uri.name=Reuse Uri reuse-uri.description=Reuse already used URIs if no unused URIs are left. retry-wait.name=Retry Wait retry-wait.description=Set the seconds to wait between retries. When SEC > 0, aria2 will retry downloads when the HTTP server returns a 503 response. server-stat-of.name=Server Stat Output server-stat-of.description=Specify the file name to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. server-stat-timeout.name=Server Stat Timeout server-stat-timeout.description=Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. split.name=Split Count split.description=Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by the --max-connection-per-server option. stream-piece-selector.name=Piece Selection Algorithm stream-piece-selector.description=Specify piece selection algorithm used in HTTP/FTP download. Piece means fixed length segment which is downloaded in parallel in segmented download. If default is given, aria2 selects piece so that it reduces the number of establishing connection. This is reasonable default behavior because establishing connection is an expensive operation. If inorder is given, aria2 selects piece which has minimum index. Index=0 means first of the file. This will be useful to view movie while downloading it. --enable-http-pipelining option may be useful to reduce re-connection overhead. Please note that aria2 honors --min-split-size option, so it will be necessary to specify a reasonable value to --min-split-size option. If random is given, aria2 selects piece randomly. Like inorder, --min-split-size option is honored. If geom is given, at the beginning aria2 selects piece which has minimum index like inorder, but it exponentially increasingly keeps space from previously selected piece. This will reduce the number of establishing connection and at the same time it will download the beginning part of the file first. This will be useful to view movie while downloading it. timeout.name=Timeout timeout.description= uri-selector.name=URI Selection Algorithm uri-selector.description=Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn't select anymore mirrors. Like feedback, it uses a performance profile of servers. check-certificate.name=Check Certificate check-certificate.description= http-accept-gzip.name=Accept GZip http-accept-gzip.description=Send Accept: deflate, gzip request header and inflate response if remote server responds with Content-Encoding: gzip or Content-Encoding: deflate. http-auth-challenge.name=Auth Challenge http-auth-challenge.description=Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if user name and password are embedded in URI, authorization header is always sent to the server regardless of this option. http-no-cache.name=No Cache http-no-cache.description=Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. http-user.name=HTTP Default User Name http-user.description= http-passwd.name=HTTP Default Password http-passwd.description= http-proxy.name=HTTP Proxy Server http-proxy.description= http-proxy-user.name=HTTP Proxy User Name http-proxy-user.description= http-proxy-passwd.name=HTTP Proxy Password http-proxy-passwd.description= https-proxy.name=HTTPS Proxy Server https-proxy.description= https-proxy-user.name=HTTPS Proxy User Name https-proxy-user.description= https-proxy-passwd.name=HTTPS Proxy Password https-proxy-passwd.description= referer.name=Referer referer.description=Set an http referrer (Referer). This affects all http/https downloads. If * is given, the download URI is also used as the referrer. This may be useful when used together with the --parameterized-uri option. enable-http-keep-alive.name=Enable Persistent Connection enable-http-keep-alive.description=Enable HTTP/1.1 persistent connection. enable-http-pipelining.name=Enable HTTP Pipelining enable-http-pipelining.description=Enable HTTP/1.1 pipelining. header.name=Custom Header header.description=Append HEADER to HTTP request header. Put one item per line, each item containing "header name: header value". save-cookies.name=Cookies Path save-cookies.description=Save Cookies to FILE in Mozilla/Firefox(1.x/2.x)/ Netscape format. If FILE already exists, it is overwritten. Session Cookies are also saved and their expiry values are treated as 0. use-head.name=Use HEAD Method use-head.description=Use HEAD method for the first request to the HTTP server. user-agent.name=Custom User Agent user-agent.description= ftp-user.name=FTP Default User Name ftp-user.description= ftp-passwd.name=FTP Default Password ftp-passwd.description=If user name is embedded but password is missing in URI, aria2 tries to resolve password using .netrc. If password is found in .netrc, then use it as password. If not, use the password specified in this option. ftp-pasv.name=Passive Mode ftp-pasv.description=Use the passive mode in FTP. If false is given, the active mode will be used. This option is ignored for SFTP transfer. ftp-proxy.name=FTP Proxy Server ftp-proxy.description= ftp-proxy-user.name=FTP Proxy User Name ftp-proxy-user.description= ftp-proxy-passwd.name=FTP Proxy Password ftp-proxy-passwd.description= ftp-type.name=Transfer Type ftp-type.description= ftp-reuse-connection.name=Reuse Connection ftp-reuse-connection.description= ssh-host-key-md.name=SSH Public Key Checksum ssh-host-key-md.description=Set checksum for SSH host public key. The option value format is TYPE=DIGEST. TYPE is hash type. The supported hash type is sha-1 or md5. DIGEST is hex digest. For example: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. This option can be used to validate server's public key when SFTP is used. If this option is not set, which is default, no validation takes place. bt-detach-seed-only.name=Detach Seed Only bt-detach-seed-only.description=Exclude seed only downloads when counting concurrent active downloads (See -j option). This means that if -j3 is given and this option is turned on and 3 downloads are active and one of those enters seed mode, then it is excluded from active download count (thus it becomes 2), and the next download waiting in queue gets started. But be aware that seeding item is still recognized as active download in RPC method. bt-enable-hook-after-hash-check.name=Enable Hook After Hash Check bt-enable-hook-after-hash-check.description=Allow hook command invocation after hash check (see -V option) in BitTorrent download. By default, when hash check succeeds, the command given by --on-bt-download-complete is executed. To disable this action, give false to this option. bt-enable-lpd.name=Enable Local Peer Discovery (LPD) bt-enable-lpd.description=Enable Local Peer Discovery. If a private flag is set in a torrent, aria2 doesn't use this feature for that download even if true is given. bt-exclude-tracker.name=BitTorrent Exclude Trackers bt-exclude-tracker.description=Comma separated list of BitTorrent tracker's announce URI to remove. You can use special value * which matches all URIs, thus removes all announce URIs. When specifying * in shell command-line, don't forget to escape or quote it. bt-external-ip.name=External IP bt-external-ip.description=Specify the external IP address to use in BitTorrent download and DHT. It may be sent to BitTorrent tracker. For DHT, this option should be set to report that local node is downloading a particular torrent. This is critical to use DHT in a private network. Although this function is named external, it can accept any kind of IP addresses. bt-force-encryption.name=Force Encryption bt-force-encryption.description=Requires BitTorrent message payload encryption with arc4. This is a shorthand of --bt-require-crypto --bt-min-crypto-level=arc4. This option does not change the option value of those options. If true is given, deny legacy BitTorrent handshake and only use Obfuscation handshake and always encrypt message payload. bt-hash-check-seed.name=Hash Check Before Seeding bt-hash-check-seed.description=If true is given, after hash check using --check-integrity option and file is complete, continue to seed file. If you want to check file and download it only when it is damaged or incomplete, set this option to false. This option has effect only on BitTorrent download. bt-load-saved-metadata.name=Load Saved Metadata File bt-load-saved-metadata.description=Before getting torrent metadata from DHT when downloading with magnet link, first try to read file saved by --bt-save-metadata option. If it is successful, then skip downloading metadata from DHT. bt-max-open-files.name=Max Open Files bt-max-open-files.description=Specify maximum number of files to open in multi-file BitTorrent/Metalink download globally. bt-max-peers.name=Max Peers bt-max-peers.description=Specify the maximum number of peers per torrent. 0 means unlimited. bt-metadata-only.name=Download Metadata Only bt-metadata-only.description=Download meta data only. The file(s) described in meta data will not be downloaded. This option has effect only when BitTorrent Magnet URI is used. bt-min-crypto-level.name=Min Crypto Level bt-min-crypto-level.description=Set minimum level of encryption method. If several encryption methods are provided by a peer, aria2 chooses the lowest one which satisfies the given level. bt-prioritize-piece.name=Prioritize Piece bt-prioritize-piece.description=Try to download first and last pieces of each file first. This is useful for previewing files. The argument can contain 2 keywords: head and tail. To include both keywords, they must be separated by comma. These keywords can take one parameter, SIZE. For example, if head=SIZE is specified, pieces in the range of first SIZE bytes of each file get higher priority. tail=SIZE means the range of last SIZE bytes of each file. SIZE can include K or M (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=Remove Unselected File bt-remove-unselected-file.description=Removes the unselected files when download is completed in BitTorrent. To select files, use --select-file option. If it is not used, all files are assumed to be selected. Please use this option with care because it will actually remove files from your disk. bt-require-crypto.name=Require Crypto bt-require-crypto.description=If true is given, aria2 doesn't accept and establish connection with legacy BitTorrent handshake(\19BitTorrent protocol). Thus aria2 always uses Obfuscation handshake. bt-request-peer-speed-limit.name=Preferred Download Speed bt-request-peer-speed-limit.description=If the whole download speed of every torrent is lower than SPEED, aria2 temporarily increases the number of peers to try for more download speed. Configuring this option with your preferred download speed can increase your download speed in some cases. You can append K or M (1K = 1024, 1M = 1024K). bt-save-metadata.name=Save Metadata bt-save-metadata.description=Save meta data as ".torrent" file. This option has effect only when BitTorrent Magnet URI is used. The file name is hex encoded info hash with suffix ".torrent". The directory to be saved is the same directory where download file is saved. If the same file already exists, meta data is not saved. bt-seed-unverified.name=Not Verify Downloaded Fileds bt-seed-unverified.description=Seed previously downloaded files without verifying piece hashes. bt-stop-timeout.name=Stop Timeout bt-stop-timeout.description=Stop BitTorrent download if download speed is 0 in consecutive SEC seconds. If 0 is given, this feature is disabled. bt-tracker.name=BitTorrent Trackers bt-tracker.description=Comma separated list of additional BitTorrent tracker's announce URI. These URIs are not affected by --bt-exclude-tracker option because they are added after URIs in --bt-exclude-tracker option are removed. bt-tracker-connect-timeout.name=BitTorrent Tracker Connect Timeout bt-tracker-connect-timeout.description=Set the connect timeout in seconds to establish connection to tracker. After the connection is established, this option makes no effect and --bt-tracker-timeout option is used instead. bt-tracker-interval.name=BitTorrent Tracker Connect Interval bt-tracker-interval.description=Set the interval in seconds between tracker requests. This completely overrides interval value and aria2 just uses this value and ignores the min interval and interval value in the response of tracker. If 0 is set, aria2 determines interval based on the response of tracker and the download progress. bt-tracker-timeout.name=BitTorrent Tracker Timeout bt-tracker-timeout.description= dht-file-path.name=DHT (IPv4) File dht-file-path.description=Change the IPv4 DHT routing table file to PATH. dht-file-path6.name=DHT (IPv6) File dht-file-path6.description=Change the IPv6 DHT routing table file to PATH. dht-listen-port.name=DHT Listen Port dht-listen-port.description=Set UDP listening port used by DHT(IPv4, IPv6) and UDP tracker. Multiple ports can be specified by using "," for example: 6881,6885. You can also use - to specify a range: 6881-6999. , and - can be used together. dht-message-timeout.name=DHT Message Timeout dht-message-timeout.description= enable-dht.name=Enable DHT (IPv4) enable-dht.description=Enable IPv4 DHT functionality. It also enables UDP tracker support. If a private flag is set in a torrent, aria2 doesn't use DHT for that download even if true is given. enable-dht6.name=Enable DHT (IPv6) enable-dht6.description=Enable IPv6 DHT functionality. If a private flag is set in a torrent, aria2 doesn't use DHT for that download even if true is given. Use --dht-listen-port option to specify port number to listen on. enable-peer-exchange.name=Enable Peer Exchange enable-peer-exchange.description=Enable Peer Exchange extension. If a private flag is set in a torrent, this feature is disabled for that download even if true is given. follow-torrent.name=Follow Torrent follow-torrent.description=If true or mem is specified, when a file whose suffix is .torrent or content type is application/x-bittorrent is downloaded, aria2 parses it as a torrent file and downloads files mentioned in it. If mem is specified, a torrent file is not written to the disk, but is just kept in memory. If false is specified, the .torrent file is downloaded to the disk, but is not parsed as a torrent and its contents are not downloaded. listen-port.name=Listen Port listen-port.description=Set TCP port number for BitTorrent downloads. Multiple ports can be specified by using "," for example: 6881,6885. You can also use - to specify a range: 6881-6999. , and - can be used together: 6881-6889,6999. max-overall-upload-limit.name=Global Max Upload Limit max-overall-upload-limit.description=Set max overall upload speed in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K). max-upload-limit.name=Max Upload Limit max-upload-limit.description=Set max upload speed per each torrent in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K). peer-id-prefix.name=Peer ID Prefix peer-id-prefix.description=Specify the prefix of peer ID. The peer ID in BitTorrent is 20 byte length. If more than 20 bytes are specified, only first 20 bytes are used. If less than 20 bytes are specified, random byte data are added to make its length 20 bytes. peer-agent.name=Peer Agent peer-agent.description=Specify the string used during the bitorrent extended handshake for the peer’s client version. seed-ratio.name=Min Share Ratio seed-ratio.description=Specify share ratio. Seed completed torrents until share ratio reaches RATIO. You are strongly encouraged to specify equals or more than 1.0 here. Specify 0.0 if you intend to do seeding regardless of share ratio. If --seed-time option is specified along with this option, seeding ends when at least one of the conditions is satisfied. seed-time.name=Min Seed Time seed-time.description=Specify seeding time in (fractional) minutes. Specifying --seed-time=0 disables seeding after download completed. follow-metalink.name=Follow Metalink follow-metalink.description=If true or mem is specified, when a file whose suffix is .meta4 or .metalink or content type of application/metalink4+xml or application/metalink+xml is downloaded, aria2 parses it as a metalink file and downloads files mentioned in it. If mem is specified, a metalink file is not written to the disk, but is just kept in memory. If false is specified, the .metalink file is downloaded to the disk, but is not parsed as a metalink file and its contents are not downloaded. metalink-base-uri.name=Base URI metalink-base-uri.description=Specify base URI to resolve relative URI in metalink:url and metalink:metaurl element in a metalink file stored in local disk. If URI points to a directory, URI must end with /. metalink-language.name=Language metalink-language.description= metalink-location.name=Preferred Server Location metalink-location.description=The location of the preferred server. A comma-delimited list of locations is acceptable, for example, jp,us. metalink-os.name=Operation System metalink-os.description=The operating system of the file to download. metalink-version.name=Version metalink-version.description=The version of the file to download. metalink-preferred-protocol.name=Preferred Protocol metalink-preferred-protocol.description=Specify preferred protocol. The possible values are http, https, ftp and none. Specify none to disable this feature. metalink-enable-unique-protocol.name=Enable Unique Protocol metalink-enable-unique-protocol.description=If true is given and several protocols are available for a mirror in a metalink file, aria2 uses one of them. Use --metalink-preferred-protocol option to specify the preference of protocol. enable-rpc.name=Enable JSON-RPC/XML-RPC Server enable-rpc.description= pause-metadata.name=Pause After Metadata Downloaded pause-metadata.description=Pause downloads created as a result of metadata download. There are 3 types of metadata downloads in aria2: (1) downloading .torrent file. (2) downloading torrent metadata using magnet link. (3) downloading metalink file. These metadata downloads will generate downloads using their metadata. This option pauses these subsequent downloads. This option is effective only when --enable-rpc=true is given. rpc-allow-origin-all.name=Allow All Origin Request rpc-allow-origin-all.description=Add Access-Control-Allow-Origin header field with value * to the RPC response. rpc-listen-all.name=Listen on All Network Interfaces rpc-listen-all.description=Listen incoming JSON-RPC/XML-RPC requests on all network interfaces. If false is given, listen only on local loopback interface. rpc-listen-port.name=Listen Port rpc-listen-port.description= rpc-max-request-size.name=Max Request Size rpc-max-request-size.description=Set max size of JSON-RPC/XML-RPC request. If aria2 detects the request is more than SIZE bytes, it drops connection. rpc-save-upload-metadata.name=Save Upload Metadata rpc-save-upload-metadata.description=Save the uploaded torrent or metalink meta data in the directory specified by --dir option. The file name consists of SHA-1 hash hex string of meta data plus extension. For torrent, the extension is '.torrent'. For metalink, it is '.meta4'. If false is given to this option, the downloads added by aria2.addTorrent() or aria2.addMetalink() will not be saved by --save-session option. rpc-secure.name=Enable SSL/TLS rpc-secure.description=RPC transport will be encrypted by SSL/TLS. The RPC clients must use https scheme to access the server. For WebSocket client, use wss scheme. Use --rpc-certificate and --rpc-private-key options to specify the server certificate and private key. allow-overwrite.name=Allow Overwrite allow-overwrite.description=Restart download from scratch if the corresponding control file doesn't exist. See also --auto-file-renaming option. allow-piece-length-change.name=Allow Piece Length Change allow-piece-length-change.description=If false is given, aria2 aborts download when a piece length is different from one in a control file. If true is given, you can proceed but some download progress will be lost. always-resume.name=Always Resume Download always-resume.description=Always resume download. If true is given, aria2 always tries to resume download and if resume is not possible, aborts download. If false is given, when all given URIs do not support resume or aria2 encounters N URIs which does not support resume (N is the value specified using --max-resume-failure-tries option), aria2 downloads file from scratch. See --max-resume-failure-tries option. async-dns.name=Asynchronous DNS async-dns.description= auto-file-renaming.name=Auto File Renaming auto-file-renaming.description=Rename file name if the same file already exists. This option works only in HTTP(S)/FTP download. The new file name has a dot and a number(1..9999) appended after the name, but before the file extension, if any. auto-save-interval.name=Auto Save Interval auto-save-interval.description=Save a control file(*.aria2) every SEC seconds. If 0 is given, a control file is not saved during download. aria2 saves a control file when it stops regardless of the value. The possible values are between 0 to 600. conditional-get.name=Conditional Download conditional-get.description=Download file only when the local file is older than remote file. This function only works with HTTP(S) downloads only. It does not work if file size is specified in Metalink. It also ignores Content-Disposition header. If a control file exists, this option will be ignored. This function uses If-Modified-Since header to get only newer file conditionally. When getting modification time of local file, it uses user supplied file name (see --out option) or file name part in URI if --out is not specified. To overwrite existing file, --allow-overwrite is required. conf-path.name=Configuration File conf-path.description= console-log-level.name=Console Log Level console-log-level.description= content-disposition-default-utf8.name=Use UTF-8 to Handle Content-Disposition content-disposition-default-utf8.description=Handle quoted string in Content-Disposition header as UTF-8 instead of ISO-8859-1, for example, the filename parameter, but not the extended version filename. daemon.name=Enable Daemon daemon.description= deferred-input.name=Deferred Load deferred-input.description=If true is given, aria2 does not read all URIs and options from file specified by --input-file option at startup, but it reads one by one when it needs later. This may reduce memory usage if input file contains a lot of URIs to download. If false is given, aria2 reads all URIs and options at startup. --deferred-input option will be disabled when --save-session is used together. disable-ipv6.name=Disable IPv6 disable-ipv6.description= disk-cache.name=Disk Cache disk-cache.description=Enable disk cache. If SIZE is 0, the disk cache is disabled. This feature caches the downloaded data in memory, which grows to at most SIZE bytes. The cache storage is created for aria2 instance and shared by all downloads. The one advantage of the disk cache is reduce the disk I/O because the data are written in larger unit and it is reordered by the offset of the file. If hash checking is involved and the data are cached in memory, we don't need to read them from the disk. SIZE can include K or M (1K = 1024, 1M = 1024K). download-result.name=Download Result download-result.description=This option changes the way Download Results is formatted. If OPT is default, print GID, status, average download speed and path/URI. If multiple files are involved, path/URI of first requested file is printed and remaining ones are omitted. If OPT is full, print GID, status, average download speed, percentage of progress and path/URI. The percentage of progress and path/URI are printed for each requested file in each row. If OPT is hide, Download Results is hidden. dscp.name=DSCP dscp.description=Set DSCP value in outgoing IP packets of BitTorrent traffic for QoS. This parameter sets only DSCP bits in TOS field of IP packets, not the whole field. If you take values from /usr/include/netinet/ip.h divide them by 4 (otherwise values would be incorrect, e.g. your CS1 class would turn into CS4). If you take commonly used values from RFC, network vendors' documentation, Wikipedia or any other source, use them as they are. rlimit-nofile.name=Soft Limit of Open File Descriptors rlimit-nofile.description=Set the soft limit of open file descriptors. This open will only have effect when: a. The system supports it (posix). b. The limit does not exceed the hard limit. c. The specified limit is larger than the current soft limit. This is equivalent to setting nofile via ulimit, except that it will never decrease the limit. This option is only available on systems supporting the rlimit API. enable-color.name=Enable Color in Terminal enable-color.description= enable-mmap.name=Enable MMap enable-mmap.description=Map files into memory. This option may not work if the file space is not pre-allocated. See --file-allocation. event-poll.name=Event Polling Method event-poll.description=Specify the method for polling events. The possible values are epoll, kqueue, port, poll and select. For each epoll, kqueue, port and poll, it is available if system supports it. epoll is available on recent Linux. kqueue is available on various *BSD systems including Mac OS X. port is available on Open Solaris. The default value may vary depending on the system you use. file-allocation.name=File Allocation Method file-allocation.description=Specify file allocation method. none doesn't pre-allocate file space. prealloc pre-allocates file space before download begins. This may take some time depending on the size of the file. If you are using newer file systems such as ext4 (with extents support), btrfs, xfs or NTFS(MinGW build only), falloc is your best choice. It allocates large(few GiB) files almost instantly. Don't use falloc with legacy file systems such as ext3 and FAT32 because it takes almost same time as prealloc and it blocks aria2 entirely until allocation finishes. falloc may not be available if your system doesn't have posix_fallocate(3) function. trunc uses ftruncate(2) system call or platform-specific counterpart to truncate a file to a specified length. In multi file torrent downloads, the files adjacent forward to the specified files are also allocated if they share the same piece. force-save.name=Force Save force-save.description=Save download with --save-session option even if the download is completed or removed. This option also saves control file in that situations. This may be useful to save BitTorrent seeding which is recognized as completed state. save-not-found.name=Save Not Found File save-not-found.description=Save download with --save-session option even if the file was not found on the server. This option also saves control file in that situations. hash-check-only.name=Hash Check Only hash-check-only.description=If true is given, after hash check using --check-integrity option, abort download whether or not download is complete. human-readable.name=Console Human Readable Output human-readable.description=Print sizes and speed in human readable format (e.g., 1.2Ki, 3.4Mi) in the console readout. keep-unfinished-download-result.name=Keep Unfinished Download Result keep-unfinished-download-result.description=Keep unfinished download results even if doing so exceeds --max-download-result. This is useful if all unfinished downloads must be saved in session file (see --save-session option). Please keep in mind that there is no upper bound to the number of unfinished download result to keep. If that is undesirable, turn this option off. max-download-result.name=Max Download Result max-download-result.description=Set maximum number of download result kept in memory. The download results are completed/error/removed downloads. The download results are stored in FIFO queue and it can store at most NUM download results. When queue is full and new download result is created, oldest download result is removed from the front of the queue and new one is pushed to the back. Setting big number in this option may result high memory consumption after thousands of downloads. Specifying 0 means no download result is kept. Note that unfinished downloads are kept in memory regardless of this option value. See --keep-unfinished-download-result option. max-mmap-limit.name=Max MMap Limit max-mmap-limit.description=Set the maximum file size to enable mmap (see --enable-mmap option). The file size is determined by the sum of all files contained in one download. For example, if a download contains 5 files, then file size is the total size of those files. If file size is strictly greater than the size specified in this option, mmap will be disabled. max-resume-failure-tries.name=Max Resume Failure Try Times max-resume-failure-tries.description=When used with --always-resume=false, aria2 downloads file from scratch when aria2 detects N number of URIs that does not support resume. If N is 0, aria2 downloads file from scratch when all given URIs do not support resume. See --always-resume option. min-tls-version.name=Min TLS Version min-tls-version.description=Specify minimum SSL/TLS version to enable. log-level.name=Log Level log-level.description= optimize-concurrent-downloads.name=Optimize Concurrent Downloads optimize-concurrent-downloads.description=Optimizes the number of concurrent downloads according to the bandwidth available. aria2 uses the download speed observed in the previous downloads to adapt the number of downloads launched in parallel according to the rule N = A + B Log10(speed in Mbps). The coefficients A and B can be customized in the option arguments with A and B separated by a colon. The default values (A=5, B=25) lead to using typically 5 parallel downloads on 1Mbps networks and above 50 on 100Mbps networks. The number of parallel downloads remains constrained under the maximum defined by the --max-concurrent-downloads parameter. piece-length.name=Piece Length piece-length.description=Set a piece length for HTTP/FTP downloads. This is the boundary when aria2 splits a file. All splits occur at multiple of this length. This option will be ignored in BitTorrent downloads. It will be also ignored if Metalink file contains piece hashes. show-console-readout.name=Show Console Output show-console-readout.description= summary-interval.name=Download Summary Output Interval summary-interval.description=Set interval in seconds to output download progress summary. Setting 0 suppresses the output. max-overall-download-limit.name=Global Max Download Limit max-overall-download-limit.description=Set max overall download speed in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K). max-download-limit.name=Max Download Limit max-download-limit.description=Set max download speed per each download in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K). no-conf.name=Disable Configuration File no-conf.description= no-file-allocation-limit.name=No File Allocation Limit no-file-allocation-limit.description=No file allocation is made for files whose size is smaller than SIZE. You can append K or M (1K = 1024, 1M = 1024K). parameterized-uri.name=Enable Parameterized URI parameterized-uri.description=Enable parameterized URI support. You can specify set of parts: http://{sv1,sv2,sv3}/foo.iso. Also you can specify numeric sequences with step counter: http://host/image[000-100:2].img. A step counter can be omitted. If all URIs do not point to the same file, such as the second example above, -Z option is required. quiet.name=Disable Console Output quiet.description= realtime-chunk-checksum.name=Realtime Data Chunk Validation realtime-chunk-checksum.description=Validate chunk of data by calculating checksum while downloading a file if chunk checksums are provided. remove-control-file.name=Remove Control File remove-control-file.description=Remove control file before download. Using with --allow-overwrite=true, download always starts from scratch. This will be useful for users behind proxy server which disables resume. save-session.name=Session Save File save-session.description=Save error/unfinished downloads to FILE on exit. You can pass this output file to aria2c with --input-file option on restart. If you like the output to be gzipped append a .gz extension to the file name. Please note that downloads added by aria2.addTorrent() and aria2.addMetalink() RPC method and whose meta data could not be saved as a file are not saved. Downloads removed using aria2.remove() and aria2.forceRemove() will not be saved. save-session-interval.name=Save Session Interval save-session-interval.description=Save error/unfinished downloads to a file specified by --save-session option every SEC seconds. If 0 is given, file will be saved only when aria2 exits. socket-recv-buffer-size.name=Socket Receive Buffer Size socket-recv-buffer-size.description=Set the maximum socket receive buffer in bytes. Specifing 0 will disable this option. This value will be set to socket file descriptor using SO_RCVBUF socket option with setsockopt() call. stop.name=Auto Shutdown Time stop.description=Stop application after SEC seconds has passed. If 0 is given, this feature is disabled. truncate-console-readout.name=Truncate Console Output truncate-console-readout.description=Truncate console readout to fit in a single line. ================================================ FILE: package.json ================================================ { "private": true, "engines": { "node": ">=14" }, "dependencies": { "admin-lte": "2.4.18", "angular": "1.6.10", "angular-animate": "1.6.10", "angular-bittorrent-peerid": "^1.3.4", "angular-busy": "^4.1.4", "angular-clipboard": "^1.7.0", "angular-cookies": "1.6.10", "angular-input-dropdown": "git+https://github.com/mayswind/angular-input-dropdown.git#68670e39816698b3eb98c0e740a0efe77d5fbdd1", "angular-local-storage": "^0.7.1", "angular-messages": "1.6.10", "angular-moment": "1.3.0", "angular-promise-buttons": "^0.1.23", "angular-route": "1.6.10", "angular-sanitize": "1.6.10", "angular-sweetalert": "^1.1.2", "angular-touch": "1.6.10", "angular-translate": "^2.19.0", "angular-ui-notification": "^0.3.6", "angular-utf8-base64": "^0.0.5", "angular-websocket": "^2.0.1", "angularjs-dragula": "^2.0.0", "awesome-bootstrap-checkbox": "^0.3.7", "bootstrap": "3.4.1", "bootstrap-contextmenu": "^1.0.0", "echarts": "3.8.5", "font-awesome": "^4.7.0", "jquery": "3.4.1", "jquery-slimscroll": "^1.3.8", "moment": "2.29.4", "natural-compare": "1.4.0", "sweetalert": "^1.1.3" }, "devDependencies": { "browser-sync": "^2.27.7", "del": "^6.0.0", "eslint-config-angular": "^0.5.0", "eslint-plugin-angular": "^4.1.0", "git-rev-sync": "^3.0.1", "gulp": "^4.0.2", "gulp-angular-templatecache": "^2.2.7", "gulp-autoprefixer": "^8.0.0", "gulp-cssnano": "^2.1.3", "gulp-eslint": "^4.0.2", "gulp-htmlmin": "^5.0.1", "gulp-if": "^3.0.0", "gulp-inject-version": "^1.0.1", "gulp-load-plugins": "^2.0.7", "gulp-plumber": "^1.2.1", "gulp-replace": "^1.0.0", "gulp-rev": "^9.0.0", "gulp-rev-replace": "^0.4.4", "gulp-size": "^4.0.1", "gulp-sourcemaps": "^3.0.0", "gulp-uglify": "^3.0.2", "gulp-useref": "^5.0.0", "nice-try": "^3.0.0", "uglify-save-license": "^0.4.1" }, "name": "ariang", "description": "AriaNg, a modern web frontend making aria2 easier to use.", "version": "1.3.14", "main": "index.html", "scripts": { "test": "echo \"Error: no test specified\" && exit 0", "build": "gulp clean build" }, "browsers": [ "> 1%", "last 2 versions", "Firefox ESR" ], "repository": { "type": "git", "url": "git+https://github.com/mayswind/AriaNg.git" }, "keywords": [ "aria2", "Web", "Frontend", "UI" ], "author": "MaysWind ", "license": "MIT", "bugs": { "url": "https://github.com/mayswind/AriaNg/issues" }, "homepage": "http://ariang.mayswind.net/" } ================================================ FILE: scripts/publish_dailybuild.sh ================================================ if [ $CI == "true" ] && [ $CIRCLE_BRANCH == "master" ]; then git config --global user.name "CircleCI"; git config --global user.email "CircleCI"; ssh -o StrictHostKeyChecking=no git@github.com echo "Publishing daily build..."; git clone git@github.com:mayswind/AriaNg-DailyBuild.git $HOME/AriaNg-DailyBuild/ rm -rf $HOME/AriaNg-DailyBuild/* cp dist/* $HOME/AriaNg-DailyBuild/ -r; cd $HOME/AriaNg-DailyBuild/; git add -A; git commit -a -m "daily build #$CIRCLE_SHA1"; git push origin master; echo "Done."; fi ================================================ FILE: src/index.html ================================================ AriaNg
================================================ FILE: src/langs/cz_CZ.txt ================================================ [global] AriaNg Version=Verze AriaNg Operation Result=Výsledek operace Operation Succeeded=Operace byla úspěšná is connected=je připojeno Error=Chyba OK=OK Confirm=Potvrdit Cancel=Zrušit Close=Zavřít True=Pravda False=Nepravda DEBUG=Ladění INFO=Informace WARN=Upozornění ERROR=Chyba Connecting=Připojování Connected=Připojeno Disconnected=Odpojeno Reconnecting=Opětovné připojování Waiting to reconnect=Čekání na opětovné připojení Global=Globální New=Nový Start=Spustit Pause=Pozastavit Retry=Zkusit znovu Retry Selected Tasks=Znovu spustit vybrané úlohy Delete=Smazat Select All=Vybrat vše Select None=Zrušit výběr Select Invert=Invertovat výběr Select All Failed Tasks=Vybrat všechny neúspěšné úlohy Select All Completed Tasks=Vybrat všechny dokončené úlohy Select All Tasks=Vybrat všechny úlohy Display Order=Pořadí zobrazení Copy Download Url=Kopírovat URL ke stažení Copy Magnet Link=Kopírovat magnetický odkaz Help=Nápověda Search=Hledat Default=Výchozí Expand=Rozbalit Collapse=Zabalit Expand All=Rozbalit vše Collapse All=Zabalit vše Open=Otevřít Save=Uložit Import=Importovat Remove Task=Odstranit úlohu Remove Selected Task=Odstranit vybranou úlohu Clear Stopped Tasks=Vymazat zastavené úlohy Click to view task detail=Klikněte pro zobrazení detailu úlohy By File Name=Podle názvu souboru By File Size=Podle velikosti souboru By Progress=Podle pokroku By Selected Status=Podle vybraného stavu By Remaining=Podle zbývajícího By Download Speed=Podle rychlosti stahování By Upload Speed=Podle rychlosti nahrávání By Peer Address=Podle adresy peeru By Client Name=Podle názvu klienta Filters=Filtry Download=Stáhnout Upload=Nahrát Downloading=Stahuje se Pending Verification=Čeká na ověření Verifying=Ověřování Seeding=Sdílení Waiting=Čekání Paused=Pozastaveno Completed=Dokončeno Error Occurred=Došlo k chybě Removed=Odstraněno Finished / Stopped=Dokončeno / Zastaveno Uncompleted=Nedokončeno Click to pin=Klikněte pro připnutí Settings=Nastavení AriaNg Settings=Nastavení AriaNg Aria2 Settings=Nastavení Aria2 Basic Settings=Základní nastavení HTTP/FTP/SFTP Settings=Nastavení HTTP/FTP/SFTP HTTP Settings=Nastavení HTTP FTP/SFTP Settings=Nastavení FTP/SFTP BitTorrent Settings=Nastavení BitTorrentu Metalink Settings=Nastavení Metalinku RPC Settings=Nastavení RPC Advanced Settings=Pokročilé nastavení AriaNg Debug Console=Ladicí konzole AriaNg Aria2 Status=Stav Aria2 File Name=Název souboru File Size=Velikost souboru Progress=Pokrok Share Ratio=Poměr sdílení Remaining=Zbývající Download Speed=Rychlost stahování Upload Speed=Rychlost nahrávání Links=Odkazy Torrent File=Torrent soubor Metalink File=Metalink soubor File Name:=Název souboru: Options=Možnosti Overview=Přehled Pieces=Části Files=Soubory Peers=Peery Task Name=Název úlohy Task Size=Velikost úlohy Task Status=Stav úlohy Error Description=Popis chyby Health Percentage=Procento celistvosti Info Hash=Hash informace Seeders=Sdílející Connections=Připojení Seed Creation Time=Čas vytvoření sdílení Download Url=Url stažení Download Dir=Dir stažení BT Tracker Servers=Servery BT trackeru Copy=Kopírovat (Choose Files)=(Vybrat soubory) Videos=Videa Audios=Audia Pictures=Obrázky Documents=Dokumenty Applications=Aplikace Archives=Archivy Other=Jiné Custom=Vlastní Custom Choose File=Vlastní výběr souboru Address=Adresa Client=Klient Status=Stav Speed=Rychlost (local)=(lokální) No Data=Žádná data No connected peers=Žádné připojené peery Failed to change some tasks state.=Nepodařilo se změnit stav některých úloh. Confirm Retry=Potvrdit opakování Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=Opravdu chcete opakovat vybranou úlohu? AriaNg vytvoří stejnou úlohu po kliknutí na OK. Failed to retry this task.=Nepodařilo se opakovat tuto úlohu. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} úloh bylo opakováno a {{failedCount}} úloh selhalo. Confirm Remove=Potvrdit odstranění Are you sure you want to remove the selected task?=Opravdu chcete odstranit vybranou úlohu? Failed to remove some task(s).=Nepodařilo se odstranit některé úlohy. Confirm Clear=Potvrdit vymazání Are you sure you want to clear stopped tasks?=Opravdu chcete vymazat zastavené úlohy? Download Links:=Odkazy ke stažení: Download Now=Stáhnout nyní Download Later=Stáhnout později Open Torrent File=Otevřít Torrent soubor Open Metalink File=Otevřít Metalink soubor Support multiple URLs, one URL per line.=Podporuje více URL, jednu URL na řádek. Your browser does not support loading file!=Váš prohlížeč nepodporuje načítání souborů! The selected file type is invalid!=Vybraný typ souboru je neplatný! Failed to load file!=Nepodařilo se načíst soubor! Download Completed=Stahování dokončeno BT Download Completed=BT stahování dokončeno Download Error=Chyba při stahování AriaNg Url=AriaNg URL Command API Url=URL API příkazu Export Command API=Exportovat API příkaz Export=Exportovat Copied=Zkopírováno Pause After Task Created=Pozastavit po vytvoření úlohy Language=Jazyk Theme=Motiv Light=Světlý Dark=Tmavý Follow system settings=Řídit se nastavením systému Debug Mode=Režim ladění Page Title=Titul stránky Preview=Náhled Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Tipy: Můžete použít tag "noprefix" pro ignorování předpony, "nosuffix" pro ignorování přípony a "scale\=n" pro nastavení desetinné přesnosti. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Příklad: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Interval aktualizace titulku stránky Enable Browser Notification=Povolit upozornění v prohlížeči Browser Notification Sound=Zvuk upozornění prohlížeče Browser Notification Frequency=Frekvence upozornění v prohlížeči Unlimited=Neomezeno High (Up to 10 Notifications / 1 Minute)=Vysoká (až 10 upozornění za 1 minutu) Middle (Up to 1 Notification / 1 Minute)=Střední (až 1 upozornění za 1 minutu) Low (Up to 1 Notification / 5 Minutes)=Nízká (až 1 upozornění za 5 minut) WebSocket Auto Reconnect Interval=Interval automatického připojení WebSocketu Aria2 RPC Alias=Alias Aria2 RPC Aria2 RPC Address=Adresa Aria2 RPC Aria2 RPC Protocol=Protokol Aria2 RPC Aria2 RPC Http Request Method=Metoda HTTP požadavku Aria2 RPC POST method only supports aria2 v1.15.2 and above.=Metoda POST podporuje pouze Aria2 v1.15.2 a novější. Aria2 RPC Request Headers=Záhlaví požadavků Aria2 RPC Support multiple request headers, one header per line, each line containing "header name: header value".=Podporuje více záhlaví požadavků, jedno záhlaví na řádku, každá řádka obsahuje "název záhlaví: hodnota záhlaví". Aria2 RPC Secret Token=Tajný token Aria2 RPC Activate=Aktivovat Reset Settings=Obnovit nastavení Confirm Reset=Potvrdit obnovení Are you sure you want to reset all settings?=Opravdu chcete obnovit všechna nastavení? Clear Settings History=Vymazat historii nastavení Are you sure you want to clear all settings history?=Opravdu chcete vymazat celou historii nastavení? Delete RPC Setting=Odstranit nastavení RPC Add New RPC Setting=Přidat nové nastavení RPC Are you sure you want to remove rpc setting "{rpcName}"?=Opravdu chcete odstranit nastavení RPC "{{rpcName}}"? Updating Global Stat Interval=Interval aktualizace globální statistiky Updating Task Information Interval=Interval aktualizace informací o úloze Keyboard Shortcuts=Klávesové zkratky Supported Keyboard Shortcuts=Podporované klávesové zkratky Set Focus On Search Box=Umístit kurzor na vyhledávací pole Swipe Gesture=Gesto přejetí Change Tasks Order by Drag-and-drop=Změnit pořadí úloh pomocí přetahování Action After Creating New Tasks=Akce po vytvoření nových úloh Navigate to Task List Page=Přejít na stránku seznamu úloh Navigate to Task Detail Page=Přejít na stránku detailu úlohy Action After Retrying Task=Akce po opětovném spuštění úlohy Navigate to Downloading Tasks Page=Přejít na stránku stahovaných úloh Stay on Current Page=Zůstat na aktuální stránce Remove Old Tasks After Retrying=Odstranit staré úlohy po opětovném spuštění Confirm Task Removal=Potvrdit odstranění úlohy Include Prefix When Copying From Task Details=Zahrnout předponu při kopírování z detailu úlohy Show Pieces Info In Task Detail Page=Zobrazit informace o částech na stránce detailu úlohy Pieces Amount is Less than or Equal to {value}=Počet částí je menší nebo roven hodnotě {{value}} RPC List Display Order=Pořadí zobrazení seznamu RPC Each Task List Page Uses Independent Display Order=Každá stránka seznamu úloh používá nezávislé pořadí zobrazení Recently Used=Nedávno použité RPC Alias=Alias RPC Import / Export AriaNg Settings=Import / Export nastavení AriaNg Import Settings=Importovat nastavení Export Settings=Exportovat nastavení AriaNg settings data=Data nastavení AriaNg Confirm Import=Potvrdit import Are you sure you want to import all settings?=Opravdu chcete importovat všechna nastavení? Invalid settings data format!=Neplatný formát dat nastavení! Data has been copied to clipboard.=Data byla zkopírována do schránky. Supported Placeholder=Podporovaný zástupný symbol AriaNg Title=Titul AriaNg Current RPC Alias=Aktuální alias RPC Downloading Count=Počet stahování Waiting Count=Počet čekajících Stopped Count=Počet zastavených You have disabled notification in your browser. You should change your browser's settings before you enable this function.=Upozornění jsou v prohlížeči zakázána. Změňte nastavení prohlížeče, než tuto funkci povolíte. Language resource has been updated, please reload the page for the changes to take effect.=Jazykový zdroj byl aktualizován, prosím, načtěte stránku znovu, aby se změny projevily. Configuration has been modified, please reload the page for the changes to take effect.=Konfigurace byla upravena, prosím, načtěte stránku znovu, aby se změny projevily. Reload AriaNg=Načíst znovu AriaNg Show Secret=Zobrazit tajemství Hide Secret=Skrýt tajemství Aria2 Version=Verze Aria2 Enabled Features=Povolené funkce Operations=Operace Reconnect=Znovu připojit Save Session=Uložit relaci Shutdown Aria2=Vypnout Aria2 Confirm Shutdown=Potvrdit vypnutí Are you sure you want to shutdown aria2?=Opravdu chcete vypnout Aria2? Session has been saved successfully.=Relace byla úspěšně uložena. Aria2 has been shutdown successfully.=Aria2 byla úspěšně vypnuta. Toggle Navigation=Přepnout navigaci Shortcut=Zkratka Global Rate Limit=Globální omezení rychlosti Loading=Načítání More Than One Day=Více než 1 den Unknown=Neznámé Bytes=Bajty Hours=Hodiny Minutes=Minuty Seconds=Sekundy Milliseconds=Milisekundy Http=Http Http (Disabled)=Http (Zakázáno) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (Zakázáno) WebSocket (Security)=WebSocket (Zabezpečení) Http and WebSocket would be disabled when accessing AriaNg via Https.=Http a WebSocket budou zakázány při přístupu k AriaNg přes Https. POST=POST GET=GET Enabled=Povolené Disabled=Zakázané Always=Vždy Never=Nikdy BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=Změny v nastavení se projeví po obnovení stránky. Logging Time=Čas protokolování Log Level=Úroveň protokolů Auto Refresh=Automatické obnovení Refresh Now=Obnovit nyní Clear Logs=Vymazat protokoly Are you sure you want to clear debug logs?=Opravdu chcete vymazat ladicí protokoly? Show Detail=Zobrazit podrobnosti Log Detail=Podrobnosti protokolu Aria2 RPC Debug=Ladění Aria2 RPC Aria2 RPC Request Method=Metoda požadavku Aria2 RPC Aria2 RPC Request Parameters=Parametry požadavku Aria2 RPC Aria2 RPC Response=Odpověď Aria2 RPC Execute=Spustit RPC method is illegal!=Metoda RPC je neplatná! AriaNg does not support this RPC method!=AriaNg nepodporuje tuto metodu RPC! RPC request parameters are invalid!=Parametry požadavku RPC jsou neplatné! Type is illegal!=Typ je neplatný! Parameter is invalid!=Parametr je neplatný! Option value cannot be empty!=Hodnota volby nesmí být prázdná! Input number is invalid!=Zadané číslo je neplatné! Input number is below min value!=Zadané číslo je nižší než minimální hodnota {{value}}! Input number is above max value!=Zadané číslo je vyšší než maximální hodnota {{value}}! Input value is invalid!=Zadaná hodnota je neplatná! Protocol is invalid!=Protokol je neplatný! RPC host cannot be empty!=Hostitel RPC nesmí být prázdný! RPC secret is not base64 encoded!=RPC tajemství není zakódováno v base64! URL is not base64 encoded!=URL není zakódováno v base64! Tap to configure and get started with AriaNg.=Klepněte pro konfiguraci a začněte používat AriaNg. Cannot initialize WebSocket!=Nelze inicializovat WebSocket! Cannot connect to aria2!=Nelze se připojit k aria2! Access Denied!=Přístup byl odepřen! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=Nelze používat AriaNg, protože tento prohlížeč nesplňuje minimální požadavky pro ukládání dat. [error] unknown=Došlo k neznámé chybě. operation.timeout=Časový limit operace vypršel. resource.notfound=Zdroj nebyl nalezen. resource.notfound.max-file-not-found=Zdroj nebyl nalezen. Viz volba --max-file-not-found. download.aborted.lowest-speed-limit=Stahování bylo přerušeno, protože rychlost stahování byla příliš nízká. Viz volba --lowest-speed-limit. network.problem=Došlo k problému se sítí. resume.notsupported=Vzdálený server nepodporuje pokračování. space.notenough=Na disku není dostatek volného místa. piece.length.different=Délka částí se liší od délky uvedené v kontrolním souboru .aria2. Viz volba --allow-piece-length-change. download.sametime=Aria2 v tu chvíli stahovala stejný soubor. download.torrent.sametime=Aria2 v tu chvíli stahovala stejný torrent. file.exists=Soubor již existuje. Viz volba --allow-overwrite. file.rename.failed=Nepodařilo se přejmenovat soubor. Viz volba --auto-file-renaming. file.open.failed=Nepodařilo se otevřít existující soubor. file.create.failed=Nepodařilo se vytvořit nový soubor nebo zkrátit existující soubor. io.error=Došlo k chybě souborového systému. directory.create.failed=Nepodařilo se vytvořit adresář. name.resolution.failed=Nepodařilo se přeložit název domény. metalink.file.parse.failed=Nepodařilo se analyzovat dokument Metalink. ftp.command.failed=Příkaz FTP selhal. http.response.header.bad=Hlavička HTTP odpovědi byla neplatná nebo nerozpoznaná. redirects.toomany=Došlo k příliš mnoha přesměrováním. http.authorization.failed=HTTP autorizace selhala. bencoded.file.parse.failed=Nepodařilo se analyzovat bencoded soubor (obvykle soubor ".torrent"). torrent.file.corrupted=Soubor ".torrent" byl poškozený nebo mu chyběly informace, které aria2 potřebovala. magnet.uri.bad=Magnetický URI byl neplatný. option.bad=Byla zadána špatná/nerozpoznaná volba nebo neočekávaný argument volby. server.overload=Vzdálený server nedokázal zpracovat požadavek kvůli přetížení nebo údržbě. rpc.request.parse.failed=Nepodařilo se analyzovat JSON-RPC požadavek. checksum.failed=Validace kontrolního součtu selhala. [languages] Czech=Čeština German=Němčina English=Angličtina Spanish=Španělština French=Francouzština Italian=Italština Japanese=Japonština Polish=Polština Russian=Ruština Simplified Chinese=Zjednodušená čínština Traditional Chinese=Tradiční čínština [format] longdate=MM/DD/RRRR HH:mm:ss time.millisecond={{value}} milisekunda time.milliseconds={{value}} milisekund time.second={{value}} sekunda time.seconds={{value}} sekund time.minute={{value}} minuta time.minutes={{value}} minut time.hour={{value}} hodina time.hours={{value}} hodin requires.aria2-version=Vyžaduje Aria2 v{{version}} nebo vyšší task.new.download-links=Odkazy ke stažení ({{count}} odkazů): task.pieceinfo=Dokončeno: {{completed}}, Celkem: {{total}} task.error-occurred=Došlo k chybě ({{errorcode}}) task.verifying-percent=Ověřování ({{verifiedPercent}}%) settings.file-count=({{count}} souborů) settings.total-count=(Celkový počet: {{count}}) debug.latest-logs=Nejnovější {{count}} logu [rpc.error] unauthorized=Autorizace selhala! [option] true=Pravda false=Nepravda default=Výchozí none=Žádné hide=Skrýt full=Plný http=Http https=Https ftp=Ftp mem=Pouze paměť get=GET tunnel=Tunel plain=Prostý arc4=ARC4 binary=Binární ascii=ASCII debug=Ladění info=Informace notice=Upozornění warn=Varování error=Chyba adaptive=Adaptivní epoll=Epoll falloc=Falloc feedback=Zpětná vazba geom=Geometrie inorder=V pořadí kqueue=Kqueue poll=Poll port=Port prealloc=Předalokace random=Náhodný select=Vybrat trunc=Zkrátit SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Stahování cesta dir.description=Udává ředitelství, do kterého budou stažené soubory uloženy. log.name=Soubor logu log.description=Název souboru logu. Pokud je zadáno "-", log se zapisuje na standardní výstup. Pokud je zadán prázdný řetězec (""), nebo pokud je tato volba vynechána, log se vůbec nezapisuje na disk. max-concurrent-downloads.name=Maximální počet současných stahování max-concurrent-downloads.description=Nastavuje maximální počet souborů, které bude aria2 stahovat najednou. check-integrity.name=Kontrola integrity check-integrity.description=Ověřuje integritu souboru validací hashů částí nebo celého souboru. Tato volba má účinek pouze u stahování BitTorrent, Metalink s kontrolními součty nebo u HTTP(S)/FTP stahování s volbou --checksum. continue.name=Obnovit stahování continue.description=Pokračuje ve stahování částečně staženého souboru. Použijte tuto volbu pro obnovení stahování, které bylo zahájeno webovým prohlížečem nebo jiným programem, který stahuje soubory sekvenčně od začátku. Tato volba je momentálně použitelná pouze pro HTTP(S)/FTP stahování. all-proxy.name=Proxy server all-proxy.description=Použít proxy server pro všechny protokoly. Také můžete tuto konfiguraci přepsat a specifikovat proxy server pro konkrétní protokol pomocí --http-proxy, --https-proxy a --ftp-proxy. Toto ovlivňuje všechna stahování. Formát PROXY je [http://][UŽIVATEL:HESLO@]HOST[:PORT]. all-proxy-user.name=Uživatelské jméno proxy all-proxy-user.description=Určuje uživatelské jméno pro autentifikace při připojení ke všem proxy serverům. all-proxy-passwd.name=Heslo proxy all-proxy-passwd.description=Určuje heslo pro autentifikace při připojení ke všem proxy serverům. checksum.name=Kontrolní součet checksum.description=Nastavit kontrolní součet. Formát hodnoty volby je TYP=DIGEST. TYP je typ hash. Podporované typy hash jsou uvedeny v Hash Algorithms v aria2c -v. DIGEST je hexadecimální digest. Například nastavení sha-1 digestu vypadá takto: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838. Tato volba platí pouze pro HTTP(S)/FTP stahování. connect-timeout.name=Časový limit připojení connect-timeout.description=Nastavte časový limit připojení v sekundách pro navázání spojení s HTTP/FTP/proxy serverem. Po navázání spojení tato volba přestane mít účinek a použije se volba --timeout. dry-run.name=Zkušební start dry-run.description=Pokud je zadáno "Pravda", aria2 pouze zkontroluje, zda je vzdálený soubor dostupný, a nestahuje žádná data. Tato volba má účinek pouze u HTTP/FTP stahování. Stahování BitTorrentu se zruší, pokud je zadáno "Pravda". lowest-speed-limit.name=Nejnižší rychlost stahování lowest-speed-limit.description=Ukončit spojení, pokud je rychlost stahování nižší nebo rovna této hodnotě (bajty za sekundu). 0 znamená, že aria2 nemá žádný limit na nejnižší rychlost. Můžete připojit K nebo M (1K = 1024, 1M = 1024K). Tato volba neovlivňuje stahování BitTorrentu. max-connection-per-server.name=Maximální počet připojení na server max-connection-per-server.description=Nastavuje maximální počet spojení, které může aria2 současně instalovat s jedním serverem pro stažení jednoho souboru. To pomáhá optimalizovat rychlost stahování tím, že zabraňuje přílišnému zatížení serveru. max-file-not-found.name=Maximální počet pokusů o nalezení souboru max-file-not-found.description=Pokud aria2 obdrží stav "soubor nenalezen" od vzdálených HTTP/FTP serverů NUM krát bez získání jediného bajtu, vynutí selhání stahování. Zadejte 0 pro deaktivaci této volby. Tato volba je účinná pouze při použití HTTP/FTP serverů. Počet pokusů se počítá do --max-tries, takže by měla být také nastavena. max-tries.name=Maximální počet pokusů max-tries.description=Nastavit počet pokusů. 0 znamená neomezený počet. min-split-size.name=Minimální velikost části min-split-size.description=aria2 nerozdělí méně než 2*SIZE bajtů. Například, pokud stahujete 20MiB soubor a SIZE je 10M, aria2 může rozdělit soubor na 2 rozsahy [0-10MiB) a [10MiB-20MiB) a stáhnout je pomocí 2 zdrojů (pokud --split >= 2, samozřejmě). Pokud je SIZE 15M, protože 2*15M > 20MiB, aria2 nerozdělí soubor a stáhne ho pomocí 1 zdroje. Můžete připojit K nebo M (1K = 1024, 1M = 1024K). Možné hodnoty: 1M-1024M. netrc-path.name=Cesta k .netrc netrc-path.description=Udává cestu k souboru .netrc, který bude použit pro autentifikaci při připojení k serveru. no-netrc.name=Zakázat netrc no-netrc.description=Vypíná použití souboru .netrc pro autentifikaci. Pokud je instalováno, aria2 nebude vyhledávat a používat tento soubor k autentifikaci. no-proxy.name=Seznam bez proxy no-proxy.description=Specifikujte seznam názvů hostitelů, domén a síťových adres oddělených čárkami s nebo bez masky podsítě, kde se proxy nemá používat. out.name=Název souboru out.description=Název staženého souboru. Vždy je relativní k adresáři uvedenému v možnosti --dir. Při použití možnosti --force-sequential je tato možnost ignorována. proxy-method.name=Metoda proxy proxy-method.description=Nastavte metodu použitou v proxy požadavku. Metoda je buď "GET" nebo "Tunel". Stahování přes HTTPS vždy používá "Tunel" bez ohledu na tuto možnost. remote-time.name=Časová značka vzdáleného souboru remote-time.description=Získá časovou značku vzdáleného souboru z HTTP/FTP serveru a pokud je dostupné, aplikuje ji na místní soubor. reuse-uri.name=Znovu použít URI reuse-uri.description=Znovu použít již použitá URI, pokud nezbývají žádná nepoužitá URI. retry-wait.name=Čekání na opakování retry-wait.description=Nastavte počet sekund čekání mezi opakováními. Pokud je SEC > 0, aria2 znovu zkouší stahování, když HTTP server vrátí odpověď 503. server-stat-of.name=Výstup statistiky serveru server-stat-of.description=Určete název souboru, do kterého se uloží profil výkonu serverů. Uložená data můžete načíst pomocí možnosti --server-stat-if. server-stat-timeout.name=Timeout statistiky serveru server-stat-timeout.description=Určuje timeout v sekundách pro zneplatnění profilu výkonu serverů od posledního kontaktu s nimi. split.name=Počet rozdělení split.description=Stáhněte soubor pomocí N připojení. Pokud je zadáno více než N URI, prvních N URI je použito a zbývající URI slouží jako záložní. Pokud je zadáno méně než N URI, tato URI se použijí vícekrát, aby bylo současně vytvořeno celkem N připojení. Počet připojení ke stejnému hostiteli je omezen možností --max-connection-per-server. stream-piece-selector.name=Algoritmus výběru částí stream-piece-selector.description=Určete algoritmus výběru částí použitý při stahování HTTP/FTP. Část znamená segment s pevnou délkou, který se stahuje paralelně při segmentovaném stahování. Pokud je zadán výchozí algoritmus, aria2 vybírá části tak, aby snížila počet vytváření připojení. To je rozumné výchozí chování, protože vytváření připojení je nákladná operace. Pokud je zadán "V pořadí", aria2 vybírá část s minimálním indexem. Index=0 znamená začátek souboru. To může být užitečné pro sledování filmu při stahování. Možnost --enable-http-pipelining může být užitečná pro snížení režijních nákladů na opakované připojení. Pamatujte, že aria2 respektuje možnost --min-split-size, takže bude nutné nastavit rozumnou hodnotu pro možnost --min-split-size. Pokud je zadán "Náhodný", aria2 vybírá části náhodně. Stejně jako u "V pořadí" se respektuje možnost --min-split-size. Pokud je zadán geom, na začátku aria2 vybírá část s minimálním indexem jako u "V pořadí", ale exponenciálně zvyšuje vzdálenost od dříve vybrané části. To sníží počet vytváření připojení a zároveň stáhne začátek souboru jako první. To bude užitečné pro sledování filmu při stahování. timeout.name=Timeout timeout.description=Určuje timeout pro všechny webové transakce. Pokud se operace během uvedené doby nedokončí, bude přerušena. Hodnota je uvedena ve vteřinách. uri-selector.name=Algoritmus výběru URI uri-selector.description=Určete algoritmus výběru URI. Možné hodnoty jsou "V pořadí", "Zpětná vazba" a "Adaptivní". Pokud je zadán "V pořadí", URI se zkouší v pořadí, ve kterém se objevily v seznamu URI. Pokud je zadán "Zpětná vazba", aria2 používá rychlost stahování pozorovanou v předchozích stahováních a vybírá nejrychlejší server v seznamu URI. To také efektivně přeskočí nefunkční zrcadla. Pozorovaná rychlost stahování je součástí výkonového profilu serverů uvedeného v --server-stat-of a --server-stat-if. Pokud je zadán "Adaptivní", vybere jedno z nejlepších zrcadel pro první a rezervované připojení. Pro doplňková připojení vrací zrcadla, která ještě nebyla testována, a pokud byla všechna již testována, vrací zrcadla, která je třeba znovu otestovat. Jinak již nevybírá žádná další zrcadla. Stejně jako "Zpětná vazba" používá výkonový profil serverů. check-certificate.name=Kontrola certifikátu check-certificate.description=Definuje, zda bude aria2 ověřovat SSL certifikáty při spojení s HTTPS servery. Pokud je nastaveno "Pravda", bude aria2 ověřovat certifikáty, pokud "Nepravda" - bude je ignorovat. http-accept-gzip.name=Akceptovat GZip http-accept-gzip.description=Odesílá hlavičku požadavku Accept: deflate, gzip a dekomprimuje odpověď, pokud vzdálený server odpoví s Content-Encoding: gzip nebo Content-Encoding: deflate. http-auth-challenge.name=Autentizační výzva http-auth-challenge.description=Odesílá hlavičku HTTP autorizace pouze tehdy, pokud je požadována serverem. Pokud je nastaveno false, hlavička autorizace je vždy odesílána na server. Výjimkou je, pokud je uživatelské jméno a heslo vloženo do URI, hlavička autorizace je vždy odeslána na server bez ohledu na tuto možnost. http-no-cache.name=Bez cache http-no-cache.description=Odesílá hlavičky Cache-Control: no-cache a Pragma: no-cache, aby se předešlo uloženému obsahu. Pokud je zadáno false, tyto hlavičky nejsou odesílány a můžete přidat hlavičku Cache-Control s libovolnou direktivou pomocí možnosti --header. http-user.name=Výchozí uživatelské jméno HTTP http-user.description=Určuje uživatelské jméno pro autentifikace při připojení k HTTP serveru. http-passwd.name=Výchozí heslo HTTP http-passwd.description=Určuje heslo pro autentifikace při připojení k HTTP serveru. http-proxy.name=HTTP proxy server http-proxy.description=Instaluje proxy server pro HTTP připojení. Zadejte adresu proxy serveru, přes kterou budou HTTP dotazy procházet. http-proxy-user.name=Uživatelské jméno pro HTTP proxy http-proxy-user.description=Určuje uživatelské jméno pro autentifikace při připojení k HTTP proxy serveru. http-proxy-passwd.name=Heslo pro HTTP proxy http-proxy-passwd.description=Určuje heslo pro autentifikace při připojení k HTTP proxy serveru. https-proxy.name=HTTPS proxy server https-proxy.description=Určuje proxy server pro HTTPS připojení. Zadejte adresu proxy serveru, přes kterou budou HTTPS dotazy procházet. https-proxy-user.name=Uživatelské jméno pro HTTPS proxy https-proxy-user.description=Určuje uživatelské jméno pro autentifikace při připojení k HTTPS proxy serveru. https-proxy-passwd.name=Heslo pro HTTPS proxy https-proxy-passwd.description=Určuje heslo pro autentifikace při připojení k HTTPS proxy serveru. referer.name=Odkazující stránka referer.description=Nastavte HTTP odkazující stránku (Referer). Toto ovlivňuje všechna HTTP/HTTPS stahování. Pokud je zadána *, adresa URI stahování se také používá jako odkazující stránka. To může být užitečné při použití společně s možností --parameterized-uri. enable-http-keep-alive.name=Povolit přetrvávající připojení enable-http-keep-alive.description=Povolit přetrvávající připojení HTTP/1.1. enable-http-pipelining.name=Povolit HTTP pipelining enable-http-pipelining.description=Povolit HTTP/1.1 pipelining. header.name=Vlastní záhlaví header.description=Připojit záhlaví k HTTP požadavkovému záhlaví. Uveďte jednu položku na řádek, každá položka obsahuje "název záhlaví: hodnota záhlaví". save-cookies.name=Cesta k souboru Cookies save-cookies.description=Uložit cookies do SOUBORU ve formátu Mozilla/Firefox(1.x/2.x)/Netscape. Pokud SOUBOR již existuje, bude přepsán. Session cookies jsou také uloženy a jejich hodnoty vypršení platnosti jsou považovány za 0. use-head.name=Použít metodu HEAD use-head.description=Použít metodu HEAD pro první požadavek na HTTP server. user-agent.name=Uživatelský agent user-agent.description=Určuje řetězec uživatelského agentu (User-Agent), který bude aria2 používat při komunikaci s webovými servery. ftp-user.name=Výchozí uživatelské jméno FTP ftp-user.description=Nastavuje uživatelské jméno, které bude standardně používáno pro ověřování při připojování k serverům FTP. ftp-passwd.name=Výchozí heslo FTP ftp-passwd.description=Pokud je uživatelské jméno vloženo, ale heslo v URI chybí, aria2 se pokusí získat heslo z .netrc. Pokud je heslo nalezeno v .netrc, použije jej jako heslo. Pokud ne, použije heslo zadané v této možnosti. ftp-pasv.name=Pasivní režim ftp-pasv.description=Použít pasivní režim v FTP. Pokud je zadáno false, bude použit aktivní režim. Tato možnost je ignorována pro přenos SFTP. ftp-proxy.name=FTP Proxy Server ftp-proxy.description=Nastaví proxy server pro připojení FTP. Zadejte adresu proxy serveru, přes který budou procházet požadavky FTP. ftp-proxy-user.name=Uživatelské jméno pro FTP proxy ftp-proxy-user.description=Nastaví uživatelské jméno, které se použije pro ověření při připojování k serveru proxy FTP. ftp-proxy-passwd.name=Heslo pro FTP proxy ftp-proxy-passwd.description=Nastaví heslo pro ověření při připojování k serveru proxy FTP. ftp-type.name=Typ přenosu ftp-type.description=Nastavuje typ přenosu pro připojení FTP. Možné hodnoty: passive nebo active. ftp-reuse-connection.name=Znovu použít připojení ftp-reuse-connection.description=Umožňuje opětovné použití jediného FTP připojení pro více stahování nebo odesílání, čímž se zvyšuje výkon. ssh-host-key-md.name=Kontrolní součet veřejného SSH klíče ssh-host-key-md.description=Nastavte kontrolní součet veřejného SSH klíče. Formát hodnoty možnosti je TYPE=DIGEST. TYPE je typ hash. Podporované typy hash jsou sha-1 nebo md5. DIGEST je hexadecimální digest. Například: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. Tato možnost může být použita k ověření veřejného klíče serveru při použití SFTP. Pokud tato možnost není nastavena (což je výchozí), ověřování neprobíhá. bt-detach-seed-only.name=Vyloučit pouze seedy bt-detach-seed-only.description=Vyloučit pouze seedy při počítání současných aktivních stahování (viz možnost -j). To znamená, že pokud je zadáno -j3, tato možnost je zapnuta a 3 stahování jsou aktivní a jedno z nich přejde do režimu seeding, pak je vyňato z počtu aktivních stahování (tím se počet stane 2) a další stahování čekající ve frontě se spustí. Upozorňujeme však, že seeding položka je stále považována za aktivní stahování v metodě RPC. bt-enable-hook-after-hash-check.name=Povolit hook po kontrolě hash bt-enable-hook-after-hash-check.description=Povolit spuštění příkazu hook po kontrole hash (viz možnost -V) v BitTorrent stahování. Ve výchozím nastavení, když kontrola hash uspěje, se spustí příkaz zadaný pomocí --on-bt-download-complete. Chcete-li tuto akci zakázat, zadejte false do této možnosti. bt-enable-lpd.name=Povolit lokální vyhledávání peerů (LPD) bt-enable-lpd.description=Povolit lokální vyhledávání peerů. Pokud je v torrentu nastaven příznak private, aria2 tuto funkci pro toto stahování nepoužívá, i když je zadáno "Pravda". bt-exclude-tracker.name=BitTorrent vyloučení trackerů bt-exclude-tracker.description=Čárkou oddělený seznam URI trackerů BitTorrentu, které mají být odstraněny. Můžete použít speciální hodnotu *, která odpovídá všem URI a tím odstraní všechny URI pro oznamování. Při zadávání * v příkazovém řádku shellu nezapomeňte jej escapovat nebo uzavřít do uvozovek. bt-external-ip.name=Externí IP bt-external-ip.description=Zadejte externí IP adresu, která se má použít při stahování pomocí BitTorrentu a DHT. Může být odeslána trackeru BitTorrentu. U DHT by měla být tato možnost nastavena pro oznámení, že lokální uzel stahuje konkrétní torrent. To je důležité při použití DHT v privátní síti. Ačkoliv je tato funkce označena jako externí, může přijímat jakýkoliv typ IP adresy. bt-force-encryption.name=Vynutit šifrování bt-force-encryption.description=Vyžaduje šifrování datového obsahu zprávy BitTorrent pomocí arc4. Toto je zkratka pro --bt-require-crypto --bt-min-crypto-level=arc4. Tato možnost nemění hodnotu těchto možností. Pokud je zadáno "Pravda", zamítne starší handshake BitTorrent a použije pouze handshake s obfuskováním a vždy šifruje datový obsah zprávy. bt-hash-check-seed.name=Kontrola hash před seedováním bt-hash-check-seed.description=Pokud je zadáno "Pravda", po kontrole hash pomocí --check-integrity možnosti a dokončení souboru pokračuje seedování souboru. Pokud chcete zkontrolovat soubor a stáhnout jej pouze v případě, že je poškozený nebo neúplný, nastavte tuto možnost na false. Tato možnost má vliv pouze na stahování BitTorrent. bt-load-saved-metadata.name=Načíst uložený soubor metadat bt-load-saved-metadata.description=Před získáním torrentových metadat z DHT při stahování pomocí magnetického odkazu se nejdříve pokusí přečíst soubor uložený pomocí možnosti --bt-save-metadata. Pokud je to úspěšné, přeskočí se stahování metadat z DHT. bt-max-open-files.name=Maximální počet otevřených souborů bt-max-open-files.description=Nastavte maximální počet souborů, které lze otevřít při stahování více souborů pomocí BitTorrent/Metalink globálně. bt-max-peers.name=Maximální počet peerů bt-max-peers.description=Nastavte maximální počet peerů na torrent. 0 znamená neomezeně. bt-metadata-only.name=Stáhnout pouze metadata bt-metadata-only.description=Stáhněte pouze metadata. Soubory popsané v metadatech nebudou staženy. Tato možnost má vliv pouze při použití BitTorrent Magnet URI. bt-min-crypto-level.name=Minimální úroveň šifrování bt-min-crypto-level.description=Nastavte minimální úroveň metody šifrování. Pokud peer poskytuje několik metod šifrování, aria2 vybere nejnižší, která splňuje danou úroveň. bt-prioritize-piece.name=Upřednostnit část bt-prioritize-piece.description=Pokuste se nejprve stáhnout první a poslední části každého souboru. To je užitečné pro náhledy souborů. Argument může obsahovat 2 klíčová slova: head a tail. Pro zahrnutí obou klíčových slov musí být oddělena čárkou. Tato klíčová slova mohou mít jeden parametr, SIZE. Například pokud je specifikováno head=SIZE, části v rozsahu prvních SIZE bajtů každého souboru mají vyšší prioritu. tail=SIZE znamená rozsah posledních SIZE bajtů každého souboru. SIZE může obsahovat K nebo M (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=Odstranit nevybrané soubory bt-remove-unselected-file.description=Odstraní nevybrané soubory po dokončení stahování v BitTorrent. Pro výběr souborů použijte možnost --select-file. Pokud není použita, všechny soubory se považují za vybrané. Používejte tuto možnost s opatrností, protože skutečně odstraní soubory z vašeho disku. bt-require-crypto.name=Vyžadovat šifrování bt-require-crypto.description=Pokud je zadáno "Pravda", aria2 neakceptuje ani neetabluje spojení se starším handshake BitTorrent (\19BitTorrent protocol). Aria2 tedy vždy používá handshake s obfuskováním. bt-request-peer-speed-limit.name=Preferovaná rychlost stahování bt-request-peer-speed-limit.description=Pokud je celková rychlost stahování u všech torrentů nižší než SPEED, aria2 dočasně zvýší počet peerů, aby dosáhla vyšší rychlosti stahování. Nastavení této možnosti na vaši preferovanou rychlost stahování může v některých případech zvýšit rychlost stahování. Můžete přidat K nebo M (1K = 1024, 1M = 1024K). bt-save-metadata.name=Uložit metadata bt-save-metadata.description=Uložit metadata jako ".torrent" soubor. Tato možnost má vliv pouze při použití BitTorrent Magnet URI. Název souboru je hexadecimálně kódovaný info hash s příponou ".torrent". Adresář, do kterého je uložen, je stejný jako adresář, kde je uložen stažený soubor. Pokud již stejný soubor existuje, metadata se neuloží. bt-seed-unverified.name=Neověřovat stažené soubory bt-seed-unverified.description=Seedujte dříve stažené soubory bez ověření hash částí. bt-stop-timeout.name=Časový limit zastavení bt-stop-timeout.description=Zastaví stahování BitTorrent, pokud rychlost stahování je 0 během po sobě jdoucích SEC sekund. Pokud je zadáno 0, tato funkce je deaktivována. bt-tracker.name=BitTorrent trackery bt-tracker.description=Čárkou oddělený seznam dodatečných URI trackerů BitTorrentu. Tyto URI nejsou ovlivněny možností --bt-exclude-tracker, protože jsou přidány po odstranění URI uvedených v možnosti --bt-exclude-tracker. bt-tracker-connect-timeout.name=Časový limit připojení trackeru bt-tracker-connect-timeout.description=Nastavte časový limit připojení k trackeru v sekundách. Po navázání připojení tato možnost již nemá vliv a místo ní se použije možnost --bt-tracker-timeout. bt-tracker-interval.name=Interval připojení trackeru bt-tracker-interval.description=Nastavte interval v sekundách mezi požadavky trackeru. Tento interval zcela přepisuje hodnotu intervalu a aria2 používá pouze tuto hodnotu, ignoruje minimální interval a hodnotu intervalu v odpovědi trackeru. Pokud je nastavena hodnota 0, aria2 určí interval na základě odpovědi trackeru a pokroku stahování. bt-tracker-timeout.name=Časový limit trackeru bt-tracker-timeout.description=Nastavuje časový limit pro interakci se sledovači BitTorrent. Určuje dobu čekání na odpověď od sledovače před opakovaným pokusem. dht-file-path.name=Soubor DHT (IPv4) dht-file-path.description=Změňte soubor směrovací tabulky DHT IPv4 na PATH. dht-file-path6.name=Soubor DHT (IPv6) dht-file-path6.description=Změňte soubor směrovací tabulky DHT IPv6 na PATH. dht-listen-port.name=Port pro DHT dht-listen-port.description=Nastavte UDP port pro naslouchání používaný DHT (IPv4, IPv6) a UDP trackerem. Více portů lze zadat pomocí "," například: 6881,6885. Můžete také použít "-" pro určení rozsahu: 6881-6999. "," a "-" lze kombinovat. dht-message-timeout.name=Časový limit zprávy DHT dht-message-timeout.description=Nastavuje časový limit pro zasílání zpráv v DHT (Distributed Hash Table). Určuje dobu čekání na odpověď od kolegů v síti DHT enable-dht.name=Povolit DHT (IPv4) enable-dht.description=Povolit funkčnost DHT IPv4. Tato možnost také povoluje podporu UDP trackeru. Pokud je v torrentu nastaven příznak privatní, aria2 tuto funkci nepoužije pro dané stahování, i když je zadáno "Pravda". enable-dht6.name=Povolit DHT (IPv6) enable-dht6.description=Povolit funkčnost DHT IPv6. Pokud je v torrentu nastaven příznak přivatní, aria2 tuto funkci nepoužije pro dané stahování, i když je zadáno "Pravda". Použijte možnost --dht-listen-port pro zadání čísla portu pro naslouchání. enable-peer-exchange.name=Povolit výměnu peerů enable-peer-exchange.description=Povolit rozšíření výměny peerů. Pokud je v torrentu nastaven příznak privatní, tato funkce je pro toto stahování deaktivována, i když je zadáno "Pravda". follow-torrent.name=Sledovat torrent follow-torrent.description=Pokud je zadáno "Pravda" nebo pouze paměť, při stažení souboru s příponou .torrent nebo s obsahem typu application/x-bittorrent aria2 jej analyzuje jako torrentový soubor a stáhne v něm zmíněné soubory. Pokud je zadáno pouze paměť, torrentový soubor není uložen na disk, ale zůstává pouze v paměti. Pokud je zadáno "Nepravda", .torrent soubor je stažen na disk, ale není analyzován jako torrent a jeho obsah není stažen. listen-port.name=Port pro naslouchání listen-port.description=Nastavte číslo TCP portu pro stahování BitTorrent. Více portů lze zadat pomocí "," například: 6881,6885. Můžete také použít "-" pro určení rozsahu: 6881-6999. "," a "-" lze kombinovat: 6881-6889,6999. max-overall-upload-limit.name=Globální maximální limit nahrávání max-overall-upload-limit.description=Nastavte maximální celkovou rychlost nahrávání v bajtech za sekundu. 0 znamená neomezeně. Můžete přidat K nebo M (1K = 1024, 1M = 1024K). max-upload-limit.name=Maximální limit nahrávání max-upload-limit.description=Nastavte maximální rychlost nahrávání pro každý torrent v bajtech za sekundu. 0 znamená neomezeně. Můžete přidat K nebo M (1K = 1024, 1M = 1024K). peer-id-prefix.name=Předpona Peer ID peer-id-prefix.description=Zadejte předponu ID peeru. Peer ID v BitTorrentu má délku 20 bajtů. Pokud je zadáno více než 20 bajtů, použije se pouze prvních 20. Pokud je zadáno méně než 20 bajtů, přidají se náhodná data, aby byla délka 20 bajtů. peer-agent.name=Agent peeru peer-agent.description=Zadejte řetězec použitý během rozšířeného handshaku BitTorrent pro verzi klienta peeru. seed-ratio.name=Minimální podíl sdílení seed-ratio.description=Nastavte podíl sdílení. Seedujte dokončené torrenty, dokud podíl sdílení nedosáhne RATIO. Důrazně doporučujeme zadat rovno nebo více než 1.0. Zadejte 0.0, pokud máte v úmyslu seedovat bez ohledu na podíl sdílení. Pokud je tato možnost zadána společně s možností --seed-time, seedování skončí, jakmile je splněna alespoň jedna z podmínek. seed-time.name=Minimální čas seedování seed-time.description=Specifikujte dobu sdílení v (desetinných) minutách. Zadání --seed-time=0 zakáže sdílení po dokončení stahování. follow-metalink.name=Sledovat Metalink follow-metalink.description=Pokud je nastaveno "Pravda" nebo pouze paměť, při stahování souboru s příponou .meta4 nebo .metalink nebo s typem obsahu application/metalink4+xml nebo application/metalink+xml, aria2 jej interpretuje jako soubor metalink a stáhne soubory v něm uvedené. Pokud je zadáno pouze paměť, soubor metalink se neukládá na disk, ale pouze do paměti. Pokud je zadáno "Nepravda", soubor .metalink se stáhne na disk, ale nebude interpretován jako metalink a jeho obsah se nestáhne. metalink-base-uri.name=Základní URI metalink-base-uri.description=Zadejte základní URI pro rozlišení relativního URI v elementech metalink:url a metalink:metaurl v souboru metalink uloženém na lokálním disku. Pokud URI ukazuje na adresář, musí končit znakem /. metalink-language.name=Jazyk metalink-language.description=Nastaví jazyk, který se má použít pro metadata Metalink. Jazyk je specifikován jako kód jazyka, například "en" pro angličtinu. metalink-location.name=Preferované umístění serveru metalink-location.description=Umístění preferovaného serveru. Je možné zadat seznam umístění oddělený čárkami, například jp,us. metalink-os.name=Operační systém metalink-os.description=Operační systém souboru ke stažení. metalink-version.name=Verze metalink-version.description=Verze souboru ke stažení. metalink-preferred-protocol.name=Preferovaný protokol metalink-preferred-protocol.description=Zadejte preferovaný protokol. Možné hodnoty jsou http, https, ftp a "Žadné". Zadejte "Žadné" pro deaktivaci této funkce. metalink-enable-unique-protocol.name=Povolit unikátní protokol metalink-enable-unique-protocol.description=Pokud je zadáno "Pravda" a v souboru metalink je pro zrcadlo dostupných několik protokolů, aria2 použije jeden z nich. Pomocí volby --metalink-preferred-protocol můžete specifikovat preferenci protokolu. enable-rpc.name=Povolit JSON-RPC/XML-RPC server enable-rpc.description=Umožňuje rozhraní vzdáleného volání procedur (RPC), které umožňuje ovládat aria2 externími aplikacemi. pause-metadata.name=Pozastavit po stažení metadat pause-metadata.description=Pozastavit stahování vytvořená na základě stažených metadat. V aria2 existují tři typy stahování metadat: (1) stahování souboru .torrent, (2) stahování metadat torrentu pomocí magnetického odkazu, (3) stahování souboru metalink. Tato stahování metadat vytvoří stahování pomocí svých metadat. Tato možnost pozastaví tato následná stahování. Tato možnost je účinná pouze tehdy, když je zadáno --enable-rpc=true. rpc-allow-origin-all.name=Povolit všechny požadavky původu rpc-allow-origin-all.description=Přidat pole hlavičky Access-Control-Allow-Origin s hodnotou * do odpovědi RPC. rpc-listen-all.name=Naslouchat na všech síťových rozhraních rpc-listen-all.description=Naslouchat příchozím požadavkům JSON-RPC/XML-RPC na všech síťových rozhraních. Pokud je zadáno "Nepravda", naslouchá pouze na lokálním loopback rozhraní. rpc-listen-port.name=Port naslouchání rpc-listen-port.description=Nastavuje port, na kterém bude aria2 naslouchat požadavkům RPC. Ve výchozím nastavení se používá port 6800. rpc-max-request-size.name=Maximální velikost požadavku rpc-max-request-size.description=Nastavte maximální velikost požadavku JSON-RPC/XML-RPC. Pokud aria2 zjistí, že požadavek přesahuje velikost SIZE bajtů, připojení přeruší. rpc-save-upload-metadata.name=Uložit metadata nahrávání rpc-save-upload-metadata.description=Uložte metadata nahraných torrentů nebo metalinků do adresáře určeného možností --dir. Název souboru se skládá z hexadecimálního řetězce SHA-1 hashe metadat a přípony. Pro torrent je přípona '.torrent'. Pro metalink je to '.meta4'. Pokud je této možnosti zadáno "Nepravda", stahování přidaná aria2.addTorrent() nebo aria2.addMetalink() nebudou uložena pomocí volby --save-session. rpc-secure.name=Povolit SSL/TLS rpc-secure.description=Přenos RPC bude šifrován pomocí SSL/TLS. Klienti RPC musí používat schéma https pro přístup k serveru. Pro klienta WebSocket použijte schéma wss. K určení certifikátu serveru a soukromého klíče použijte možnosti --rpc-certificate a --rpc-private-key. allow-overwrite.name=Povolit přepsání allow-overwrite.description=Restartujte stahování od začátku, pokud neexistuje odpovídající kontrolní soubor. Viz také možnost --auto-file-renaming. allow-piece-length-change.name=Povolit změnu délky dílku allow-piece-length-change.description=Pokud je zadáno "Nepravda", aria2 ukončí stahování, když se délka dílku liší od délky v kontrolním souboru. Pokud je zadáno "Pravda", můžete pokračovat, ale část pokroku stahování bude ztracena. always-resume.name=Vždy obnovit stahování always-resume.description=Vždy obnovit stahování. Pokud je zadáno "Pravda", aria2 vždy zkusí obnovit stahování a pokud obnovení není možné, stahování přeruší. Pokud je zadáno "Nepravda", pokud žádné z uvedených URI nepodporuje obnovení nebo aria2 narazí na N URI, které obnovení nepodporují (N je hodnota zadaná pomocí volby --max-resume-failure-tries), aria2 stáhne soubor od začátku. Viz volba --max-resume-failure-tries. async-dns.name=Asynchronní DNS async-dns.description=Umožňuje asynchronní překlad DNS, který může zlepšit výkon při překladu názvů hostitelů. auto-file-renaming.name=Automatické přejmenování souboru auto-file-renaming.description=Přejmenujte název souboru, pokud již existuje stejný soubor. Tato volba funguje pouze při stahování přes HTTP(S)/FTP. Nový název souboru bude obsahovat tečku a číslo (1..9999) připojené za názvem, ale před příponou souboru, pokud existuje. auto-save-interval.name=Interval automatického ukládání auto-save-interval.description=Uložte kontrolní soubor (*.aria2) každých SEC sekund. Pokud je zadáno 0, kontrolní soubor se během stahování neukládá. aria2 uloží kontrolní soubor, když se stahování zastaví, bez ohledu na hodnotu. Možné hodnoty jsou mezi 0 a 600. conditional-get.name=Podmíněné stahování conditional-get.description=Stahujte soubor pouze tehdy, když je místní soubor starší než vzdálený soubor. Tato funkce funguje pouze u stahování HTTP(S). Nefunguje, pokud je velikost souboru specifikována v Metalink. Ignoruje také hlavičku Content-Disposition. Pokud existuje kontrolní soubor, tato volba bude ignorována. Tato funkce používá hlavičku If-Modified-Since k podmíněnému stahování novějšího souboru. Při získávání času úpravy místního souboru se používá název souboru zadaný uživatelem (viz volba --out) nebo část názvu souboru v URI, pokud --out není specifikováno. Pro přepsání existujícího souboru je vyžadováno --allow-overwrite. conf-path.name=Konfigurační soubor conf-path.description=Určuje cestu ke konfiguračnímu souboru, který bude použit při spuštění aria2. console-log-level.name=Úroveň konzolového logu console-log-level.description=Nastavuje úroveň podrobností pro výstup protokolu konzoly. Dostupné úrovně: ladění, informace, upozornění, varování a chyba. content-disposition-default-utf8.name=Použít UTF-8 pro zpracování Content-Disposition content-disposition-default-utf8.description=Zpracovávejte řetězce uvedené v hlavičce Content-Disposition jako UTF-8 namísto ISO-8859-1, například parametr filename, ale ne jeho rozšířenou verzi. daemon.name=Povolit Daemon daemon.description=Spustí aria2 na pozadí jako Daemona, čímž uvolní terminál pro další úkoly. deferred-input.name=Odložené načítání deferred-input.description=Pokud je zadáno "Pravda", aria2 nečte všechny URI a možnosti ze souboru zadaného volbou --input-file při spuštění, ale čte je po jednom, když je to potřeba. To může snížit spotřebu paměti, pokud vstupní soubor obsahuje velké množství URI ke stažení. Pokud je zadáno "Nepravda", aria2 čte všechny URI a možnosti při spuštění. Možnost --deferred-input bude deaktivována, když je použita spolu s --save-session. disable-ipv6.name=Deaktivovat IPv6 disable-ipv6.description=Zakáže použití IPv6 pro všechna síťová připojení. disk-cache.name=Cache na disku disk-cache.description=Povolit cache na disku. Pokud je velikost SIZE nastavena na 0, cache na disku je deaktivována. Tato funkce ukládá stažená data do paměti, která roste až na velikost SIZE bajtů. Úložný prostor cache je vytvořen pro instanci aria2 a je sdílen mezi všemi stahováními. Výhodou cache na disku je snížení I/O operací na disku, protože data jsou zapisována ve větších blocích a jsou přeorganizována podle offsetu souboru. Pokud je zapojeno kontrolování hashů a data jsou uložena v paměti, není nutné je číst z disku. SIZE může zahrnovat K nebo M (1K = 1024, 1M = 1024K). download-result.name=Výsledek stahování download-result.description=Tato volba mění formát výstupu výsledků stahování. Pokud je OPT nastaven na "Výchozí", zobrazí GID, stav, průměrnou rychlost stahování a cestu/URI. Pokud je zapojeno více souborů, je vytištěna cesta/URI prvního požadovaného souboru a ostatní jsou vynechány. Pokud je OPT nastaven na "Úplný", zobrazí GID, stav, průměrnou rychlost stahování, procento pokroku a cestu/URI. Procento pokroku a cesta/URI jsou zobrazeny pro každý požadovaný soubor v každém řádku. Pokud je OPT nastaven na "Skrýt", výsledky stahování jsou skryty. dscp.name=DSCP dscp.description=Nastavte hodnotu DSCP v odchozích IP paketech BitTorrent provozu pro QoS. Tento parametr nastaví pouze bity DSCP v poli TOS IP paketů, nikoliv celé pole. Pokud používáte hodnoty z /usr/include/netinet/ip.h, rozdělte je o 4 (jinak by hodnoty byly nesprávné, např. vaše třída CS1 by se změnila na CS4). Pokud používáte běžně používané hodnoty z RFC, dokumentace síťových poskytovatelů, Wikipedie nebo jiných zdrojů, používejte je tak, jak jsou. rlimit-nofile.name=Měkký limit otevřených popisovačů souborů rlimit-nofile.description=Nastavte měkký limit pro otevřené popisovače souborů. Tento limit bude mít efekt pouze pokud: a. Systém jej podporuje (posix). b. Limit nepřesahuje tvrdý limit. c. Zadaný limit je větší než aktuální měkký limit. Toto je ekvivalentní nastavení nofile pomocí ulimit, s tím rozdílem, že nikdy nezměníte limit na nižší hodnotu. Tato volba je dostupná pouze na systémech podporujících API rlimit. enable-color.name=Povolit barvy v terminálu enable-color.description=Povolí nebo zakáže použití barevného stylu ve výstupu konzoly. enable-mmap.name=Povolit MMap enable-mmap.description=Mapujte soubory do paměti. Tato volba nebude fungovat, pokud není prostor pro soubory předem alokován. Viz --file-allocation. event-poll.name=Metoda volení událostí event-poll.description=Specifikujte metodu pro volení událostí. Možné hodnoty jsou "Epoll", "Kqueue", "Port", "Poll" a "Vybrat". Pro každou z "Epoll", "Kqueue", "Port" a "Poll", je k dispozici, pokud to systém podporuje. "Epoll" je k dispozici na novějších verzích Linuxu. "Kqueue" je k dispozici na různých systémech *BSD včetně Mac OS X. "Port" je k dispozici na Open Solaris. Výchozí hodnota se může lišit podle použitého systému. file-allocation.name=Metoda alokace souboru file-allocation.description=Specifikujte metodu alokace souboru. "Žadné" nealokuje prostor souboru předem. "Předalokace" alokuje prostor souboru před začátkem stahování. To může nějaký čas trvat, v závislosti na velikosti souboru. Pokud používáte novější souborové systémy jako ext4 (s podporou extents), btrfs, xfs nebo NTFS (pouze MinGW verze), "Falloc" je nejlepší volba. Alokuje velké (několik GiB) soubory téměř okamžitě. Nepoužívejte "Falloc" na starších souborových systémech jako ext3 a FAT32, protože to trvá téměř stejně dlouho jako předalokace a zcela zablokuje aria2, dokud alokace neskončí. "Falloc" nemusí být k dispozici, pokud váš systém nemá funkci posix_fallocate(3). "Zkrátit" používá systémový hovor ftruncate(2) nebo platformě specifický ekvivalent pro zkrácení souboru na specifikovanou délku. U multi-souborových torrent stahování jsou alokovány i soubory sousedící vpřed k uvedeným souborům, pokud sdílejí stejný kus. force-save.name=Vynutit uložení force-save.description=Uloží stahování pomocí volby --save-session, i když je stahování dokončeno nebo odstraněno. Tato volba také uloží kontrolní soubor v těchto situacích. To může být užitečné pro uložení BitTorrent seeding, které je rozpoznáno jako dokončený stav. save-not-found.name=Uložit soubor, který nebyl nalezen save-not-found.description=Uloží stahování pomocí volby --save-session, i když soubor nebyl nalezen na serveru. Tato volba také uloží kontrolní soubor v těchto situacích. hash-check-only.name=Kontrola hashů pouze hash-check-only.description=Pokud je zadáno"Pravda", po kontrole hashů pomocí volby --check-integrity, přeruší stahování, bez ohledu na to, zda je stahování dokončeno. human-readable.name=Konzolový výstup ve formátu čitelném pro člověka human-readable.description=Tiskněte velikosti a rychlosti ve formátu čitelném pro člověka (např. 1.2Ki, 3.4Mi) v konzolovém výstupu. keep-unfinished-download-result.name=Udržet nedokončené výsledky stahování keep-unfinished-download-result.description=Udržujte nedokončené výsledky stahování, i když tím přesáhnete limit --max-download-result. To je užitečné, pokud musí být všechny nedokončené stahování uloženy v souboru relace (viz volba --save-session). Mějte na paměti, že neexistuje žádný horní limit pro počet nedokončených výsledků stahování, které je třeba uchovat. Pokud to není žádoucí, tuto volbu vypněte. max-download-result.name=Maximální počet výsledků stahování max-download-result.description=Určuje maximální počet výsledků stahování, které budou uchovávány v paměti. Výsledky stahování zahrnují dokončené/selhané/odstraněné stahování. Výsledky stahování jsou uchovávány v FIFO frontě a může obsahovat maximálně NUM výsledků stahování. Když je fronta plná a je vytvořen nový výsledek stahování, nejstarší výsledek je odstraněn z přední části fronty a nový je přidán na konec. Nastavení vyššího čísla v této volbě může vést k vyšší spotřebě paměti po tisících stahování. Specifikování hodnoty 0 znamená, že výsledky stahování nebudou uchovávány. Nezapomeňte, že neukončené stahování se uchovává v paměti bez ohledu na tuto volbu. Viz také volba --keep-unfinished-download-result. max-mmap-limit.name=Maximální limit MMap max-mmap-limit.description=Určuje maximální velikost souboru pro povolení Mmap (viz volba --enable-mmap). Velikost souboru je určena součtem všech souborů obsažených v jednom stahování. Například pokud stahování obsahuje 5 souborů, celková velikost souborů je součet těchto souborů. Pokud je velikost souboru přísně větší než velikost určená touto volbou, Mmap bude zakázáno. max-resume-failure-tries.name=Maximální počet pokusů o obnovení po selhání max-resume-failure-tries.description=Při použití s volbou --always-resume=false, aria2 stáhne soubor od začátku, když zjistí N URI, které nepodporují obnovení. Pokud je N rovno 0, aria2 stáhne soubor od začátku, když všechny zadané URI nepodporují obnovení. Viz volba --always-resume. min-tls-version.name=Minimální verze TLS min-tls-version.description=Určuje minimální verzi SSL/TLS pro povolení. log-level.name=Úroveň protokolování log-level.description=Určuje úroveň protokolování pro aplikaci. optimize-concurrent-downloads.name=Optimalizovat souběžné stahování optimize-concurrent-downloads.description=Optimalizuje počet souběžných stahování podle dostupné šířky pásma. aria2 používá rychlost stahování pozorovanou v předchozích stahováních k přizpůsobení počtu stahování spuštěných paralelně podle pravidla N = A + B Log10(rýchlost v Mbps). Koeficienty A a B lze přizpůsobit v argumentech volby s oddělením A a B dvojtečkou. Výchozí hodnoty (A=5, B=25) vedou k používání typických 5 paralelních stahování na 1Mbps síťích a více než 50 na 100Mbps sítích. Počet paralelních stahování zůstává omezen maximem definovaným parametrem --max-concurrent-downloads. piece-length.name=Velikost bloku piece-length.description=Určuje velikost bloku pro HTTP/FTP stahování. Toto je hranice, kdy aria2 rozdělí soubor. Všechna dělení probíhají na násobcích této velikosti. Tato volba bude ignorována při BitTorrent stahováních. Bude také ignorována, pokud Metalink soubor obsahuje hashe kousků. show-console-readout.name=Zobrazit výstup v konzoli show-console-readout.description=Určuje, zda se má výstup zobrazit v konzole. summary-interval.name=Interval pro výstup souhrnu stahování summary-interval.description=Určuje interval v sekundách pro zobrazení souhrnu pokroku stahování. Nastavení na 0 potlačí výstup. max-overall-download-limit.name=Globální maximální limit stahování max-overall-download-limit.description=Určuje maximální celkovou rychlost stahování v bajtech za sekundu. 0 znamená neomezeno. Můžete přidat K nebo M (1K = 1024, 1M = 1024K). max-download-limit.name=Maximální limit stahování max-download-limit.description=Určuje maximální rychlost stahování pro každý soubor v bajtech za sekundu. 0 znamená neomezeno. Můžete přidat K nebo M (1K = 1024, 1M = 1024K). no-conf.name=Zakázat konfigurační soubor no-conf.description=Zakáže načítání konfiguračního souboru. no-file-allocation-limit.name=Bez limitu alokace souboru no-file-allocation-limit.description=Bez alokace souboru pro soubory menší než URČITÁ velikost. Můžete přidat K nebo M (1K = 1024, 1M = 1024K). parameterized-uri.name=Povolit parametrizované URI parameterized-uri.description=Povolí podporu parametrizovaných URI. Můžete specifikovat sadu částí: http://{sv1,sv2,sv3}/foo.iso. Také můžete specifikovat číselné posloupnosti s krokovým čítačem: http://host/image[000-100:2].img. Krokový čítač může být vynechán. Pokud všechny URI neodkazují na stejný soubor, jako v druhém příkladu výše, je nutná volba -Z. quiet.name=Zakázat výstup do konzole quiet.description=Zakáže všechny výstupy do konzole. realtime-chunk-checksum.name=Reálná kontrola součtů datového bloku realtime-chunk-checksum.description=Validuje blok dat výpočtem kontrolního součtu během stahování souboru, pokud jsou poskytnuty kontrolní součty bloků. remove-control-file.name=Odstranit kontrolní soubor remove-control-file.description=Odstranit kontrolní soubor před stažením. Použití s volbou --allow-overwrite=true vždy začne stahování od začátku. Tato volba bude užitečná pro uživatele za proxy servery, které zakazují obnovení. save-session.name=Soubor pro uložení sezení save-session.description=Uloží chybné/nehotové stahování do SOUBORU při ukončení. Tento výstupní soubor můžete předat aria2c s volbou --input-file při restartu. Pokud chcete, aby byl soubor uložen v komprimovaném formátu, přidejte příponu .gz. save-session-interval.name=Interval pro ukládání sezení save-session-interval.description=Uloží chybné/nehotové stahování do souboru specifikovaného volbou --save-session každých SEC sekund. Pokud je zadáno 0, soubor se uloží pouze při ukončení aria2. socket-recv-buffer-size.name=Velikost přijímacího bufferu socketu socket-recv-buffer-size.description=Určuje maximální velikost přijímacího bufferu socketu v bajtech. Pokud zadáte 0, tato volba bude zakázána. Tato hodnota bude nastavena na socket souborového deskriptoru pomocí socketové volby SO_RCVBUF a funkce setsockopt(). stop.name=Automatické vypnutí stop.description=Zastaví aplikaci po uplynutí SEC sekund. Pokud je zadáno 0, tato funkce je zakázána. truncate-console-readout.name=Oříznout výstup v konzoli truncate-console-readout.description=Ořízne výstup do konzole tak, aby se vešel na jeden řádek. ================================================ FILE: src/langs/de_DE.txt ================================================ [global] AriaNg Version=AriaNg Version Operation Result=Ausführungsergebnis Operation Succeeded=Ausführung erfolgreich is connected=verbunden Error=Fehler OK=OK Confirm=Bestätigen Cancel=Abbrechen Close=Schließen True=Ja False=Nein DEBUG=Debug INFO=Info WARN=Warnung ERROR=Fehler Connecting=Verbinden Connected=Verbunden Disconnected=Getrennt Reconnecting=Wiederverbinden Waiting to reconnect=Warte auf erneute verbindung Global=Global New=Neu Start=Starten Pause=Pause Retry=Nochmal Retry Selected Tasks=Wiederholte ausgewählte Aufgaben Delete=Löschen Select All=Alle auswählen Select None=Nichts auswählen Select Invert=Auswahl umkehren Select All Failed Tasks=Wähle alle fehlgeschlagenen Aufgaben Select All Completed Tasks=Wähle alle erfolgreichen Aufgaben Select All Tasks=Wähle alle Aufgaben Display Order=Anzeigereihenfolge Copy Download Url=Kopiere Download URL Copy Magnet Link=Kopiere Magnet Link Help=Hilfe Search=Suche Default=Standard Expand=Erweitern Collapse=Reduzieren Expand All=Alle erweitern Collapse All=Alle reduzieren Open=Öffnen Save=Speichern Import=Importieren Remove Task=Aufgabe entfernen Remove Selected Task=Ausgewählte Aufgabe entfernen Clear Stopped Tasks=Gestoppte Aufgaben löschen Click to view task detail=Klicken, um Aufgabendetails anzuzeigen By File Name=Nach Dateiname By File Size=Nach Dateigröße By Progress=Nach Fortschritt By Selected Status=Nach ausgewähltem Status By Remaining=Nach verbleibender Zeit By Download Speed=Nach Download-Geschwindigkeit By Upload Speed=Nach Upload-Geschwindigkeit By Peer Address=Nach Peer-Adresse By Client Name=Nach Client-Name Filters=Filter Download=Herunterladen Upload=Hochladen Downloading=Wird heruntergeladen Pending Verification=Ausstehende Überprüfung Verifying=Überprüfen Seeding=Verteilen Waiting=Warten Paused=Pausiert Completed=Abgeschlossen Error Occurred=Fehler aufgetreten Removed=Entfernt Finished / Stopped=Beendet / Gestoppt Uncompleted=Unvollständig Click to pin=Klicken zum Anheften Settings=Einstellungen AriaNg Settings=AriaNg Einstellungen Aria2 Settings=Aria2 Einstellungen Basic Settings=Grundeinstellungen HTTP/FTP/SFTP Settings=HTTP/FTP/SFTP Einstellungen HTTP Settings=HTTP Einstellungen FTP/SFTP Settings=FTP/SFTP Einstellungen BitTorrent Settings=BitTorrent Einstellungen Metalink Settings=Metalink Einstellungen RPC Settings=RPC Einstellungen Advanced Settings=Erweiterte Einstellungen AriaNg Debug Console=AriaNg Debug-Konsole Aria2 Status=Aria2 Status File Name=Dateiname File Size=Dateigröße Progress=Fortschritt Share Ratio=Teilverhältnis Remaining=Verbleibend Download Speed=Download-Geschwindigkeit Upload Speed=Upload-Geschwindigkeit Links=Links Torrent File=Torrent-Datei Metalink File=Metalink-Datei File Name:=Dateiname: Options=Optionen Overview=Übersicht Pieces=Teile Files=Dateien Peers=Peers Task Name=Aufgabenname Task Size=Aufgabengröße Task Status=Aufgabenstatus Error Description=Fehlerbeschreibung Health Percentage=Gesundheitsprozentsatz Info Hash=Info-Hash Seeders=Seeder Connections=Verbindungen Seed Creation Time=Seed-Erstellungszeit Download Url=Download-URL Download Dir=Download-Verzeichnis BT Tracker Servers=BT-Tracker-Server Copy=Kopieren (Choose Files)=(Dateien auswählen) Videos=Videos Audios=Audios Pictures=Bilder Documents=Dokumente Applications=Anwendungen Archives=Archive Other=Andere Custom=Benutzerdefiniert Custom Choose File=Benutzerdefinierte Dateiauswahl Address=Adresse Client=Client Status=Status Speed=Geschwindigkeit (local)=(lokal) No Data=Keine Daten No connected peers=Keine verbundenen Peers Failed to change some tasks state.=Fehler beim Ändern des Status einiger Aufgaben. Confirm Retry=Erneut versuchen bestätigen Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=Sind Sie sicher, dass Sie die ausgewählte Aufgabe erneut versuchen möchten? AriaNg erstellt nach Klick auf OK dieselbe Aufgabe. Failed to retry this task.=Fehler beim erneuten Versuch dieser Aufgabe. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} Aufgaben wurden erneut versucht und {{failedCount}} Aufgaben sind fehlgeschlagen. Confirm Remove=Entfernen bestätigen Are you sure you want to remove the selected task?=Sind Sie sicher, dass Sie die ausgewählte Aufgabe entfernen möchten? Failed to remove some task(s).=Fehler beim Entfernen einiger Aufgaben. Confirm Clear=Löschen bestätigen Are you sure you want to clear stopped tasks?=Sind Sie sicher, dass Sie gestoppte Aufgaben löschen möchten? Download Links:=Download-Links: Download Now=Jetzt herunterladen Download Later=Später herunterladen Open Torrent File=Torrent-Datei öffnen Open Metalink File=Metalink-Datei öffnen Support multiple URLs, one URL per line.=Mehrere URLs werden unterstützt; eine URL pro Zeile. Your browser does not support loading file!=Ihr Browser unterstützt das Laden von Dateien nicht! The selected file type is invalid!=Der ausgewählte Dateityp ist ungültig! Failed to load file!=Datei konnte nicht geladen werden! Download Completed=Download abgeschlossen BT Download Completed=BT-Download abgeschlossen Download Error=Download-Fehler AriaNg Url=AriaNg-URL Command API Url=Command-API-URL Export Command API=Command-API exportieren Export=Exportieren Copied=Kopiert Pause After Task Created=Nach Erstellung der Aufgabe pausieren Language=Sprache Theme=Design Light=Hell Dark=Dunkel Follow system settings=Systemeinstellungen folgen Debug Mode=Debug-Modus Page Title=Seitentitel Preview=Vorschau Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Tipp: Sie können das Tag "noprefix" verwenden, um das Präfix zu ignorieren, "nosuffix", um das Suffix zu ignorieren, und "scale\=n", um die Dezimalgenauigkeit festzulegen. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Beispiel: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Intervall für Seitentitel-Aktualisierung Enable Browser Notification=Browser-Benachrichtigung aktivieren Browser Notification Sound=Benachrichtigungston Browser Notification Frequency=Benachrichtigungshäufigkeit Unlimited=Unbegrenzt High (Up to 10 Notifications / 1 Minute)=Hoch (Bis zu 10 Benachrichtigungen / Minute) Middle (Up to 1 Notification / 1 Minute)=Mittel (Bis zu 1 Benachrichtigung / Minute) Low (Up to 1 Notification / 5 Minutes)=Niedrig (Bis zu 1 Benachrichtigung / 5 Minuten) WebSocket Auto Reconnect Interval=WebSocket-Auto-Wiederverbindungsintervall Aria2 RPC Alias=Aria2-RPC-Alias Aria2 RPC Address=Aria2-RPC-Adresse Aria2 RPC Protocol=Aria2-RPC-Protokoll Aria2 RPC Http Request Method=Aria2-RPC-HTTP-Anfragemethode POST method only supports aria2 v1.15.2 and above.=POST-Methode wird nur von aria2 v1.15.2 und höher unterstützt. Aria2 RPC Request Headers=Aria2-RPC-Anfrage-Header Support multiple request headers, one header per line, each line containing "header name: header value".=Mehrere Anfrage-Header werden unterstützt; ein Header pro Zeile, jede Zeile enthält "Headername: Headerwert". Aria2 RPC Secret Token=Aria2-RPC-Geheimtoken Activate=Aktivieren Reset Settings=Einstellungen zurücksetzen Confirm Reset=Zurücksetzen bestätigen Are you sure you want to reset all settings?=Sind Sie sicher, dass Sie alle Einstellungen zurücksetzen möchten? Clear Settings History=Einstellungshistorie löschen Are you sure you want to clear all settings history?=Sind Sie sicher, dass Sie die gesamte Einstellungshistorie löschen möchten? Delete RPC Setting=RPC-Einstellung löschen Add New RPC Setting=Neue RPC-Einstellung hinzufügen Are you sure you want to remove rpc setting "{rpcName}"?=Sind Sie sicher, dass Sie die RPC-Einstellung "{{rpcName}}" entfernen möchten? Updating Global Stat Interval=Intervall für globale Statistik-Aktualisierung Updating Task Information Interval=Intervall für Aufgabeninfo-Aktualisierung Keyboard Shortcuts=Tastenkombinationen Supported Keyboard Shortcuts=Unterstützte Tastenkombinationen Set Focus On Search Box=Fokus auf Suchfeld setzen Swipe Gesture=Wischgeste Change Tasks Order by Drag-and-drop=Aufgabenreihenfolge per Drag-and-drop ändern Action After Creating New Tasks=Aktion nach Erstellung neuer Aufgaben Navigate to Task List Page=Zur Aufgabenlisten-Seite navigieren Navigate to Task Detail Page=Zur Aufgabendetail-Seite navigieren Action After Retrying Task=Aktion nach erneutem Versuch der Aufgabe Navigate to Downloading Tasks Page=Zur Seite "Wird heruntergeladen" navigieren Stay on Current Page=Auf aktueller Seite bleiben Remove Old Tasks After Retrying=Alte Aufgaben nach erneutem Versuch entfernen Confirm Task Removal=Entfernen der Aufgabe bestätigen Include Prefix When Copying From Task Details=Präfix beim Kopieren aus Aufgabendetails einbeziehen Show Pieces Info In Task Detail Page=Teile-Info auf Aufgabendetail-Seite anzeigen Pieces Amount is Less than or Equal to {value}=Anzahl der Teile ist kleiner oder gleich {{value}} RPC List Display Order=Anzeige-Reihenfolge der RPC-Liste Each Task List Page Uses Independent Display Order=Jede Aufgabenlisten-Seite verwendet eigene Anzeige-Reihenfolge Recently Used=Kürzlich verwendet RPC Alias=RPC-Alias Import / Export AriaNg Settings=AriaNg-Einstellungen importieren/exportieren Import Settings=Einstellungen importieren Export Settings=Einstellungen exportieren AriaNg settings data=AriaNg-Einstellungsdaten Confirm Import=Import bestätigen Are you sure you want to import all settings?=Sind Sie sicher, dass Sie alle Einstellungen importieren möchten? Invalid settings data format!=Ungültiges Einstellungsdatenformat! Data has been copied to clipboard.=Daten wurden in die Zwischenablage kopiert. Supported Placeholder=Unterstützte Platzhalter AriaNg Title=AriaNg-Titel Current RPC Alias=Aktueller RPC-Alias Downloading Count=Anzahl der Downloads Waiting Count=Anzahl der Wartenden Stopped Count=Anzahl der Gestoppten You have disabled notification in your browser. You should change your browser's settings before you enable this function.=Sie haben Benachrichtigungen in Ihrem Browser deaktiviert. Sie sollten die Einstellungen Ihres Browsers ändern, bevor Sie diese Funktion aktivieren. Language resource has been updated, please reload the page for the changes to take effect.=Die Sprachressource wurde aktualisiert, bitte laden Sie die Seite neu, damit die Änderungen wirksam werden. Configuration has been modified, please reload the page for the changes to take effect.=Die Konfiguration wurde geändert, bitte laden Sie die Seite neu, damit die Änderungen wirksam werden. Reload AriaNg=AriaNg neu laden Show Secret=Geheimnis anzeigen Hide Secret=Geheimnis verbergen Aria2 Version=Aria2-Version Enabled Features=Aktivierte Funktionen Operations=Operationen Reconnect=Neu verbinden Save Session=Sitzung speichern Shutdown Aria2=Aria2 herunterfahren Confirm Shutdown=Herunterfahren bestätigen Are you sure you want to shutdown aria2?=Sind Sie sicher, dass Sie aria2 herunterfahren möchten? Session has been saved successfully.=Sitzung wurde erfolgreich gespeichert. Aria2 has been shutdown successfully.=Aria2 wurde erfolgreich heruntergefahren. Toggle Navigation=Navigation umschalten Shortcut=Kurzbefehl Global Rate Limit=Globale Geschwindigkeitsbegrenzung Loading=Laden... More Than One Day=Mehr als 1 Tag Unknown=Unbekannt Bytes=Bytes Hours=Stunden Minutes=Minuten Seconds=Sekunden Milliseconds=Millisekunden Http=Http Http (Disabled)=Http (Deaktiviert) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (Deaktiviert) WebSocket (Security)=WebSocket (Sicherheit) Http and WebSocket would be disabled when accessing AriaNg via Https.=Http und WebSocket werden deaktiviert, wenn AriaNg über Https aufgerufen wird. POST=POST GET=GET Enabled=Aktiviert Disabled=Deaktiviert Always=Immer Never=Nie BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=Änderungen an den Einstellungen werden nach dem Aktualisieren der Seite wirksam. Logging Time=Protokollierungszeit Log Level=Protokollierungsstufe Auto Refresh=Automatisch aktualisieren Refresh Now=Jetzt aktualisieren Clear Logs=Protokolle löschen Are you sure you want to clear debug logs?=Sind Sie sicher, dass Sie die Debug-Protokolle löschen möchten? Show Detail=Details anzeigen Log Detail=Protokolldetails Aria2 RPC Debug=Aria2-RPC-Debug Aria2 RPC Request Method=Aria2-RPC-Anfragemethode Aria2 RPC Request Parameters=Aria2-RPC-Anfrageparameter Aria2 RPC Response=Aria2-RPC-Antwort Execute=Ausführen RPC method is illegal!=RPC-Methode ist ungültig! AriaNg does not support this RPC method!=AriaNg unterstützt diese RPC-Methode nicht! RPC request parameters are invalid!=RPC-Anfrageparameter sind ungültig! Type is illegal!=Typ ist ungültig! Parameter is invalid!=Parameter ist ungültig! Option value cannot be empty!=Optionswert darf nicht leer sein! Input number is invalid!=Eingegebene Zahl ist ungültig! Input number is below min value!=Eingegebene Zahl liegt unter dem Mindestwert {{value}}! Input number is above max value!=Eingegebene Zahl liegt über dem Maximalwert {{value}}! Input value is invalid!=Eingegebener Wert ist ungültig! Protocol is invalid!=Protokoll ist ungültig! RPC host cannot be empty!=RPC-Host darf nicht leer sein! RPC secret is not base64 encoded!=RPC-Geheimnis ist nicht base64-codiert! URL is not base64 encoded!=URL ist nicht base64-codiert! Tap to configure and get started with AriaNg.=Tippen Sie, um AriaNg zu konfigurieren und zu starten. Cannot initialize WebSocket!=WebSocket kann nicht initialisiert werden! Cannot connect to aria2!=Verbindung zu aria2 kann nicht hergestellt werden! Access Denied!=Zugriff verweigert! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=Sie können AriaNg nicht verwenden, da Ihr Browser die Mindestanforderungen für die Datenspeicherung nicht erfüllt. [error] unknown=Unbekannter Fehler ist aufgetreten. operation.timeout=Vorgang hat zu lange gedauert. resource.notfound=Ressource wurde nicht gefunden. resource.notfound.max-file-not-found=Ressource wurde nicht gefunden. Siehe Option --max-file-not-found. download.aborted.lowest-speed-limit=Download wurde abgebrochen, da die Download-Geschwindigkeit zu niedrig war. Siehe Option --lowest-speed-limit. network.problem=Netzwerkproblem ist aufgetreten. resume.notsupported=Der Remote-Server unterstützt keine Wiederaufnahme. space.notenough=Nicht genügend Speicherplatz verfügbar. piece.length.different=Stücklänge unterscheidet sich von der in der .aria2-Steuerdatei. Siehe Option --allow-piece-length-change. download.sametime=aria2 hat die gleiche Datei bereits heruntergeladen. download.torrent.sametime=aria2 hat die gleiche Datei bereits heruntergeladen. file.exists=Datei existiert bereits. Siehe Option --allow-overwrite. file.rename.failed=Datei konnte nicht umbenannt werden. Siehe Option --auto-file-renaming. file.open.failed=Vorhandene Datei konnte nicht geöffnet werden. file.create.failed=Neue Datei konnte nicht erstellt oder vorhandene Datei konnte nicht gekürzt werden. io.error=Dateisystemfehler ist aufgetreten. directory.create.failed=Verzeichnis konnte nicht erstellt werden. name.resolution.failed=Domainname konnte nicht aufgelöst werden. metalink.file.parse.failed=Metalink-Dokument konnte nicht verarbeitet werden. ftp.command.failed=FTP-Befehl ist fehlgeschlagen. http.response.header.bad=HTTP-Antwort-Header war fehlerhaft oder unerwartet. redirects.toomany=Zu viele Weiterleitungen sind aufgetreten. http.authorization.failed=HTTP-Authentifizierung ist fehlgeschlagen. bencoded.file.parse.failed=Bencoded-Datei (meistens ".torrent"-Datei) konnte nicht verarbeitet werden. torrent.file.corrupted=Die ".torrent"-Datei war beschädigt oder enthielt nicht die benötigten Informationen für aria2. magnet.uri.bad=Magnet-URI war fehlerhaft. option.bad=Ungültige/unerkannte Option oder unerwartetes Optionsargument wurde angegeben. server.overload=Der Remote-Server konnte die Anfrage aufgrund einer vorübergehenden Überlastung oder Wartung nicht bearbeiten. rpc.request.parse.failed=JSON-RPC-Anfrage konnte nicht verarbeitet werden. checksum.failed=Prüfsummenvalidierung ist fehlgeschlagen. [languages] Czech=Tschechisch German=Deutsch English=Englisch Spanish=Spanisch French=Französisch Italian=Italienisch Japanese=Japanisch Polish=Polisch Russian=Russisch Simplified Chinese=Einfaches Chinesisch Traditional Chinese=Traditionelles Chinesisch [format] longdate=MM/DD/YYYY HH:mm:ss time.millisecond={{value}} Millisekunde time.milliseconds={{value}} Millisekunden time.second={{value}} Sekunde time.seconds={{value}} Sekunden time.minute={{value}} Minute time.minutes={{value}} Minuten time.hour={{value}} Stunde time.hours={{value}} Stunden requires.aria2-version=Benötigt aria2 v{{version}} oder höher task.new.download-links=Download Links ({{count}} Links): task.pieceinfo=Abgeschlossen: {{completed}}, Gesamt: {{total}} task.error-occurred=Fehler aufgetreten ({{errorcode}}) task.verifying-percent=Verifizieren ({{verifiedPercent}}%) settings.file-count=({{count}} Dateien) settings.total-count=(Gesamtanzahl: {{count}}) debug.latest-logs=Letzten {{count}} Logs [rpc.error] unauthorized=Authorisierung fehlgeschlagen! [option] true=Wahr false=Falsch default=Standard none=Keine hide=Ausblenden full=Vollständig http=Http https=Https ftp=Ftp mem=Nur Speicher get=GET tunnel=TUNNEL plain=Klartext arc4=ARC4 binary=Binär ascii=ASCII debug=Debug info=Info notice=Hinweis warn=Warnung error=Fehler adaptive=Adaptiv epoll=epoll falloc=falloc feedback=Rückmeldung geom=Geometrisch inorder=In Reihenfolge kqueue=kqueue poll=poll port=port prealloc=Vorabzuweisung random=Zufällig select=Auswählen trunc=Abschneiden SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Download-Pfad dir.description=Gibt das Verzeichnis an, in dem die heruntergeladenen Dateien gespeichert werden sollen. log.name=Protokolldatei log.description=Der Dateiname der Protokolldatei. Wenn - angegeben ist, wird das Protokoll auf stdout geschrieben. Wenn ein leerer String ("") angegeben ist oder diese Option weggelassen wird, wird kein Protokoll auf die Festplatte geschrieben. max-concurrent-downloads.name=Maximale gleichzeitige Downloads max-concurrent-downloads.description=Legt die maximale Anzahl von Dateien fest, die aria2 auf einmal herunterladen kann. check-integrity.name=Integrität prüfen check-integrity.description=Dateiintegrität durch Validierung von Stück-Hashes oder eines Hashs der gesamten Datei prüfen. Diese Option wirkt sich nur auf BitTorrent-, Metalink-Downloads mit Prüfsummen oder HTTP(S)/FTP-Downloads mit der Option --checksum aus. continue.name=Download fortsetzen continue.description=Fortsetzen einer teilweise heruntergeladenen Datei. Verwenden Sie diese Option, um einen Download fortzusetzen, der von einem Webbrowser oder einem anderen Programm gestartet wurde, das Dateien sequentiell vom Anfang herunterlädt. Derzeit ist diese Option nur für HTTP(S)/FTP-Downloads anwendbar. all-proxy.name=Proxy-Server all-proxy.description=Proxy-Server für alle Protokolle verwenden. Sie können diese Einstellung überschreiben und einen Proxy-Server für ein bestimmtes Protokoll mit --http-proxy, --https-proxy und --ftp-proxy angeben. Dies betrifft alle Downloads. Das Format von PROXY ist [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=Proxy-Benutzername all-proxy-user.description=Gibt den Benutzernamen für die Authentifizierung bei der Verbindung mit allen Proxyservern an. all-proxy-passwd.name=Proxy-Passwort all-proxy-passwd.description=Gibt das Passwort für die Authentifizierung bei der Verbindung mit allen Proxyservern an. checksum.name=Prüfsumme checksum.description=Prüfsumme festlegen. Das Format des Optionswerts ist TYP=DIGEST. TYP ist der Hash-Typ. Die unterstützten Hash-Typen sind in Hash Algorithms in aria2c -v aufgeführt. DIGEST ist der hexadezimale Digest. Beispiel: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 Diese Option gilt nur für HTTP(S)/FTP-Downloads. connect-timeout.name=Verbindungs-Timeout connect-timeout.description=Verbindungs-Timeout in Sekunden zum Aufbau der Verbindung zu HTTP/FTP/Proxy-Server festlegen. Nach dem Verbindungsaufbau hat diese Option keine Wirkung mehr und stattdessen wird die Option --timeout verwendet. dry-run.name=Testlauf dry-run.description=Wenn true angegeben ist, prüft aria2 nur, ob die Remote-Datei verfügbar ist und lädt keine Daten herunter. Diese Option wirkt sich auf HTTP/FTP-Downloads aus. BitTorrent-Downloads werden abgebrochen, wenn true angegeben ist. lowest-speed-limit.name=Minimale Geschwindigkeit lowest-speed-limit.description=Verbindung schließen, wenn die Download-Geschwindigkeit kleiner oder gleich diesem Wert (Bytes pro Sekunde) ist. 0 bedeutet, dass aria2 keine minimale Geschwindigkeit hat. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). Diese Option betrifft BitTorrent-Downloads nicht. max-connection-per-server.name=Maximale Verbindungen pro Server max-connection-per-server.description=Legt die maximale Anzahl der Verbindungen fest, die aria2 gleichzeitig mit einem Server aufbauen kann, um eine Datei herunterzuladen. Dies hilft, die Download-Geschwindigkeit zu optimieren, indem eine übermäßige Serverlast vermieden wird. max-file-not-found.name=Maximale "Datei nicht gefunden"-Versuche max-file-not-found.description=Wenn aria2 vom Remote-HTTP/FTP-Server NUM-mal den Status "Datei nicht gefunden" erhält, ohne ein einziges Byte zu bekommen, wird der Download erzwungen abgebrochen. 0 deaktiviert diese Option. Diese Option ist nur bei HTTP/FTP-Servern wirksam. Die Anzahl der Wiederholungsversuche wird auf --max-tries angerechnet, daher sollte diese ebenfalls konfiguriert werden. max-tries.name=Maximale Versuche max-tries.description=Anzahl der Versuche festlegen. 0 bedeutet unbegrenzt. min-split-size.name=Minimale Split-Größe min-split-size.description=aria2 teilt keinen Bereich kleiner als 2*GRÖSSE Byte. Beispiel: Beim Download einer 20MiB-Datei. Wenn GRÖSSE 10M ist, kann aria2 die Datei in 2 Bereiche [0-10MiB) und [10MiB-20MiB) aufteilen und mit 2 Quellen herunterladen (wenn --split >= 2). Wenn GRÖSSE 15M ist, da 2*15M > 20MiB, wird die Datei nicht geteilt und mit 1 Quelle heruntergeladen. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). Mögliche Werte: 1M-1024M. netrc-path.name=.netrc-Pfad netrc-path.description=Gibt den Pfad zur .netrc-Datei an, die für die Authentifizierung bei der Verbindung mit dem Server verwendet werden soll. no-netrc.name=.netrc deaktivieren no-netrc.description=Deaktiviert die Verwendung der .netrc-Datei für die Authentifizierung. Wenn sie installiert ist, wird aria2 nicht nach dieser Datei suchen und sie nicht zur Authentifizierung verwenden. no-proxy.name=Keine Proxy-Liste no-proxy.description=Geben Sie eine durch Kommas getrennte Liste von Hostnamen, Domains und Netzwerkadressen mit oder ohne Subnetzmaske an, bei denen kein Proxy verwendet werden soll. out.name=Dateiname out.description=Der Dateiname der heruntergeladenen Datei. Er ist immer relativ zum Verzeichnis, das mit der Option --dir angegeben wurde. Wenn die Option --force-sequential verwendet wird, wird diese Option ignoriert. proxy-method.name=Proxy-Methode proxy-method.description=Methode für Proxy-Anfrage festlegen. METHODE ist entweder GET oder TUNNEL. HTTPS-Downloads verwenden immer TUNNEL, unabhängig von dieser Option. remote-time.name=Remote-Datei-Zeitstempel remote-time.description=Zeitstempel der Remote-Datei vom HTTP/FTP-Server abrufen und, falls verfügbar, auf die lokale Datei anwenden. reuse-uri.name=URI wiederverwenden reuse-uri.description=Bereits verwendete URIs wiederverwenden, wenn keine unbenutzten URIs mehr vorhanden sind. retry-wait.name=Wartezeit bei Wiederholung retry-wait.description=Sekunden festlegen, die zwischen Wiederholungen gewartet werden. Wenn SEC > 0, wiederholt aria2 Downloads, wenn der HTTP-Server eine 503-Antwort zurückgibt. server-stat-of.name=Server-Statistik-Ausgabe server-stat-of.description=Dateiname angeben, in den das Leistungsprofil der Server gespeichert wird. Sie können gespeicherte Daten mit der Option --server-stat-if laden. server-stat-timeout.name=Server-Statistik-Timeout server-stat-timeout.description=Timeout in Sekunden angeben, um das Leistungsprofil der Server seit dem letzten Kontakt zu ihnen ungültig zu machen. split.name=Split-Anzahl split.description=Datei mit N Verbindungen herunterladen. Wenn mehr als N URIs angegeben sind, werden die ersten N URIs verwendet und die übrigen als Backup. Wenn weniger als N URIs angegeben sind, werden diese URIs mehrmals verwendet, sodass insgesamt N Verbindungen gleichzeitig hergestellt werden. Die Anzahl der Verbindungen zum selben Host wird durch die Option --max-connection-per-server eingeschränkt. stream-piece-selector.name=Stückauswahl-Algorithmus stream-piece-selector.description=Stückauswahl-Algorithmus für HTTP/FTP-Download festlegen. Stück bedeutet ein Segment fester Länge, das im parallelen Download heruntergeladen wird. Bei default wählt aria2 Stücke so aus, dass die Anzahl der Verbindungsaufbauten reduziert wird. Dies ist das vernünftige Standardverhalten, da Verbindungsaufbau teuer ist. Bei inorder wählt aria2 das Stück mit dem kleinsten Index. Index=0 bedeutet Anfang der Datei. Dies ist nützlich, um Filme während des Downloads anzusehen. Die Option --enable-http-pipelining kann helfen, den Overhead durch erneute Verbindungen zu reduzieren. Beachten Sie, dass aria2 die Option --min-split-size beachtet, daher sollte ein sinnvoller Wert für --min-split-size angegeben werden. Bei random wählt aria2 Stücke zufällig aus. Wie bei inorder wird --min-split-size beachtet. Bei geom wählt aria2 zu Beginn Stücke mit dem kleinsten Index wie bei inorder, aber es hält exponentiell zunehmend Abstand zu zuvor gewählten Stücken. Dies reduziert die Anzahl der Verbindungsaufbauten und lädt gleichzeitig den Anfang der Datei zuerst herunter. Dies ist nützlich, um Filme während des Downloads anzusehen. timeout.name=Timeout timeout.description=Gibt eine Zeitüberschreitung für alle Web-Transaktionen an. Wenn der Vorgang nicht innerhalb der angegebenen Zeit abgeschlossen wird, wird er abgebrochen. Der Wert wird in Sekunden angegeben. uri-selector.name=URI-Auswahl-Algorithmus uri-selector.description=URI-Auswahl-Algorithmus festlegen. Mögliche Werte sind inorder, feedback und adaptive. Bei inorder wird die URI in der Reihenfolge der URI-Liste versucht. Bei feedback verwendet aria2 die Download-Geschwindigkeit aus vorherigen Downloads und wählt den schnellsten Server aus der URI-Liste. Dies überspringt auch effektiv tote Mirrors. Die beobachtete Download-Geschwindigkeit ist Teil des Leistungsprofils der Server, wie in --server-stat-of und --server-stat-if erwähnt. Bei adaptive werden die besten Mirrors für die ersten und reservierten Verbindungen ausgewählt. Für ergänzende Verbindungen werden Mirrors zurückgegeben, die noch nicht getestet wurden, und wenn alle getestet wurden, Mirrors, die erneut getestet werden müssen. Andernfalls werden keine weiteren Mirrors ausgewählt. Wie bei feedback wird ein Leistungsprofil der Server verwendet. check-certificate.name=Zertifikat prüfen check-certificate.description=Legt fest, ob aria2 SSL-Zertifikate bei der Verbindung zu HTTPS-Servern authentifiziert. Bei „True“ prüft aria2 die Zertifikate, bei „False“ ignoriert es sie. http-accept-gzip.name=GZip akzeptieren http-accept-gzip.description=Sendet Accept: deflate, gzip im Request-Header und entpackt die Antwort, wenn der Remote-Server mit Content-Encoding: gzip oder Content-Encoding: deflate antwortet. http-auth-challenge.name=Auth-Herausforderung http-auth-challenge.description=Sendet HTTP-Authentifizierungs-Header nur, wenn dieser vom Server angefordert wird. Wenn false gesetzt ist, wird der Authentifizierungs-Header immer an den Server gesendet. Ausnahme: Wenn Benutzername und Passwort in der URI eingebettet sind, wird der Authentifizierungs-Header immer gesendet, unabhängig von dieser Option. http-no-cache.name=Kein Cache http-no-cache.description=Sendet Cache-Control: no-cache und Pragma: no-cache, um zwischengespeicherte Inhalte zu vermeiden. Bei false werden diese Header nicht gesendet und Sie können Cache-Control-Header mit einer gewünschten Direktive über die Option --header hinzufügen. http-user.name=HTTP-Standard-Benutzername http-user.description=Gibt den Benutzernamen für die Authentifizierung bei der Verbindung mit dem HTTP-Server an. http-passwd.name=HTTP-Standard-Passwort http-passwd.description=Gibt ein Passwort für die Authentifizierung bei der Verbindung mit einem HTTP-Server an. http-proxy.name=HTTP-Proxy-Server http-proxy.description=Installiert einen Proxyserver für HTTP-Verbindungen. Geben Sie die Adresse des Proxy-Servers an, über den HTTP-Anfragen laufen sollen. http-proxy-user.name=HTTP-Proxy-Benutzername http-proxy-user.description=Gibt den Benutzernamen für die Authentifizierung bei der Verbindung mit dem HTTP-Proxyserver an. http-proxy-passwd.name=HTTP-Proxy-Passwort http-proxy-passwd.description=Gibt das Passwort für die Authentifizierung bei der Verbindung mit dem HTTP-Proxyserver an. https-proxy.name=HTTPS-Proxy-Server https-proxy.description=Gibt einen Proxyserver für HTTPS-Verbindungen an. Geben Sie die Adresse des Proxy-Servers an, über den HTTPS-Anfragen laufen sollen. https-proxy-user.name=HTTPS-Proxy-Benutzername https-proxy-user.description=Gibt den Benutzernamen für die Authentifizierung bei der Verbindung mit einem HTTPS-Proxyserver an. https-proxy-passwd.name=HTTPS-Proxy-Passwort https-proxy-passwd.description=Gibt das Passwort für die Authentifizierung bei der Verbindung mit einem HTTPS-Proxyserver an. referer.name=Referer referer.description=HTTP-Referer (Referrer) festlegen. Dies betrifft alle HTTP/HTTPS-Downloads. Wenn * angegeben ist, wird die Download-URI auch als Referer verwendet. Dies kann nützlich sein in Kombination mit der Option --parameterized-uri. enable-http-keep-alive.name=Persistente Verbindung aktivieren enable-http-keep-alive.description=HTTP/1.1 persistente Verbindung aktivieren. enable-http-pipelining.name=HTTP-Pipelining aktivieren enable-http-pipelining.description=HTTP/1.1-Pipelining aktivieren. header.name=Benutzerdefinierter Header header.description=HEADER zum HTTP-Request-Header hinzufügen. Ein Eintrag pro Zeile, jeder Eintrag enthält "Headername: Headervalue". save-cookies.name=Cookies-Pfad save-cookies.description=Cookies in Datei im Mozilla/Firefox(1.x/2.x)/Netscape-Format speichern. Wenn die Datei bereits existiert, wird sie überschrieben. Sitzungs-Cookies werden ebenfalls gespeichert und deren Ablaufwerte als 0 behandelt. use-head.name=HEAD-Methode verwenden use-head.description=HEAD-Methode für die erste Anfrage an den HTTP-Server verwenden. user-agent.name=Benutzerdefinierter User-Agent user-agent.description=Gibt den User-Agent String an, den aria2 bei der Kommunikation mit Webservern verwendet. ftp-user.name=FTP-Standard-Benutzername ftp-user.description=Legt den Benutzernamen fest, der standardmäßig für die Authentifizierung bei Verbindungen zu FTP-Servern verwendet wird. ftp-passwd.name=FTP-Standard-Passwort ftp-passwd.description=Wenn Benutzername eingebettet ist, aber Passwort in der URI fehlt, versucht aria2, das Passwort über .netrc zu ermitteln. Wenn Passwort in .netrc gefunden wird, wird es verwendet. Andernfalls wird das in dieser Option angegebene Passwort verwendet. ftp-pasv.name=Passiver Modus ftp-pasv.description=Passiven Modus bei FTP verwenden. Bei false wird der aktive Modus verwendet. Diese Option wird bei SFTP-Übertragungen ignoriert. ftp-proxy.name=FTP-Proxy-Server ftp-proxy.description=Richtet einen Proxyserver für FTP-Verbindungen ein. Geben Sie die Adresse des Proxy-Servers an, über den FTP-Anfragen laufen sollen. ftp-proxy-user.name=FTP-Proxy-Benutzername ftp-proxy-user.description=Legt den Benutzernamen fest, der für die Authentifizierung bei der Verbindung mit dem FTP-Proxy verwendet wird. ftp-proxy-passwd.name=FTP-Proxy-Passwort ftp-proxy-passwd.description=Legt das Passwort fest, das für die Authentifizierung bei der Verbindung mit dem FTP-Proxy verwendet wird. ftp-type.name=Übertragungsart ftp-type.description=Legt die Übertragungsart für die FTP-Verbindung fest. Mögliche Werte: passiv oder aktiv. ftp-reuse-connection.name=Verbindung wiederverwenden ftp-reuse-connection.description=Ermöglicht die Wiederverwendung einer einzigen FTP-Verbindung für mehrere Downloads oder Uploads und erhöht so die Leistung. ssh-host-key-md.name=SSH-Public-Key-Prüfsumme ssh-host-key-md.description=Prüfsumme für SSH-Host-Public-Key festlegen. Das Format des Optionswerts ist TYP=DIGEST. TYP ist der Hash-Typ. Unterstützte Hash-Typen sind sha-1 oder md5. DIGEST ist der hexadezimale Digest. Beispiel: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. Diese Option kann zur Validierung des Server-Public-Keys bei SFTP verwendet werden. Wenn diese Option nicht gesetzt ist (Standard), findet keine Validierung statt. bt-detach-seed-only.name=Nur Seed trennen bt-detach-seed-only.description=Seed-Only-Downloads beim Zählen der gleichzeitigen aktiven Downloads ausschließen (siehe -j Option). Das bedeutet, wenn -j3 angegeben ist und diese Option aktiviert ist und 3 Downloads aktiv sind und einer davon in den Seed-Modus wechselt, wird er aus der aktiven Download-Zählung ausgeschlossen (wird also zu 2), und der nächste Download in der Warteschlange wird gestartet. Beachten Sie, dass das seeding-Element weiterhin als aktiver Download in der RPC-Methode erkannt wird. bt-enable-hook-after-hash-check.name=Hook nach Hash-Prüfung aktivieren bt-enable-hook-after-hash-check.description=Hook-Befehl nach Hash-Prüfung (siehe -V Option) im BitTorrent-Download zulassen. Standardmäßig wird bei erfolgreicher Hash-Prüfung der mit --on-bt-download-complete angegebene Befehl ausgeführt. Um diese Aktion zu deaktivieren, geben Sie false an. bt-enable-lpd.name=Lokale Peer-Erkennung (LPD) aktivieren bt-enable-lpd.description=Lokale Peer-Erkennung aktivieren. Wenn ein privates Flag in einem Torrent gesetzt ist, verwendet aria2 diese Funktion für diesen Download nicht, auch wenn true angegeben ist. bt-exclude-tracker.name=BitTorrent-Tracker ausschließen bt-exclude-tracker.description=Kommagetrennte Liste von BitTorrent-Tracker-Announce-URIs, die entfernt werden sollen. Sie können den speziellen Wert * verwenden, der alle URIs trifft und somit alle Announce-URIs entfernt. Wenn Sie * in der Shell-Befehlszeile angeben, denken Sie daran, es zu escapen oder zu quoten. bt-external-ip.name=Externe IP bt-external-ip.description=Externe IP-Adresse für BitTorrent-Download und DHT angeben. Sie kann an den BitTorrent-Tracker gesendet werden. Für DHT sollte diese Option gesetzt werden, um anzugeben, dass der lokale Node einen bestimmten Torrent herunterlädt. Dies ist wichtig für die Verwendung von DHT in einem privaten Netzwerk. Obwohl diese Funktion "extern" heißt, kann sie jede Art von IP-Adressen akzeptieren. bt-force-encryption.name=Verschlüsselung erzwingen bt-force-encryption.description=Erfordert Verschlüsselung der BitTorrent-Nachrichten mit arc4. Dies ist eine Kurzform für --bt-require-crypto --bt-min-crypto-level=arc4. Diese Option ändert die Werte dieser Optionen nicht. Bei true wird das Legacy-BitTorrent-Handshake abgelehnt und nur das Obfuscation-Handshake verwendet und Nachrichten immer verschlüsselt. bt-hash-check-seed.name=Hash-Prüfung vor Seeding bt-hash-check-seed.description=Wenn true angegeben ist, wird nach der Hash-Prüfung mit --check-integrity und vollständiger Datei weiterhin gesät. Wenn Sie die Datei prüfen und nur herunterladen möchten, wenn sie beschädigt oder unvollständig ist, setzen Sie diese Option auf false. Diese Option wirkt sich nur auf BitTorrent-Downloads aus. bt-load-saved-metadata.name=Gespeicherte Metadaten-Datei laden bt-load-saved-metadata.description=Bevor Torrent-Metadaten von DHT beim Download mit Magnet-Link abgerufen werden, wird zuerst versucht, die von --bt-save-metadata gespeicherte Datei zu lesen. Bei Erfolg wird das Herunterladen von Metadaten aus DHT übersprungen. bt-max-open-files.name=Maximale offene Dateien bt-max-open-files.description=Maximale Anzahl von Dateien, die global bei BitTorrent-/Metalink-Downloads mit mehreren Dateien geöffnet werden dürfen. bt-max-peers.name=Maximale Peers bt-max-peers.description=Maximale Anzahl von Peers pro Torrent angeben. 0 bedeutet unbegrenzt. bt-metadata-only.name=Nur Metadaten herunterladen bt-metadata-only.description=Nur Metadaten herunterladen. Die in den Metadaten beschriebenen Dateien werden nicht heruntergeladen. Diese Option wirkt sich nur aus, wenn BitTorrent-Magnet-URI verwendet wird. bt-min-crypto-level.name=Minimales Verschlüsselungslevel bt-min-crypto-level.description=Minimales Level der Verschlüsselungsmethode festlegen. Wenn mehrere Verschlüsselungsmethoden von einem Peer angeboten werden, wählt aria2 die niedrigste, die das angegebene Level erfüllt. bt-prioritize-piece.name=Stück priorisieren bt-prioritize-piece.description=Versucht, die ersten und letzten Stücke jeder Datei zuerst herunterzuladen. Dies ist nützlich für die Vorschau von Dateien. Das Argument kann 2 Schlüsselwörter enthalten: head und tail. Um beide einzuschließen, müssen sie durch Komma getrennt werden. Diese Schlüsselwörter können einen Parameter SIZE enthalten. Beispiel: Bei head=SIZE erhalten Stücke im Bereich der ersten SIZE Bytes jeder Datei höhere Priorität. tail=SIZE bedeutet den Bereich der letzten SIZE Bytes jeder Datei. SIZE kann K oder M enthalten (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=Nicht ausgewählte Datei entfernen bt-remove-unselected-file.description=Entfernt nicht ausgewählte Dateien nach Abschluss des Downloads bei BitTorrent. Um Dateien auszuwählen, verwenden Sie die Option --select-file. Wenn diese nicht verwendet wird, gelten alle Dateien als ausgewählt. Bitte verwenden Sie diese Option mit Vorsicht, da sie tatsächlich Dateien von Ihrer Festplatte entfernt. bt-require-crypto.name=Verschlüsselung erforderlich bt-require-crypto.description=Wenn true angegeben ist, akzeptiert aria2 keine Verbindung mit Legacy-BitTorrent-Handshake (\19BitTorrent protocol). aria2 verwendet immer das Obfuscation-Handshake. bt-request-peer-speed-limit.name=Bevorzugte Download-Geschwindigkeit bt-request-peer-speed-limit.description=Wenn die gesamte Download-Geschwindigkeit jedes Torrents niedriger als SPEED ist, erhöht aria2 vorübergehend die Anzahl der Peers, um mehr Download-Geschwindigkeit zu erzielen. Die Konfiguration mit Ihrer bevorzugten Download-Geschwindigkeit kann in manchen Fällen die Download-Geschwindigkeit erhöhen. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). bt-save-metadata.name=Metadaten speichern bt-save-metadata.description=Metadaten als ".torrent"-Datei speichern. Diese Option wirkt sich nur aus, wenn BitTorrent-Magnet-URI verwendet wird. Der Dateiname ist der hexadezimale Info-Hash mit der Endung ".torrent". Das Verzeichnis ist das gleiche wie das Download-Verzeichnis. Wenn die Datei bereits existiert, werden die Metadaten nicht gespeichert. bt-seed-unverified.name=Heruntergeladene Dateien nicht prüfen bt-seed-unverified.description=Bereits heruntergeladene Dateien ohne Prüfung der Stück-Hashes seeden. bt-stop-timeout.name=Stopp-Timeout bt-stop-timeout.description=BitTorrent-Download stoppen, wenn die Download-Geschwindigkeit in aufeinanderfolgenden SEC Sekunden 0 ist. Bei 0 ist diese Funktion deaktiviert. bt-tracker.name=BitTorrent-Tracker bt-tracker.description=Kommagetrennte Liste zusätzlicher BitTorrent-Tracker-Announce-URIs. Diese URIs werden nicht von der Option --bt-exclude-tracker beeinflusst, da sie nach dem Entfernen der URIs aus --bt-exclude-tracker hinzugefügt werden. bt-tracker-connect-timeout.name=BitTorrent-Tracker-Verbindungs-Timeout bt-tracker-connect-timeout.description=Verbindungs-Timeout in Sekunden zum Aufbau der Verbindung zum Tracker festlegen. Nach dem Verbindungsaufbau hat diese Option keine Wirkung mehr und stattdessen wird die Option --bt-tracker-timeout verwendet. bt-tracker-interval.name=BitTorrent-Tracker-Intervall bt-tracker-interval.description=Intervall in Sekunden zwischen Tracker-Anfragen festlegen. Dies überschreibt den Intervallwert vollständig und aria2 verwendet nur diesen Wert und ignoriert den Mindestintervall und den Intervallwert in der Tracker-Antwort. Bei 0 bestimmt aria2 das Intervall basierend auf der Tracker-Antwort und dem Download-Fortschritt. bt-tracker-timeout.name=BitTorrent-Tracker-Timeout bt-tracker-timeout.description=Legt die Zeitüberschreitung für die Interaktion mit BitTorrent-Trackern fest. Gibt die Zeitspanne an, die auf eine Antwort des Trackers gewartet wird, bevor ein neuer Versuch unternommen wird. dht-file-path.name=DHT (IPv4)-Datei dht-file-path.description=IPv4-DHT-Routing-Tabellendatei auf PFAD ändern. dht-file-path6.name=DHT (IPv6)-Datei dht-file-path6.description=IPv6-DHT-Routing-Tabellendatei auf PFAD ändern. dht-listen-port.name=DHT-Listen-Port dht-listen-port.description=UDP-Listen-Port für DHT (IPv4, IPv6) und UDP-Tracker festlegen. Mehrere Ports können mit "," angegeben werden, z.B.: 6881,6885. Sie können auch "-" für einen Bereich verwenden: 6881-6999. , und - können zusammen verwendet werden. dht-message-timeout.name=DHT-Nachrichten-Timeout dht-message-timeout.description=Legt den Timeout für das Senden von Distributed Hash Table (DHT)-Nachrichten fest. Legt die Zeit fest, die auf eine Antwort von Peers im DHT-Netzwerk gewartet wird enable-dht.name=DHT (IPv4) aktivieren enable-dht.description=IPv4-DHT-Funktionalität aktivieren. Aktiviert auch UDP-Tracker-Unterstützung. Wenn ein privates Flag in einem Torrent gesetzt ist, verwendet aria2 DHT für diesen Download nicht, auch wenn true angegeben ist. enable-dht6.name=DHT (IPv6) aktivieren enable-dht6.description=IPv6-DHT-Funktionalität aktivieren. Wenn ein privates Flag in einem Torrent gesetzt ist, verwendet aria2 DHT für diesen Download nicht, auch wenn true angegeben ist. Verwenden Sie die Option --dht-listen-port, um die Portnummer festzulegen. enable-peer-exchange.name=Peer-Austausch aktivieren enable-peer-exchange.description=Peer-Exchange-Erweiterung aktivieren. Wenn ein privates Flag in einem Torrent gesetzt ist, ist diese Funktion für diesen Download deaktiviert, auch wenn true angegeben ist. follow-torrent.name=Torrent folgen follow-torrent.description=Wenn true oder mem angegeben ist, wird beim Download einer Datei mit der Endung .torrent oder Content-Type application/x-bittorrent diese als Torrent-Datei geparst und die darin genannten Dateien heruntergeladen. Bei mem wird die Torrent-Datei nicht auf die Festplatte geschrieben, sondern nur im Speicher gehalten. Bei false wird die .torrent-Datei auf die Festplatte heruntergeladen, aber nicht als Torrent geparst und deren Inhalte nicht heruntergeladen. listen-port.name=Listen-Port listen-port.description=TCP-Portnummer für BitTorrent-Downloads festlegen. Mehrere Ports können mit "," angegeben werden, z.B.: 6881,6885. Sie können auch "-" für einen Bereich verwenden: 6881-6999. , und - können zusammen verwendet werden: 6881-6889,6999. max-overall-upload-limit.name=Globale maximale Upload-Geschwindigkeit max-overall-upload-limit.description=Maximale gesamte Upload-Geschwindigkeit in Bytes/Sekunde festlegen. 0 bedeutet unbegrenzt. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). max-upload-limit.name=Maximale Upload-Geschwindigkeit max-upload-limit.description=Maximale Upload-Geschwindigkeit pro Torrent in Bytes/Sekunde festlegen. 0 bedeutet unbegrenzt. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). peer-id-prefix.name=Peer-ID-Präfix peer-id-prefix.description=Präfix der Peer-ID angeben. Die Peer-ID bei BitTorrent ist 20 Byte lang. Wenn mehr als 20 Bytes angegeben sind, werden nur die ersten 20 verwendet. Bei weniger als 20 Bytes werden zufällige Bytes hinzugefügt, um die Länge auf 20 zu bringen. peer-agent.name=Peer-Agent peer-agent.description=Zeichenkette für die BitTorrent-Extended-Handshake-Version des Peer-Clients angeben. seed-ratio.name=Minimale Share-Ratio seed-ratio.description=Share-Ratio angeben. Fertige Torrents seeden, bis die Share-Ratio RATIO erreicht ist. Es wird empfohlen, hier mindestens 1.0 anzugeben. Geben Sie 0.0 an, wenn Sie unabhängig von der Share-Ratio seeden möchten. Wenn --seed-time zusammen mit dieser Option angegeben ist, endet das Seeding, wenn mindestens eine der Bedingungen erfüllt ist. seed-time.name=Minimale Seed-Zeit seed-time.description=Seed-Zeit in (Bruch-)Minuten angeben. Mit --seed-time=0 wird das Seeding nach Abschluss des Downloads deaktiviert. follow-metalink.name=Metalink folgen follow-metalink.description=Wenn true oder mem angegeben ist, wird beim Download einer Datei mit der Endung .meta4 oder .metalink oder Content-Type application/metalink4+xml oder application/metalink+xml diese als Metalink-Datei geparst und die darin genannten Dateien heruntergeladen. Bei mem wird die Metalink-Datei nicht auf die Festplatte geschrieben, sondern nur im Speicher gehalten. Bei false wird die .metalink-Datei auf die Festplatte heruntergeladen, aber nicht als Metalink-Datei geparst und deren Inhalte nicht heruntergeladen. metalink-base-uri.name=Basis-URI metalink-base-uri.description=Basis-URI angeben, um relative URIs in metalink:url und metalink:metaurl-Elementen in einer auf der lokalen Festplatte gespeicherten Metalink-Datei aufzulösen. Wenn die URI auf ein Verzeichnis zeigt, muss sie mit / enden. metalink-language.name=Sprache metalink-language.description=Legt die Sprache fest, die für Metalink-Metadaten verwendet werden soll. Die Sprache wird als Sprachcode angegeben, z. B. „en“ für Englisch. metalink-location.name=Bevorzugter Serverstandort metalink-location.description=Der Standort des bevorzugten Servers. Eine kommagetrennte Liste von Standorten ist zulässig, z.B. jp,us. metalink-os.name=Betriebssystem metalink-os.description=Das Betriebssystem der herunterzuladenden Datei. metalink-version.name=Version metalink-version.description=Die Version der herunterzuladenden Datei. metalink-preferred-protocol.name=Bevorzugtes Protokoll metalink-preferred-protocol.description=Bevorzugtes Protokoll angeben. Mögliche Werte sind http, https, ftp und none. Mit none wird diese Funktion deaktiviert. metalink-enable-unique-protocol.name=Einzigartiges Protokoll aktivieren metalink-enable-unique-protocol.description=Wenn true angegeben ist und mehrere Protokolle für einen Mirror in einer Metalink-Datei verfügbar sind, verwendet aria2 eines davon. Verwenden Sie die Option --metalink-preferred-protocol, um die Präferenz des Protokolls festzulegen. enable-rpc.name=JSON-RPC/XML-RPC-Server aktivieren enable-rpc.description=Es bietet eine Remote-Procedure-Call (RPC)-Schnittstelle, die die Steuerung von aria2 durch externe Anwendungen ermöglicht. pause-metadata.name=Nach Metadaten-Download pausieren pause-metadata.description=Downloads pausieren, die durch Metadaten-Download erstellt wurden. Es gibt 3 Arten von Metadaten-Downloads in aria2: (1) Download einer .torrent-Datei. (2) Download von Torrent-Metadaten mit Magnet-Link. (3) Download einer Metalink-Datei. Diese Metadaten-Downloads erzeugen Downloads mit ihren Metadaten. Diese Option pausiert diese nachfolgenden Downloads. Diese Option ist nur wirksam, wenn --enable-rpc=true angegeben ist. rpc-allow-origin-all.name=Alle Origin-Anfragen erlauben rpc-allow-origin-all.description=Fügt dem RPC-Response das Header-Feld Access-Control-Allow-Origin mit Wert * hinzu. rpc-listen-all.name=Auf allen Netzwerkschnittstellen lauschen rpc-listen-all.description=Eingehende JSON-RPC/XML-RPC-Anfragen auf allen Netzwerkschnittstellen lauschen. Bei false wird nur auf der lokalen Loopback-Schnittstelle gelauscht. rpc-listen-port.name=Listen-Port rpc-listen-port.description=Legt den Port fest, an dem aria2 auf RPC-Anfragen wartet. Standardmäßig wird der Port 6800 verwendet. rpc-max-request-size.name=Maximale Anfragegröße rpc-max-request-size.description=Maximale Größe der JSON-RPC/XML-RPC-Anfrage festlegen. Wenn aria2 erkennt, dass die Anfrage größer als SIZE Bytes ist, wird die Verbindung getrennt. rpc-save-upload-metadata.name=Upload-Metadaten speichern rpc-save-upload-metadata.description=Die hochgeladenen Torrent- oder Metalink-Metadaten im Verzeichnis speichern, das mit der Option --dir angegeben wurde. Der Dateiname besteht aus dem SHA-1-Hash-String der Metadaten plus Erweiterung. Für Torrent ist die Erweiterung '.torrent'. Für Metalink ist sie '.meta4'. Bei false werden die Downloads, die durch aria2.addTorrent() oder aria2.addMetalink() hinzugefügt wurden, nicht durch die Option --save-session gespeichert. rpc-secure.name=SSL/TLS aktivieren rpc-secure.description=RPC-Transport wird durch SSL/TLS verschlüsselt. Die RPC-Clients müssen das https-Schema verwenden, um auf den Server zuzugreifen. Für WebSocket-Clients verwenden Sie das wss-Schema. Verwenden Sie die Optionen --rpc-certificate und --rpc-private-key, um das Serverzertifikat und den privaten Schlüssel anzugeben. allow-overwrite.name=Überschreiben erlauben allow-overwrite.description=Download von Grund auf neu starten, wenn die zugehörige Steuerdatei nicht existiert. Siehe auch Option --auto-file-renaming. allow-piece-length-change.name=Stücklängenänderung erlauben allow-piece-length-change.description=Bei false bricht aria2 den Download ab, wenn die Stücklänge von der in der Steuerdatei abweicht. Bei true können Sie fortfahren, aber ein Teil des Download-Fortschritts geht verloren. always-resume.name=Download immer fortsetzen always-resume.description=Download immer fortsetzen. Bei true versucht aria2 immer, den Download fortzusetzen, und bricht ab, wenn dies nicht möglich ist. Bei false, wenn alle angegebenen URIs Resume nicht unterstützen oder aria2 N URIs findet, die Resume nicht unterstützen (N ist der Wert von --max-resume-failure-tries), lädt aria2 die Datei von Grund auf neu. Siehe Option --max-resume-failure-tries. async-dns.name=Asynchrones DNS async-dns.description=Aktiviert die asynchrone DNS-Auflösung, die die Leistung der Hostnamenauflösung verbessern kann. auto-file-renaming.name=Automatische Dateiumbenennung auto-file-renaming.description=Dateiname umbenennen, wenn die gleiche Datei bereits existiert. Diese Option funktioniert nur bei HTTP(S)/FTP-Downloads. Der neue Dateiname erhält einen Punkt und eine Zahl (1..9999) nach dem Namen, aber vor der Dateierweiterung, falls vorhanden. auto-save-interval.name=Automatisches Speicherintervall auto-save-interval.description=Steuerdatei (*.aria2) alle SEC Sekunden speichern. Bei 0 wird während des Downloads keine Steuerdatei gespeichert. aria2 speichert eine Steuerdatei beim Stoppen unabhängig vom Wert. Mögliche Werte: 0 bis 600. conditional-get.name=Bedingter Download conditional-get.description=Datei nur herunterladen, wenn die lokale Datei älter als die Remote-Datei ist. Diese Funktion funktioniert nur bei HTTP(S)-Downloads. Sie funktioniert nicht, wenn die Dateigröße in Metalink angegeben ist. Sie ignoriert auch den Content-Disposition-Header. Wenn eine Steuerdatei existiert, wird diese Option ignoriert. Diese Funktion verwendet den If-Modified-Since-Header, um nur neuere Dateien bedingt zu erhalten. Beim Abrufen des Änderungsdatums der lokalen Datei wird der vom Benutzer angegebene Dateiname (siehe Option --out) oder der Dateiname in der URI verwendet, wenn --out nicht angegeben ist. Zum Überschreiben der bestehenden Datei ist --allow-overwrite erforderlich. conf-path.name=Konfigurationsdatei conf-path.description=Gibt den Pfad zur Konfigurationsdatei an, die beim Start von aria2 verwendet werden soll. console-log-level.name=Konsolen-Protokollierungsstufe console-log-level.description=Legt den Detaillierungsgrad für die Konsolenprotokollausgabe fest. Verfügbare Stufen: debug, information, alert, warning und error. content-disposition-default-utf8.name=UTF-8 für Content-Disposition verwenden content-disposition-default-utf8.description=Quoted String im Content-Disposition-Header als UTF-8 statt ISO-8859-1 behandeln, z.B. den filename-Parameter, aber nicht die erweiterte Version filename. daemon.name=Daemon aktivieren daemon.description=Lässt aria2 im Hintergrund als Daemon laufen und gibt das Terminal für andere Aufgaben frei. deferred-input.name=Verzögertes Laden deferred-input.description=Bei true liest aria2 nicht alle URIs und Optionen aus der Datei, die mit --input-file angegeben wurde, beim Start, sondern liest sie einzeln, wenn sie später benötigt werden. Dies kann den Speicherverbrauch reduzieren, wenn die Eingabedatei viele URIs enthält. Bei false liest aria2 alle URIs und Optionen beim Start. Die Option --deferred-input wird deaktiviert, wenn --save-session zusammen verwendet wird. disable-ipv6.name=IPv6 deaktivieren disable-ipv6.description=Deaktiviert IPv6 für alle Netzwerkverbindungen. disk-cache.name=Festplatten-Cache disk-cache.description=Festplatten-Cache aktivieren. Bei SIZE=0 ist der Festplatten-Cache deaktiviert. Diese Funktion speichert die heruntergeladenen Daten im Speicher, der maximal SIZE Bytes groß wird. Der Cache-Speicher wird für die aria2-Instanz erstellt und von allen Downloads gemeinsam genutzt. Vorteil: Weniger Festplatten-I/O, da die Daten in größeren Einheiten geschrieben und nach Offset sortiert werden. Wenn eine Hash-Prüfung erforderlich ist und die Daten im Speicher sind, müssen sie nicht von der Festplatte gelesen werden. SIZE kann K oder M enthalten (1K = 1024, 1M = 1024K). download-result.name=Download-Ergebnis download-result.description=Diese Option ändert die Formatierung der Download-Ergebnisse. Bei OPT=default werden GID, Status, durchschnittliche Download-Geschwindigkeit und Pfad/URI ausgegeben. Bei mehreren Dateien wird Pfad/URI der ersten angeforderten Datei ausgegeben, die übrigen werden weggelassen. Bei OPT=full werden GID, Status, durchschnittliche Download-Geschwindigkeit, Fortschrittsprozentsatz und Pfad/URI ausgegeben. Fortschrittsprozentsatz und Pfad/URI werden für jede angeforderte Datei in jeder Zeile ausgegeben. Bei OPT=hide werden Download-Ergebnisse ausgeblendet. dscp.name=DSCP dscp.description=DSCP-Wert in ausgehenden IP-Paketen des BitTorrent-Verkehrs für QoS festlegen. Dieser Parameter setzt nur die DSCP-Bits im TOS-Feld der IP-Pakete, nicht das gesamte Feld. Wenn Sie Werte aus /usr/include/netinet/ip.h nehmen, teilen Sie sie durch 4 (sonst wären die Werte falsch, z.B. würde Ihre CS1-Klasse zu CS4 werden). Wenn Sie gebräuchliche Werte aus RFC, Netzwerkhersteller-Dokumentation, Wikipedia oder einer anderen Quelle nehmen, verwenden Sie sie wie sie sind. rlimit-nofile.name=Soft-Limit für offene Dateideskriptoren rlimit-nofile.description=Soft-Limit für offene Dateideskriptoren festlegen. Diese Option wirkt nur, wenn: a. Das System es unterstützt (posix). b. Das Limit das Hard-Limit nicht überschreitet. c. Das angegebene Limit größer als das aktuelle Soft-Limit ist. Dies entspricht dem Setzen von nofile über ulimit, außer dass das Limit nie verringert wird. Diese Option ist nur auf Systemen mit rlimit-API verfügbar. enable-color.name=Farben im Terminal aktivieren enable-color.description=Aktiviert oder deaktiviert die Verwendung eines Farbstils in der Konsolenausgabe. enable-mmap.name=MMap aktivieren enable-mmap.description=Dateien in den Speicher abbilden. Diese Option funktioniert möglicherweise nicht, wenn der Dateispeicher nicht vorab zugewiesen ist. Siehe --file-allocation. event-poll.name=Ereignis-Polling-Methode event-poll.description=Methode für das Polling von Ereignissen festlegen. Mögliche Werte sind epoll, kqueue, port, poll und select. Für epoll, kqueue, port und poll gilt: verfügbar, wenn das System sie unterstützt. epoll ist auf aktuellen Linux-Systemen verfügbar. kqueue auf verschiedenen *BSD-Systemen einschließlich Mac OS X. port auf Open Solaris. Der Standardwert kann je nach verwendetem System variieren. file-allocation.name=Dateizuweisungsmethode file-allocation.description=Dateizuweisungsmethode festlegen. none weist keinen Speicherplatz vorab zu. prealloc weist Speicherplatz vor dem Download zu. Dies kann je nach Dateigröße einige Zeit dauern. Bei neueren Dateisystemen wie ext4 (mit Extents-Unterstützung), btrfs, xfs oder NTFS (nur MinGW-Build) ist falloc die beste Wahl. Es weist große (mehrere GiB) Dateien fast sofort zu. Verwenden Sie falloc nicht mit alten Dateisystemen wie ext3 und FAT32, da es fast genauso lange dauert wie prealloc und aria2 während der Zuweisung komplett blockiert. falloc ist möglicherweise nicht verfügbar, wenn Ihr System keine posix_fallocate(3)-Funktion hat. trunc verwendet den Systemaufruf ftruncate(2) oder plattformspezifisches Pendant, um eine Datei auf eine bestimmte Länge zu kürzen. Bei Multi-Datei-Torrent-Downloads werden die angrenzenden Dateien ebenfalls zugewiesen, wenn sie sich ein Stück teilen. force-save.name=Speichern erzwingen force-save.description=Download mit der Option --save-session speichern, auch wenn der Download abgeschlossen oder entfernt wurde. Diese Option speichert auch die Steuerdatei in diesen Situationen. Dies kann nützlich sein, um BitTorrent-Seeding zu speichern, das als abgeschlossen erkannt wird. save-not-found.name=Nicht gefundene Datei speichern save-not-found.description=Download mit der Option --save-session speichern, auch wenn die Datei auf dem Server nicht gefunden wurde. Diese Option speichert auch die Steuerdatei in diesen Situationen. hash-check-only.name=Nur Hash-Prüfung hash-check-only.description=Bei true wird nach der Hash-Prüfung mit --check-integrity der Download abgebrochen, unabhängig davon, ob der Download abgeschlossen ist oder nicht. human-readable.name=Konsolenausgabe menschenlesbar human-readable.description=Größen und Geschwindigkeit in menschenlesbarem Format (z.B. 1,2Ki, 3,4Mi) in der Konsolenausgabe ausgeben. keep-unfinished-download-result.name=Unvollständige Download-Ergebnisse behalten keep-unfinished-download-result.description=Unvollständige Download-Ergebnisse behalten, auch wenn dadurch --max-download-result überschritten wird. Dies ist nützlich, wenn alle unvollständigen Downloads in der Sitzungsdatei gespeichert werden müssen (siehe Option --save-session). Beachten Sie, dass es keine Obergrenze für die Anzahl der zu behaltenden unvollständigen Download-Ergebnisse gibt. Wenn das unerwünscht ist, deaktivieren Sie diese Option. max-download-result.name=Maximale Download-Ergebnisse max-download-result.description=Maximale Anzahl von Download-Ergebnissen, die im Speicher gehalten werden. Die Download-Ergebnisse sind abgeschlossene/fehlerhafte/entfernte Downloads. Die Ergebnisse werden in einer FIFO-Warteschlange gespeichert und es können maximal NUM Ergebnisse gespeichert werden. Wenn die Warteschlange voll ist und ein neues Ergebnis erstellt wird, wird das älteste Ergebnis entfernt und das neue hinten angehängt. Ein hoher Wert kann zu hohem Speicherverbrauch nach Tausenden von Downloads führen. Bei 0 wird kein Download-Ergebnis gespeichert. Unvollständige Downloads werden unabhängig vom Wert dieser Option im Speicher gehalten. Siehe Option --keep-unfinished-download-result. max-mmap-limit.name=Maximale MMap-Grenze max-mmap-limit.description=Maximale Dateigröße für die Aktivierung von mmap (siehe Option --enable-mmap) festlegen. Die Dateigröße ergibt sich aus der Summe aller Dateien eines Downloads. Beispiel: Ein Download enthält 5 Dateien, dann ist die Dateigröße die Gesamtsumme dieser Dateien. Ist die Dateigröße strikt größer als der angegebene Wert, wird mmap deaktiviert. max-resume-failure-tries.name=Maximale Resume-Fehlversuche max-resume-failure-tries.description=Bei Verwendung mit --always-resume=false lädt aria2 die Datei von Grund auf neu, wenn N URIs gefunden werden, die Resume nicht unterstützen. Bei N=0 wird die Datei von Grund auf neu geladen, wenn alle angegebenen URIs Resume nicht unterstützen. Siehe Option --always-resume. min-tls-version.name=Minimale TLS-Version min-tls-version.description=Minimale SSL/TLS-Version zum Aktivieren angeben. log-level.name=Protokollierungsstufe log-level.description=Gibt die Protokollierungsstufe für die Anwendung an. optimize-concurrent-downloads.name=Gleichzeitige Downloads optimieren optimize-concurrent-downloads.description=Optimiert die Anzahl der gleichzeitigen Downloads entsprechend der verfügbaren Bandbreite. aria2 verwendet die Download-Geschwindigkeit aus vorherigen Downloads, um die Anzahl der parallel gestarteten Downloads nach der Regel N = A + B Log10(Geschwindigkeit in Mbps) anzupassen. Die Koeffizienten A und B können im Optionsargument mit Doppelpunkt getrennt angepasst werden. Die Standardwerte (A=5, B=25) führen zu typischerweise 5 parallelen Downloads bei 1Mbps-Netzwerken und über 50 bei 100Mbps-Netzwerken. Die Anzahl der parallelen Downloads bleibt unter dem Maximum, das durch die Option --max-concurrent-downloads definiert ist. piece-length.name=Stücklänge piece-length.description=Stücklänge für HTTP/FTP-Downloads festlegen. Dies ist die Grenze, an der aria2 eine Datei teilt. Alle Splits erfolgen bei Vielfachen dieser Länge. Diese Option wird bei BitTorrent-Downloads ignoriert. Sie wird auch ignoriert, wenn die Metalink-Datei Stück-Hashes enthält. show-console-readout.name=Konsolenausgabe anzeigen show-console-readout.description=Gibt an, ob die Ausgabe in der Konsole angezeigt werden soll. summary-interval.name=Intervall für Download-Zusammenfassung summary-interval.description=Intervall in Sekunden für die Ausgabe der Download-Fortschrittszusammenfassung festlegen. Bei 0 wird die Ausgabe unterdrückt. max-overall-download-limit.name=Globale maximale Download-Geschwindigkeit max-overall-download-limit.description=Maximale gesamte Download-Geschwindigkeit in Bytes/Sekunde festlegen. 0 bedeutet unbegrenzt. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). max-download-limit.name=Maximale Download-Geschwindigkeit max-download-limit.description=Maximale Download-Geschwindigkeit pro Download in Bytes/Sekunde festlegen. 0 bedeutet unbegrenzt. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). no-conf.name=Konfigurationsdatei deaktivieren no-conf.description=Deaktiviert das Laden der Konfigurationsdatei. no-file-allocation-limit.name=Keine Dateizuweisungsgrenze no-file-allocation-limit.description=Für Dateien, deren Größe kleiner als SIZE ist, wird keine Dateizuweisung vorgenommen. Sie können K oder M anhängen (1K = 1024, 1M = 1024K). parameterized-uri.name=Parametrisierte URI aktivieren parameterized-uri.description=Parametrisierte URI-Unterstützung aktivieren. Sie können Teile angeben: http://{sv1,sv2,sv3}/foo.iso. Sie können auch numerische Sequenzen mit Schrittzähler angeben: http://host/image[000-100:2].img. Ein Schrittzähler kann weggelassen werden. Wenn alle URIs nicht auf die gleiche Datei zeigen, wie im zweiten Beispiel oben, ist die Option -Z erforderlich. quiet.name=Konsolenausgabe deaktivieren quiet.description=Deaktiviert alle Ausgaben auf der Konsole. realtime-chunk-checksum.name=Echtzeit-Datenchunk-Prüfung realtime-chunk-checksum.description=Chunk von Daten durch Berechnung der Prüfsumme während des Downloads validieren, wenn Chunk-Prüfsummen bereitgestellt werden. remove-control-file.name=Steuerdatei entfernen remove-control-file.description=Steuerdatei vor dem Download entfernen. In Kombination mit --allow-overwrite=true startet der Download immer von Grund auf neu. Dies ist nützlich für Nutzer hinter Proxy-Servern, die Resume deaktivieren. save-session.name=Sitzungsdatei speichern save-session.description=Fehlerhafte/unvollständige Downloads beim Beenden in Datei speichern. Sie können diese Ausgabedatei mit der Option --input-file an aria2c beim Neustart übergeben. Wenn Sie die Ausgabe gzippen möchten, hängen Sie eine .gz-Endung an den Dateinamen an. Beachten Sie, dass Downloads, die durch die RPC-Methoden aria2.addTorrent() und aria2.addMetalink() hinzugefügt wurden und deren Metadaten nicht als Datei gespeichert werden konnten, nicht gespeichert werden. Downloads, die mit aria2.remove() und aria2.forceRemove() entfernt wurden, werden nicht gespeichert. save-session-interval.name=Sitzungsintervall speichern save-session-interval.description=Fehlerhafte/unvollständige Downloads alle SEC Sekunden in die mit --save-session angegebene Datei speichern. Bei 0 wird die Datei nur beim Beenden von aria2 gespeichert. socket-recv-buffer-size.name=Socket-Empfangspuffergröße socket-recv-buffer-size.description=Maximale Socket-Empfangspuffergröße in Bytes festlegen. Bei 0 wird diese Option deaktiviert. Dieser Wert wird mit setsockopt() als SO_RCVBUF auf den Socket-Dateideskriptor gesetzt. stop.name=Automatische Abschaltzeit stop.description=Anwendung stoppen, nachdem SEC Sekunden vergangen sind. Bei 0 ist diese Funktion deaktiviert. truncate-console-readout.name=Konsolenausgabe kürzen truncate-console-readout.description=Konsolenausgabe kürzen, damit sie in eine Zeile passt. ================================================ FILE: src/langs/es.txt ================================================ [global] AriaNg Version=Versión de AriaNg Operation Result=Resultado de la operación Operation Succeeded=Operación exitosa is connected=está conectado Error=Error OK=OK Confirm=Confirmar Cancel=Cancelar Close=Cerrar True=Verdadero False=Falso DEBUG=Depurar INFO=Info WARN=Advertir ERROR=Error Connecting=Conectando Connected=Conectado Disconnected=Desconectado Reconnecting=Desconectando Waiting to reconnect=Esperando para reconectar Global=Global New=Nuevo Start=Iniciar Pause=Pausa Retry=Reintentar Retry Selected Tasks=Reintentar tareas seleccionadas Delete=Eliminar Select All=Seleccionar todo Select None=Seleccionar Ninguno Select Invert=Seleccionar Invertir Select All Failed Tasks=Seleccionar todas las tareas fallidas Select All Completed Tasks=Seleccionar todas las tareas completadas Select All Tasks=Seleccionar todas las tareas Display Order=Orden de visualización Copy Download Url=Copiar URL de descarga Copy Magnet Link=Copiar enlace magnético Help=Ayuda Search=Buscar Default=PRedeterminado Expand=Expandir Collapse=Colapsar Expand All=Expandir todo Collapse All=Colapsar todo Open=Abir Save=Guardar Import=Importar Remove Task=Eliminar tarea Remove Selected Task=Eliminar tarea seleccionada Clear Stopped Tasks=Limpiar tareas detenidas Click to view task detail=Haga clic para ver los detalles de la tarea By File Name=Por nombre de archivo By File Size=Por tamaño de archivo By Progress=Por progreso By Selected Status=Por estado seleccionado By Remaining=Por restante By Download Speed=Por velocidad de descarga By Upload Speed=Por velocidad de carga By Peer Address=Por dirección de pares By Client Name=Por nombre del cliente Filters=Filtros Download=Descargar Upload=Cargar Downloading=Descargando Pending Verification=Pendiente de verificación Verifying=Verificando Seeding=Sembrando Waiting=Esperando Paused=Pausado Completed=Completado Error Occurred=Ocurrió un error Removed=Eliminado Finished / Stopped=Finalizado / Detenido Uncompleted=Incompleto Click to pin=Haga clic para fijar Settings=Ajustes AriaNg Settings=Ajustes de AriaNg Aria2 Settings=Ajustes de Aria2 Basic Settings=Ajustes básicos HTTP/FTP/SFTP Settings=Ajustes de HTTP/FTP/SFTP HTTP Settings=Ajustes de HTTP FTP/SFTP Settings=Ajustes de FTP/SFTP BitTorrent Settings=Ajustes de BitTorrent Metalink Settings=Ajustes de Metalink RPC Settings=Ajustes de RPC Advanced Settings=Ajustes avanzados AriaNg Debug Console=Consola de depuración AriaNg Aria2 Status=Estado de Aria2 File Name=Nombre del archivo File Size=Tamaño del archivo Progress=Progreso Share Ratio=Proporción de compartición Remaining=Restante Download Speed=Velocidad de descarga Upload Speed=Velocidad de carga Links=Enlaces Torrent File=Archivo torrent Metalink File=Archivo metalink File Name:=Nombre del archivo: Options=Opciones Overview=Descripción general Pieces=Piezas Files=Archivos Peers=Pares Task Name=Nombre de la tarea Task Size=Tamaño de la tarea Task Status=Estado de la tarea Error Description=Descripción del error Health Percentage=Porcentaje de salud Info Hash=Hash de info Seeders=Sembradores Connections=Conexiones Seed Creation Time=Tiempo de creación de semillas Download Url=Descargar Url Download Dir=Dir de descarga BT Tracker Servers=Servidores de seguimiento BT Copy=CoCopiarpy (Choose Files)=(Elegir archivos) Videos=Videos Audios=Audios Pictures=Imágenes Documents=Documentos Applications=Aplicaciones Archives=Archivos Other=Otro Custom=Personalizado Custom Choose File=Elegir archivo personalizado Address=Dirección Client=Cliente Status=Estado Speed=Velocidad (local)=(local) No Data=Sin datos No connected peers=Sin pares conectados Failed to change some tasks state.=No se pudo cambiar el estado de algunas tareas. Confirm Retry=Confirmar reintento Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=¿Está seguro de querer volver a intentar la tarea seleccionada? AriaNg va a crear la misma tarea después de hacer clic en Aceptar. Failed to retry this task.=No se pudo volver a intentar esta tarea. {successCount} tasks have been retried and {failedCount} tasks are failed.=Se reintentó {{successCount}} tareas y se produjeron errores en {{failedCount}} tareas. Confirm Remove=Confirmar Eliminar Are you sure you want to remove the selected task?=¿Está seguro de querer eliminar la tarea seleccionada? Failed to remove some task(s).=No se pudo eliminar alguna(s) tarea(s). Confirm Clear=Confirmar Limpiar Are you sure you want to clear stopped tasks?=¿Está seguro de querer eliminar las tareas detenidas? Download Links:=Enlaces de descarga: Download Now=Descargar ahora Download Later=Descargar mas tarde Open Torrent File=Abrir archivo torrent Open Metalink File=Abrir archivo metalink Support multiple URLs, one URL per line.=Admite múltiples URL, una URL por línea. Your browser does not support loading file!=¡Tu navegador no soporta la carga de archivos! The selected file type is invalid!=¡El tipo de archivo seleccionado no es válido! Failed to load file!=¡Error al cargar el archivo! Download Completed=Descarga completada BT Download Completed=Descarga de BT completada Download Error=Error de descarga AriaNg Url=URL de AriaNg Command API Url=URL de API de comando Export Command API=API de comando de exportación Export=Exportar Copied=Copiado Pause After Task Created=Pausa después de crear la tarea Language=Idioma Theme=Tema Light=Claro Dark=Oscuro Follow system settings=Seguir la configuración del sistema Debug Mode=Modo de depuración Page Title=Título de la página Preview=Vista previa Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Consejos: puede utilizar la etiqueta "noprefix" para ignorar el prefijo, la etiqueta "nosuffix" para ignorar el sufijo y la etiqueta "scale\=n" para establecer la precisión decimal. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Ejemplo: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Intervalo de actualización del título de la página Enable Browser Notification=Habilitar las notificaciones del navegador Browser Notification Sound=Sonido de notificación del navegador Browser Notification Frequency=Frecuencia de notificación del navegador Unlimited=Ilimitado High (Up to 10 Notifications / 1 Minute)=Alto (hasta 10 notificaciones/1 minuto) Middle (Up to 1 Notification / 1 Minute)=Medio (hasta 1 notificación/1 minuto) Low (Up to 1 Notification / 5 Minutes)=Bajo (hasta 1 notificación/5 minutos) WebSocket Auto Reconnect Interval=Intervalo de reconexión automática de WebSocket Aria2 RPC Alias=Alias RPC Aria2 Aria2 RPC Address=Dirección RPC de Aria2 Aria2 RPC Protocol=Protocolo RPC Aria2 Aria2 RPC Http Request Method=Método de solicitud HTTP RPC Aria2 POST method only supports aria2 v1.15.2 and above.=El método POST solo es compatible con aria2 v1.15.2 y superiores. Aria2 RPC Request Headers=Encabezados de solicitud RPC de Aria2 Support multiple request headers, one header per line, each line containing "header name: header value".=Admite múltiples encabezados de solicitud, un encabezado por línea, cada línea conteniendo "nombre del encabezado: valor del encabezado". Aria2 RPC Secret Token=Token secreto RPC de Aria2 Activate=Activar Reset Settings=Restablecer configuración Confirm Reset=Confirmar Restablecer Are you sure you want to reset all settings?=¿Está seguro de querer restablecer todos los ajustes? Clear Settings History=Limpiar historial de configuraciones Are you sure you want to clear all settings history?=¿Está seguro de querer eliminar todo el historial de configuraciones? Delete RPC Setting=Eliminar configuración RPC Add New RPC Setting=Agregar nueva configuración RPC Are you sure you want to remove rpc setting "{rpcName}"?=¿Está seguro de querer eliminar la configuración de rpc "{{rpcName}}"? Updating Global Stat Interval=Actualización del intervalo de estadísticas globales Updating Task Information Interval=Intervalo de actualización de información de tareas Keyboard Shortcuts=Atajos de teclado Supported Keyboard Shortcuts=Atajos de teclado compatibles Set Focus On Search Box=Establecer el foco en el cuadro de búsqueda Swipe Gesture=Gesto de deslizar Change Tasks Order by Drag-and-drop=Cambiar el orden de las tareas mediante arrastrar y soltar Action After Creating New Tasks=Acción después de crear nuevas tareas Navigate to Task List Page=Ir a la página de lista de tareas Navigate to Task Detail Page=Ir a la página de detalles de la tarea Action After Retrying Task=Acción después de volver a intentar la tarea Navigate to Downloading Tasks Page=Navegar a la página de tareas de descargas Stay on Current Page=Mantener en la página actual Remove Old Tasks After Retrying=Eliminar tareas antiguas después de volver a intentarlo Confirm Task Removal=Confirmar la eliminación de la tarea Include Prefix When Copying From Task Details=Incluir prefijo al copiar desde los detalles de la tarea Show Pieces Info In Task Detail Page=Mostrar información de las piezas en la página de detalles de la tarea Pieces Amount is Less than or Equal to {value}=La cantidad de piezas es menor o igual a {{value}} RPC List Display Order=Orden de visualización de la lista RPC Each Task List Page Uses Independent Display Order=Cada página de lista de tareas utiliza un orden de visualización independiente Recently Used=Usado recientemente RPC Alias=Alias RPC Import / Export AriaNg Settings=Importar / Exportar configuraciones de AriaNg Import Settings=Importar configuraciones Export Settings=Exportar configuraciones AriaNg settings data=Datos de configuración de AriaNg Confirm Import=Confirmar Importar Are you sure you want to import all settings?=¿Está seguro de querer importar todos los ajustes? Invalid settings data format!=¡Formato de datos de configuración no válido! Data has been copied to clipboard.=Los datos se copiaron al portapapeles. ### Supported Placeholder=Marcador de posición compatible AriaNg Title=Título de AriaNg Current RPC Alias=Alias ​​de RPC actual Downloading Count=Conteo de descargas Waiting Count=Conteo de espera Stopped Count=Conteo detenido You have disabled notification in your browser. You should change your browser's settings before you enable this function.=Has deshabilitado las notificaciones en tu navegador. Debes cambiar la configuración de tu navegador antes de activar esta función. Language resource has been updated, please reload the page for the changes to take effect.=El recurso de idioma se ha actualizado, vuelva a cargar la página para que los cambios surtan efecto. Configuration has been modified, please reload the page for the changes to take effect.=Se ha modificado la configuración, vuelva a cargar la página para que los cambios surtan efecto. Reload AriaNg=Recargar AriaNg Show Secret=Mostrar secreto Hide Secret=Ocultar secreto Aria2 Version=Versión de Aria2 Enabled Features=Funciones habilitadas Operations=Operaciones Reconnect=Reconectar Save Session=Guardar sesión Shutdown Aria2=Apagar Aria2 Confirm Shutdown=Confirmar apagado Are you sure you want to shutdown aria2?=¿Estás seguro de querer apagar aria2? Session has been saved successfully.=La sesión se ha guardado correctamente. Aria2 has been shutdown successfully.=Aria2 se ha apagado correctamente. Toggle Navigation=Cambiar navegación Shortcut=Atajo Global Rate Limit=Límite de proporción global Loading=Cargando... More Than One Day=Más de 1 día Unknown=Desconocido Bytes=Bytes Hours=Horas Minutes=Minutos Seconds=Segundos Milliseconds=Milisegundos Http=Http Http (Disabled)=Http (Deshabilitado) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (Deshabilitado) WebSocket (Security)=WebSocket (Seguridad) Http and WebSocket would be disabled when accessing AriaNg via Https.=Http y WebSocket se deshabilitarían al acceder a AriaNg a través de Https. POST=POST GET=GET Enabled=Habilitado Disabled=Deshabilitado Always=Siempre Never=Nunca BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=Los cambios en la configuración surten efecto después de actualizar la página. Logging Time=Tiempo de registro Log Level=Nivel de registro Auto Refresh=Actualización automática Refresh Now=Actualizar ahora Clear Logs=Borrar registros Are you sure you want to clear debug logs?=¿Estás seguro de querer borrar los registros de depuración? Show Detail=Mostrar detalles Log Detail=Detalle del registro Aria2 RPC Debug=Depuración RPC de Aria2 Aria2 RPC Request Method=Método de solicitud RPC de Aria2 Aria2 RPC Request Parameters=Parámetros de solicitud RPC de Aria2 Aria2 RPC Response=Respuesta RPC de Aria2 Execute=Ejecutar RPC method is illegal!=¡El método RPC es ilegal! AriaNg does not support this RPC method!=¡AriaNg no admite este método RPC! RPC request parameters are invalid!=¡Los parámetros de solicitud RPC no son válidos! Type is illegal!=¡El tipo es ilegal! Parameter is invalid!=¡El parámetro no es válido! Option value cannot be empty!=¡El valor de la opción no puede estar vacío! Input number is invalid!=¡El número de entrada no es válido! Input number is below min value!=¡El número de entrada es menor que el valor mínimo {{value}}! Input number is above max value!=¡El número de entrada es mayor que el valor máximo {{value}}! Input value is invalid!=¡El valor de entrada no es válido! Protocol is invalid!=¡El protocolo no es válido! RPC host cannot be empty!=¡El host RPC no puede estar vacío! RPC secret is not base64 encoded!=¡El secreto RPC no está codificado en base64! URL is not base64 encoded!=¡La URL no está codificada en base64! Tap to configure and get started with AriaNg.=Toque para configurar y comenzar a utilizar AriaNg. Cannot initialize WebSocket!=¡No se puede inicializar WebSocket! Cannot connect to aria2!=¡No se puede conectar a aria2! Access Denied!=¡Acceso denegado! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=No puedes utilizar AriaNg porque este navegador no cumple con los requisitos mínimos de almacenamiento de datos. [error] unknown=Se produjo un error desconocido. operation.timeout=Se agotó el tiempo de operación. resource.notfound=No se encontró el recurso. resource.notfound.max-file-not-found=No se encontró el recurso. Consulte la opción --max-file-not-found. download.aborted.lowest-speed-limit=La descarga se interrumpió porque la velocidad de descarga era demasiado lenta. Consulte la opción --lowest-speed-limit. network.problem=Se produjo un problema de red. resume.notsupported=El servidor remoto no admite la reanudación. space.notenough=No había suficiente espacio disponible en el disco. piece.length.different=La longitud de la pieza era diferente a la del archivo de control .aria2. Consulte la opción --allow-piece-length-change. download.sametime=aria2 estaba descargando el mismo archivo en ese momento. download.torrent.sametime=aria2 estaba descargando el mismo archivo en ese momento. file.exists=El archivo ya existía. Consulte la opción --allow-overwrite. file.rename.failed=No se pudo cambiar el nombre del archivo. Consulte la opción --auto-file-renaming. file.open.failed=No se pudo abrir el archivo existente. file.create.failed=No se pudo crear un nuevo archivo ni truncar un archivo existente. io.error=Se produjo un error en el sistema de archivos. directory.create.failed=Error al crear el directorio. name.resolution.failed=No se pudo resolver el nombre de dominio. metalink.file.parse.failed=No se pudo analizar el documento Metalink. ftp.command.failed=El comando FTP falló. http.response.header.bad=El encabezado de respuesta HTTP era incorrecto o inesperado. redirects.toomany=Se produjeron demasiadas redirecciones. http.authorization.failed=La autorización HTTP falló. bencoded.file.parse.failed=No se pudo analizar el archivo bencoded (normalmente el archivo ".torrent"). torrent.file.corrupted=El archivo ".torrent" estaba dañado o faltaba información que aria2 necesitaba. magnet.uri.bad=Magnet URI estaba mal. option.bad=Se proporcionó una opción incorrecta o no reconocida o se proporcionó un argumento de opción inesperado. server.overload=El servidor remoto no pudo manejar la solicitud debido a una sobrecarga temporal o mantenimiento. rpc.request.parse.failed=No se pudo analizar la solicitud JSON-RPC. checksum.failed=La validación de la suma de comprobación falló. [languages] Czech=Checo German=Alemán English=Inglés Spanish=Español French=Francés Italian=Italiano Japanese=Japonés Polish=Polaco Russian=Ruso Simplified Chinese=Chino Simplificado Traditional Chinese=Chino Tradicional [format] longdate=MM/DD/YYYY HH:mm:ss time.millisecond={{value}} milisegundo time.milliseconds={{value}} milisegundos time.second={{value}} segundo time.seconds={{value}} segundos time.minute={{value}} minuto time.minutes={{value}} minutos time.hour={{value}} hora time.hours={{value}} horas requires.aria2-version=Requiere aria2 v{{version}} o superior task.new.download-links=Enlaces de descarga ({{count}} Links): task.pieceinfo=Completado: {{completed}}, Total: {{total}} task.error-occurred=Se produjo un error ({{errorcode}}) task.verifying-percent=Verificando ({{verifiedPercent}}%) settings.file-count=({{count}} archivos) settings.total-count=(Recuento total: {{count}}) debug.latest-logs=Latest {{count}} registros [rpc.error] unauthorized=¡Autorización fallida! [option] true=Verdadero false=Falso default=Predeterminado none=Ninguno hide=Ocultar full=Completo http=Http https=Https ftp=Ftp mem=Sólo memoria get=OBTENER tunnel=TÚNEL plain=Plano arc4=ARC4 binary=Binario ascii=ASCII debug=Depurar info=Info notice=Aviso warn=Advertir error=Error adaptive=adaptado epoll=epoll falloc=falloc feedback=comentario geom=geom inorder=enorden kqueue=kqueue poll=encuesta port=puerto prealloc=preasignar random=aleatorio select=seleccionar trunc=truncamiento SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Ruta de descarga dir.description= log.name=Archivo de registro log.description=El nombre del archivo de registro. Si se especifica -, el registro se escribe en la salida estándar. Si se especifica una cadena vacía ("") o se omite esta opción, no se escribe ningún registro en el disco. max-concurrent-downloads.name=Descargas simultáneas máximas max-concurrent-downloads.description= check-integrity.name=Comprobar integridad check-integrity.description=Compruebar la integridad del archivo mediante la validación de hashes parciales o de un hash del archivo completo. Esta opción solo tiene efecto en descargas de BitTorrent y Metalink con sumas de comprobación o descargas HTTP(S)/FTP con la opción --checksum. continue.name=Continuar descarga continue.description=Continuar descargando un archivo parcialmente descargado. Utilice esta opción para reanudar una descarga iniciada por un navegador web u otro programa que descargue archivos secuencialmente desde el principio. Actualmente, esta opción solo se aplica a descargas HTTP(S)/FTP. all-proxy.name=Servidor proxy all-proxy.description=Utilizar un servidor proxy para todos los protocolos. También puede anular esta configuración y especificar un servidor proxy para un protocolo en particular mediante --http-proxy, --https-proxy y --ftp-proxy. Esto afecta a todas las descargas. El formato de PROXY es [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=Nombre de usuario proxy all-proxy-user.description= all-proxy-passwd.name=Contraseña de proxy all-proxy-passwd.description= checksum.name=Suma de comprobación checksum.description=Establecer la suma de comprobación. El formato del valor de la opción es TYPE\=DIGEST. TYPE es el tipo de hash. El tipo de hash admitido se incluye en Algoritmos de hash en aria2c -v. DIGEST es el resumen hexadecimal. Por ejemplo, la configuración del resumen sha-1 se ve así: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 Esta opción se aplica solo a descargas HTTP(S)/FTP. connect-timeout.name=Tiempo de espera de conexión connect-timeout.description=Ingresar el tiempo de espera de conexión en segundos para establecer la conexión con el servidor HTTP/FTP/proxy. Una vez establecida la conexión, esta opción no tiene efecto y se utiliza la opción --timeout en su lugar. dry-run.name=Ejecución en seco dry-run.description=Si se especifica Verdadero, aria2 solo verifica si el archivo remoto está disponible y no descarga los datos. Esta opción tiene efecto en las descargas HTTP/FTP. Las descargas de BitTorrent se cancelan si se especifica Verdadero. lowest-speed-limit.name=Límite de velocidad mínimo lowest-speed-limit.description=Cerrar la conexión si la velocidad de descarga es inferior o igual a este valor (bytes por segundo). 0 significa que aria2 no tiene un límite de velocidad mínimo. Puedes añadir K o M (1K = 1024, 1M = 1024K). Esta opción no afecta a las descargas de BitTorrent. max-connection-per-server.name=Máximo de conexiones por servidor max-connection-per-server.description= max-file-not-found.name=Máximo de intentos de archivo no encontrado max-file-not-found.description=Si aria2 recibe el estado "archivo no encontrado" de los servidores HTTP/FTP remotos NUM veces sin obtener un solo byte, entonces fuerza la descarga a que falle. Especifique 0 para deshabilitar esta opción. Esta opción es efectiva solo cuando se utilizan servidores HTTP/FTP. La cantidad de reintentos se cuenta para --max-tries, por lo que también debe configurarse. max-tries.name=Máximo número de intentos max-tries.description=Establecer número de intentos. 0 significa ilimitado. min-split-size.name=Tamaño mínimo de división min-split-size.description=aria2 no divide un rango de bytes menor a 2*SIZE. Por ejemplo, consideremos la descarga de un archivo de 20 MiB. Si SIZE es 10 M, aria2 puede dividir el archivo en 2 rangos [0-10 MiB) y [10 MiB-20 MiB) y descargarlo usando 2 fuentes (si --split >= 2, por supuesto). Si SIZE es 15 M, ya que 2*15 M > 20 MiB, aria2 no divide el archivo y lo descarga usando 1 fuente. Puede agregar K o M (1 K = 1024, 1 M = 1024 K). Valores posibles: 1 M-1024 M. netrc-path.name=.Ruta netrc netrc-path.description= no-netrc.name=Deshabilitar netrc no-netrc.description= no-proxy.name=Sin lista de proxys no-proxy.description=Especifique una lista separada por comas de nombres de host, dominios y direcciones de red con o sin una máscara de subred donde no se debe utilizar ningún proxy. out.name=Nombre del archivo out.description=El nombre del archivo descargado. Siempre es relativo al directorio indicado en la opción --dir. Cuando se utiliza la opción --force-sequential, esta opción se ignora. proxy-method.name=Método proxy proxy-method.description=Establezca el método que se utilizará en la solicitud de proxy. MÉTODO puede ser OBTENER o TÚNEL. Las descargas HTTPS siempre utilizan TÚNEL independientemente de esta opción. remote-time.name=Marca de tiempo del archivo remoto remote-time.description=Recupere la marca de tiempo del archivo remoto del servidor HTTP/FTP remoto y, si está disponible, aplíquela al archivo local. reuse-uri.name=Reutilizar Uri reuse-uri.description=Reutilice las URI ya utilizadas si no quedan URIs sin usar. retry-wait.name=Espera de reintento retry-wait.description=Establezca los segundos que se deben esperar entre reintentos. Cuando SEC > 0, aria2 volverá a intentar realizar descargas cuando el servidor HTTP devuelva una respuesta 503. server-stat-of.name=Salida de estadísticas del servidor server-stat-of.description=Especifique el nombre del archivo en el que se guardará el perfil de rendimiento de los servidores. Puede cargar los datos guardados mediante la opción --server-stat-if. server-stat-timeout.name=Tiempo de espera de las estadísticas del servidor server-stat-timeout.description=Especifique el tiempo de espera en segundos para invalidar el perfil de rendimiento de los servidores desde el último contacto con ellos. split.name=Conteo dividido split.description=Descargar un archivo usando N conexiones. Si se proporcionan más de N URIs, se utilizan primero N URIs y las URIs restantes se utilizan para la copia de seguridad. Si se proporcionan menos de N URIs, esas URIs se utilizan más de una vez para que se realicen N conexiones en total simultáneamente. La cantidad de conexiones al mismo host está restringida por la opción --max-connection-per-server. stream-piece-selector.name=Algoritmo de selección de piezas stream-piece-selector.description=Especifique el algoritmo de selección de piezas utilizado en la descarga HTTP/FTP. Pieza significa segmento de longitud fija que se descarga en paralelo en una descarga segmentada. Si se proporciona el valor predeterminado, aria2 selecciona la pieza de modo que reduzca el número de conexiones establecidas. Este es un comportamiento predeterminado razonable porque establecer una conexión es una operación costosa. Si se proporciona enorden, aria2 selecciona la pieza que tiene el índice mínimo. Index=0 significa el primero del archivo. Esto será útil para ver una película mientras se descarga. La opción --enable-http-pipelining puede ser útil para reducir la sobrecarga de reconexión. Tenga en cuenta que aria2 respeta la opción --min-split-size, por lo que será necesario especificar un valor razonable para la opción --min-split-size. Si se proporciona aleatorio, aria2 selecciona la pieza aleatoriamente. Al igual que enorden, se respeta la opción --min-split-size. Si se proporciona geom, al principio aria2 selecciona la pieza que tiene el índice mínimo como enorden, pero conserva espacio de la pieza seleccionada anteriormente de forma exponencial. Esto reducirá la cantidad de conexiones que se deben establecer y, al mismo tiempo, descargará primero la parte inicial del archivo. Esto será útil para ver películas mientras se descargan. timeout.name=Tiempo de espera timeout.description= uri-selector.name=Algoritmo de selección de URI uri-selector.description=Especifique el algoritmo de selección de URI. Los valores posibles son enorden, comentario y adaptado. Si se proporciona enorden, se prueba la URI en el orden en que aparece en la lista de URI. Si se proporciona comentario, aria2 utiliza la velocidad de descarga observada en las descargas anteriores y elige el servidor más rápido en la lista de URI. Esto también omite de manera efectiva los espejos inactivos. La velocidad de descarga observada es parte del perfil de rendimiento de los servidores mencionados en --server-stat-of y --server-stat-if. Si se proporciona adaptado, selecciona uno de los mejores espejos para la primera conexión y las reservadas. Para los complementarios, devuelve espejos que aún no se han probado y, si cada uno de ellos ya se ha probado, devuelve espejos que se deben probar nuevamente. De lo contrario, no selecciona más espejos. Al igual que comentario, utiliza un perfil de rendimiento de servidores. check-certificate.name=Verificar certificado check-certificate.description= http-accept-gzip.name=Aceptar GZip http-accept-gzip.description=Enviar Aceptar: desinflar, encabezado de solicitud gzip y respuesta inflada si el servidor remoto responde con Content-Encoding: gzip o Content-Encoding: desinflar. http-auth-challenge.name=Desafío de autenticación http-auth-challenge.description=Envía el encabezado de autorización HTTP solo cuando lo solicita el servidor. Si se establece como falso, el encabezado de autorización siempre se envía al servidor. Hay una excepción: si el nombre de usuario y la contraseña están integrados en la URI, el encabezado de autorización siempre se envía al servidor independientemente de esta opción. http-no-cache.name=Sin caché http-no-cache.description=Enviar Cache-Control: sin caché y Pragma: encabezado sin caché para evitar el almacenamiento en caché de contenido. Si se proporciona falso, estos encabezados no se envían y puede agregar el encabezado Cache-Control con la directiva que desee utilizando la opción --header. http-user.name=Nombre de usuario predeterminado HTTP http-user.description= http-passwd.name=Contraseña predeterminada HTTP http-passwd.description= http-proxy.name=Servidor proxy HTTP http-proxy.description= http-proxy-user.name=Nombre de usuario del proxy HTTP http-proxy-user.description= http-proxy-passwd.name=Contraseña de proxy HTTP http-proxy-passwd.description= https-proxy.name=Servidor proxy HTTPS https-proxy.description= https-proxy-user.name=Nombre de usuario del proxy HTTPS https-proxy-user.description= https-proxy-passwd.name=Contraseña de proxy HTTPS https-proxy-passwd.description= referer.name=Referente referer.description=Establezca un referente http (Referer). Esto afecta a todas las descargas http/https. Si se proporciona *, la URI de descarga también se utiliza como referente. Esto puede resultar útil cuando se utiliza junto con la opción --parameterized-uri. enable-http-keep-alive.name=Habilitar conexión persistente enable-http-keep-alive.description=Habilitar conexión persistente HTTP/1.1. enable-http-pipelining.name=Habilitar canalización HTTP enable-http-pipelining.description=Habilitar la canalización HTTP/1.1. header.name=Encabezado personalizado header.description=Añade HEADER al encabezado de la solicitud HTTP. Coloca un elemento por línea, cada elemento conteniendo "nombre del encabezado: valor del encabezado". save-cookies.name=Ruta de las cookies save-cookies.description=Guardar las cookies en un ARCHIVO en formato Mozilla/Firefox(1.x/2.x)/Netscape. Si el ARCHIVO ya existe, se sobrescribe. Las cookies de sesión también se guardan y sus valores de caducidad se tratan como 0. use-head.name=Utilizar el método HEAD use-head.description=Utilizar el método HEAD para la primera solicitud al servidor HTTP. user-agent.name=Agente de usuario personalizado user-agent.description= ftp-user.name=Nombre de usuario predeterminado de FTP ftp-user.description= ftp-passwd.name=Contraseña predeterminada de FTP ftp-passwd.description=Si el nombre de usuario está incrustado pero la contraseña no está en la URI, aria2 intenta resolver la contraseña usando .netrc. Si la contraseña se encuentra en .netrc, úsela como contraseña. Si no, use la contraseña especificada en esta opción. ftp-pasv.name=Modo pasivo ftp-pasv.description=Utilice el modo pasivo en FTP. Si se proporciona el valor falso, se utilizará el modo activo. Esta opción se ignora para la transferencia SFTP. ftp-proxy.name=Servidor proxy FTP ftp-proxy.description= ftp-proxy-user.name=Nombre de usuario del proxy FTP ftp-proxy-user.description= ftp-proxy-passwd.name=Contraseña de proxy FTP ftp-proxy-passwd.description= ftp-type.name=Tipo de transferencia ftp-type.description= ftp-reuse-connection.name=Reutilizar conexión ftp-reuse-connection.description= ssh-host-key-md.name=Suma de comprobación de clave pública SSH ssh-host-key-md.description=Establezca la suma de comprobación para la clave pública del host SSH. El formato del valor de la opción es TYPE=DIGEST. TIPO es el tipo de hash. El tipo de hash admitido es sha-1 o md5. DIGERIR es un resumen hexadecimal. Por ejemplo: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. Esta opción se puede utilizar para validar la clave pública del servidor cuando se utiliza SFTP. Si esta opción no está configurada, que es la predeterminada, no se realiza ninguna validación. bt-detach-seed-only.name=Separar solo las semillas bt-detach-seed-only.description=Excluir solo las descargas de semillas al contar las descargas activas simultáneas (ver la opción -j). Esto significa que si se proporciona -j3 y esta opción está activada y hay 3 descargas activas y una de ellas ingresa al modo de semilla, entonces se excluye del recuento de descargas activas (por lo tanto, se convierte en 2) y se inicia la siguiente descarga que espera en la cola. Pero tenga en cuenta que el elemento de semilla aún se reconoce como descarga activa en el método RPC. bt-enable-hook-after-hash-check.name=Habilitar Hook después de la comprobación de hash bt-enable-hook-after-hash-check.description=Permitir la invocación del comando hook después de la comprobación de hash (ver la opción -V) en la descarga de BitTorrent. De forma predeterminada, cuando la comprobación de hash tiene éxito, se ejecuta el comando dado por --on-bt-download-complete. Para deshabilitar esta acción, asigne false a esta opción. bt-enable-lpd.name=Habilitar el descubrimiento de pares locales (LPD) bt-enable-lpd.description=Habilitar Local Peer Discovery. Si se establece una bandera privada en un torrent, aria2 no utiliza esta función para esa descarga, incluso si se especifica el valor verdadero. bt-exclude-tracker.name=Exclusión de rastreadores de BitTorrent bt-exclude-tracker.description=Lista separada por comas de las URL de anuncio del rastreador de BitTorrent que se eliminarán. Puede utilizar el valor especial * que coincide con todas las URL y, por lo tanto, elimina todas las URL de anuncio. Al especificar * en la línea de comandos del shell, no olvide escaparlo o entrecomillarlo. bt-external-ip.name=IP externa bt-external-ip.description=Especifique la dirección IP externa que se utilizará en la descarga de BitTorrent y DHT. Puede enviarse al rastreador de BitTorrent. Para DHT, esta opción debe configurarse para informar que el nodo local está descargando un torrent en particular. Esto es fundamental para usar DHT en una red privada. Aunque esta función se denomina externa, puede aceptar cualquier tipo de dirección IP. bt-force-encryption.name=Forzar cifrado bt-force-encryption.description=Requiere cifrado de la carga útil del mensaje de BitTorrent con arc4. Esta es una abreviatura de --bt-require-crypto --bt-min-crypto-level=arc4. Esta opción no cambia el valor de esas opciones. Si se proporciona el valor verdadero, se deniega el protocolo de enlace de BitTorrent heredado y solo se utiliza el protocolo de enlace de Ofuscación y siempre se cifra la carga útil del mensaje. bt-hash-check-seed.name=Comprobación de hash antes de la siembra bt-hash-check-seed.description=Si se proporciona verdadero, después de la comprobación del hash con la opción --check-integrity y de que el archivo esté completo, se continúa con la carga del archivo. Si desea comprobar el archivo y descargarlo solo cuando esté dañado o incompleto, configure esta opción como falso. Esta opción solo tiene efecto en las descargas de BitTorrent. bt-load-saved-metadata.name=Cargar archivo de metadatos guardado bt-load-saved-metadata.description=Antes de obtener los metadatos del torrent desde DHT al descargar con un enlace magnético, primero intente leer el archivo guardado con la opción --bt-save-metadata. Si tiene éxito, omita la descarga de metadatos desde DHT. bt-max-open-files.name=Máximo de archivos abiertos bt-max-open-files.description=Especifique el número máximo de archivos a abrir en una descarga multiarchivo de BitTorrent/Metalink a nivel global. bt-max-peers.name=Máximo de pares bt-max-peers.description=Especifique el número máximo de pares por torrent. 0 significa ilimitado. bt-metadata-only.name=Descargar solo metadatos bt-metadata-only.description=Descargar solo metadatos. No se descargarán los archivos descritos en los metadatos. Esta opción solo tiene efecto cuando se utiliza la URI de BitTorrent Magnet. bt-min-crypto-level.name=Nivel mínimo de criptografía bt-min-crypto-level.description=Establezca el nivel mínimo del método de cifrado. Si un par proporciona varios métodos de cifrado, aria2 elige el más bajo que satisfaga el nivel indicado. bt-prioritize-piece.name=Priorizar pieza bt-prioritize-piece.description=Intenta descargar primero la primera y la última parte de cada archivo. Esto es útil para obtener una vista previa de los archivos. El argumento puede contener 2 palabras clave: head y tail. Para incluir ambas palabras clave, deben estar separadas por comas. Estas palabras clave pueden tomar un parámetro, TAMAÑO. Por ejemplo, si se especifica head=TAMAÑO, las partes en el rango de los primeros bytes TAMAÑO de cada archivo tienen mayor prioridad. tail=TAMAÑO significa el rango de los últimos bytes TAMAÑO de cada archivo. TAMAÑO puede incluir K o M (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=Eliminar archivo no seleccionado bt-remove-unselected-file.description=Elimina los archivos no seleccionados cuando se completa la descarga en BitTorrent. Para seleccionar archivos, utilice la opción --select-file. Si no se utiliza, se supone que todos los archivos están seleccionados. Utilice esta opción con cuidado porque eliminará archivos de su disco. bt-require-crypto.name=Requiere cripto bt-require-crypto.description=Si se proporciona el valor verdadero, aria2 no acepta ni establece conexión con el protocolo de enlace de BitTorrent heredado (protocolo \19BitTorrent). Por lo tanto, aria2 siempre utiliza el protocolo de enlace de Ofuscación. bt-request-peer-speed-limit.name=Velocidad de descarga preferida bt-request-peer-speed-limit.description=Si la velocidad total de descarga de cada torrent es inferior a VELOCIDAD, aria2 aumenta temporalmente la cantidad de pares para intentar obtener una mayor velocidad de descarga. Configurar esta opción con la velocidad de descarga que prefiera puede aumentar la velocidad de descarga en algunos casos. Puede agregar K o M (1K = 1024, 1M = 1024K). bt-save-metadata.name=Guardar metadatos bt-save-metadata.description=Guardar los metadatos como archivo ".torrent". Esta opción solo tiene efecto cuando se utiliza la URI de BitTorrent Magnet. El nombre del archivo es un hash de información codificado en hexadecimal con el sufijo ".torrent". El directorio que se guardará es el mismo directorio en el que se guardó el archivo de descarga. Si ya existe el mismo archivo, los metadatos no se guardan. bt-seed-unverified.name=No verificar archivos descargados bt-seed-unverified.description=Semilla de archivos descargados previamente sin verificar los hashes de las piezas. bt-stop-timeout.name=Detener tiempo de espera bt-stop-timeout.description=Detener la descarga de BitTorrent si la velocidad de descarga es 0 en segundos SEC consecutivos. Si se indica 0, esta función se desactiva. bt-tracker.name=Rastreadores de BitTorrent bt-tracker.description=Lista separada por comas de URI de anuncios de rastreadores de BitTorrent adicionales. Estas URIs no se ven afectadas por la opción --bt-exclude-tracker porque se agregan después de que se eliminan las URIs incluidas en la opción --bt-exclude-tracker. bt-tracker-connect-timeout.name=Tiempo de espera de conexión del rastreador BitTorrent bt-tracker-connect-timeout.description=Establezca el tiempo de espera de conexión en segundos para establecer la conexión con el rastreador. Una vez establecida la conexión, esta opción no tiene efecto y se utiliza en su lugar la opción --bt-tracker-timeout. bt-tracker-interval.name=Intervalo de conexión del rastreador BitTorrent bt-tracker-interval.description=Establezca el intervalo en segundos entre las solicitudes del rastreador. Esto anula por completo el valor del intervalo y aria2 solo usa este valor e ignora el intervalo mínimo y el valor del intervalo en la respuesta del rastreador. Si se establece en 0, aria2 determina el intervalo en función de la respuesta del rastreador y el progreso de la descarga. bt-tracker-timeout.name=Tiempo de espera del rastreador de BitTorrent bt-tracker-timeout.description= dht-file-path.name=Archivo DHT (IPv4) dht-file-path.description=Cambie el archivo de la tabla de enrutamiento DHT de IPv4 a RUTA. dht-file-path6.name=Archivo DHT (IPv6) dht-file-path6.description=Cambie el archivo de la tabla de enrutamiento DHT de IPv6 a RUTA. dht-listen-port.name=Puerto de escucha DHT dht-listen-port.description=Establezca el puerto de escucha UDP utilizado por DHT (IPv4, IPv6) y el rastreador UDP. Se pueden especificar varios puertos utilizando ",", por ejemplo: 6881,6885. También puede utilizar - para especificar un rango: 6881-6999. , y - se pueden utilizar juntos. dht-message-timeout.name=Tiempo de espera del mensaje DHT dht-message-timeout.description= enable-dht.name=Habilitar DHT (IPv4) enable-dht.description=Habilita la funcionalidad DHT de IPv4. También habilita la compatibilidad con el rastreador UDP. Si se establece una bandera privada en un torrent, aria2 no usa DHT para esa descarga incluso si se proporciona el valor verdadero. enable-dht6.name=Habilitar DHT (IPv6) enable-dht6.description=Habilite la funcionalidad DHT de IPv6. Si se establece una bandera privada en un torrent, aria2 no usa DHT para esa descarga, incluso si se especifica el valor verdadero. Use la opción --dht-listen-port para especificar el número de puerto en el que se escuchará. enable-peer-exchange.name=Habilitar el intercambio entre pares enable-peer-exchange.description=Habilitar la extensión de intercambio entre pares. Si se establece una bandera privada en un torrent, esta función se deshabilita para esa descarga incluso si se especifica el valor verdadero. follow-torrent.name=Seguir Torrent follow-torrent.description=Si se especifica verdadero o mem, cuando se descarga un archivo cuyo sufijo es .torrent o el tipo de contenido es application/x-bittorrent, aria2 lo analiza como un archivo torrent y descarga los archivos que se mencionan en él. Si se especifica mem, no se escribe un archivo torrent en el disco, sino que se guarda en la memoria. Si se especifica falso, el archivo .torrent se descarga en el disco, pero no se analiza como un torrent y no se descarga su contenido. listen-port.name=Puerto de escucha listen-port.description=Establezca el número de puerto TCP para las descargas de BitTorrent. Se pueden especificar varios puertos utilizando ",", por ejemplo: 6881,6885. También puede utilizar - para especificar un rango: 6881-6999. , y - se pueden utilizar juntos: 6881-6889,6999. max-overall-upload-limit.name=Límite máximo de carga global max-overall-upload-limit.description=Establezca la velocidad máxima de carga general en bytes/seg. 0 significa sin restricciones. Puede agregar K o M (1K = 1024, 1M = 1024K). max-upload-limit.name=Límite máximo de carga max-upload-limit.description=Establezca la velocidad máxima de carga de cada torrent en bytes por segundo. 0 significa sin restricciones. Puede agregar K o M (1K = 1024, 1M = 1024K). peer-id-prefix.name=Prefijo de identificación de pares peer-id-prefix.description=Especifique el prefijo del identificador de par. El identificador de par en BitTorrent tiene una longitud de 20 bytes. Si se especifican más de 20 bytes, solo se utilizan los primeros 20 bytes. Si se especifican menos de 20 bytes, se agregan datos de bytes aleatorios para que su longitud sea de 20 bytes. peer-agent.name=Agente par peer-agent.description=Especifique la cadena utilizada durante el protocolo de enlace extendido de bitorrent para la versión del cliente del par. seed-ratio.name=Proporción mínima de compartición seed-ratio.description=Especifique la proporción de compartición. Sembrar torrents completados hasta que la proporción de compartición alcance PROPORCIÓN. Se recomienda encarecidamente especificar aquí un valor igual o superior a 1,0. Especifique 0,0 si pretende realizar la siembra independientemente de la proporción de compartición. Si se especifica la opción --seed-time junto con esta opción, la siembra finaliza cuando se cumple al menos una de las condiciones. seed-time.name=Tiempo mínimo de siembra seed-time.description=Especifique el tiempo de siembra en minutos (fraccionales). Si especifica --seed-time=0, se deshabilita la siembra una vez finalizada la descarga. follow-metalink.name=Seguir Metalink follow-metalink.description=Si se especifica verdadero o mem, cuando se descarga un archivo cuyo sufijo es .meta4 o .metalink o el tipo de contenido application/metalink4+xml o application/metalink+xml, aria2 lo analiza como un archivo metalink y descarga los archivos que se mencionan en él. Si se especifica mem, no se escribe un archivo metalink en el disco, sino que se guarda en la memoria. Si se especifica falso, el archivo .metalink se descarga en el disco, pero no se analiza como un archivo metalink y no se descarga su contenido. metalink-base-uri.name=URI base metalink-base-uri.description=Especifique la URI base para resolver la URI relativa en los elementos metalink:url y metalink:metaurl de un archivo metalink almacenado en el disco local. Si la URI apunta a un directorio, debe terminar con /. metalink-language.name=Idioma metalink-language.description= metalink-location.name=Ubicación preferida del servidor metalink-location.description=La ubicación del servidor preferida. Se acepta una lista de ubicaciones delimitada por comas, por ejemplo, jp, us. metalink-os.name=Sistema operativo metalink-os.description=El sistema operativo del archivo a descargar. metalink-version.name=Versión metalink-version.description=La versión del archivo a descargar. metalink-preferred-protocol.name=Protocolo preferido metalink-preferred-protocol.description=Especifique el protocolo preferido. Los valores posibles son http, https, ftp y ninguno. Especifique ninguno para deshabilitar esta función. metalink-enable-unique-protocol.name=Habilitar protocolo único metalink-enable-unique-protocol.description=Si se proporciona el valor verdadero y hay varios protocolos disponibles para un espejo en un archivo metalink, aria2 utiliza uno de ellos. Utilice la opción --metalink-preferred-protocol para especificar la preferencia del protocolo. enable-rpc.name=Habilitar el servidor JSON-RPC/XML-RPC enable-rpc.description= pause-metadata.name=Pausar después de descargar los metadatos pause-metadata.description=Pausar las descargas creadas como resultado de la descarga de metadatos. Hay 3 tipos de descargas de metadatos en aria2: (1) descarga de archivo .torrent. (2) descarga de metadatos de torrent mediante un enlace magnet. (3) descarga de archivo metalink. Estas descargas de metadatos generarán descargas utilizando sus metadatos. Esta opción pausa estas descargas posteriores. Esta opción es efectiva solo cuando se proporciona --enable-rpc=true. rpc-allow-origin-all.name=Permitir todas las solicitudes de origen rpc-allow-origin-all.description=Agregar el campo de encabezado Access-Control-Allow-Origin con el valor * a la respuesta RPC. rpc-listen-all.name=Escuchar en todas las interfaces de red rpc-listen-all.description=Escuchar las solicitudes JSON-RPC/XML-RPC entrantes en todas las interfaces de red. Si se proporciona el valor falso, escuchar solo en la interfaz de bucle local. rpc-listen-port.name=Puerto de escucha rpc-listen-port.description= rpc-max-request-size.name=Tamaño máximo de solicitud rpc-max-request-size.description=Establezca el tamaño máximo de la solicitud JSON-RPC/XML-RPC. Si aria2 detecta que la solicitud tiene más de TAMAÑO bytes, cancela la conexión. rpc-save-upload-metadata.name=Guardar metadatos de carga rpc-save-upload-metadata.description=Guardar los metadatos de torrent o metalink cargados en el directorio especificado por la opción --dir. El nombre del archivo consta de una cadena hexadecimal de metadatos con hash SHA-1 más la extensión. Para torrent, la extensión es '.torrent'. Para metalink, es '.meta4'. Si se asigna el valor falso a esta opción, las descargas agregadas por aria2.addTorrent() o aria2.addMetalink() no se guardarán con la opción --save-session. rpc-secure.name=Habilitar SSL/TLS rpc-secure.description=El transporte RPC se cifrará mediante SSL/TLS. Los clientes RPC deben utilizar el esquema https para acceder al servidor. Para el cliente WebSocket, utilice el esquema wss. Utilice las opciones --rpc-certificate y --rpc-private-key para especificar el certificado del servidor y la clave privada. allow-overwrite.name=Permitir sobrescritura allow-overwrite.description=Reiniciar la descarga desde cero si no existe el archivo de control correspondiente. Ver también la opción --auto-file-renaming. allow-piece-length-change.name=Permitir cambio de longitud de pieza allow-piece-length-change.description=Si se proporciona el valor falso, aria2 cancela la descarga cuando la longitud de un fragmento es diferente a la de un archivo de control. Si se proporciona el valor verdadero, puede continuar, pero se perderá parte del progreso de la descarga. always-resume.name=Siempre reanudar descarga always-resume.description=Reanudar siempre la descarga. Si se proporciona verdadero, aria2 siempre intenta reanudar la descarga y, si no es posible, cancela la descarga. Si se proporciona falso, cuando ninguna de las URI proporcionadas admite la reanudación o aria2 encuentra N URI que no admiten la reanudación (N es el valor especificado con la opción --max-resume-failure-tries), aria2 descarga el archivo desde cero. Consulte la opción --max-resume-failure-tries. async-dns.name=DNS asincrónico async-dns.description= auto-file-renaming.name=Cambio automático de nombre de archivo auto-file-renaming.description=Cambiar el nombre del archivo si ya existe. Esta opción funciona solo en descargas HTTP(S)/FTP. El nuevo nombre del archivo tiene un punto y un número (1..9999) adjuntos después del nombre, pero antes de la extensión del archivo, si la hay. auto-save-interval.name=Intervalo de guardado automático auto-save-interval.description=Guardar un archivo de control (*.aria2) cada SEC segundos. Si se proporciona 0, no se guarda ningún archivo de control durante la descarga. aria2 guarda un archivo de control cuando se detiene, independientemente del valor. Los valores posibles están entre 0 y 600. conditional-get.name=Descarga condicional conditional-get.description=Descargar archivo solo cuando el archivo local sea más antiguo que el archivo remoto. Esta función solo funciona con descargas HTTP(S). No funciona si el tamaño del archivo está especificado en Metalink. También ignora el encabezado Content-Disposition. Si existe un archivo de control, se ignorará esta opción. Esta función usa el encabezado If-Modified-Since para obtener solo el archivo más nuevo de manera condicional. Al obtener la hora de modificación del archivo local, usa el nombre de archivo proporcionado por el usuario (consulte la opción --out) o la parte del nombre del archivo en la URI si no se especifica --out. Para sobrescribir el archivo existente, se requiere --allow-overwrite. conf-path.name=Archivo de configuración conf-path.description= console-log-level.name=Nivel de registro de la consola console-log-level.description= content-disposition-default-utf8.name=Utilice UTF-8 para gestionar la disposición del contenido content-disposition-default-utf8.description=Manejar la cadena citada en el encabezado Content-Disposition como UTF-8 en lugar de ISO-8859-1, por ejemplo, el parámetro de nombre de archivo, pero no el nombre de archivo de la versión extendida. daemon.name=Habilitar demonio daemon.description= deferred-input.name=Carga diferida deferred-input.description=Si se proporciona verdadero, aria2 no lee todos los URI y opciones del archivo especificado por la opción --input-file al inicio, sino que lee uno por uno cuando lo necesita más adelante. Esto puede reducir el uso de memoria si el archivo de entrada contiene muchos URI para descargar. Si se proporciona falso, aria2 lee todos los URI y opciones al inicio. La opción --deferred-input se deshabilitará cuando se use --save-session en conjunto. disable-ipv6.name=Deshabilitar IPv6 disable-ipv6.description= disk-cache.name=Caché de disco disk-cache.description=Habilitar caché de disco. Si TAMAÑO es 0, la caché de disco está deshabilitada. Esta función almacena en caché los datos descargados en la memoria, que crece hasta TAMAÑO bytes como máximo. El almacenamiento en caché se crea para la instancia de aria2 y lo comparten todas las descargas. La única ventaja de la caché de disco es que reduce la E/S del disco porque los datos se escriben en unidades más grandes y se reordenan según el desplazamiento del archivo. Si se utiliza una comprobación de hash y los datos se almacenan en caché en la memoria, no necesitamos leerlos desde el disco. TAMAÑO puede incluir K o M (1K = 1024, 1M = 1024K). download-result.name=Descargar resultado download-result.description=Esta opción cambia la forma en que se formatea el resultado de la descarga. Si OPT es la opción predeterminada, se imprime el GID, el estado, la velocidad de descarga promedio y la ruta/URI. Si hay varios archivos involucrados, se imprime la ruta/URI del primer archivo solicitado y se omiten los restantes. Si OPT está lleno, se imprime el GID, el estado, la velocidad de descarga promedio, el porcentaje de progreso y la ruta/URI. El porcentaje de progreso y la ruta/URI se imprimen para cada archivo solicitado en cada fila. Si OPT está oculto, se ocultan los resultados de la descarga. dscp.name=DSCP dscp.description=Establezca el valor DSCP en los paquetes IP salientes del tráfico BitTorrent para QoS. Este parámetro establece solo los bits DSCP en el campo TOS de los paquetes IP, no el campo completo. Si toma valores de /usr/include/netinet/ip.h, divídalos por 4 (de lo contrario, los valores serían incorrectos, por ejemplo, su clase CS1 se convertiría en CS4). Si toma valores de uso común de RFC, documentación de proveedores de red, Wikipedia o cualquier otra fuente, úselos tal como están. rlimit-nofile.name=Límite flexible de descriptores de archivos abiertos rlimit-nofile.description=Establezca el límite flexible de descriptores de archivos abiertos. Esta apertura solo tendrá efecto cuando: a. El sistema lo admita (posix). b. El límite no exceda el límite estricto. c. El límite especificado sea mayor que el límite flexible actual. Esto es equivalente a configurar nofile mediante ulimit, excepto que nunca reducirá el límite. Esta opción solo está disponible en sistemas que admitan la API rlimit. enable-color.name=Habilitar color en la terminal enable-color.description= enable-mmap.name=Habilitar MMap enable-mmap.description=Asignar archivos a la memoria. Esta opción puede no funcionar si el espacio de archivo no está asignado previamente. Consulte --file-allocation. event-poll.name=Método de sondeo de eventos event-poll.description=Especifique el método para sondear eventos. Los valores posibles son epoll, kqueue, port, poll y select. Para cada epoll, kqueue, port y poll, está disponible si el sistema lo admite. epoll está disponible en Linux reciente. kqueue está disponible en varios sistemas *BSD, incluido Mac OS X. port está disponible en Open Solaris. El valor predeterminado puede variar según el sistema que utilice. file-allocation.name=Método de asignación de archivos file-allocation.description=Especifique el método de asignación de archivos. none no preasigna espacio de archivo. prealloc preasigna espacio de archivo antes de que comience la descarga. Esto puede tardar un tiempo dependiendo del tamaño del archivo. Si está utilizando sistemas de archivos más nuevos como ext4 (con soporte de extensiones), btrfs, xfs o NTFS (solo compilación MinGW), falloc es su mejor opción. Asigna archivos grandes (pocos GiB) casi instantáneamente. No use falloc con sistemas de archivos heredados como ext3 y FAT32 porque toma casi el mismo tiempo que prealloc y bloquea aria2 por completo hasta que finaliza la asignación. falloc puede no estar disponible si su sistema no tiene la función posix_fallocate(3). trunc usa la llamada al sistema ftruncate(2) o la contraparte específica de la plataforma para truncar un archivo a una longitud especificada. En descargas de torrent de múltiples archivos, los archivos adyacentes a los archivos especificados también se asignan si comparten la misma pieza. force-save.name=Forzar guardado force-save.description=Guardar la descarga con la opción --save-session incluso si la descarga se completa o se elimina. Esta opción también guarda el archivo de control en esas situaciones. Esto puede resultar útil para guardar la propagación de BitTorrent que se reconoce como estado completado. save-not-found.name=Guardar archivo no encontrado save-not-found.description=Guardar la descarga con la opción --save-session incluso si no se encontró el archivo en el servidor. Esta opción también guarda el archivo de control en esas situaciones. hash-check-only.name=Solo comprobación de hash hash-check-only.description=Si se da verdadero, después de la verificación de hash usando la opción --check-integrity, se cancela la descarga independientemente de que la descarga esté completa o no. human-readable.name=Salida legible por humanos de la consola human-readable.description=Imprimir tamaños y velocidades en formato legible para humanos (por ejemplo, 1,2 Ki, 3,4 Mi) en la lectura de la consola. keep-unfinished-download-result.name=Mantener el resultado de la descarga sin terminar keep-unfinished-download-result.description=Conservar los resultados de descargas no finalizadas incluso si al hacerlo se excede el valor --max-download-result. Esto resulta útil si todas las descargas no finalizadas deben guardarse en un archivo de sesión (consulte la opción --save-session). Tenga en cuenta que no existe un límite superior para la cantidad de resultados de descargas no finalizadas que se deben conservar. Si esto no es deseable, desactive esta opción. max-download-result.name=Resultado de descarga máxima max-download-result.description=Establezca el número máximo de resultados de descarga que se guardan en la memoria. Los resultados de la descarga son descargas completadas/con error/eliminadas. Los resultados de la descarga se almacenan en la cola FIFO y puede almacenar como máximo NUM resultados de descarga. Cuando la cola está llena y se crea un nuevo resultado de descarga, el resultado de descarga más antiguo se elimina del frente de la cola y el nuevo se coloca al final. Establecer un número grande en esta opción puede resultar en un alto consumo de memoria después de miles de descargas. Especificar 0 significa que no se guarda ningún resultado de descarga. Tenga en cuenta que las descargas sin terminar se mantienen en la memoria independientemente del valor de esta opción. Consulte la opción --keep-unfinished-download-result. max-mmap-limit.name=Límite máximo de MMap max-mmap-limit.description=Establezca el tamaño máximo de archivo para habilitar mmap (consulte la opción --enable-mmap). El tamaño de archivo se determina por la suma de todos los archivos incluidos en una descarga. Por ejemplo, si una descarga contiene 5 archivos, el tamaño del archivo será el tamaño total de esos archivos. Si el tamaño del archivo es estrictamente mayor que el tamaño especificado en esta opción, se deshabilitará mmap. max-resume-failure-tries.name=Máximo número de intentos de error de reanudación max-resume-failure-tries.description=Cuando se utiliza con --always-resume=false, aria2 descarga el archivo desde cero cuando detecta N cantidad de URI que no admiten la reanudación. Si N es 0, aria2 descarga el archivo desde cero cuando ninguna de las URI proporcionadas admite la reanudación. Consulte la opción --always-resume. min-tls-version.name=Versión mínima de TLS min-tls-version.description=Especifique la versión mínima de SSL/TLS para habilitar. log-level.name=Nivel de registro log-level.description= optimize-concurrent-downloads.name=Optimizar descargas simultáneas optimize-concurrent-downloads.description=Optimizar la cantidad de descargas simultáneas según el ancho de banda disponible. aria2 utiliza la velocidad de descarga observada en las descargas anteriores para adaptar la cantidad de descargas lanzadas en paralelo según la regla N = A + B Log10 (velocidad en Mbps). Los coeficientes A y B se pueden personalizar en los argumentos de la opción con A y B separados por dos puntos. Los valores predeterminados (A=5, B=25) llevan a usar típicamente 5 descargas paralelas en redes de 1Mbps y más de 50 en redes de 100Mbps. La cantidad de descargas paralelas permanece restringida por debajo del máximo definido por el parámetro --max-concurrent-downloads. piece-length.name=Longitud de la pieza piece-length.description=Establezca una longitud de fragmento para las descargas HTTP/FTP. Este es el límite cuando aria2 divide un archivo. Todas las divisiones se producen en múltiplos de esta longitud. Esta opción se ignorará en las descargas de BitTorrent. También se ignorará si el archivo Metalink contiene hashes de fragmentos. show-console-readout.name=Mostrar salida de consola show-console-readout.description= summary-interval.name=Descargar resumen del intervalo de salida summary-interval.description=Establezca el intervalo en segundos para mostrar el resumen del progreso de la descarga. Si se configura en 0, se suprime la visualización. max-overall-download-limit.name=Límite máximo de descarga global max-overall-download-limit.description=Establezca la velocidad máxima de descarga general en bytes/seg. 0 significa sin restricciones. Puede agregar K o M (1K = 1024, 1M = 1024K). max-download-limit.name=Límite máximo de descarga max-download-limit.description=Establezca la velocidad máxima de descarga por cada descarga en bytes por segundo. 0 significa sin restricciones. Puede agregar K o M (1K = 1024, 1M = 1024K). no-conf.name=Deshabilitar archivo de configuración no-conf.description= no-file-allocation-limit.name=Sin límite de asignación de archivos no-file-allocation-limit.description=No se realiza ninguna asignación de archivos para archivos cuyo tamaño sea menor que TAMAÑO. Puede agregar K o M (1K = 1024, 1M = 1024K). parameterized-uri.name=Habilitar URI parametrizada parameterized-uri.description=Habilitar la compatibilidad con URI parametrizada. Puede especificar un conjunto de partes: http://{sv1,sv2,sv3}/foo.iso. También puede especificar secuencias numéricas con contador de pasos: http://host/image[000-100:2].img. Se puede omitir un contador de pasos. Si todas las URI no apuntan al mismo archivo, como en el segundo ejemplo anterior, se requiere la opción -Z. quiet.name=Deshabilitar la salida de la consola quiet.description= realtime-chunk-checksum.name=Validación de fragmentos de datos en tiempo real realtime-chunk-checksum.description=Validar un fragmento de datos calculando la suma de comprobación al descargar un archivo si se proporcionan sumas de comprobación de fragmentos. remove-control-file.name=Eliminar archivo de control remove-control-file.description=Eliminar el archivo de control antes de la descarga. Si se utiliza con --allow-overwrite=true, la descarga siempre comienza desde cero. Esto será útil para los usuarios que estén detrás de un servidor proxy que deshabilita la reanudación. save-session.name=Archivo de guardado de sesión save-session.description=Guardar las descargas con errores o sin terminar en un ARCHIVO al salir. Puedes pasar este archivo de salida a aria2c con la opción --input-file al reiniciar. Si deseas que la salida esté comprimida en gzip, agrega una extensión .gz al nombre del archivo. Ten en cuenta que las descargas agregadas por los métodos RPC aria2.addTorrent() y aria2.addMetalink() y cuyos metadatos no se pudieron guardar como archivo no se guardan. Las descargas eliminadas con aria2.remove() y aria2.forceRemove() no se guardarán. save-session-interval.name=Intervalo de guardar sesión save-session-interval.description=Guardar las descargas con errores o sin finalizar en un archivo especificado con la opción --save-session cada SEC segundos. Si se especifica 0, el archivo se guardará solo cuando aria2 salga. socket-recv-buffer-size.name=Tamaño del búfer de recepción del socket socket-recv-buffer-size.description=Establezca el búfer de recepción de socket máximo en bytes. Si se especifica 0, se deshabilitará esta opción. Este valor se establecerá en el descriptor de archivo de socket mediante la opción de socket SO_RCVBUF con la llamada setsockopt(). stop.name=Tiempo de apagado automático stop.description=Detener la aplicación después de que transcurran 10 segundos. Si se especifica 0, esta función se deshabilita. truncate-console-readout.name=Truncar la salida de la consola truncate-console-readout.description=Truncar la lectura de la consola para que quepa en una sola línea. ================================================ FILE: src/langs/fr_FR.txt ================================================ [global] AriaNg Version=Version de AriaNg Operation Result=Résultat de l'opération Operation Succeeded=Opération réussie is connected=Connecté Error=Erreur OK=OK Confirm=Confirmer Cancel=Annuler Close=Fermer True=Vrai False=Faux DEBUG=DÉBOGUER INFO=INFORMATIONS WARN=AVERTISSEMENT ERROR=ERREUR Connecting=Connexion en cours Connected=Connecté Disconnected=Déconnecté Reconnecting=Reconnexion en cours Waiting to reconnect=En attente de reconnexion Global=Général New=Nouveau Start=Démarrer Pause=Pause Retry=Réessayer Retry Selected Tasks=Relancer les tâches sélectionnées Delete=Supprimer Select All=Tout sélectionner Select None=Tout désléctionner Select Invert=Inverser la sélection Select All Failed Tasks=Sélectionner toutes les tâches échouées Select All Completed Tasks=Sélectionner toutes les tâches réuissies Select All Tasks=Sélectionner toutes les tâches Display Order=Ordre d'affichage Copy Download Url=Copier L'URL de téléchargement Copy Magnet Link=Copier le lien du magnet Help=Aide Search=Rechercher Default=Défaut Expand=Développer Collapse=Réduire Expand All=Tout développer Collapse All=Tout réduire Open=Ouvrir Save=Sauvegarder Import=Importer Remove Task=Supprimer la tâche Remove Selected Task=Supprimer les tâche sélectionnées Clear Stopped Tasks=Supprimer les tâches stoppées Click to view task detail=Cliquer pour voir le détail de la tâche By File Name=Par nom de fichier By File Size=Par taille de fichier By Progress=Par progression By Selected Status=Par statut sélectionné By Remaining=Par temps restant By Download Speed=Par vitesse de téléchargement By Upload Speed=Par vitesse de téléversement By Peer Address=Par adresse de peer By Client Name=Par nom de client Filters=Filtres Download=Téléchargements Upload=Téléversement Downloading=Téléchargements en cours Pending Verification=Vérification en attente Verifying=Vérification en cours Seeding=Seed en cours Waiting=En attente Paused=En pause Completed=Terminé Error Occurred=Erreur rencontrée Removed=Supprimé Finished / Stopped=Terminés / Stoppés Uncompleted=Incomplet Click to pin=Cliquer pour épingler Settings=Paramètres AriaNg Settings=Paramètres AriaNg Aria2 Settings=Paramètres Aria2 Basic Settings=Paramètres basiques HTTP/FTP/SFTP Settings=Paramètres HTTP/FTP/SFTP HTTP Settings=Paramètres HTTP FTP/SFTP Settings=Paramètres FTP/SFTP BitTorrent Settings=Paramètres BitTorrent Metalink Settings=Paramètres Metalink RPC Settings=Paramètres RPC Advanced Settings=Paramètres avancés AriaNg Debug Console=Console de débogage AriaNg Aria2 Status=Statut Aria2 File Name=Nom de fichier File Size=Taille de fichier Progress=Progression Share Ratio=Ratio de partage Remaining=Temps restant Download Speed=Vitesse de téléchargement Upload Speed=Vitesse de téléversement Links=Liens Torrent File=Fichier torrent Metalink File=Fichier Metalink File Name:=Nom de fichier: Options=Options Overview=Aperçu Pieces=Pièces Files=Fichiers Peers=Peers Task Name=Nom de la tâche Task Size=Taille de la tâche Task Status=Statut de la tâche Error Description=Erreur de description Health Percentage=Pourcentage de santé Info Hash=Informations hash Seeders=Seeders Connections=Connexions Seed Creation Time=Temps depuis création du seed Download Url=URL de téléchargement Download Dir=Destination du téléchargement BT Tracker Servers=Serveur de suivi BT Copy=Copier (Choose Files)=(Choisir fichiers) Videos=Vidéos Audios=Audios Pictures=Images Documents=Documents Applications=Applications Archives=Archives Other=Autres Custom=Personnalisé Custom Choose File=Choix de fichier personnalisé Address=Adresse Client=Client Status=Statut Speed=Vitesse (local)=(Local) No Data=Aucune donnée No connected peers=Aucun peer connecté Failed to change some tasks state.=Echec lors du changement d'état des tâches. Confirm Retry=Confirmer nouvel essai Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=Ëtes-vous sûr de vouloir la tâche sélectionnée? AriaNg va créer la même tâche après confirmation. Failed to retry this task.=Échec de la nouvelle tentative pour cette tâche. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} tâches ont été relancées et {{failedCount}} tâches ont échouées. Confirm Remove=Confirmer suppression Are you sure you want to remove the selected task?=Ëtes-vous sûr de vouloir supprimer la tâche sélectionnée? Failed to remove some task(s).=Echec lors de la suppression de certaines tâches. Confirm Clear=Confirmer nettoyage Are you sure you want to clear stopped tasks?=Ëtes-vous sûr de vouloir effacer les tâches stoppées? Download Links:=Liens de téléchargement Download Now=Télécharger maintenant Download Later=Télécharger plus tard Open Torrent File=Ouvrir fichier torrent Open Metalink File=Ouvrir fichier Metalink Support multiple URLs, one URL per line.=Supporte plusieurs URLs, une URL par ligne. Your browser does not support loading file!=Votre navigateur ne supporte pas le chargement de fichier! The selected file type is invalid!=Le type de fichier sélectionné est invalide! Failed to load file!=Echec lors du chargement du fichier! Download Completed=Téléchargement terminé BT Download Completed=Téléchargement BT terminé Download Error=Erreur de téléchargement AriaNg Url=URL de AriaNg Command API Url=URL de la commande API Export Command API=Exporter la commande API Export=Exporter Copied=Copié Pause After Task Created=Pause après création de la tâche Language=Langage Theme=Thème Light=Clair Dark=Sombre Follow system settings=Similaire aux réglages système Debug Mode=Mode de débogage Page Title=Titre de la page Preview=Prévisualisation Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Astuce : Vous pouvez utiliser le tag "noprefix" pour ignorer le préfixe, le tag "nosuffix" pour ignorer le suffixe, et le tag "scale\n" pour régler à la décimale près. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Exemple: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Actualisation de l'intervalle du titre de la page Enable Browser Notification=Activer les notification dans le navigateur Browser Notification Sound=Son de notification du navigateur Browser Notification Frequency=Fréquence de notification du navigateur Unlimited=Illimité High (Up to 10 Notifications / 1 Minute)=Haut (Jusqu'à 10 notifications / 1 minute) Middle (Up to 1 Notification / 1 Minute)=Moyen (Jusqu'a 1 notification / 1 minute) Low (Up to 1 Notification / 5 Minutes)= Petit (Jusqu'à 1 notification / 5 minutes) WebSocket Auto Reconnect Interval=Intervalle de reconnexion automatique au WebSocket Aria2 RPC Alias=Alias Aria2 RPC Aria2 RPC Address=Adresse Aria2 RPC Aria2 RPC Protocol=Protocole Aria2 RPC Aria2 RPC Http Request Method=Méthode de requête Http Aria2 RPC POST method only supports aria2 v1.15.2 and above.=La méthode POST supporte seulement Aria2 v1.15.2 et supérieur. Aria2 RPC Request Headers=En-têtes requête RPC Aria2 Support multiple request headers, one header per line, each line containing "header name: header value".=Supporte plusieurs en-têtes de requête, une en-tête par ligne, chaque ligne doit contenir "header name: header value". Aria2 RPC Secret Token=Jeton secret RPC Aria2 Activate=Activer Reset Settings=Réinitialiser paramètres Confirm Reset=Confirmer la réinitialisation Are you sure you want to reset all settings?=Êtes-vous sûr de vouloir réinitilaiser tous les paramètres? Clear Settings History=Supprimer l'historique des réglages Are you sure you want to clear all settings history?=Êtes-vous sûr de vouloir supprimer tout l'historique des réglages? Delete RPC Setting=Supprimer le paramétrage RPC Add New RPC Setting=Ajouter un nouveau paramétrage RPC Are you sure you want to remove rpc setting "{rpcName}"?=Êtes-vous sûr de vouloir supprimer le paramétrage RPC "{{rpcName}}"? Updating Global Stat Interval=Actualisation de l'intervalle des statistiques globales Updating Task Information Interval=Actualisation de l'intervalle de la tâche d'information Keyboard Shortcuts=Raccourcis clavier Supported Keyboard Shortcuts=Raccourcis clavier supportés Set Focus On Search Box=Mettre focus sur la la barre de recherche Swipe Gesture=Geste de balayage Change Tasks Order by Drag-and-drop=Changer l'ordre des tâches par glisser-déposer Action After Creating New Tasks=Action après la création de nouvelles tâches Navigate to Task List Page=Naviguer à la page liste des tâches Navigate to Task Detail Page=Naviguer à la page de détails de la tâche Action After Retrying Task=Action après relance d'une tâche Navigate to Downloading Tasks Page=Naviguer à la page tâches de téléchargement Stay on Current Page=Rester sur la page actuelle Remove Old Tasks After Retrying=Supprimer les anciennes tâches après nouvel essai Confirm Task Removal= Confirmer la suppresion de la tâche Include Prefix When Copying From Task Details=Inclure préfixe lorsque les détails d'une tâche sont copiés Show Pieces Info In Task Detail Page=Montrer les infos des pièces dans la page de détails de la tâche Pieces Amount is Less than or Equal to {value}= Le nombre de pièces est inférieur à ou égal à {{value}} RPC List Display Order=Ordre d'affichage de la liste RPC Each Task List Page Uses Independent Display Order=Chaque page de liste de tâches utilisent un ordre d'affichage indépendant Recently Used=Utilisé récemment RPC Alias=Alias RPC Import / Export AriaNg Settings=Importer / Exporter paramètres AriaNg Import Settings=Importer les paramètres Export Settings=Exporter les paramètres AriaNg settings data=Paramètres données AriaNg Confirm Import=Confirmer l'importation Are you sure you want to import all settings?=Êtes-vous sûr de vouloir importer tous les paramètres? Invalid settings data format!=Mauvais paramètrage format de données! Data has been copied to clipboard.=Les données ont été copiées dans le presse-papiers. Supported Placeholder=Balise supportée AriaNg Title=Titre AriaNg Current RPC Alias=Alias RPC actuel Downloading Count=Nombre de téléchargements Waiting Count=Nombre en attente Stopped Count=Nombre stoppé You have disabled notification in your browser. You should change your browser's settings before you enable this function.=Vous avez désactivé les notifications dans votre navigateur. Vous devriez modifier les paramètresde votre navigateur avant d'activer cette fonction. Language resource has been updated, please reload the page for the changes to take effect.=La langue de la ressource à changée, recharger la page pour que les changements prennent effet s'il vous plaît. Configuration has been modified, please reload the page for the changes to take effect.=La configuration été modifiée, recharger la page pour que les changements prennent effet s'il vous plaît. Reload AriaNg=Recharger AriaNg Show Secret=Montrer secret Hide Secret=Cacher secret Aria2 Version=Version de Aria2 Enabled Features=Fonctionnalités activées Operations=Opérations Reconnect=Reconnexion Save Session=Sauvegarder session Shutdown Aria2=Arrêter Aria2 Confirm Shutdown=Confirmer l'arrêt Are you sure you want to shutdown aria2?=Êtes-vous sûr de vouloir arrêter Aria2? Session has been saved successfully.=La session a été sauvegardée avec succès. Aria2 has been shutdown successfully.=Aria2 a été arrêté avec succès. Toggle Navigation=Activer navigation Shortcut=Raccourci Global Rate Limit=Limite globale de taux Loading=Chargement en cours More Than One Day=Plus d'une journée Unknown=Inconnu Bytes=Bytes Hours=Heures Minutes=Minutes Seconds=Secondes Milliseconds=Millisecondes Http=Http Http (Disabled)=Http (Désactivé) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (Désactivé) WebSocket (Security)=WebSocket (Sécurité) Http and WebSocket would be disabled when accessing AriaNg via Https.=Http et WebSocket devraient êtres désactivés pour un accès à AriaNg en Https. POST=POST GET=GET Enabled=Activé Disabled=Désactivé Always=Toujours Never=Jamais BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=Les changements des paramètres prendront effet après le rafraîchissement de la page. Logging Time=Temps de connexion Log Level=Niveau de log Auto Refresh=Rafraîchissement automatique Refresh Now=Rafraîchir maintenant Clear Logs=Effacer les logs Are you sure you want to clear debug logs?=Êtes-vous sûr de vouloir effacer les logs? Show Detail=Montrer le détail Log Detail=Détail de log Aria2 RPC Debug=Débogage RPC Aria2 Aria2 RPC Request Method=Méthode de requête RPC Aria2 Aria2 RPC Request Parameters=Paramètres de requête RPC Aria2 Aria2 RPC Response=Réponse RPC Aria2 Execute=Éxecuter RPC method is illegal!=La méthode RPC est illégale! AriaNg does not support this RPC method!=AriaNg ne supporte pas cette méthode RPC! RPC request parameters are invalid!=Paramètres de requête RPC invalides! Type is illegal!=Le type est illégal! Parameter is invalid!=Le paramètre est invalide! Option value cannot be empty!=La valeur option ne peut pas être vide! Input number is invalid!=La saisie du nombre est invalide! Input number is below min value!=La saisie du nombre est en dessous de la valeur minimale {{value}}! Input number is above max value!=La saisie du nombre est au dessus la valeur maximale {{value}}! Input value is invalid!=La saisie de la valeur est invalide! Protocol is invalid!=Protocole invalide! RPC host cannot be empty!=L'Hôte RPC ne peut pas être vide! RPC secret is not base64 encoded!=Le secret RPC n'est pas encodé en base64! URL is not base64 encoded!=L'URL n'est pas encodée en base64! Tap to configure and get started with AriaNg.=Cliquer pour configurer et démarrer avec AriaNg. Cannot initialize WebSocket!=Initialisation du WebSocket impossible! Cannot connect to aria2!=Connexion à Aria2 impossible! Access Denied!=Accès refusé! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=Vous ne pouvez pas utiliser AriaNg car votre navigateur ne respecte pas les prérequis minimum pour du stockage de donnée. [error] unknown=Erreur inconnue. operation.timeout=Cette opération a mis trop de temps à répondre. resource.notfound=La ressource spécifiée n'a pas été trouvée. resource.notfound.max-file-not-found=La ressource n'a pas été trouvée. Allez voir l'option --max-file-not-found. download.aborted.lowest-speed-limit=Le téléchargementa été annulé car la vitesse de téléchargement était trop lente. Allez voir l'option --lowest-speed-limit. network.problem=Erreur réseau. resume.notsupported=Le serveur distant ne supporte pas la reprise. space.notenough=Espace de stockage insuffisant. piece.length.different=La longueur de la pièce est différente de celle dans le fichier de contrôle .aria2. Allez voir l'option --allow-piece-length-change. download.sametime=Aria2 télécharge déjà ce fichier en ce moment. download.torrent.sametime=Aria2 télécharge déjà ce fichier en ce moment. file.exists=Le fichier existe déjà. Allez voir l'option --allow-overwrite. file.rename.failed=Erreur dans le rennomage du fichier. Allez voir l'option --auto-file-renaming. file.open.failed=Echec durant l'ouverture du fichier existant. file.create.failed=Echec durant la création du fichier ou du tronquage d'un fichier existant. io.error=Erreur de fichier système. directory.create.failed=Impossible de créer la destination. name.resolution.failed=Echec durant la résolution du nom. metalink.file.parse.failed=Erreur durant l'analyse du fichier Metalink. ftp.command.failed=Echec durant l'exécution de la commande FTP. http.response.header.bad=La réponse de l'en-tête HTTP a été mauvaise ou inattendue. redirects.toomany=Trop de redirections rencontrées. http.authorization.failed=Autorisations HTTP incorrectes. bencoded.file.parse.failed=Erreur durant l'analyse du fichier bencoded (un fichier ".torrent" la plupart du temps). torrent.file.corrupted=Le fichier torrent est corrompu ou il manque des informations dont Aria2 a besoin. magnet.uri.bad=L'URI du magnet est invalide. option.bad=Une mauvaise option a été donnée ou un argument d'option inattendu a été donné. server.overload=Le serveur distant a été dans l'incapacité d'effectuer la requête à cause d'une maintenance ou une surcharge temporaire. rpc.request.parse.failed=Echec dans l'analyse de la requête JSON-RPC. checksum.failed=La vérification du checksum a échoué. [languages] Czech=Tchèque German=Allemand English=Anglais Spanish=Espagnol French=Français Italian=Italien Japanese=Japonais Polish=Polonais Russian=Russe Simplified Chinese=Chinois Simplifié Traditional Chinese=Chinois Traditionnel [format] longdate=DD/MM/YYYY HH:mm:ss time.millisecond={{value}} milliseconde time.milliseconds={{value}} millisecondes time.second={{value}} seconde time.seconds={{value}} secondes time.minute={{value}} minute time.minutes={{value}} minutes time.hour={{value}} heure time.hours={{value}} heures requires.aria2-version=Nécessite Aria2 v{{version}} ou supérieure task.new.download-links=Liens de téléchargement ({{count}} liens): task.pieceinfo=Complété: {{completed}}, Total: {{total}} task.error-occurred=Erreur rencontrée ({{errorcode}}) task.verifying-percent=Vérification ({{verifiedPercent}}%) settings.file-count=({{count}} fichiers) settings.total-count=(Nombre total: {{count}}) debug.latest-logs=Derniers {{count}} logs [rpc.error] unauthorized=Autorisation incorrecte! [option] true=Vrai false=Faux default=Défaut none=Aucun hide=Masquer full=Complet http=Http https=Https ftp=Ftp mem=Mémoire seulement get=GET tunnel=TUNNEL plain=Texte brut arc4=ARC4 binary=Binaire ascii=ASCII debug=Débogage info=Information notice=Annonce warn=Avertissement error=Erreur adaptive=Adaptatif epoll=epoll falloc=falloc feedback=Feedback geom=geom inorder=Dans l'ordre kqueue=kqueue poll=poll port=port prealloc=Pré-allouer random=Aléatoire select=Sélectionner trunc=trunc SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Répertoire de téléchargement dir.description= log.name=Nom du fichier de log log.description=Le nom du fichier de log. Si - est spécifié, le fichier sera écrit dans le stdout. Si il est vide (""), ou si cette option est oubliée, aucun fichier de log ne sera écrit sur le disque.. max-concurrent-downloads.name=Nombre maximum de téléchargements simultanés max-concurrent-downloads.description=Définit le nombre maximum de téléchargements simultanés. check-integrity.name=Vérifier l'intégrité check-integrity.description=Vérifier l'intégrité d'un fichier en validant le hash par pièce ou avec le fichier entier. Cette option n'a d'effet que sur BitTorrent, les liens Metalink se téléchargent avec les checksums ou les liens HTTP(S)/FTP se téléchargent --checksum option. continue.name=Reprendre le téléchargement continue.description=Poursuivre le téléchargement d'un fichier partiellement téléchargé. Utilisez cette option pour reprendre un téléchargement commencé par un navigateur web ou un autre programme qui télécharge les fichiers séquentiellement depuis le début. Actuellement, cette option ne s'applique qu'aux téléchargements HTTP(S)/FTP. all-proxy.name=Serveur proxy all-proxy.description=Utiliser un serveur proxy pour tous les protocoles. Vous pouvez également remplacer ce paramètre et spécifier un serveur proxy pour un protocole particulier en utilisant --http-proxy, --https-proxy et --ftp-proxy. Le format de PROXY est [http://][UTILISATEUR:MOT DE PASSE@]HÔTE[:PORT]. all-proxy-user.name=Nom d'utilisateur du serveur proxy all-proxy-user.description= all-proxy-passwd.name=Mot de passe du serveur proxy all-proxy-passwd.description= checksum.name=Checksum checksum.description= Définir le checksum. Le format de la valeur de l'option est TYPE=DIGEST. TYPE est le type de hachage. Le type de hachage supporté est listé dans Algorithmes de hachage dans aria2c -v. DIGEST est un condensé hexadécimal. Par exemple, l'option sha-1 digest ressemble à ceci : sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 Cette option ne s'applique qu'aux téléchargements HTTP(S)/FTP. connect-timeout.name=Temps de connexion connect-timeout.description=Définit le délai de connexion en secondes pour établir la connexion au serveur HTTP/FTP/proxy. Une fois la connexion établie, cette option n'a plus d'effet et l'option --timeout est utilisée à la place. dry-run.name=Test à blanc dry-run.description=Si vrai est donné, aria2 vérifie simplement si le fichier distant est disponible et ne télécharge pas les données. Cette option a un effet sur les téléchargements HTTP/FTP. Les téléchargements BitTorrent sont annulés si vrai est spécifié. lowest-speed-limit.name=Limite de vitesse la plus basse lowest-speed-limit.description=Couper la connexion si la vitesse de téléchargement est inférieure ou égale à cette valeur (octets par seconde). 0 signifie qu'aria2 n'a pas de limite de vitesse minimale. Vous pouvez ajouter K ou M (1K = 1024, 1M = 1024K). Cette option n'affecte pas les téléchargements BitTorrent. max-connection-per-server.name=Nombre maximum de connexions par serveur. max-connection-per-server.description= max-file-not-found.name=Nombre maximum d'essais de fichier non trouvé max-file-not-found.description=Si aria2 reçoit NUM fois le statut « fichier non trouvé » des serveurs HTTP/FTP distants sans obtenir un seul octet, il faut alors forcer l'échec du téléchargement. Spécifiez 0 pour désactiver cette option. Cette option n'est efficace que lors de l'utilisation de serveurs HTTP/FTP. Le nombre de tentatives est pris en compte dans l'option --max-tries, et doit donc être configuré également. max-tries.name=Nombre maximum de tentatives. max-tries.description=Définir le nombre de tentatives maximum. 0 signifie illimité. min-split-size.name=Taille minimale du fractionnement. min-split-size.description=Aria2 ne fractionne pas les fichiers d'une taille inférieure à 2*POIDS octets. Par exemple, considérons le téléchargement d'un fichier de 20MiB. Si POIDS est 10M, aria2 peut diviser le fichier en 2 plages [0-10MiB) et [10MiB-20MiB) et le télécharger en utilisant 2 sources (si --split >= 2, bien sûr). Si POIDS est 15M, puisque 2*15M > 20MiB, aria2 ne divise pas le fichier et le télécharge en utilisant 1 source. Vous pouvez ajouter K ou M (1K = 1024, 1M = 1024K). Valeurs possibles : 1M-1024M. netrc-path.name=Chemin d'accès au .netrc netrc-path.description= no-netrc.name=Désactiver netrc no-netrc.description= no-proxy.name=Liste des serveurs pour lesquels ne pas utiliser de proxy. no-proxy.description=Spécifiez une liste de noms d'hôtes, de domaines et d'adresses réseau séparés par des virgules, avec ou sans masque de sous-réseau, pour lesquels aucun proxy ne doit être utilisé. out.name=Nom de fichier out.description=Le nom du fichier téléchargé. Il est toujours relatif au répertoire donné dans l'option --dir. Lorsque l'option --force-sequential est utilisée, cette option est ignorée. proxy-method.name=Méthode de requête du serveur proxy proxy-method.description=Définit la méthode à utiliser dans la requête proxy. METHOD ou GET ou TUNNEL. Les téléchargements HTTPS utilisent toujours TUNNEL, quelle que soit cette option. remote-time.name=Horodatage du fichier distant remote-time.description=Récupérer l'horodatage du fichier distant à partir du serveur HTTP/FTP distant et, s'il est disponible, l'appliquer au fichier local. reuse-uri.name=Réutiliser L'URI reuse-uri.description=Réutiliser les URI déjà utilisés s'il ne reste plus d'URI inutilisés. retry-wait.name=Temps d'attente pour une nouvelle tentative. retry-wait.description=Définit le nombre de secondes à attendre entre les tentatives. Lorsque SEC > 0, aria2 réessaie les téléchargements lorsque le serveur HTTP renvoie une réponse 503. server-stat-of.name=Sortie des statistiques du serveur. server-stat-of.description=Spécifie le nom du fichier dans lequel le profil de performance des serveurs est sauvegardé. Vous pouvez charger les données enregistrées à l'aide de l'option --server-stat-if. server-stat-timeout.name=Délai d'attente pour le statut du serveur server-stat-timeout.description=Spécifie le délai en secondes pour invalider le profil de performance des serveurs depuis le dernier contact avec eux. split.name=Connexion par téléchargement split.description=Télécharger un fichier en utilisant N connexions. Si plus de N URIs sont donnés, les N premiers URIs sont utilisés et les URIs restants sont utilisés pour la sauvegarde. Si moins de N URIs sont donnés, ces URIs sont utilisés plus d'une fois de façon à ce que N connexions au total soient effectuées simultanément. Le nombre de connexions au même hôte est limité par l'option --max-connexion-par-serveur. stream-piece-selector.name=Algorithme de sélection des pièces. stream-piece-selector.description=Spécifie l'algorithme de sélection des morceaux utilisé dans le téléchargement HTTP/FTP. Un morceau est un segment de longueur fixe qui est téléchargé en parallèle dans le cadre d'un téléchargement segmenté. Si la valeur par défaut est donnée, aria2 sélectionne le morceau de manière à réduire le nombre de connexions à établir. Ce comportement par défaut est raisonnable car l'établissement d'une connexion est une opération coûteuse. Si dans l'ordre est donné, aria2 sélectionne le morceau qui a l'index minimum. Index=0 signifie le premier du fichier. Ceci est utile pour visionner un film pendant son téléchargement. L'option --enable-http-pipelining peut être utile pour réduire les frais de reconnexion. Veuillez noter qu'aria2 honore l'option --min-split-size, il sera donc nécessaire de spécifier une valeur raisonnable à l'option --min-split-size. Si random est donné, aria2 sélectionne les pièces de manière aléatoire. Comme pour dans l'ordre, l'option --min-split-size est respectée. Si geom est donné, au début, aria2 sélectionne le morceau qui a l'index minimum comme dans l'ordre, mais il garde exponentiellement de plus en plus de place par rapport au morceau précédemment sélectionné. Cela réduira le nombre de connexions à établir et, en même temps, téléchargera d'abord le début du fichier. Cela permet de visionner un film tout en le téléchargeant. timeout.name=Timeout timeout.description= uri-selector.name=Algorithme de sélection des URI uri-selector.description=Spécifie l'algorithme de sélection des URI. Les valeurs possibles sont dans l'ordre, feedback et adaptif. Si dans l'ordre est donné, l'URI est essayé dans l'ordre où il apparaît dans la liste des URI. Si feedback est donné, aria2 utilise la vitesse de téléchargement observée lors des téléchargements précédents et choisit le serveur le plus rapide dans la liste des URI. Cela permet également d'éviter les miroirs morts. La vitesse de téléchargement observée fait partie du profil de performance des serveurs mentionnés dans --server-stat-of et --server-stat-if Si adaptif est indiqué, aria2 sélectionne l'un des meilleurs miroirs pour la première connexion et les connexions réservées. Pour les connexions supplémentaires, il renvoie les miroirs qui n'ont pas encore été testés, et si chacun d'entre eux a déjà été testé, il renvoie les miroirs qui doivent être testés à nouveau. Dans le cas contraire, il ne sélectionne plus de miroirs. Comme le feedback, il utilise un profil de performance des serveurs. check-certificate.name=Vérifier le certificat check-certificate.description= http-accept-gzip.name=Accepter GZip http-accept-gzip.description= Envoyer l'en-tête de requête Accepter : deflate, gzip et la réponse inflate si le serveur distant répond avec Content-Encoding : gzip ou Content-Encoding : deflate. http-auth-challenge.name=Authentification défi-réponse http-auth-challenge.description=Envoyer l'en-tête d'autorisation HTTP uniquement lorsque le serveur le demande. Si faux est défini, l'en-tête d'autorisation est toujours envoyé au serveur. Il existe une exception : si le nom d'utilisateur et le mot de passe sont intégrés dans l'URI, l'en-tête d'autorisation est toujours envoyé au serveur, indépendamment de cette option. http-no-cache.name=Désactiver le cache http-no-cache.description=Envoyer les en-têtes Cache-Control : no-cache et Pragma : no-cache pour éviter le contenu mis en cache. Si faux est donné, ces en-têtes ne sont pas envoyés et vous pouvez ajouter l'en-tête Cache-Control avec une directive de votre choix en utilisant l'option --header. http-user.name=Nom d'utilisateur HTTP par défaut http-user.description= http-passwd.name=Mot de passe HTTP par défaut http-passwd.description= http-proxy.name=Serveur proxy HTTP http-proxy.description= http-proxy-user.name=Nom d'utilisateur serveur proxy HTTP http-proxy-user.description= http-proxy-passwd.name=Mot de passe serveur proxy HTTP http-proxy-passwd.description= https-proxy.name=Serveur proxy HTTPS https-proxy.description= https-proxy-user.name=Nom d'utilisateur serveur proxy HTTPS https-proxy-user.description= https-proxy-passwd.name=Mot de passe serveur proxy HTTPS https-proxy-passwd.description= referer.name=Référent referer.description=Définir un référent http (Référent). Ceci affecte tous les téléchargements http/https. Si * est donné, l'URI de téléchargement est également utilisé comme référent. Cette option peut être utile lorsqu'elle est utilisée avec l'option --parameterized-uri. enable-http-keep-alive.name=Activer la connexion permanente enable-http-keep-alive.description=Activer la connexion persistante pour HTTP/1.1. enable-http-pipelining.name=Activer le pipeline pour HTTP enable-http-pipelining.description=Activer le pipeline pour HTTP/1.1. header.name=En-tête personnalisée header.description=Ajouter EN-TÊTE à l'en-tête de la requête HTTP. Mettre un élément par ligne, chaque élément contenant « nom de l'en-tête : valeur de l'en-tête ». save-cookies.name=Chemin des cookies save-cookies.description=Sauvegarde des cookies dans un FICHIER au format Mozilla/Firefox (1.x/2.x)/ Netscape. Si FICHIER existe déjà, il est écrasé. Les cookies de session sont également sauvegardés et leurs valeurs d'expiration sont traitées comme 0. use-head.name=Utiliser la méthode HEAD use-head.description=Utiliser la méthode HEAD pour la première requête adressée au serveur HTTP. user-agent.name=Agent utilisateur personnalisé user-agent.description= ftp-user.name=Nom d'utilisateur FTP par défaut ftp-user.description= ftp-passwd.name=Mot de passe FTP par défaut ftp-passwd.description=Si le nom d'utilisateur est intégré mais que le mot de passe est absent de l'URI, aria2 tente de résoudre le mot de passe à l'aide de .netrc. Si le mot de passe est trouvé dans .netrc, il est utilisé comme mot de passe. Sinon, il faut utiliser le mot de passe spécifié dans cette option. ftp-pasv.name=Mode passif ftp-pasv.description=Utiliser le mode passif dans FTP. Si faux est donné, le mode actif sera utilisé. Cette option est ignorée pour les transferts SFTP. ftp-proxy.name=Serveur Proxy FTP ftp-proxy.description= ftp-proxy-user.name=Nom d'utilisateur serveur proxy FTP ftp-proxy-user.description= ftp-proxy-passwd.name=Mot de passe serveur proxy FTP ftp-proxy-passwd.description= ftp-type.name=Type de transfert ftp-type.description= ftp-reuse-connection.name=Réutiliser la connexion ftp-reuse-connection.description= ssh-host-key-md.name=Checksum de la clé publique SSH ssh-host-key-md.description=Définir le checksum pour la clé publique de l'hôte SSH. Le format de la valeur de l'option est TYPE=DIGEST. TYPE est le type de hachage. Le type de hachage pris en charge est sha-1 ou md5. DIGEST est un condensé hexagonal. Par exemple : sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. Cette option peut être utilisée pour valider la clé publique du serveur lorsque SFTP est utilisé. Si cette option n'est pas définie, ce qui est le cas par défaut, aucune validation n'a lieu. bt-detach-seed-only.name=Séparer uniquement les tâches de seed bt-detach-seed-only.description=Exclure les téléchargements en mode seed only lors du comptage des téléchargements actifs simultanés (voir l'option -j). Cela signifie que si -j3 est donné et que cette option est activée, que 3 téléchargements sont actifs et que l'un d'entre eux entre en mode semence, il est exclu du décompte des téléchargements actifs (il devient donc 2), et le téléchargement suivant qui attend dans la file d'attente démarre. Mais attention, l'élément en mode semence est toujours reconnu comme un téléchargement actif dans la méthode RPC. bt-enable-hook-after-hash-check.name=Activer l'événement de fin de contrôle de Hash bt-enable-hook-after-hash-check.description=Autorise l'invocation de la commande hook après la vérification du hachage (voir l'option -V) dans le téléchargement BitTorrent. Par défaut, lorsque la vérification du hachage réussit, la commande donnée par l'option --on-bt-download-complete est exécutée. Pour désactiver cette action, mettez faux à cette option. bt-enable-lpd.name=Activer la découverte locale de peer (LPD) bt-enable-lpd.description=Activer la découverte de peer locaux. Si un drapeau privé est défini dans un torrent, aria2 n'utilise pas cette fonctionnalité pour ce téléchargement, même si vrai est indiqué. bt-exclude-tracker.name=Exclure les trackers BitTorrent. bt-exclude-tracker.description=Liste séparée par des virgules des URI d'annonce des trackers BitTorrent à supprimer. Vous pouvez utiliser la valeur spéciale * qui correspond à tous les URI et supprime donc tous les URI d'annonce. Lorsque vous spécifiez * dans la ligne de commande du shell, n'oubliez pas de l'échapper ou de le mettre entre guillemets. bt-external-ip.name=Adresse IP Externe bt-external-ip.description=Spécifiez l'adresse IP externe à utiliser pour le téléchargement BitTorrent et le DHT. Elle peut être envoyée au tracker BitTorrent. Pour le DHT, cette option doit être définie pour signaler que le nœud local télécharge un torrent particulier. Cela est essentiel pour utiliser le DHT dans un réseau privé. Bien que cette fonction soit nommée externe, elle peut accepter n'importe quel type d'adresse IP. bt-force-encryption.name=Forcer chiffrement bt-force-encryption.description=Requiert le chiffrement de la charge utile des messages BitTorrent avec arc4. Il s'agit d'une abréviation de --bt-require-crypto --bt-min-crypto-level=arc4. Cette option ne modifie pas la valeur de ces options. Si vrai est donné, refuser l'ancienne poignée de main BitTorrent et n'utiliser que l'établissement d'une liaison Obfuscation et toujours crypter les données utiles du message. bt-hash-check-seed.name=Vérifier le hash avant de seed bt-hash-check-seed.description=Si vrai est donné, après la vérification du hachage en utilisant l'option --check-integrity et que le fichier est complet, continuer à ensemencer le fichier. Si vous souhaitez vérifier le fichier et le télécharger uniquement lorsqu'il est endommagé ou incomplet, mettez cette option sur faux. Cette option n'a d'effet que sur les téléchargements BitTorrent. bt-load-saved-metadata.name=Charger le fichier de métadonnées enregistré bt-load-saved-metadata.description=Avant d'obtenir les métadonnées du torrent à partir du DHT lors d'un téléchargement avec un lien magnétique, essayez d'abord de lire le fichier enregistré avec l'option --bt-save-metadata. Si l'opération réussit, ignorez le téléchargement des métadonnées à partir de la DHT. bt-max-open-files.name=Nombre maximum de fichiers ouverts bt-max-open-files.description=Spécifier le nombre maximum de fichiers à ouvrir dans un téléchargement BitTorrent/Metalink multi-fichiers de manière globale. bt-max-peers.name=Peer maximum bt-max-peers.description=Spécifiez le nombre maximum de peer par torrent. 0 signifie illimité. bt-metadata-only.name=Télécharger les métadonnées uniquement bt-metadata-only.description=Télécharger uniquement les métadonnées. Le(s) fichier(s) décrit(s) dans les métadonnées ne sera(ont) pas téléchargé(s). Cette option n'a d'effet que lorsque l'URI BitTorrent Magnet est utilisé. bt-min-crypto-level.name=Niveau minimum de cryptage bt-min-crypto-level.description=Définir le niveau minimum de la méthode de cryptage. Si plusieurs méthodes de chiffrement sont fournies par un peer, aria2 choisit la plus basse qui satisfait le niveau donné. bt-prioritize-piece.name=Donner la priorité à une pièce bt-prioritize-piece.description=Essayer de télécharger d'abord le premier et le dernier morceau de chaque fichier. Ceci est utile pour la prévisualisation des fichiers. L'argument peut contenir 2 mots-clés : head et tail. Pour inclure les deux mots-clés, ils doivent être séparés par une virgule. Ces mots-clés peuvent prendre un paramètre, POIDS. Par exemple, si head=POIDS est spécifié, les pièces situées dans la plage des premiers octets de taille de chaque fichier ont une priorité plus élevée. tail=POIDS signifie la plage des derniers octets de taille de chaque fichier. POIDS peut inclure K ou M (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=Supprimer les fichiers non sélectionnés bt-remove-unselected-file.description=Supprime les fichiers non sélectionnés lorsque le téléchargement est terminé dans BitTorrent. Pour sélectionner des fichiers, utilisez l'option --select-file. Si elle n'est pas utilisée, tous les fichiers sont supposés être sélectionnés. Veuillez utiliser cette option avec précaution car elle supprimera des fichiers de votre disque. bt-require-crypto.name=Exiger cryptage bt-require-crypto.description=Si vrai est donné, aria2 n'accepte pas et n'établit pas de connexion avec l'établissement d'une liaison BitTorrent (protocole BitTorrent). Ainsi, aria2 utilise toujours l'établissement d'une liaison Obfuscation. bt-request-peer-speed-limit.name=Vitesse de téléchargement préférée bt-request-peer-speed-limit.description=Si la vitesse de téléchargement totale de chaque torrent est inférieure à VITESSE, aria2 augmente temporairement le nombre de peer pour essayer d'augmenter la vitesse de téléchargement. Configurer cette option avec votre vitesse de téléchargement préférée peut augmenter votre vitesse de téléchargement dans certains cas. Vous pouvez ajouter K ou M (1K = 1024, 1M = 1024K). bt-save-metadata.name=Sauvegarder Metadata bt-save-metadata.description=Enregistrer les métadonnées dans un fichier « .torrent ». Cette option n'a d'effet que lorsque l'URI BitTorrent Magnet est utilisé. Le nom du fichier est un hachage d'informations codé en hexadécimal avec le suffixe « .torrent ». Le répertoire à enregistrer est le même que celui dans lequel le fichier de téléchargement est enregistré. Si le même fichier existe déjà, les métadonnées ne sont pas sauvegardées. bt-seed-unverified.name=Ne pas vérifier les fichiers téléchargés. bt-seed-unverified.description=Ne vérifie pas la valeur de hachage de chaque pièce des fichiers précédemment téléchargés. bt-stop-timeout.name=Délai d'arrêt automatique si blocage à 0 bt-stop-timeout.description=Lorsque la vitesse de téléchargement d'une tâche BT reste à 0 pendant la durée définie par cette option, le téléchargement s'arrête. Si cette option est réglée sur 0, cette fonctionnalité est désactivée. bt-tracker.name=Adresse du traqueur BitTorrent bt-tracker.description=Adresses des serveurs BitTorrent séparées par des virgules. Ces adresses ne sont pas affectées par l'option --bt-exclude-tracker, car elles ne sont ajoutées qu'après que l'option --bt-exclude-tracker a exclu d'autres adresses. bt-tracker-connect-timeout.name=Délai de connexion au serveur BitTorrent. bt-tracker-connect-timeout.description=Définit le délai de connexion au serveur BT en secondes. Une fois la connexion établie, cette option n'a plus d'effet, utilisez l'option --bt-tracker-timeout. bt-tracker-interval.name=Intervalle de connexion au serveur BT. bt-tracker-interval.description=Définit l'intervalle de requête vers le serveur BT en secondes. Cette option remplace complètement l'intervalle minimum et l'intervalle renvoyé par le serveur, Aria2 n'utilisera que la valeur de cette option. Si elle est fixée à 0, aria2 décidera de l'intervalle en fonction de la réponse du serveur et de la progression du téléchargement. bt-tracker-timeout.name=Délai d'attente pour le serveur BT. bt-tracker-timeout.description= dht-file-path.name=Fichier DHT (IPv4) dht-file-path.description=Modifier le chemin d'accès au fichier de la table de routage du DHT IPv4. dht-file-path6.name=Fichier DHT (IPv6) dht-file-path6.description=Modifier le chemin d'accès au fichier de la table de routage du DHT IPv6. dht-listen-port.name=Port d'écoute DHT dht-listen-port.description=Définit le port UDP utilisé par la DHT (IPv4, IPv6) et le serveur UDP. Plusieurs ports peuvent être séparés par des virgules ',', par exemple : 6881,6885. Vous pouvez également utiliser un tiret '-' pour indiquer une plage : 6881-6999, ou les deux ensemble : 6881-6889, 6999. dht-message-timeout.name=Délai d'attente pour les messages DHT. dht-message-timeout.description= enable-dht.name=Activer DHT (IPv4) enable-dht.description=Activer la fonction DHT IPv4. Cette option active également la prise en charge du serveur UDP. Si le torrent est marqué comme privé, aria2 n'activera pas la fonction DHT même si cette option est réglée sur vrai. enable-dht6.name=Activer DHT (IPv6) enable-dht6.description=Activer la fonction DHT IPv4. Cette option active également la prise en charge du serveur UDP. Si le torrent est marqué comme privé, aria2 n'activera pas la fonction DHT même si cette option est réglée sur vrai. Utilisez l'option --dht-listen-port pour spécifier le numéro de port sur lequel écouter. enable-peer-exchange.name=Activer l'échange entre peer enable-peer-exchange.description=Activer l'extension d'échange entre peer. Si le torrent est marqué comme privé, Aria2 n'activera pas cette fonction même si cette option est réglée sur vrai. follow-torrent.name=Télécharger des fichiers .torrent follow-torrent.description=Si vrai ou mémoire seulement est spécifié, lorsqu'un fichier dont le suffixe est .torrent ou le type de contenu est application/x-bittorrent est téléchargé, Aria2 l'analyse comme un fichier torrent et télécharge les fichiers qui y sont mentionnés. Si mémoire seulement est spécifié, un fichier torrent n'est pas écrit sur le disque, mais est simplement conservé en mémoire. Si faux est spécifié, le fichier .torrent est téléchargé sur le disque, mais n'est pas analysé comme un torrent et son contenu n'est pas téléchargé. listen-port.name=Port d'écoute listen-port.description=Définit le numéro de port TCP pour les téléchargements BitTorrent. Plusieurs ports peuvent être spécifiés en utilisant « , », par exemple : 6881,6885. Vous pouvez également utiliser - pour spécifier une plage : 6881-6999. Les caractères , et - peuvent être utilisées ensemble : 6881-6889,6999. max-overall-upload-limit.name=Vitesse maximale de téléversement global max-overall-upload-limit.description=Définit la vitesse maximale de téléversement global en octets/seconde. 0 indique qu'il n'y a pas de limite. Vous pouvez augmenter la valeur en ajoutant des unités K ou M (1K=1024, 1M=1024K). max-upload-limit.name=Vitesse maximale de téléversement max-upload-limit.description=Définit la vitesse maximale de téléversement pour chaque tâche en octets/seconde. 0 indique qu'il n'y a pas de limite. Vous pouvez augmenter la valeur en ajoutant des unités K ou M (1K=1024, 1M=1024K). peer-id-prefix.name=Préfixe de l'ID du nœud peer-id-prefix.description=Spécifie le préfixe de l'ID du nœud. L'ID de nœud dans BitTorrent a une longueur de 20 octets. S'il est plus long que 20 octets, seuls les 20 premiers octets seront utilisés. S'il est plus court que 20 octets, des données aléatoires seront ajoutées pour atteindre 20 octets. peer-agent.name=Agent de peer peer-agent.description=Spécifie la chaîne utilisée pour la version du client du nœud lors de l'établissement de la liaison étendue de BT. seed-ratio.name=Ratio de partage minimum seed-ratio.description=Spécifie le ratio de partage. Le partage se termine lorsque le ratio de partage atteint la valeur définie dans cette option. Il est fortement recommandé de fixer cette option à une valeur supérieure ou égale à 1,0. Si vous ne souhaitez pas limiter le ratio de partage, vous pouvez le fixer à 0.0. Si vous définissez également l'option --seed-time, le partage se terminera lorsque l'une ou l'autre de ces conditions sera remplie. seed-time.name=Temps de partage minimum. seed-time.description=Spécifie le temps de partage en minutes (au format décimal). Si cette option a la valeur 0, le partage n'aura pas lieu après l'achèvement du téléchargement de la tâche BT. follow-metalink.name=Télécharger des fichiers dans Metalink. follow-metalink.description=S'il est réglé sur vrai ou mémoire seulement, lorsqu'un fichier avec un suffixe .meta4 ou .metalink ou un contenu de type application/metalink4+xml ou application/metalink+xml est terminé, Aria2 lira et téléchargera les fichiers mentionnés dans le fichier Metalink. Si le réglage est mémoire seulement, le fichier Metalink ne sera pas écrit sur le disque, mais seulement stocké en mémoire. S'il est réglé sur faux, le fichier .metalink sera téléchargé sur le disque, mais ne sera pas lu et les fichiers qu'il contient ne seront pas téléchargés. metalink-base-uri.name=URI de base. metalink-base-uri.description=Spécifier l'URI de base pour résoudre l'URI relatif dans les éléments metalink:url et metalink:metaurl d'un fichier metalink stocké sur le disque local. Si l'URI pointe vers un répertoire, il doit se terminer par /. metalink-language.name=Langage metalink-language.description= metalink-location.name=Localisation préféré du serveur metalink-location.description=Localisation préféré du serveur. Vous pouvez utiliser une liste séparée par des virgules, par exemple : jp,us. metalink-os.name=Système d'exploitation metalink-os.descriptionURI di base=Le système d'exploitation du fichier à télécharger. metalink-version.name=Numéro de version metalink-version.description=Le numéro de version du fichier à télécharger. metalink-preferred-protocol.name=Protocole préféré metalink-preferred-protocol.description=Spécifie le protocole préféré à utiliser. Il peut s'agir de http, https, ftp ou aucun. Si la valeur est aucun, cette option est désactivée. metalink-enable-unique-protocol.name=Utiliser un protocole unique. metalink-enable-unique-protocol.description=Si un fichier Metalink est disponible sur plusieurs protocoles et que cette option est réglée sur vrai, aria2 n'utilisera que l'un d'entre eux. Utilisez le paramètre --metalink-preferred-protocol pour spécifier le protocole préféré. enable-rpc.name=Active le serveur JSON-RPC/XML-RPC enable-rpc.description= pause-metadata.name=Pause après le téléchargement des métadonnées pause-metadata.description=Interrompre les téléchargements créés à la suite d'un téléchargement de métadonnées. Il existe 3 types de téléchargements de métadonnées dans aria2 : (1) téléchargement d'un fichier .torrent. (2) téléchargement de métadonnées de torrent à l'aide d'un lien magnet. (3) téléchargement d'un fichier metalink. Ces téléchargements de métadonnées génèrent des téléchargements à partir de leurs métadonnées. Cette option met en pause ces téléchargements ultérieurs. Cette option n'est efficace que si l'option --enable-rpc=true est activée. rpc-allow-origin-all.name=Accepte toutes les requêtes à distance. rpc-allow-origin-all.description=Ajouter le champ d'en-tête Access-Control-Allow-Origin avec la valeur * à la réponse RPC. rpc-listen-all.name=Écoute sur toutes les interfaces réseau. rpc-listen-all.description=Écoute les requêtes JSON-RPC/XML-RPC entrantes sur toutes les interfaces réseau. Si faux est donné, l'écoute ne se fera que sur l'interface loopback locale. rpc-listen-port.name=Port d'écoute. rpc-listen-port.description= rpc-max-request-size.name=Taille maximale de la requête. rpc-max-request-size.description=Définit la taille maximale d'une requête JSON-RPC/XML-RPC. Si aria2 détecte que la requête est supérieure à POIDS bytes, il interrompt la connexion. rpc-save-upload-metadata.name=Sauvegarder les fichiers torrent téléchargés. rpc-save-upload-metadata.description=Enregistrer les métadonnées du torrent ou du métalink téléchargés dans le répertoire spécifié par l'option --dir. Le nom du fichier se compose de la chaîne hexagonale de hachage SHA-1 des métadonnées et de l'extension. Pour le torrent, l'extension est \'.torrent\'. Pour metalink, il s'agit de \'.meta4\'. Si faux est donné à cette option, les téléchargements ajoutés par aria2.addTorrent() ou aria2.addMetalink() ne seront pas sauvegardés par l'option --save-session. rpc-secure.name=Activer SSL/TLS. rpc-secure.description=Le RPC sera transmis via un cryptage SSL/TLS. Le client RPC doit utiliser le protocole https pour se connecter au serveur. Pour les clients WebSocket, utilisez le protocole wss. Utilisez les options --rpc-certificate et --rpc-private-key pour définir le certificat et la clé privée du serveur. allow-overwrite.name=Autoriser l'écrasement allow-overwrite.description=Recharge le fichier depuis le début si le fichier de contrôle correspondant n'existe pas. Voir l'option --auto-file-renaming. allow-piece-length-change.name=Autoriser la modification de la longueur des pièces. allow-piece-length-change.description=Si faux est donné, Aria2 interrompt le téléchargement lorsque la longueur d'un morceau est différente de celle d'un fichier de contrôle. Si vrai est donné, vous pouvez continuer mais une partie de la progression du téléchargement sera perdue. always-resume.name=Toujours reprendre le téléchargement. always-resume.description=Toujours reprendre le téléchargement. Si vrai est donné, aria2 essaie toujours de reprendre le téléchargement et si la reprise n'est pas possible, abandonne le téléchargement. Si faux est donné, lorsque tous les URIs donnés ne supportent pas la reprise ou que aria2 rencontre N URIs qui ne supportent pas la reprise (N est la valeur spécifiée avec l'option --max-resume-failure-tries), aria2 télécharge le fichier à partir de zéro. Voir l'option --max-resume-failure-tries. async-dns.name=DNS asynchrone async-dns.description= auto-file-renaming.name=Rennomage automatique de fichier auto-file-renaming.description=Renommer le nom du fichier si le même fichier existe déjà. Cette option ne fonctionne que pour les téléchargements HTTP(S)/FTP. Le nouveau nom de fichier est suivi d'un point et d'un nombre (1..9999), mais pas de l'extension du fichier, le cas échéant. auto-save-interval.name=Intervalle de sauvegarde automatique. auto-save-interval.description=Enregistre automatiquement le fichier de contrôle (*.aria2) toutes les secondes spécifiées. Si la valeur est 0, le fichier de contrôle n'est pas sauvegardé automatiquement pendant le téléchargement. Quelle que soit la valeur définie, aria2 enregistre le fichier de contrôle à la fin de la tâche. La valeur peut être comprise entre 0 et 600. conditional-get.name=Téléchargement conditionnel conditional-get.description=Télécharger le fichier uniquement s'il est plus ancien que le fichier local. Cette fonction ne fonctionne que pour les téléchargements HTTP(S). Si la taille du fichier a déjà été spécifiée dans Metalink, la fonction n'aura aucun effet. En outre, cette fonction ignore l'en-tête de réponse Content-Disposition. Si un fichier de contrôle existe, il sera ignoré. Cette fonction utilise l'en-tête de requête If-Modified-Since pour récupérer le fichier le plus récent. Lorsque l'heure de modification du fichier local est récupérée, cette fonction utilise le nom de fichier fourni par l'utilisateur (voir l'option --out), ou le nom de fichier dans l'URI si l'option --out n'est pas spécifiée. Pour écraser un fichier existant, le paramètre --allow-overwrite doit être utilisé. conf-path.name=Chemin d'accès au fichier de configuration. conf-path.description= console-log-level.name=Niveau de log de la console console-log-level.description= content-disposition-default-utf8.name=Utiliser UTF-8 pour gérer Content-Disposition. content-disposition-default-utf8.description=Traite les chaînes entre guillemets dans l'en-tête Content-Disposition en UTF-8 au lieu d'ISO-8859-1, par exemple le paramètre nom de fichier, mais pas le nom de fichier de la version étendue. daemon.name=Activer le processus d'arrière-plan. daemon.description= deferred-input.name=Charge différée deferred-input.description=Si vrai est donné, aria2 ne lit pas tous les URIs et options du fichier spécifié par l'option --input-file au démarrage, mais il les lit un par un quand il en a besoin plus tard. Cela peut réduire l'utilisation de la mémoire si le fichier d'entrée contient beaucoup d'URIs à télécharger. Si faux est donné, aria2 lit tous les URIs et toutes les options au démarrage. L'option --deferred-input sera désactivée si l'option --save-session est utilisée en même temps. disable-ipv6.name=Désactiver IPv6 disable-ipv6.description= disk-cache.name=Cache du disque disk-cache.description=Active la mémoire cache du disque. Si POIDS est égal à 0, la mémoire cache du disque est désactivée. Cette fonction permet de mettre en cache les données téléchargées dans la mémoire, dont la taille maximale est de POIDS octets. La mémoire cache est créée pour l'instance aria2 et partagée par tous les téléchargements. L'avantage du cache disque est de réduire les entrées/sorties du disque, car les données sont écrites dans une unité plus grande et sont réordonnées en fonction du décalage du fichier. Si la vérification du hachage est impliquée et que les données sont mises en cache dans la mémoire, il n'est pas nécessaire de les lire sur le disque. Le poids peut être K ou M (1K = 1024, 1M = 1024K). download-result.name=Résultat du téléchargement download-result.description=Cette option modifie le format du résultat du téléchargement. Si elle est réglée sur Défaut, elle imprimera le GID, l'état, la vitesse moyenne de téléchargement et le chemin/URI. Si plusieurs fichiers sont concernés, seul le chemin/URI du premier fichier demandé sera imprimé, les autres seront ignorés. S'il est défini sur Complet, il imprimera le GID, l'état, la vitesse moyenne de téléchargement, la progression du téléchargement et le chemin/URI. Dans ce cas, la progression du téléchargement et le chemin/URI seront imprimés sur une ligne pour chaque fichier. S'il est défini sur Caché, le résultat du téléchargement sera caché. dscp.name=DSCP dscp.description=Définir la valeur DSCP dans les paquets IP sortants du trafic BitTorrent pour la qualité de service. Ce paramètre définit uniquement les bits DSCP dans le champ TOS des paquets IP, et non l'ensemble du champ. Si vous prenez des valeurs dans /usr/include/netinet/ip.h, divisez-les par 4 (sinon les valeurs seraient incorrectes, par exemple votre classe CS1 deviendrait CS4). Si vous prenez des valeurs couramment utilisées dans les RFC, la documentation des vendeurs de réseaux, Wikipedia ou toute autre source, utilisez-les telles quelles. rlimit-nofile.name=Nombre maximal de fichiers descripteurs ouverts rlimit-nofile.description=Définir la limite souple du nombre de fichiers descripteurs ouverts. Cette option n'est efficace que si : a. Le système la supporte (POSIX). b. La limite ne dépasse pas la limite stricte. c. La limite spécifiée est supérieure à la limite souple actuelle. Cette option est équivalente à l'option ulimit, sauf qu'elle ne peut pas abaisser la limite. Cette option n'est efficace que si le système prend en charge l'API rlimit. enable-color.name=Utiliser les couleurs dans les sorties terminales. enable-color.description= enable-mmap.name=Activer MMap enable-mmap.description=Stocke les fichiers mappés en mémoire. Si l'espace de fichier n'est pas pré-alloué, cette option n'est pas valide. Voir --file-allocation. event-poll.name=Méthode d'interrogation des événements. event-poll.description=Définit la méthode d'interrogation des événements. Les valeurs possibles sont epoll, kqueue, port, poll et sélectionner. Les valeurs epoll, kqueue, port et poll ne sont disponibles que si le système les prend en charge. La plupart des distributions Linux supportent epoll. Plusieurs systèmes *BSD, y compris Mac OS X, supportent kqueue. Open Solaris supporte port. La valeur par défaut varie en fonction du système d'exploitation utilisé. file-allocation.name=Méthode d'allocation des fichiers file-allocation.description=Spécifie la méthode d'allocation des fichiers. Aucune n'alloue pas d'espace à l'avance. Pré-allouer alloue l'espace avant le début du téléchargement. Cela prendra un certain temps en fonction de la taille du fichier. Si un système de fichiers plus récent est utilisé, tel que ext4 (avec un support étendu), btrfs, xfs ou NTFS (versions MinGW uniquement), falloc est le meilleur choix. Il peut allouer de gros fichiers (plusieurs GiB) presque instantanément. N'utilisez pas 'falloc' sur les anciens systèmes de fichiers, tels que ext3 et FAT32, car il prend le même temps que pré-allouer et bloque aria2 jusqu'à ce que l'allocation soit terminée. falloc peut ne pas être disponible si votre système ne supporte pas la fonction posix_fallocate(3). Trunc utilise l'appel système ftruncate(2) ou une implémentation spécifique à la plate-forme pour tronquer un fichier à une longueur spécifique. Dans les téléchargements BitTorrent avec plusieurs fichiers, si un fichier partage les mêmes sections avec un fichier adjacent, les fichiers adjacents seront également alloués. force-save.name=Forcer la sauvegarde force-save.description=Sauvegarde la tâche même si elle a été terminée ou supprimée lors de l'utilisation de l'option --save-session. Dans ce cas, cette option enregistre également le fichier de contrôle. Cette option permet de sauvegarder les tâches de BT qui sont considérées comme achevées mais qui sont toujours en seed. save-not-found.name=Enregistrer un fichier introuvable save-not-found.description=Lorsque vous utilisez l'option --save-session, la tâche de téléchargement est sauvegardée même si les fichiers de la tâche n'existent pas. Cette option enregistre également cette situation dans le fichier de contrôle. hash-check-only.name=Vérification du hachage uniquement hash-check-only.description=S'il a la valeur vrai, il met fin au téléchargement en fonction de la fin du téléchargement après l'exécution de la vérification du hachage à l'aide de l'option --check-integrity. human-readable.name=Sortie lisible par la console human-readable.description=Imprimer le poids et la vitesse dans un format lisible par la console (par exemple, 1.2Ki, 3.4Mi). keep-unfinished-download-result.name=Conserver les résultats des tâches inachevées keep-unfinished-download-result.description=Conserve tous les résultats des tâches de téléchargement non terminées, même s'ils dépassent le nombre défini par l'option --max-download-result. Cela peut aider à préserver tous les téléchargements inachevés dans le fichier de session (voir l'option --save-session). Il est important de noter qu'il n'y a pas de limite au nombre de tâches inachevées. Si vous ne le souhaitez pas, désactivez cette option. max-download-result.name=Nombre maximum de téléchargements terminés max-download-result.description=Définit le nombre maximum de résultats de téléchargement conservés en mémoire. Les résultats des téléchargements sont les téléchargements terminés, les erreurs et les téléchargements supprimés. Les résultats de téléchargement sont stockés dans une file d'attente FIFO qui peut contenir au maximum NUM résultats de téléchargement. Lorsque la file d'attente est pleine et qu'un nouveau résultat de téléchargement est créé, le résultat de téléchargement le plus ancien est supprimé de l'avant de la file d'attente et le nouveau est repoussé à l'arrière. La définition d'un nombre élevé dans cette option peut entraîner une forte consommation de mémoire après des milliers de téléchargements. La valeur 0 signifie qu'aucun résultat de téléchargement n'est conservé. Notez que les téléchargements inachevés sont conservés en mémoire quelle que soit la valeur de cette option. Voir l'option --keep-unfinished-download-result. max-mmap-limit.name=Limite maximale de MMap max-mmap-limit.description=Définissez le poids maximal du fichier pour activer le MMap (voir l'option --enable-mmap). Le poids du fichier est déterminé par la somme de tout les poids de fichiers dans une tâche de téléchargement. Par exemple, si un téléchargement contient 5 fichiers, le poids du fichier sera le poids total de ces fichiers. Si le poids du fichier dépasse le poids défini pour cette option, MMap sera désactivé. max-resume-failure-tries.name=Nombre maximal de tentatives de reprise des téléchargements interrompus max-resume-failure-tries.description=Lorsque l'option --always-resume est définie sur vrai, si aria2 détecte que N URIs ne supportent pas la reprise des téléchargements interrompus, le téléchargement du fichier commencera depuis le début. Si N est fixé à 0, le téléchargement du fichier ne commencera au début que si tous les URI ne prennent pas en charge la reprise des téléchargements interrompus. Voir l'option --always-resume. min-tls-version.name=Version minimum de TLS min-tls-version.description=Spécifie la version minimum de SSL/TLS activée. log-level.name=Niveau de journalisation log-level.description= optimize-concurrent-downloads.name=Optimiser les téléchargements simultanés optimize-concurrent-downloads.description=Optimise le nombre de téléchargements simultanés en fonction de la bande passante disponible. aria2 utilise la vitesse de téléchargement précédemment mesurée pour obtenir le nombre de téléchargements simultanés via la règle N=A + B Log10 (la vitesse est en Mbps). Les coefficients A et B peuvent être personnalisés en les séparant par deux points dans le paramètre. La valeur par défaut (A=5, B=25) permet d'utiliser 5 téléchargements simultanés sur un réseau de 1 Mbps et 50 sur un réseau de 100 Mbps. Le nombre de téléchargements simultanés est limité au maximum défini par le paramètre --max-concurrent-downloads. piece-length.name=Poids des blocs de fichiers piece-length.description=Définir le poids d'allocation pour les téléchargements HTTP/FTP. aria2 divise les fichiers en fonction de cette limite. Toutes les sections seront des multiples de cette longueur. Cette option n'est pas valable pour les téléchargements BitTorrent. show-console-readout.name=Afficher la sortie de la console show-console-readout.description= summary-interval.name=Télécharger le résumé de l'intervalle de sortie summary-interval.description=Définit l'intervalle de sortie du résumé de la progression du téléchargement (en secondes). La valeur 0 désactive la sortie. max-overall-download-limit.name=Vitesse maximale de téléchargement global max-overall-download-limit.description=Définit la vitesse maximale de téléchargement global (octets/seconde). 0 indique qu'il n'y a pas de restriction. La valeur peut être augmentée en unités K ou M (1K=1024, 1M=1024K). max-download-limit.name=Vitesse de téléchargement maximale max-download-limit.description=Définit la vitesse de téléchargement maximale pour chaque tâche (octets/seconde). 0 indique qu'il n'y a pas de restriction. Vous pouvez augmenter la valeur avec des unités K ou M (1K=1024, 1M=1024K). no-conf.name=Désactiver le fichier de configuration no-conf.description= no-file-allocation-limit.name=Pas de limite d'allocation de fichiers no-file-allocation-limit.description=Aucune allocation de fichier n'est effectuée pour les fichiers dont le poids est inférieur à POIDS. Vous pouvez ajouter K ou M (1K = 1024, 1M = 1024K). parameterized-uri.name=Activer la prise en charge des URI paramétrés parameterized-uri.description=Active la prise en charge des URI paramétrés. Vous pouvez spécifier un ensemble de parties : http://{sv1,sv2,sv3}/foo.iso. Il est également possible d'utiliser un compteur de pas pour spécifier des séquences numérotées : http://host/image[000-100:2].img. Le compteur d'étapes est facultatif. Si tous les URI ne pointent pas vers le même fichier, comme dans le deuxième exemple ci-dessus, l'option -Z doit être utilisée. quiet.name=Désactiver la sortie de la console quiet.description= realtime-chunk-checksum.name=Contrôle de l'intégrité des données en temps réel realtime-chunk-checksum.description=Si la somme de contrôle des blocs de données est fournie, vérifiez les blocs de données avec la somme de contrôle pendant le téléchargement. remove-control-file.name=Supprimer le fichier de contrôle remove-control-file.description=Supprime le fichier de contrôle avant le téléchargement. En combinaison avec l'option --allow-overwrite=true, le téléchargement du fichier commencera toujours au début. Cette option peut s'avérer utile pour les utilisateurs de proxys qui ne permettent pas de reprendre un téléchargement interrompu. save-session.name=Fichier de sauvegarde de la session save-session.description=Il enregistre les téléchargements avec des erreurs et les téléchargements non terminés dans un fichier spécifié à la sortie. Vous pouvez les recharger en utilisant l'option --input-file lorsque vous redémarrez aria2. Si vous souhaitez compresser la sortie avec GZip, vous pouvez ajouter l'extension .gz au nom du fichier. Notez que les métadonnées des téléchargements ajoutés via les méthodes RPC aria2.addTorrent() et aria2.addMetalink() ne seront pas sauvegardées si elles ne sont pas sauvegardées dans le fichier. Les téléchargements supprimés avec aria2.remove() et aria2.forceRemove() ne seront pas sauvegardés. save-session-interval.name=Intervalle de sauvegarde de la session save-session-interval.description=Sauvegarde les téléchargements échoués ou non terminés dans le fichier spécifié par l'option --save-session toutes les quelques secondes. Si cette option vaut 0, la session ne sera sauvegardée que lorsque aria2 quittera le système. socket-recv-buffer-size.name=Poids du tampon de réception du socket socket-recv-buffer-size.description=Définit le poids maximum du tampon de réception du socket en octets. Si il vaut 0, cette option est désactivée. La valeur de cette option est définie dans le descripteur de fichier de la socket lors de l'appel à setsockopt() avec l'option SO_RCVBUF. stop.name=Temps d'arrêt automatique stop.description=Arrête l'application au bout de SEC secondes. Si la valeur 0 est donnée, cette fonction est désactivée. truncate-console-readout.name=Raccourcit la sortie de la console truncate-console-readout.description=Raccourcit la sortie de la console à une seule ligne. ================================================ FILE: src/langs/it_IT.txt ================================================ [global] AriaNg Version=Versione di AriaNg Operation Result=Risultato dell'operazione Operation Succeeded=Operazione completata con successo is connected=Connesso Error=Errore OK=OK Confirm=Conferma Cancel=Annulla Close=Chiudi True=Vero False=Falso DEBUG=Debug INFO=Informazioni WARN=Avviso ERROR=Errore Connecting=Connessione in corso Connected=Connesso Disconnected=Disconnesso Reconnecting=Riconnessione in corso Waiting to reconnect=In attesa di riconnessione Global=Globale New=Nuovo Start=Avvia Pause=Pausa Retry=Riprova Retry Selected Tasks=Riprova le attività selezionate Delete=Elimina Select All=Seleziona tutto Select None=Deseleziona tutto Select Invert=Inverti selezione Select All Failed Tasks=Seleziona tutte le attività fallite Select All Completed Tasks=Seleziona tutte le attività completate Select All Tasks=Seleziona tutte le attività Display Order=Ordine di visualizzazione Copy Download Url=Copia URL download Copy Magnet Link=Copia link magnetico Help=Aiuto Search=Cerca Default=Predefinito Expand=Espandi Collapse=Comprimi Expand All=Espandi tutto Collapse All=Comprimi tutto Open=Apri Save=Salva Import=Importa Remove Task=Rimuovi attività Remove Selected Task=Rimuovi attività selezionata Clear Stopped Tasks=Cancella attività terminate Click to view task detail=Clicca per visualizzare i dettagli dell'attività By File Name=Per nome file By File Size=Per dimensione file By Progress=Per progressione By Selected Status=Per stato selezionato By Remaining=Per tempo rimanente By Download Speed=Per velocità di download By Upload Speed=Per velocità di upload By Peer Address=Per indirizzo peer By Client Name=Per nome client Filters=Filtri Download=Download Upload=Upload Downloading=In download Pending Verification=In attesa di verifica Verifying=Verifica in corso Seeding=Seeding in corso Waiting=In attesa Paused=In pausa Completed=Completato Error Occurred=Errore verificatosi Removed=Rimosso Finished / Stopped=Terminato / Interrotto Uncompleted=Non completato Click to pin=Clicca per fissare Settings=Impostazioni AriaNg Settings=Impostazioni AriaNg Aria2 Settings=Impostazioni Aria2 Basic Settings=Impostazioni di base HTTP/FTP/SFTP Settings=Impostazioni HTTP/FTP/SFTP HTTP Settings=Impostazioni HTTP FTP/SFTP Settings=Impostazioni FTP/SFTP BitTorrent Settings=Impostazioni BitTorrent Metalink Settings=Impostazioni Metalink RPC Settings=Impostazioni RPC Advanced Settings=Impostazioni avanzate AriaNg Debug Console=Console di debug di AriaNg Aria2 Status=Stato di Aria2 File Name=Nome file File Size=Dimensione file Progress=Progressione Share Ratio=Rapporto di condivisione Remaining=Tempo rimanente Download Speed=Velocità di download Upload Speed=Velocità di upload Links=Collegamenti Torrent File=File torrent Metalink File=File Metalink File Name:=Nome file: Options=Opzioni Overview=Panoramica Pieces=Informazioni sui blocchi Files=Elenco dei file Peers=Stato della connessione Task Name=Nome dell'attività Task Size=Dimensione dell'attività Task Status=Stato dell'attività Error Description=Descrizione dell'errore Health Percentage=Percentuale di integrità Info Hash=Valore hash Seeders=Numero di seed Connections=Numero di connessioni Seed Creation Time=Ora di creazione del seed Download Url=URL di download Download Dir=Percorso di download BT Tracker Servers=Server tracker BT Copy=Copia (Choose Files)=(Scegli file) Videos=Video Audios=Audio Pictures=Immagini Documents=Documenti Applications=Applicazioni Archives=File archivio Other=Altri Custom=Personalizzato Custom Choose File=Scegli file personalizzato Address=Indirizzo Client=Client Status=Stato Speed=Velocità (local)=(Locale) No Data=Nessun dato No connected peers=Nessun peer connesso Failed to change some tasks state.=Impossibile modificare lo stato di alcune attività. Confirm Retry=Conferma riprova Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=Sei sicuro di voler riprovare l'attività selezionata? AriaNg creerà la stessa attività dopo aver cliccato su OK. Failed to retry this task.=Impossibile riprovare questa attività. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} attività sono state riprovate e {{failedCount}} attività sono fallite. Confirm Remove=Conferma eliminazione Are you sure you want to remove the selected task?=Sei sicuro di voler eliminare l'attività selezionata? Failed to remove some task(s).=Impossibile eliminare alcune attività. Confirm Clear=Conferma cancellazione Are you sure you want to clear stopped tasks?=Sei sicuro di voler cancellare le attività terminate? Download Links:=Collegamenti per il download: Download Now=Scarica ora Download Later=Scarica manualmente Open Torrent File=Apri file torrent Open Metalink File=Apri file Metalink Support multiple URLs, one URL per line.=Supporta più URL, un URL per riga. Your browser does not support loading file!=Il tuo browser non supporta il caricamento di file! The selected file type is invalid!=Il tipo di file selezionato non è valido! Failed to load file!=Impossibile caricare il file! Download Completed=Download completato BT Download Completed=Download BT completato Download Error=Errore di download AriaNg Url=URL di AriaNg Command API Url=URL dell'API della riga di comando Export Command API=Esporta API della riga di comando Export=Esporta Copied=Copiato Pause After Task Created=Pausa dopo la creazione dell'attività Language=Lingua Theme=Tema Light=Chiaro Dark=Scuro Follow system settings=Segui le impostazioni di sistema Debug Mode=Modalità debug Page Title=Titolo pagina Preview=Anteprima Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Suggerimenti: puoi utilizzare il tag "noprefix" per ignorare il prefisso, il tag "nosuffix" per ignorare il suffisso e il tag "scale\=n" per impostare la precisione decimale. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Esempio: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Aggiornamento intervallo titolo pagina Enable Browser Notification=Abilita notifica browser Browser Notification Sound=Suono notifica browser Browser Notification Frequency=Frequenza notifica browser Unlimited=Illimitato High (Up to 10 Notifications / 1 Minute)=Alta (Fino a 10 notifiche/minuto) Middle (Up to 1 Notification / 1 Minute)=Media (Fino a 1 notifica/minuto) Low (Up to 1 Notification / 5 Minutes)= WebSocket Auto Reconnect Interval= Aria2 RPC Alias= Aria2 RPC Address= Aria2 RPC Protocol= Aria2 RPC Http Request Method= POST method only supports aria2 v1.15.2 and above.= Aria2 RPC Request Headers= Support multiple request headers, one header per line, each line containing "header name: header value".= Aria2 RPC Secret Token= Activate= Reset Settings= Confirm Reset= Are you sure you want to reset all settings?= Clear Settings History= Are you sure you want to clear all settings history?= Delete RPC Setting= Add New RPC Setting= Are you sure you want to remove rpc setting "{rpcName}"?= Updating Global Stat Interval= Updating Task Information Interval= Keyboard Shortcuts= Supported Keyboard Shortcuts= Set Focus On Search Box= Swipe Gesture= Change Tasks Order by Drag-and-drop= Action After Creating New Tasks= Navigate to Task List Page= Navigate to Task Detail Page= Action After Retrying Task= Navigate to Downloading Tasks Page= Stay on Current Page= Remove Old Tasks After Retrying= Confirm Task Removal= Include Prefix When Copying From Task Details= Show Pieces Info In Task Detail Page= Pieces Amount is Less than or Equal to {value}= RPC List Display Order= Each Task List Page Uses Independent Display Order= Recently Used= RPC Alias= Import / Export AriaNg Settings= Import Settings= Export Settings= AriaNg settings data= Confirm Import= Are you sure you want to import all settings?= Invalid settings data format!= Data has been copied to clipboard.= Supported Placeholder= AriaNg Title= Current RPC Alias= Downloading Count= Waiting Count= Stopped Count= You have disabled notification in your browser. You should change your browser's settings before you enable this function.= Language resource has been updated, please reload the page for the changes to take effect.= Configuration has been modified, please reload the page for the changes to take effect.= Reload AriaNg= Show Secret= Hide Secret= Aria2 Version= Enabled Features= Operations= Reconnect= Save Session= Shutdown Aria2= Confirm Shutdown= Are you sure you want to shutdown aria2?= Session has been saved successfully.= Aria2 has been shutdown successfully.= Toggle Navigation= Shortcut= Global Rate Limit= Loading= More Than One Day= Unknown= Bytes= Hours= Minutes= Seconds= Milliseconds= Http= Http (Disabled)= Https= WebSocket= WebSocket (Disabled)= WebSocket (Security)= Http and WebSocket would be disabled when accessing AriaNg via Https.= POST= GET= Enabled= Disabled= Always= Never= BitTorrent= Changes to the settings take effect after refreshing page.= Logging Time= Log Level= Auto Refresh= Refresh Now= Clear Logs= Are you sure you want to clear debug logs?= Show Detail= Log Detail= Aria2 RPC Debug= Aria2 RPC Request Method= Aria2 RPC Request Parameters= Aria2 RPC Response= Execute= RPC method is illegal!= AriaNg does not support this RPC method!= RPC request parameters are invalid!= Type is illegal!= Parameter is invalid!= Option value cannot be empty!= Input number is invalid!= Input number is below min value!= Input number is above max value!= Input value is invalid!= Protocol is invalid!= RPC host cannot be empty!= RPC secret is not base64 encoded!=La chiave RPC non è codificata in base64! URL is not base64 encoded!=L'URL non è codificato in base64! Tap to configure and get started with AriaNg.=Tocca per configurare e iniziare a utilizzare AriaNg. Cannot initialize WebSocket!=Impossibile inizializzare WebSocket! Cannot connect to aria2!=Impossibile connettersi a aria2! Access Denied!=Accesso negato! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=Non puoi utilizzare AriaNg perché questo browser non soddisfa i requisiti minimi di archiviazione dati. [error] unknown=Errore sconosciuto. operation.timeout=Operazione scaduta. resource.notfound=Impossibile trovare la risorsa specificata. resource.notfound.max-file-not-found=Impossibile trovare la risorsa specificata. Vedere l'opzione --max-file-not-found. download.aborted.lowest-speed-limit=Il download è stato interrotto a causa della velocità di download troppo bassa. Vedere l'opzione --lowest-speed-limit. network.problem=Problema di rete. resume.notsupported=Il server non supporta la ripresa del download. space.notenough=Spazio libero su disco insufficiente. piece.length.different=La lunghezza del blocco è diversa da quella nel file di controllo .aria2. Vedere l'opzione --allow-piece-length-change. download.sametime=aria2 ha già scaricato un altro file identico. download.torrent.sametime=aria2 ha già scaricato un altro file torrent con lo stesso hash. file.exists=Il file esiste già. Vedere l'opzione --allow-overwrite. file.rename.failed=Errore durante la ridenominazione del file. Vedere l'opzione --auto-file-renaming. file.open.failed=Errore durante l'apertura del file. file.create.failed=Errore durante la creazione del file o l'eliminazione di un file esistente. io.error=Errore del file system. directory.create.failed=Impossibile creare la directory specificata. name.resolution.failed=Errore durante la risoluzione del nome. metalink.file.parse.failed=Errore durante l'analisi del file Metalink. ftp.command.failed=Errore durante l'esecuzione del comando FTP. http.response.header.bad=Intestazione di risposta HTTP non valida o non riconosciuta. redirects.toomany=Troppi reindirizzamenti per l'indirizzo specificato. http.authorization.failed=Autenticazione HTTP fallita. bencoded.file.parse.failed=Errore durante l'analisi del file torrent. torrent.file.corrupted=Il file torrent ".torrent" specificato è danneggiato o mancante di informazioni necessarie ad aria2. magnet.uri.bad=L'indirizzo magnet specificato non è valido. option.bad=Errore di impostazione. server.overload=Il server remoto è troppo occupato per gestire la richiesta corrente. rpc.request.parse.failed=Errore durante l'analisi della richiesta RPC. checksum.failed=Errore di verifica del checksum del file. [languages] Czech=Ceco German=Tedesco English=Inglese Spanish=Spagnolo French=Francese Italian=Italiano Japanese=Giapponese Polish=Polacco Russian=Russo Simplified Chinese=Cinese Semplificato Traditional Chinese=Cinese Tradizionale [format] longdate=DD/MM/YYYY HH:mm:ss time.millisecond={{value}} millisecondo time.milliseconds={{value}} millisecondi time.second={{value}} secondo time.seconds={{value}} secondi time.minute={{value}} minuto time.minutes={{value}} minuti time.hour={{value}} ora time.hours={{value}} ore requires.aria2-version=Richiede la versione {{version}} di aria2 task.new.download-links=Collegamenti per il download ({{count}} collegamenti): task.pieceinfo=Completati: {{completed}}, Totale: {{total}} blocchi task.error-occurred=Si è verificato un errore ({{errorcode}}) task.verifying-percent=Verifica in corso ({{verifiedPercent}}%) settings.file-count=({{count}} file) settings.total-count=(Totale: {{count}}) debug.latest-logs=Ultimi {{count}} log [rpc.error] unauthorized=Autenticazione fallita! [option] true=Sì false=No default=Predefinito none=Nessuno hide=Nascondi full=Completo http=Http https=Https ftp=Ftp mem=Solo memoria get=GET tunnel=TUNNEL plain=Testo semplice arc4=ARC4 binary=Binario ascii=ASCII debug=Debug info=Info notice=Avviso warn=Avvertenza error=Errore adaptive=Adattivo epoll=epoll falloc=falloc feedback=Feedback geom=Geometria inorder=In ordine kqueue=kqueue poll=poll port=port prealloc=prealloc random=Casuale select=select trunc=trunc SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Percorso di download dir.description= log.name=File di registro log.description=Percorso del file di registro. Se impostato su "-", il registro viene scritto su stdout. Se impostato su una stringa vuota (""), il registro non verrà memorizzato su disco. max-concurrent-downloads.name=Numero massimo di download simultanei max-concurrent-downloads.description= check-integrity.name=Verifica integrità check-integrity.description=Verifica l'integrità del file tramite la convalida hash di ogni blocco o del file completo. Questa opzione è valida solo per collegamenti BT, Metalink e per collegamenti HTTP(S)/FTP che hanno impostato l'opzione --checksum. continue.name=Riprendi download continue.description=Riprende il download dei file parzialmente scaricati. Abilitando questa opzione, è possibile riprendere il download dei file scaricati sequenzialmente da un browser o da altri programmi. Questa opzione è attualmente supportata solo per i file scaricati tramite HTTP(S)/FTP. all-proxy.name=Server proxy all-proxy.description=Imposta l'indirizzo del server proxy per tutti i protocolli. È anche possibile sovrascrivere questa opzione per protocolli specifici utilizzando le opzioni --http-proxy, --https-proxy e --ftp-proxy. Questa impostazione influenzerà tutti i download. Il formato dell'indirizzo del server proxy è [http://][UTENTE:PASSWORD@]HOST[:PORTA]. all-proxy-user.name=Nome utente del server proxy all-proxy-user.description= all-proxy-passwd.name=Password del server proxy all-proxy-passwd.description= checksum.name=Checksum checksum.description=Imposta il checksum. Il formato del valore dell'opzione è TIPO=DIGEST. TIPO è il tipo di hash supportato elencato negli algoritmi hash di aria2c -v. DIGEST è il digest esadecimale. Ad esempio, impostare il digest sha-1 sarebbe simile a questo: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838. Questa opzione è valida solo per i download HTTP(S)/FTP. connect-timeout.name=Timeout connessione connect-timeout.description=Imposta il timeout (in secondi) per stabilire la connessione a un server HTTP/FTP/proxy. Una volta stabilita la connessione, questa opzione non avrà più effetto, si prega di utilizzare l'opzione --timeout. dry-run.name=Esecuzione di prova dry-run.description=Se impostato su "sì", aria2 verificherà solo se il file remoto esiste senza scaricare il contenuto del file. Questa opzione è valida solo per i download HTTP/FTP. Se impostato su true, i download BT verranno interrotti immediatamente. lowest-speed-limit.name=Limite minimo di velocità lowest-speed-limit.description=Chiude la connessione quando la velocità di download è inferiore al valore impostato (in B/s). 0 indica nessun limite di velocità minimo. È possibile aggiungere unità di misura come K o M (1K=1024, 1M=1024K). Questa opzione non influisce sui download BT. max-connection-per-server.name=Numero massimo di connessioni per server max-connection-per-server.description= max-file-not-found.name=Tentativi di riprova per file non trovati max-file-not-found.description=Se aria2 riceve lo stato "file non trovato" da un server HTTP/FTP remoto più volte rispetto al numero impostato in questa opzione, il download fallirà. Impostare a 0 disabiliterà questa opzione. Questa opzione influisce solo sui server HTTP/FTP. I tentativi di riprova verranno registrati insieme al numero di tentativi di riprova, quindi è necessario impostare l'opzione --max-tries. max-tries.name=Numero massimo di tentativi max-tries.description=Imposta il numero massimo di tentativi. 0 indica nessuna limitazione. min-split-size.name=Dimensione minima della suddivisione dei file min-split-size.description=aria2 non dividerà i file più piccoli di 2*DIMENSIONE byte. Ad esempio, se la dimensione del file è di 20 MB e DIMENSIONE è 10M, aria2 dividerà il file in 2 segmenti [0-10MB) e [10MB-20MB) e utilizzerà 2 fonti per il download (se --split >= 2). Se DIMENSIONE è 15M, poiché 2*15M > 20MB, aria2 non dividerà il file e utilizzerà 1 fonte per il download. È possibile aggiungere unità di misura come K o M (1K=1024, 1M=1024K). I valori ammissibili vanno da: 1M-1024M. netrc-path.name=Percorso del file .netrc netrc-path.description= no-netrc.name=Disabilita netrc no-netrc.description= no-proxy.name=Elenco dei server proxy da non utilizzare no-proxy.description=Imposta gli hostname, i nomi di dominio, gli indirizzi di rete con o senza subnet mask da non utilizzare il server proxy. Utilizzare la virgola per separare più voci. out.name=Nome del file out.description=Nome del file scaricato. È sempre relativo al percorso impostato dall'opzione --dir. Questa opzione non è valida quando viene utilizzata l'opzione --force-sequential. proxy-method.name=Metodo di richiesta del server proxy proxy-method.description=Imposta il metodo da utilizzare per richiedere il server proxy. Il metodo può essere impostato su GET o TUNNEL. I download HTTPS ignoreranno questa opzione e utilizzeranno sempre TUNNEL. remote-time.name=Ottieni il tempo del file dal server remote-time.description=Ottiene il timestamp del file remoto da un servizio HTTP/FTP e lo imposta sul file locale, se disponibile reuse-uri.name=Riutilizza URI reuse-uri.description=Quando tutti gli URI forniti sono stati utilizzati, continua a utilizzare gli URI già utilizzati. retry-wait.name=Tempo di attesa per il ritentativo retry-wait.description=Imposta l'intervallo di tempo (in secondi) tra i tentativi di ritentativo. Quando impostato su un valore maggiore di 0, aria2 ritenterà quando riceve una risposta 503 dal server HTTP. server-stat-of.name=Salva stato server server-stat-of.description=Specifica il nome del file per salvare lo stato del server. È possibile utilizzare il parametro --server-stat-if per leggere i dati salvati. server-stat-timeout.name=Timeout stato server server-stat-timeout.description=Specifica il tempo di scadenza dello stato del server (in secondi). split.name=Connessioni per download split.description=Utilizza N connessioni per il download. Se vengono forniti più indirizzi URI di N, verranno utilizzati i primi N indirizzi e gli indirizzi rimanenti saranno utilizzati come backup. Se gli indirizzi URI forniti sono meno di N, verranno utilizzati ripetutamente per garantire che siano attive N connessioni contemporaneamente. Il numero di connessioni allo stesso server è limitato dall'opzione --max-connection-per-server. stream-piece-selector.name=Algoritmo selezione pezzi stream-piece-selector.description=Specifica l'algoritmo di selezione pezzi per il download HTTP/FTP. I pezzi sono segmenti di lunghezza fissa durante il download parallelo. Se impostato su "predefinito", aria2 selezionerà i pezzi riducendo il numero di connessioni. Poiché la creazione di connessioni è costosa, questo è il comportamento predefinito ragionevole. Se impostato su "sequenziale", aria2 selezionerà i pezzi con l'indice più basso. Un indice di 0 indica il primo pezzo del file. Questo è utile per lo streaming video. L'opzione --enable-http-pipelining contribuisce a ridurre i costi di riconnessione. Si noti che aria2 dipende dall'opzione --min-split-size, quindi è necessario impostare un valore ragionevole per --min-split-size. Se impostato su "casuale", aria2 selezionerà casualmente un pezzo. Come "sequenziale", dipende dall'opzione --min-split-size. Se impostato su "geometrico", aria2 selezionerà prima il pezzo con l'indice più basso, quindi riserverà spazio per i pezzi selezionati in precedenza utilizzando una crescita esponenziale. Ciò ridurrà il numero di connessioni mentre i primi pezzi del file saranno scaricati per primi. Questo è utile anche per lo streaming video. timeout.name=Timeout timeout.description= uri-selector.name=Algoritmo selezione URI uri-selector.description=Specifica l'algoritmo di selezione URI. I valori possibili includono "sequenziale", "feedback" e "adattivo". Se impostato su "sequenziale", gli URI verranno utilizzati nell'ordine in cui compaiono nell'elenco. Se impostato su "feedback", aria2 selezionerà il server con la velocità di download più rapida dall'elenco di URI, ignorando i mirror non validi. La velocità di download precedentemente misurata sarà parte del file di stato del server, vedere le opzioni --server-stat-of e --server-stat-if. Se impostato su "adattivo", verrà selezionato il miglior mirror e la connessione in sospeso. Si noti che i mirror restituiti non sono stati testati e verranno testati nuovamente solo se tutti i mirror sono già stati testati. Ad esempio, "feedback" utilizza il file di stato del server. check-certificate.name=Verifica certificato check-certificate.description= http-accept-gzip.name=Accetta GZip http-accept-gzip.description=Se l'intestazione di risposta del server remoto include Content-Encoding: gzip o Content-Encoding: deflate, invia le intestazioni di richiesta che contengono Accept: deflate, gzip e decomprimi la risposta. http-auth-challenge.name=Sfida autenticazione HTTP http-auth-challenge.description=Invia intestazioni di richiesta di autenticazione HTTP solo quando richiesto dal server. Se impostato su "no", invierà sempre le intestazioni di richiesta di autenticazione. Eccezione: se il nome utente e la password sono inclusi nell'URI, questa opzione verrà ignorata e le intestazioni di richiesta di autenticazione verranno inviate sempre. http-no-cache.name=Disabilita cache http-no-cache.description=Le intestazioni di richiesta inviate conterranno Cache-Control: no-cache e Pragma: no-cache per evitare la memorizzazione nella cache. Se impostato su "no", le suddette intestazioni di richiesta non verranno inviate e l'opzione --header potrà essere utilizzata per aggiungere l'intestazione Cache-Control. http-user.name=Nome utente HTTP predefinito http-user.description= http-passwd.name=Password HTTP predefinita http-passwd.description= http-proxy.name=Server proxy HTTP http-proxy.description= http-proxy-user.name=Nome utente server proxy HTTP http-proxy-user.description= http-proxy-passwd.name=Password server proxy HTTP http-proxy-passwd.description= https-proxy.name=Server proxy HTTPS https-proxy.description= https-proxy-user.name=Nome utente server proxy HTTPS https-proxy-user.description= https-proxy-passwd.name=Password server proxy HTTPS https-proxy-passwd.description= referer.name=Referer referer.description=Imposta il referer della richiesta HTTP (Referer). Questa opzione influisce su tutti i download HTTP/HTTPS. Se impostata su *, il referer verrà impostato sul link di download. Questa opzione può essere utilizzata insieme all'opzione --parameterized-uri. enable-http-keep-alive.name=Abilita keep-alive HTTP enable-http-keep-alive.description=Abilita il keep-alive HTTP/1.1. enable-http-pipelining.name=Abilita il pipelining HTTP enable-http-pipelining.description=Abilita il pipelining HTTP/1.1. header.name=Header personalizzati header.description=Aggiunge il contenuto dell'intestazione di richiesta HTTP. Ogni riga rappresenta un'opzione, contenente "nome intestazione: valore intestazione". save-cookies.name=Percorso salvataggio cookie save-cookies.description=Salva i cookie in un file nel formato Mozilla/Firefox(1.x/2.x)/Netscape. Se il file esiste già, verrà sovrascritto. I cookie scaduti verranno comunque salvati, ma il loro tempo di scadenza verrà impostato a 0. use-head.name=Utilizza metodo HEAD use-head.description=Utilizza il metodo HEAD durante la prima richiesta al server HTTP user-agent.name=Agente Utente Personalizzato user-agent.description= ftp-user.name=Nome Utente FTP Predefinito ftp-user.description= ftp-passwd.name=Password FTP Predefinita ftp-passwd.description=Se l'URI contiene solo il nome utente senza la password, aria2 cercherà prima la password nel file .netrc. Se trova la password nel file .netrc, la userà. Altrimenti, userà la password impostata con questa opzione. ftp-pasv.name=Modalità Passiva ftp-pasv.description=Usa la modalità passiva nell'FTP. Se impostata su "no", verrà utilizzata la modalità attiva. Questa opzione non si applica al trasferimento SFTP. ftp-proxy.name=Server Proxy FTP ftp-proxy.description= ftp-proxy-user.name=Nome Utente Server Proxy FTP ftp-proxy-user.description= ftp-proxy-passwd.name=Password Server Proxy FTP ftp-proxy-passwd.description= ftp-type.name=Tipo di Trasferimento ftp-type.description= ftp-reuse-connection.name=Riutilizzo Connessione ftp-reuse-connection.description= ssh-host-key-md.name=Checksum Chiave Pubblica SSH ssh-host-key-md.description=Imposta il checksum della chiave pubblica SSH del server. Il formato dell'opzione è TIPO=DIGEST. TIPO è il tipo di hash. I tipi di hash supportati sono sha-1 e md5. DIGEST è il digest esadecimale. Ad esempio: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. Questa opzione può essere utilizzata per verificare la chiave pubblica del server quando si utilizza SFTP. Se questa opzione non è impostata, verrà mantenuta la verifica predefinita senza alcuna azione. bt-detach-seed-only.name=Separare solo i Task di Seed bt-detach-seed-only.description=Escludi i task di sola seed durante il calcolo dei task di download attivi (vedi opzione -j). Ciò significa che se il parametro è impostato su -j3 e attualmente ci sono 3 task attivi, di cui uno è in modalità seed, verrà escluso (cioè il numero diventerà 2) e il prossimo task in coda verrà avviato. Tuttavia, è importante notare che nei metodi RPC, i task di seed sono comunque considerati attivi. bt-enable-hook-after-hash-check.name=Abilita Evento di Fine Controllo Hash bt-enable-hook-after-hash-check.description=Consente l'esecuzione di un comando dopo il completamento del controllo hash dei download BT (vedi opzione -V). Per impostazione predefinita, quando il controllo hash ha successo, verrà eseguito il comando impostato tramite --on-bt-download-complete. Per disabilitare questo comportamento, impostare su "no". bt-enable-lpd.name=Abilita Discovery Nodi Locali (LPD) bt-enable-lpd.description= bt-exclude-tracker.name=Escludi Indirizzi Server BT bt-exclude-tracker.description=Indirizzi server BT esclusi separati da virgola. È possibile utilizzare * per corrispondere a tutti gli indirizzi, quindi escludere tutti gli indirizzi del server. Quando si utilizza * nella riga di comando della shell, è necessario utilizzare un carattere di escape o le virgolette. bt-external-ip.name=Indirizzo IP Esterno bt-external-ip.description=Specifica l'indirizzo IP esterno utilizzato per i download BitTorrent e DHT. Potrebbe essere inviato ai server BitTorrent. Per DHT, questa opzione segnalerà ai nodi locali di essere in fase di download di un determinato torrent. Questo è essenziale per l'uso di DHT in reti private. Anche se si chiama "esterno", accetta vari tipi di indirizzi IP. bt-force-encryption.name=Forza Crittografia bt-force-encryption.description=I contenuti dei messaggi BT devono essere crittografati con arc4. Questa opzione è un modo rapido per impostare --bt-require-crypto --bt-min-crypto-level=arc4. Non modifica il contenuto di queste due opzioni. Se impostato su "sì", rifiuterà gli handshake BT precedenti e utilizzerà solo handshake sfocati e messaggi crittografati. bt-hash-check-seed.name=Controlla Hash Prima del Seed bt-hash-check-seed.description=Se impostato su "sì", aria2 continuerà il seeding solo dopo aver completato il controllo hash e il completamento del file utilizzando l'opzione --check-integrity. Se si desidera controllare solo i file quando sono danneggiati o incompleti, impostare su "no". Questa opzione è valida solo per i download BT. bt-load-saved-metadata.name=Carica Metadata Salvati bt-load-saved-metadata.description=Quando si utilizza il download magnetico, tenta prima di caricare il file salvato con l'opzione --bt-save-metadata prima di scaricare i metadati dal DHT. Se il caricamento del file ha successo, i metadati non verranno scaricati dal DHT. bt-max-open-files.name=Numero Massimo File Aperti bt-max-open-files.description=Imposta il numero massimo di file aperti globalmente per i download BT/Metalink. bt-max-peers.name=Numero Massimo Peer bt-max-peers.description=Imposta il numero massimo di peer connessi per ogni download BT. 0 significa nessun limite. bt-metadata-only.name=Scarica Solo Metadati bt-metadata-only.description=Scarica solo i file torrent. I file descritti nel file torrent non verranno scaricati. Questa opzione è valida solo per i link magnetici. bt-min-crypto-level.name=Livello Minimo Crittografia bt-min-crypto-level.description=Imposta il livello minimo della crittografia. Se un peer offre più metodi di crittografia, aria2 selezionerà il livello minimo che soddisfi il livello specificato. bt-prioritize-piece.name=Priorità Download bt-prioritize-piece.description=Tenta di scaricare prima i pezzi all'inizio o alla fine di ogni file. Questa opzione è utile per la visualizzazione anticipata dei file. I parametri possono includere due parole chiave: head e tail. Se sono presenti entrambe le parole chiave, devono essere separate da una virgola. Ogni parola chiave può includere un parametro SIZE. Ad esempio, specificando head=SIZE, le prime SIZE dei dati di ciascun file avranno una priorità maggiore. tail=SIZE significa gli ultimi SIZE dati di ciascun file. SIZE può includere K o M (1K=1024, 1M=1024K). bt-remove-unselected-file.name=Rimuovi File Non Selezionati bt-remove-unselected-file.description=Dopo il completamento del task BT, rimuove i file non selezionati. Per selezionare i file da scaricare, utilizzare l'opzione --select-file. Se non vengono selezionati file, tutti i file saranno considerati come da scaricare per impostazione predefinita. Questa opzione rimuoverà direttamente i file dal disco, quindi utilizzarla con attenzione. bt-require-crypto.name=Crittografia Obbligatoria bt-require-crypto.description=Se impostata su "sì", aria non accetterà gli handshake BitTorrent precedenti (\19protocollo BitTorrent) e stabilirà una connessione solo sfocata. Pertanto, aria2 utilizzerà sempre handshake sfocati. bt-request-peer-speed-limit.name=Velocità Download Desiderata dai Peer bt-request-peer-speed-limit.description=Se la velocità di download complessiva di un download BT è inferiore al valore impostato con questa opzione, aria2 aumenterà temporaneamente il numero di connessioni per aumentare la velocità di download. In alcune circostanze, impostare una velocità di download desiderata può migliorare la velocità di download. È possibile aggiungere unità K o M (1K=1024, 1M=1024K). bt-save-metadata.name=Salva File Torrent bt-save-metadata.description=Salva il file torrent come file ".torrent". Questa opzione è valida solo per i link magnetici. Il nome del file è l'hash esadecimale codificato in formato esadecimale seguito dall'estensione ".torrent". Viene salvato nella stessa directory dei file scaricati. Se esiste già un file con lo stesso nome, il file torrent non verrà salvato. bt-seed-unverified.name=Non Verificare File Già Scaricati bt-seed-unverified.description=Non controlla il valore hash di ogni pezzo dei file scaricati in precedenza. bt-stop-timeout.name=Timeout di Arresto Automatico Senza Velocità bt-stop-timeout.description=Quando la velocità di download di un task BT rimane a 0 per il tempo impostato con questa opzione, il download si ferma. Se impostato su 0, questa funzionalità sarà disabilitata. bt-tracker.name=Indirizzo del Tracker BT bt-tracker.description=Indirizzi server BT separati da virgola. Questi indirizzi non sono influenzati dall'opzione --bt-exclude-tracker, perché vengono aggiunti solo dopo che l'opzione --bt-exclude-tracker ha escluso altri indirizzi. bt-tracker-connect-timeout.name=Timeout di connessione al server BT bt-tracker-connect-timeout.description=Imposta il timeout di connessione al server BT in secondi. Dopo che la connessione è stata stabilita, questa opzione non ha più effetto, utilizzare l'opzione --bt-tracker-timeout. bt-tracker-interval.name=Intervallo di connessione al server BT bt-tracker-interval.description=Imposta l'intervallo di richiesta al server BT in secondi. Questa opzione sovrascriverà completamente l'intervallo minimo e l'intervallo restituiti dal server, aria2 utilizzerà solo il valore di questa opzione. Se impostato su 0, aria2 deciderà l'intervallo in base alla risposta del server e all'avanzamento del download. bt-tracker-timeout.name=Timeout del server BT bt-tracker-timeout.description= dht-file-path.name=File DHT (IPv4) dht-file-path.description=Modifica il percorso del file della tabella di routing DHT IPv4. dht-file-path6.name=File DHT (IPv6) dht-file-path6.description=Modifica il percorso del file della tabella di routing DHT IPv6. dht-listen-port.name=Porta di ascolto DHT dht-listen-port.description=Imposta la porta UDP utilizzata da DHT (IPv4, IPv6) e dal server UDP. Più porte possono essere separate da virgole ",", ad esempio: 6881,6885. È anche possibile utilizzare un trattino "-" per indicare un intervallo: 6881-6999, oppure entrambi insieme: 6881-6889, 6999. dht-message-timeout.name=Timeout del messaggio DHT dht-message-timeout.description= enable-dht.name=Abilita DHT (IPv4) enable-dht.description=Abilita la funzione DHT IPv4. Questa opzione abilita anche il supporto del server UDP. Se il torrent è contrassegnato come privato, aria2 non abiliterà DHT anche se questa opzione è impostata su "Sì". enable-dht6.name=Abilita DHT (IPv6) enable-dht6.description=Abilita la funzione DHT IPv6. Se il torrent è contrassegnato come privato, aria2 non abiliterà DHT anche se questa opzione è impostata su "Sì". Usa l'opzione --dht-listen-port per impostare la porta di ascolto. enable-peer-exchange.name=Abilita lo scambio di peer enable-peer-exchange.description=Abilita l'estensione di scambio di peer. Se il torrent è contrassegnato come privato, aria2 non abiliterà questa funzione anche se questa opzione è impostata su "Sì". follow-torrent.name=Scarica i file nel torrent follow-torrent.description=Se impostato su "Sì" o "Solo memoria", quando un file con suffisso .torrent o con tipo di contenuto application/x-bittorrent viene completato, aria2 leggerà e scaricherà i file menzionati nel file torrent. Se impostato su "Solo memoria", il file torrent non verrà scritto sul disco, ma solo memorizzato nella memoria. Se impostato su "No", il file .torrent verrà scaricato sul disco, ma non verrà letto e i file in esso contenuti non verranno scaricati. listen-port.name=Porta di ascolto listen-port.description=Imposta la porta TCP per i download BT. Più porte possono essere separate da virgole ",", ad esempio: 6881,6885. È anche possibile utilizzare un trattino "-" per indicare un intervallo: 6881-6999, oppure entrambi insieme: 6881-6889, 6999. max-overall-upload-limit.name=Velocità massima di upload globale max-overall-upload-limit.description=Imposta la velocità massima di upload globale in byte/secondo. 0 indica che non ci sono limiti. Puoi aumentare il valore aggiungendo le unità K o M (1K=1024, 1M=1024K). max-upload-limit.name=Velocità massima di upload max-upload-limit.description=Imposta la velocità massima di upload per ogni task in byte/secondo. 0 indica che non ci sono limiti. Puoi aumentare il valore aggiungendo le unità K o M (1K=1024, 1M=1024K). peer-id-prefix.name=Prefisso ID nodo peer-id-prefix.description=Specifica il prefisso per l'ID del nodo. L'ID del nodo in BT ha una lunghezza di 20 byte. Se supera i 20 byte, verranno utilizzati solo i primi 20 byte. Se è più breve di 20 byte, verranno aggiunti dati casuali per raggiungere i 20 byte. peer-agent.name=Peer Agent peer-agent.description=Specifica la stringa utilizzata per la versione del client del nodo durante l'handshake esteso di BT. seed-ratio.name=Rapporto di condivisione minimo seed-ratio.description=Specifica il rapporto di condivisione. La condivisione termina quando il rapporto di condivisione raggiunge il valore impostato in questa opzione. Si consiglia vivamente di impostare questa opzione su un valore maggiore o uguale a 1.0. Se non si desidera limitare il rapporto di condivisione, è possibile impostarlo su 0.0. Se si imposta anche l'opzione --seed-time, la condivisione terminerà quando una delle due condizioni sarà soddisfatta. seed-time.name=Tempo di condivisione minimo seed-time.description=Specifica il tempo di condivisione in minuti (in formato decimale). Se questa opzione è impostata su 0, la condivisione non avverrà dopo il completamento del download del task BT. follow-metalink.name=Scarica i file nel Metalink follow-metalink.description=Se impostato su "Sì" o "Solo memoria", quando un file con suffisso .meta4 o .metalink o con tipo di contenuto application/metalink4+xml o application/metalink+xml viene completato, aria2 leggerà e scaricherà i file menzionati nel file Metalink. Se impostato su "Solo memoria", il file Metalink non verrà scritto sul disco, ma solo memorizzato nella memoria. Se impostato su "No", il file .metalink verrà scaricato sul disco, ma non verrà letto e i file in esso contenuti non verranno scaricati. metalink-base-uri.name=URI di base metalink-base-uri.description=Specifica l'URI di base per risolvere gli indirizzi URI relativi metalink:url e metalink:metaurl nei file Metalink memorizzati sul disco locale. Se l'URI rappresenta una directory, deve terminare con /. metalink-language.name=Lingua metalink-language.description= metalink-location.name=Posizione del server preferita metalink-location.description=La posizione preferita del server. Puoi utilizzare un elenco separato da virgole, ad esempio: jp,us. metalink-os.name=Sistema operativo metalink-os.description=Il sistema operativo del file da scaricare. metalink-version.name=Numero di versione metalink-version.description=Il numero di versione del file da scaricare. metalink-preferred-protocol.name=Protocollo preferito metalink-preferred-protocol.description=Specifica il protocollo preferito da utilizzare. Può essere impostato su http, https, ftp o "no". Se impostato su "no", questa opzione viene disattivata. metalink-enable-unique-protocol.name=Usa solo un protocollo univoco metalink-enable-unique-protocol.description=Se un file Metalink è disponibile su più protocolli e questa opzione è impostata su "Sì", aria2 ne utilizzerà solo uno. Usa il parametro --metalink-preferred-protocol per specificare il protocollo preferito. enable-rpc.name=Abilita il server JSON-RPC/XML-RPC enable-rpc.description= pause-metadata.name=Sospendi dopo il download del file torrent pause-metadata.description=Sospende i download successivi dopo il download del file torrent. In aria2, ci sono 3 tipi di download di file torrent: (1) Download di file .torrent. (2) File torrent scaricati tramite magnet link. (3) Download di file Metalink. Questi file torrent, una volta scaricati, continueranno a scaricare in base al contenuto del file. Questa opzione metterà in pausa questi download successivi. Questa opzione è efficace solo se l'opzione --enable-rpc è abilitata. rpc-allow-origin-all.name=Accetta tutte le richieste remote rpc-allow-origin-all.description=Aggiunge il campo Access-Control-Allow-Origin all'intestazione di risposta RPC con il valore *. rpc-listen-all.name=Ascolta su tutte le schede di rete rpc-listen-all.description=Ascolta le richieste JSON-RPC/XML-RPC su tutte le schede di rete, se impostato su "No", ascolta solo le richieste dalla rete locale. rpc-listen-port.name=Porta di ascolto rpc-listen-port.description= rpc-max-request-size.name=Dimensione massima della richiesta rpc-max-request-size.description=Imposta la dimensione massima della richiesta JSON-RPC/XML-RPC. Se aria2 rileva che la richiesta supera il numero di byte impostato, la connessione verrà chiusa direttamente. rpc-save-upload-metadata.name=Salva i file torrent caricati rpc-save-upload-metadata.description=Salva i file torrent o Metalink caricati nella directory specificata dall'opzione dir. Il nome del file è composto da metadati hash SHA-1 e da un'estensione. Per i file torrent, l'estensione è '.torrent'. Per Metalink è '.meta4'. Se questa opzione è impostata su "No", i download aggiunti tramite i metodi aria2.addTorrent() o aria2.addMetalink() non possono essere salvati con l'opzione --save-session. rpc-secure.name=Abilita SSL/TLS rpc-secure.description=RPC verrà trasmesso tramite crittografia SSL/TLS. Il client RPC deve utilizzare il protocollo https per connettersi al server. Per i client WebSocket, utilizzare il protocollo wss. Usa le opzioni --rpc-certificate e --rpc-private-key per impostare il certificato e la chiave privata del server. allow-overwrite.name=Consenti la sovrascrittura allow-overwrite.description=Riscarica il file dall'inizio se il file di controllo corrispondente non esiste. Vedere l'opzione --auto-file-renaming. allow-piece-length-change.name=Consenti la modifica della lunghezza del pezzo allow-piece-length-change.description=Se impostato su "No", aria2 interromperà il download se la lunghezza del pezzo è diversa da quella nel file di controllo. Se impostato su "Sì", puoi continuare, ma parte della progressione del download verrà persa. always-resume.name=Ripristina sempre always-resume.description=Ripristina sempre il download interrotto. Se impostato su "Sì", aria2 tenta sempre di ripristinare il download interrotto, in caso contrario interrompe il download. Se impostato su "No", per URI che non supportano il download interrotto o aria2 incontra N URI che non supportano il download interrotto (N è il valore impostato dall'opzione --max-resume-failure-tries), aria2 scaricherà il file dall'inizio. Vedere il parametro --max-resume-failure-tries. async-dns.name=DNS asincrono async-dns.description= auto-file-renaming.name=Ridenominazione automatica dei file auto-file-renaming.description=Rinomina i file auto-save-interval.name=Intervallo di salvataggio automatico auto-save-interval.description=Salva automaticamente il file di controllo (*.aria2) ogni tot secondi specificati. Se impostato su 0, il file di controllo non verrà salvato automaticamente durante il download. Indipendentemente dal valore impostato, aria2 salverà il file di controllo al termine del task. Il valore può essere impostato da 0 a 600. conditional-get.name=Download condizionale conditional-get.description=Scarica il file solo se è più vecchio del file locale. Questa funzione funziona solo per i download HTTP(S). Se la dimensione del file è già stata specificata in Metalink, la funzione non avrà effetto. Inoltre, questa funzione ignorerà l'intestazione di risposta Content-Disposition. Se esiste un file di controllo, questa opzione verrà ignorata. Questa funzione utilizza l'intestazione di richiesta If-Modified-Since per ottenere il file più recente. Quando viene recuperato il tempo di modifica del file locale, questa funzione utilizzerà il nome del file fornito dall'utente (vedere l'opzione --out), oppure il nome del file nell'URI se l'opzione --out non è specificata. Per sovrascrivere un file esistente, è necessario utilizzare il parametro --allow-overwrite. conf-path.name=Percorso del file di configurazione conf-path.description= console-log-level.name=Livello di log della console console-log-level.description= content-disposition-default-utf8.name=Usa UTF-8 per elaborare Content-Disposition content-disposition-default-utf8.description=Usa il set di caratteri UTF-8 invece di ISO-8859-1 per elaborare la stringa nell'intestazione "Content-Disposition", ad esempio, il parametro del nome file, ma non il nome file della versione estesa. daemon.name=Abilita il processo in background daemon.description= deferred-input.name=Caricamento ritardato deferred-input.description=Se impostato su "Sì", aria2 non leggerà tutti gli indirizzi URI nel file specificato dall'opzione --input-file all'avvio, ma li leggerà solo quando necessario. Se il file di input contiene un gran numero di URI da scaricare, questa opzione può ridurre l'utilizzo della memoria. Se impostato su "No", aria2 leggerà tutti gli URI all'avvio. L'opzione --deferred-input verrà disattivata quando si utilizza --save-session. disable-ipv6.name=Disabilita IPv6 disable-ipv6.description= disk-cache.name=Cache disco disk-cache.description=Abilita la cache disco. Se impostato su 0, la cache disco verrà disattivata. Questa funzione memorizza nella cache i dati scaricati nella memoria, fino a un massimo di byte specificati in questa opzione. La memoria cache di archiviazione viene creata dall'istanza aria2 e condivisa da tutti i download. Poiché i dati vengono scritti in unità più grandi e riordinati in base all'offset del file, un vantaggio della cache disco è la riduzione dell'I/O del disco. Se viene richiamato il controllo dell'hash e i dati sono memorizzati nella cache in memoria, non sarà necessario leggerli dal disco. La dimensione può includere K o M (1K=1024, 1M=1024K). download-result.name=Risultato del download download-result.description=Questa opzione modifica il formato del risultato del download. Se impostato su "Default", stamperà GID, stato, velocità media di download e percorso/URI. Se sono coinvolti più file, verrà stampato solo il percorso/URI del primo file richiesto, gli altri verranno ignorati. Se impostato su "Completo", stamperà GID, stato, velocità media di download, avanzamento del download e percorso/URI. In questo caso, l'avanzamento del download e il percorso/URI verranno stampati su una riga per ciascun file. Se impostato su "Nascosto", il risultato del download verrà nascosto. dscp.name=DSCP dscp.description=Imposta il valore DSCP del campo TOS nei pacchetti IP in uscita BT per QoS. Questo parametro imposta solo i bit DSCP del campo TOS, non l'intero campo. Se si ottengono valori da /usr/include/netinet/ip.h, è necessario dividerli per 4 (altrimenti i valori saranno errati, ad esempio la classe CS1 diventerà CS4). Se si utilizzano valori comuni da RFC, documentazione del fornitore di rete, Wikipedia o altre fonti, è possibile utilizzarli direttamente. rlimit-nofile.name=Numero massimo di file descrittori aperti rlimit-nofile.description=Imposta il soft limit per il numero di file descrittori aperti. Questa opzione è efficace solo se: a. Il sistema la supporta (POSIX). b. Il limite non supera l'hard limit. c. Il limite specificato è maggiore del soft limit corrente. Questo è equivalente all'impostazione di ulimit, tranne per il fatto che non può abbassare il limite. Questa opzione è efficace solo se il sistema supporta l'API rlimit. enable-color.name=Usa colori nell'output del terminale enable-color.description= enable-mmap.name=Abilita MMap enable-mmap.description=Memorizza i file mappati in memoria. Se lo spazio del file non è preallocato, questa opzione non è valida. Vedere --file-allocation. event-poll.name=Metodo di polling degli eventi event-poll.description=Imposta il metodo di polling degli eventi. I valori possibili includono epoll, kqueue, port, poll e select. Per epoll, kqueue, port e poll, sono disponibili solo se il sistema li supporta. La maggior parte delle distribuzioni Linux supporta epoll. Vari sistemi *BSD, incluso Mac OS X, supportano kqueue. Open Solaris supporta la porta. Il valore predefinito varia a seconda del sistema operativo utilizzato. file-allocation.name=Metodo di allocazione file file-allocation.description=Specifica il metodo di allocazione dei file. "Nessuno" non alloca preventivamente lo spazio del file. "Prealloc" allocherà lo spazio prima dell'inizio del download. Questo richiederà del tempo in base alle dimensioni del file. Se si utilizza un file system più recente, come ext4 (con supporto esteso), btrfs, xfs o NTFS (solo build MinGW), "falloc" è la scelta migliore. Può allocare file di grandi dimensioni (numerosi GiB) quasi istantaneamente. Non utilizzare falloc su file system legacy, come ext3 e FAT32, poiché richiede lo stesso tempo di prealloc e blocca aria2 fino al completamento dell'allocazione. falloc potrebbe non essere disponibile se il sistema non supporta la funzione posix_fallocate(3). "Trunc" utilizza la chiamata di sistema ftruncate(2) o un'implementazione specifica della piattaforma per troncare un file a una lunghezza specifica. Nei download BitTorrent con più file, se un file condivide le stesse sezioni con un file adiacente, anche i file adiacenti verranno allocati. force-save.name=Forza il salvataggio force-save.description=Salva l'attività anche se è stata completata o eliminata quando si utilizza l'opzione --save-session. In questo caso, questa opzione salverà anche il file di controllo. Questa opzione può salvare le attività BT che sono considerate completate ma che stanno ancora seedando. save-not-found.name=Salva i file non trovati save-not-found.description=Quando si utilizza l'opzione --save-session, salva l'attività di download anche se i file nell'attività non esistono. Questa opzione salverà anche questa situazione nel file di controllo. hash-check-only.name=Solo controllo hash hash-check-only.description=Se impostato su "Sì", termina il download in base al completamento del download dopo aver eseguito il controllo hash utilizzando l'opzione --check-integrity. human-readable.name=Output leggibile in console human-readable.description=Stampa dimensioni e velocità in un formato leggibile in console (ad esempio, 1.2Ki, 3.4Mi). keep-unfinished-download-result.name=Conserva i risultati delle attività non completate keep-unfinished-download-result.description=Conserva tutti i risultati delle attività di download non completate, anche se superano il numero impostato dall'opzione --max-download-result. Questo può aiutare a conservare tutti i download non completati nel file di sessione (vedere l'opzione --save-session). È importante notare che non c'è un limite al numero di attività non completate. Se non lo si desidera, disattivare questa opzione. max-download-result.name=Numero massimo di risultati di download max-download-result.description=Imposta il numero massimo di risultati di download da memorizzare in memoria. I risultati del download includono download completati/con errori/eliminati. I risultati del download vengono memorizzati in una coda FIFO, quindi è possibile memorizzare al massimo il numero specificato di risultati del download. Quando la coda è piena e viene creato un nuovo risultato di download, il risultato di download più vecchio viene rimosso dalla parte anteriore della coda e il nuovo viene inserito alla fine. Impostare un valore elevato per questa opzione può portare a un consumo elevato di memoria se si eseguono migliaia di download. Impostare su 0 per non memorizzare i risultati del download. Si noti che i download non completati saranno sempre conservati in memoria, indipendentemente dall'impostazione di questa opzione. Vedere l'opzione --keep-unfinished-download-result. max-mmap-limit.name=Limite massimo di MMap max-mmap-limit.description=Imposta la dimensione massima del file per abilitare MMap (vedere l'opzione --enable-mmap). La dimensione del file è determinata dalla somma di tutte le dimensioni dei file in un'attività di download. Ad esempio, se un download contiene 5 file, la dimensione del file sarà la dimensione totale di questi file. Se la dimensione del file supera la dimensione impostata per questa opzione, MMap verrà disattivato. max-resume-failure-tries.name=Numero massimo di tentativi di ripresa di download interrotti max-resume-failure-tries.description=Quando l'opzione --always-resume è impostata su "No", se aria2 rileva che N URI non supportano la ripresa di download interrotti, il download del file inizierà dall'inizio. Se N è impostato su 0, il download del file inizierà dall'inizio solo se tutti gli URI non supportano la ripresa di download interrotti. Vedere l'opzione --always-resume. min-tls-version.name=Versione minima TLS min-tls-version.description=Specifica la versione minima di SSL/TLS abilitata. log-level.name=Livello di log log-level.description= optimize-concurrent-downloads.name=Ottimizza i download simultanei optimize-concurrent-downloads.description=Ottimizza il numero di download simultanei in base alla larghezza di banda disponibile. aria2 utilizza la velocità di download precedentemente misurata per ottenere il numero di download simultanei tramite la regola N=A + B Log10 (la velocità è in Mbps). I coefficienti A e B possono essere personalizzati separati da due punti nel parametro. Il valore predefinito (A=5, B=25) può utilizzare 5 download simultanei su una rete da 1 Mbps e 50 su una rete da 100 Mbps. Il numero di download simultanei è limitato al massimo definito dal parametro --max-concurrent-downloads. piece-length.name=Dimensione del blocco file piece-length.description=Imposta la dimensione di allocazione per i download HTTP/FTP. aria2 divide i file in base a questo limite. Tutte le sezioni saranno multipli di questa lunghezza. Questa opzione non è valida per i download BitTorrent. show-console-readout.name= show-console-readout.description= summary-interval.name=Intervallo di output del riepilogo del download summary-interval.description=Imposta l'intervallo di output del riepilogo dell'avanzamento del download (in secondi). Impostare su 0 per disattivare l'output. max-overall-download-limit.name=Velocità massima di download globale max-overall-download-limit.description=Imposta la velocità massima di download globale (byte/secondo). 0 indica nessuna restrizione. È possibile aumentare il valore con le unità K o M (1K=1024, 1M=1024K). max-download-limit.name=Velocità massima di download max-download-limit.description=Imposta la velocità massima di download per ogni attività (byte/secondo). 0 indica nessuna restrizione. È possibile aumentare il valore con le unità K o M (1K=1024, 1M=1024K). no-conf.name=Disabilita il file di configurazione no-conf.description= no-file-allocation-limit.name=Limite di allocazione file no-file-allocation-limit.description=Non confrontare i file allocati con questo limite di dimensione. È possibile aumentare il valore con le unità K o M (1K=1024, 1M=1024K). parameterized-uri.name=Abilita il supporto URI parametrizzato parameterized-uri.description=Abilita il supporto URI parametrizzato. È possibile specificare un insieme di parti: http://{sv1,sv2,sv3}/foo.iso. È anche possibile utilizzare un contatore a passi per specificare sequenze numerizzate: http://host/image[000-100:2].img. Il contatore a passi è facoltativo. Se tutti gli URI non puntano allo stesso file, come nel secondo esempio sopra, è necessario utilizzare l'opzione -Z. quiet.name=Disabilita l'output della console quiet.description= realtime-chunk-checksum.name=Controllo integrità dati in tempo reale realtime-chunk-checksum.description=Se viene fornita la checksum del blocco dati, verifica i blocchi dati con la checksum durante il download. remove-control-file.name=Rimuovi file di controllo remove-control-file.description=Rimuove il file di controllo prima del download. In combinazione con l'opzione --allow-overwrite=true, il download del file inizierà sempre dall'inizio. Questa opzione può essere utile per gli utenti che utilizzano proxy che non supportano la ripresa di download interrotti. save-session.name=File di salvataggio sessione save-session.description=Salva i download con errori e non completati in un file specificato all'uscita. Puoi ricaricarli usando l'opzione --input-file quando riavvii aria2. Se desideri comprimere l'output con GZip, puoi aggiungere l'estensione .gz al nome del file. Si noti che i metadati dei download aggiunti tramite i metodi RPC aria2.addTorrent() e aria2.addMetalink() non verranno salvati se non vengono salvati nel file. I download eliminati con aria2.remove() e aria2.forceRemove() non verranno salvati. save-session-interval.name=Intervallo di salvataggio sessione save-session-interval.description=Salva i download con errori o non completati nel file specificato dall'opzione --save-session ogni tot secondi. Se impostato su 0, la sessione verrà salvata solo quando aria2 esce. socket-recv-buffer-size.name=Dimensione buffer di ricezione socket socket-recv-buffer-size.description=Imposta la dimensione massima del buffer di ricezione socket in byte. Se impostato su 0, questa opzione viene disattivata. Il valore di questa opzione viene impostato sul descrittore del file socket quando si chiama setsockopt() con l'opzione SO_RCVBUF. stop.name=Tempo di arresto automatico stop.description= truncate-console-readout.name=Tronca l'output della console truncate-console-readout.description=Tronca l'output della console su una singola riga. ================================================ FILE: src/langs/ja_JP.txt ================================================ [global] AriaNg Version=AriaNg バージョン Operation Result=操作結果 Operation Succeeded=操作が成功しました is connected=接続済み Error=エラー OK=OK Confirm=確認 Cancel=キャンセル Close=閉じる True=有効 False=無効 DEBUG=デバッグ INFO=情報 WARN=警告 ERROR=エラー Connecting=接続中 Connected=接続済み Disconnected=切断済み Reconnecting=再接続中 Waiting to reconnect=再接続待機中 Global=全体 New=新規 Start=開始 Pause=一時停止 Retry=再試行 Retry Selected Tasks=選択したタスクを再試行 Delete=削除 Select All=すべて選択 Select None=選択解除 Select Invert=選択を反転 Select All Failed Tasks=失敗したタスクをすべて選択 Select All Completed Tasks=完了したタスクをすべて選択 Select All Tasks=すべてのタスクを選択 Display Order=表示順 Copy Download Url=ダウンロードURLをコピー Copy Magnet Link=マグネットリンクをコピー Help=ヘルプ Search=検索 Default=デフォルト Expand=展開 Collapse=折りたたむ Expand All=すべて展開 Collapse All=すべて折りたたむ Open=開く Save=保存 Import=インポート Remove Task=タスクを削除 Remove Selected Task=選択したタスクを削除 Clear Stopped Tasks=停止したタスクを削除 Click to view task detail=クリックしてタスクの詳細を表示 By File Name=ファイル名順 By File Size=ファイルサイズ順 By Progress=進捗順 By Selected Status=選択状態順 By Remaining=残り時間順 By Download Speed=ダウンロード速度順 By Upload Speed=アップロード速度順 By Peer Address=ピアアドレス順 By Client Name=クライアント名順 Filters=フィルター Download=ダウンロード Upload=アップロード Downloading=ダウンロード中 Pending Verification=検証待ち Verifying=検証中 Seeding=シード中 Waiting=待機中 Paused=一時停止中 Completed=完了 Error Occurred=エラーが発生しました Removed=削除済み Finished / Stopped=完了 / 停止済み Uncompleted=未完了 Click to pin=クリックしてピン留め Settings=設定 AriaNg Settings=AriaNg 設定 Aria2 Settings=Aria2 設定 Basic Settings=基本設定 HTTP/FTP/SFTP Settings=HTTP/FTP/SFTP 設定 HTTP Settings=HTTP 設定 FTP/SFTP Settings=FTP/SFTP 設定 BitTorrent Settings=BitTorrent 設定 Metalink Settings=Metalink 設定 RPC Settings=RPC 設定 Advanced Settings=詳細設定 AriaNg Debug Console=AriaNg デバッグコンソール Aria2 Status=Aria2 ステータス File Name=ファイル名 File Size=ファイルサイズ Progress=進捗 Share Ratio=シェア率 Remaining=残り Download Speed=ダウンロード速度 Upload Speed=アップロード速度 Links=リンク Torrent File=トレントファイル Metalink File=Metalink ファイル File Name:=ファイル名: Options=オプション Overview=概要 Pieces=ピース Files=ファイル Peers=ピア Task Name=タスク名 Task Size=タスクサイズ Task Status=タスクステータス Error Description=エラーの説明 Health Percentage=健全度(%) Info Hash=情報ハッシュ Seeders=シーダー Connections=接続数 Seed Creation Time=シード作成日時 Download Url=ダウンロードURL Download Dir=ダウンロード先ディレクトリ BT Tracker Servers=BT トラッカーサーバー Copy=コピー (Choose Files)=(ファイルを選択) Videos=ビデオ Audios=オーディオ Pictures=画像 Documents=ドキュメント Applications=アプリケーション Archives=アーカイブ Other=その他 Custom=カスタム Custom Choose File=カスタムファイルを選択 Address=アドレス Client=クライアント Status=ステータス Speed=速度 (local)=(ローカル) No Data=データなし No connected peers=接続中のピアがいません Failed to change some tasks state.=一部のタスクの状態を変更できませんでした。 Confirm Retry=再試行の確認 Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=選択したタスクを再試行しますか? OK をクリックすると同じタスクが作成されます。 Failed to retry this task.=このタスクの再試行に失敗しました。 {successCount} tasks have been retried and {failedCount} tasks are failed.=成功: {{successCount}} 件、失敗: {{failedCount}} 件 Confirm Remove=削除の確認 Are you sure you want to remove the selected task?=選択したタスクを本当に削除しますか? Failed to remove some task(s).=一部のタスクの削除に失敗しました。 Confirm Clear=クリアの確認 Are you sure you want to clear stopped tasks?=停止したタスクをクリアしますか? Download Links:=ダウンロードリンク: Download Now=今すぐダウンロード Download Later=後でダウンロード Open Torrent File=トレントファイルを開く Open Metalink File=Metalink ファイルを開く Support multiple URLs, one URL per line.=複数の URL をサポートします。1 行につき 1 つの URL を入力してください。 Your browser does not support loading file!=お使いのブラウザはファイルの読み込みに対応していません! The selected file type is invalid!=選択したファイルの種類が無効です! Failed to load file!=ファイルの読み込みに失敗しました! Download Completed=ダウンロード完了 BT Download Completed=BT ダウンロード完了 Download Error=ダウンロードエラー AriaNg Url=AriaNg URL Command API Url=コマンド API URL Export Command API=コマンド API をエクスポート Export=エクスポート Copied=コピーしました Pause After Task Created=タスク作成後に一時停止 Language=言語 Theme=テーマ Light=ライト Dark=ダーク Follow system settings=システム設定に従う Debug Mode=デバッグモード Page Title=ページタイトル Preview=プレビュー Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=ヒント: 接頭辞を無視するには "noprefix"、接尾辞を無視するには "nosuffix"、小数桁数を指定するには "scale\=n" タグを使用できます。 Example: ${downspeed:noprefix:nosuffix:scale\=1}=例: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=ページタイトル更新間隔 Enable Browser Notification=ブラウザ通知を有効にする Browser Notification Sound=通知音 Browser Notification Frequency=通知頻度 Unlimited=無制限 High (Up to 10 Notifications / 1 Minute)=高 (最大 1 分間に 10 通知) Middle (Up to 1 Notification / 1 Minute)=中 (最大 1 分間に 1 通知) Low (Up to 1 Notification / 5 Minutes)=低 (最大 5 分間に 1 通知) WebSocket Auto Reconnect Interval=WebSocket 自動再接続間隔 Aria2 RPC Alias=Aria2 RPC 別名 Aria2 RPC Address=Aria2 RPC アドレス Aria2 RPC Protocol=Aria2 RPC プロトコル Aria2 RPC Http Request Method=Aria2 RPC HTTP リクエスト方式 POST method only supports aria2 v1.15.2 and above.=POST メソッドは aria2 v1.15.2 以降のみサポートされます。 Aria2 RPC Request Headers=Aria2 RPC リクエストヘッダー Support multiple request headers, one header per line, each line containing "header name: header value".=複数のリクエストヘッダーをサポートします。各行に "ヘッダー名: ヘッダー値" の形式で入力してください。 Aria2 RPC Secret Token=Aria2 RPC シークレットトークン Activate=有効化 Reset Settings=設定をリセット Confirm Reset=リセットを確認 Are you sure you want to reset all settings?=すべての設定をリセットしますか? Clear Settings History=設定履歴をクリア Are you sure you want to clear all settings history?=設定履歴をすべてクリアしますか? Delete RPC Setting=RPC 設定を削除 Add New RPC Setting=新しい RPC 設定を追加 Are you sure you want to remove rpc setting "{rpcName}"?=RPC 設定 "{{rpcName}}" を削除しますか? Updating Global Stat Interval=グローバル統計更新間隔 Updating Task Information Interval=タスク情報更新間隔 Keyboard Shortcuts=キーボードショートカット Supported Keyboard Shortcuts=サポートされているショートカット Set Focus On Search Box=検索ボックスにフォーカスを設定 Swipe Gesture=スワイプジェスチャ Change Tasks Order by Drag-and-drop=ドラッグ&ドロップでタスクの順序を変更 Action After Creating New Tasks=タスク作成後の動作 Navigate to Task List Page=タスク一覧ページへ移動 Navigate to Task Detail Page=タスク詳細ページへ移動 Action After Retrying Task=タスク再試行後の動作 Navigate to Downloading Tasks Page=ダウンロード中タスクページへ移動 Stay on Current Page=現在のページに留まる Remove Old Tasks After Retrying=再試行後に古いタスクを削除 Confirm Task Removal=タスク削除を確認 Include Prefix When Copying From Task Details=タスク詳細からコピーする際に接頭辞を含める Show Pieces Info In Task Detail Page=タスク詳細ページにピース情報を表示 Pieces Amount is Less than or Equal to {value}=ピース数は {{value}} 以下です RPC List Display Order=RPC リスト表示順 Each Task List Page Uses Independent Display Order=各タスクリストページごとに個別の表示順を使用する Recently Used=最近使用 RPC Alias=RPC 別名 Import / Export AriaNg Settings=AriaNg 設定のインポート/エクスポート Import Settings=設定をインポート Export Settings=設定をエクスポート AriaNg settings data=AriaNg 設定データ Confirm Import=インポートを確認 Are you sure you want to import all settings?=すべての設定をインポートしますか? Invalid settings data format!=設定データの形式が無効です! Data has been copied to clipboard.=データがクリップボードにコピーされました。 Supported Placeholder=サポートされているプレースホルダ AriaNg Title=AriaNg タイトル Current RPC Alias=現在の RPC 別名 Downloading Count=ダウンロード中の数 Waiting Count=待機中の数 Stopped Count=停止中の数 You have disabled notification in your browser. You should change your browser's settings before you enable this function.=ブラウザで通知が無効になっています。通知を有効にする前にブラウザの設定を変更してください。 Language resource has been updated, please reload the page for the changes to take effect.=言語リソースが更新されました。変更を反映するにはページを再読み込みしてください。 Configuration has been modified, please reload the page for the changes to take effect.=設定が変更されました。変更を反映するにはページを再読み込みしてください。 Reload AriaNg=AriaNg を再読み込み Show Secret=シークレットを表示 Hide Secret=シークレットを非表示 Aria2 Version=Aria2 バージョン Enabled Features=有効な機能 Operations=操作 Reconnect=再接続 Save Session=セッションを保存 Shutdown Aria2=Aria2 をシャットダウン Confirm Shutdown=シャットダウンを確認 Are you sure you want to shutdown aria2?=aria2 をシャットダウンしてもよいですか? Session has been saved successfully.=セッションが正常に保存されました。 Aria2 has been shutdown successfully.=Aria2 が正常にシャットダウンされました。 Toggle Navigation=ナビゲーションを切替 Shortcut=ショートカット Global Rate Limit=全体帯域制限 Loading=読み込み中... More Than One Day=1 日以上 Unknown=不明 Bytes=バイト Hours=時間 Minutes=分 Seconds=秒 Milliseconds=ミリ秒 Http=Http Http (Disabled)=Http(無効) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket(無効) WebSocket (Security)=WebSocket(セキュリティ) Http and WebSocket would be disabled when accessing AriaNg via Https.=Https 経由で AriaNg にアクセスすると Http と WebSocket は無効になります。 POST=POST GET=GET Enabled=有効 Disabled=無効 Always=常に Never=なし BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=設定の変更はページを再読み込みすると反映されます。 Logging Time=ログ時間 Log Level=ログレベル Auto Refresh=自動更新 Refresh Now=今すぐ更新 Clear Logs=ログをクリア Are you sure you want to clear debug logs?=デバッグログをクリアしてもよいですか? Show Detail=詳細を表示 Log Detail=ログの詳細 Aria2 RPC Debug=Aria2 RPC デバッグ Aria2 RPC Request Method=Aria2 RPC リクエスト方式 Aria2 RPC Request Parameters=Aria2 RPC リクエストパラメータ Aria2 RPC Response=Aria2 RPC レスポンス Execute=実行 RPC method is illegal!=RPC メソッドが不正です! AriaNg does not support this RPC method!=AriaNg はこの RPC メソッドをサポートしていません! RPC request parameters are invalid!=RPC リクエストのパラメータが無効です! Type is illegal!=タイプが不正です! Parameter is invalid!=パラメータが無効です! Option value cannot be empty!=オプションの値を空にすることはできません! Input number is invalid!=入力された数値が無効です! Input number is below min value!=入力値は最小値 {{value}} 未満です! Input number is above max value!=入力値は最大値 {{value}} を超えています! Input value is invalid!=入力値が無効です! Protocol is invalid!=プロトコルが無効です! RPC host cannot be empty!=RPC ホストを空にすることはできません! RPC secret is not base64 encoded!=RPC シークレットが base64 エンコードされていません! URL is not base64 encoded!=URL が base64 エンコードされていません! Tap to configure and get started with AriaNg.=クリックして設定し、AriaNgを開始してください。 Cannot initialize WebSocket!=WebSocket を初期化できません! Cannot connect to aria2!=aria2 に接続できません! Access Denied!=アクセスが拒否されました! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=このブラウザはデータ保存の最小要件を満たしていないため、AriaNg を使用できません。 [error] unknown=不明なエラーが発生しました。 operation.timeout=操作のタイムアウトです。 resource.notfound=リソースが見つかりません。 resource.notfound.max-file-not-found=リソースが見つかりません。--max-file-not-found オプションを参照してください。 download.aborted.lowest-speed-limit=ダウンロードは速度が低すぎるため中止されました。--lowest-speed-limit オプションを参照してください。 network.problem=ネットワークに問題が発生しました。 resume.notsupported=リジュームはサーバーでサポートされていません。 space.notenough=ディスクに十分な空き容量がありません。 piece.length.different=ピース長が .aria2 コントロールファイルと異なります。--allow-piece-length-change を参照してください。 download.sametime=aria2 は同じファイルを既にダウンロードしています。 download.torrent.sametime=aria2 は同じファイルを既にダウンロードしています。 file.exists=ファイルが既に存在します。--allow-overwrite を参照してください。 file.rename.failed=ファイルの名前変更に失敗しました。--auto-file-renaming を参照してください。 file.open.failed=既存ファイルを開けませんでした。 file.create.failed=新しいファイルの作成または既存ファイルの切り詰めに失敗しました。 io.error=ファイルシステムエラーが発生しました。 directory.create.failed=ディレクトリの作成に失敗しました。 name.resolution.failed=ホスト名の解決に失敗しました。 metalink.file.parse.failed=Metalink ドキュメントの解析に失敗しました。 ftp.command.failed=FTP コマンドが失敗しました。 http.response.header.bad=HTTP レスポンスヘッダが不正または予期しない形式です。 redirects.toomany=リダイレクトが多すぎます。 http.authorization.failed=HTTP 認証に失敗しました。 bencoded.file.parse.failed=bencoded ファイル(通常は .torrent)の解析に失敗しました。 torrent.file.corrupted=.torrent ファイルが破損しているか、aria2 が必要とする情報が欠落しています。 magnet.uri.bad=マグネット URI が不正です。 option.bad=オプションが不正または未認識、または予期しない引数が指定されました。 server.overload=リモートサーバーが過負荷またはメンテナンスのためリクエストを処理できません。 rpc.request.parse.failed=JSON-RPC リクエストの解析に失敗しました。 checksum.failed=チェックサムの検証に失敗しました。 [languages] Czech=チェコ語 German=ドイツ語 English=英語 Spanish=スペイン語 French=フランス語 Italian=イタリア語 Japanese=日本語 Polish=ポーランド語 Russian=ロシア語 Simplified Chinese=簡体字中国語 Traditional Chinese=繁体字中国語 [format] longdate=YYYY/MM/DD HH:mm:ss time.millisecond={{value}} ミリ秒 time.milliseconds={{value}} ミリ秒 time.second={{value}} 秒 time.seconds={{value}} 秒 time.minute={{value}} 分 time.minutes={{value}} 分 time.hour={{value}} 時間 time.hours={{value}} 時間 requires.aria2-version=aria2 v{{version}} 以上が必要です task.new.download-links=ダウンロードリンク ({{count}} 件): task.pieceinfo=完了: {{completed}}, 合計: {{total}} task.error-occurred=エラーが発生しました ({{errorcode}}) task.verifying-percent=検証中 ({{verifiedPercent}}%) settings.file-count=({{count}} ファイル) settings.total-count=(合計: {{count}}) debug.latest-logs=最新 {{count}} 件のログ [rpc.error] unauthorized=認証に失敗しました! [option] true=有効 false=無効 default=デフォルト none=なし hide=非表示 full=フル http=HTTP https=HTTPS ftp=FTP mem=メモリのみ get=GET tunnel=トンネル plain=プレーン arc4=ARC4 binary=バイナリ ascii=ASCII debug=デバッグ info=情報 notice=注意 warn=警告 error=エラー adaptive=適応 epoll=epoll falloc=falloc feedback=フィードバック geom=geom inorder=順次 kqueue=kqueue poll=poll port=ポート prealloc=事前割当 random=ランダム select=セレクト trunc=切り詰め SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=ダウンロード先ディレクトリ dir.description= log.name=ログファイル log.description=ログファイルの名前。- を指定すると標準出力にログを書き込みます。空文字列("")か指定しない場合、ディスクにログは書き込まれません。 max-concurrent-downloads.name=最大同時ダウンロード数 max-concurrent-downloads.description= check-integrity.name=整合性チェック check-integrity.description=チェックサムやハッシュを用いてファイルの整合性を検証します。このオプションは BitTorrent と Metalink(ハッシュあり)、および --checksum を使用した HTTP(S)/FTP ダウンロードにのみ有効です。 continue.name=ダウンロードを継続 continue.description=部分的にダウンロードされたファイルの続きから再開します。ブラウザや他プログラムが先頭から順番にダウンロードしたものを再開するにはこのオプションを使用します。現在、このオプションは HTTP(S)/FTP のみ対象です。 all-proxy.name=プロキシサーバー all-proxy.description=すべてのプロトコルに対してプロキシサーバーを使用します。--http-proxy, --https-proxy, --ftp-proxy で個別に上書き可能です。PROXY の形式は [http://][USER:PASSWORD@]HOST[:PORT] です。 all-proxy-user.name=プロキシユーザー名 all-proxy-user.description= all-proxy-passwd.name=プロキシパスワード all-proxy-passwd.description= checksum.name=チェックサム checksum.description=チェックサムを設定します。形式は TYPE\=DIGEST。TYPE はハッシュ種類、DIGEST は16進ダイジェストです(例: sha-1=...)。このオプションは HTTP(S)/FTP にのみ適用されます。 connect-timeout.name=接続タイムアウト connect-timeout.description=サーバーまたはプロキシへの接続を確立するためのタイムアウト(秒)を入力します。接続確立後は --timeout が使用されます。 dry-run.name=ドライラン dry-run.description=有効を指定すると aria2 はリモートファイルの存在のみを確認し、データはダウンロードしません(HTTP/FTP)。BitTorrent のダウンロードはキャンセルされます。 lowest-speed-limit.name=最低速度制限 lowest-speed-limit.description=ダウンロード速度がこの値(バイト/秒)以下の場合に接続を終了します。0 は制限なし。K または M を付与可能(1K=1024, 1M=1024K)。BitTorrent には影響しません。 max-connection-per-server.name=サーバーごとの最大接続数 max-connection-per-server.description= max-file-not-found.name=ファイル未検出時の最大リトライ回数 max-file-not-found.description=HTTP/FTP サーバから "file not found" を NUM 回受け取った場合にダウンロードを失敗させます。0 を指定して無効化可能。 max-tries.name=最大リトライ回数 max-tries.description=リトライ回数を設定します。0 は無制限。 min-split-size.name=最小分割サイズ min-split-size.description=aria2 は 2*SIZE 未満の範囲で分割しません。K/M を付けられます(例: 1M-1024M)。 netrc-path.name=.netrc パス netrc-path.description= no-netrc.name=netrc を無効化 no-netrc.description= no-proxy.name=プロキシ除外リスト no-proxy.description=カンマ区切りでプロキシを使用しないホスト名/ドメイン/ネットワークを指定します。 out.name=ファイル名 out.description=ダウンロードするファイル名。--dir に対する相対パスです。--force-sequential 使用時は無視されます。 proxy-method.name=プロキシ方式 proxy-method.description=プロキシリクエストで使用する方式を設定します。METHOD は GET または TUNNEL。HTTPS は常に TUNNEL を使用します。 remote-time.name=リモートのタイムスタンプ remote-time.description=HTTP/FTP サーバのタイムスタンプを取得し、ローカルファイルに適用します。 reuse-uri.name=URI 再利用 reuse-uri.description=既に使用された URI を再利用します。 retry-wait.name=リトライ間隔 retry-wait.description=リトライ間に待機する秒数を設定します。SEC > 0 の場合、HTTP 503 の際に再試行します。 server-stat-of.name=サーバー統計出力ファイル server-stat-of.description=サーバーのパフォーマンスプロファイルを保存するファイル名を指定します。--server-stat-if で読み込めます。 server-stat-timeout.name=サーバー統計タイムアウト server-stat-timeout.description=サーバー統計が最後に更新されてからの有効期限(秒)。 split.name=分割数 split.description=N 接続でファイルを分割ダウンロードします。URI が N より多い場合、最初の N を使用し残りをバックアップとして使用します。 stream-piece-selector.name=ピース選択アルゴリズム stream-piece-selector.description=HTTP/FTP ダウンロードで使用するピース選択アルゴリズムを指定します。デフォルトは接続回数を減らす選択を行います。inorder, random, geom などの指定が可能です。 timeout.name=タイムアウト timeout.description= uri-selector.name=URI 選択アルゴリズム uri-selector.description=URI 選択アルゴリズムを指定します。inorder, comment, adaptive など。 check-certificate.name=証明書検証 check-certificate.description= http-accept-gzip.name=GZip を受け入れる http-accept-gzip.description=Accept-Encoding: gzip ヘッダを送信し、サーバが gzip 応答を返す場合は解凍して処理します。 http-auth-challenge.name=認証チャレンジ http-auth-challenge.description=サーバから要求された時のみ Authorization ヘッダを送信します。false の場合は常に送信します。ただし URI にユーザー名とパスワードが含まれている場合は常に送信します。 http-no-cache.name=キャッシュ無効 http-no-cache.description=Cache-Control: no-cache と Pragma ヘッダを送信してキャッシュを防ぎます。 http-user.name=HTTP デフォルトユーザー名 http-user.description= http-passwd.name=HTTP デフォルトパスワード http-passwd.description= http-proxy.name=HTTP プロキシサーバー http-proxy.description= http-proxy-user.name=HTTP プロキシユーザー名 http-proxy-user.description= http-proxy-passwd.name=HTTP プロキシパスワード http-proxy-passwd.description= https-proxy.name=HTTPS プロキシサーバー https-proxy.description= https-proxy-user.name=HTTPS プロキシユーザー名 https-proxy-user.description= https-proxy-passwd.name=HTTPS プロキシパスワード https-proxy-passwd.description= referer.name=Referer referer.description=HTTP Referer を設定します。* を指定するとダウンロード URI が Referer として使用されます。 enable-http-keep-alive.name=HTTP Keep-Alive を有効にする enable-http-keep-alive.description=HTTP/1.1 の持続接続を有効にします。 enable-http-pipelining.name=HTTP パイプラインを有効にする enable-http-pipelining.description=HTTP/1.1 パイプラインを有効にします。 header.name=カスタムヘッダ header.description=HTTP リクエストヘッダに HEADER を追加します。各行に "ヘッダー名: ヘッダー値" の形式で記述します。 save-cookies.name=クッキー保存先 save-cookies.description=Mozilla/Firefox/Netscape 形式のファイルにクッキーを保存します。既存ファイルがある場合は上書きされます。 use-head.name=HEAD メソッドを使用 use-head.description=最初のリクエストに HEAD メソッドを使用します。 user-agent.name=カスタムユーザーエージェント user-agent.description= ftp-user.name=FTP デフォルトユーザー名 ftp-user.description= ftp-passwd.name=FTP デフォルトパスワード ftp-passwd.description=URI にユーザー名が埋め込まれパスワードがない場合、.netrc で解決を試みます。 ftp-pasv.name=パッシブモード ftp-pasv.description=FTP のパッシブモードを使用します。false の場合はアクティブモードを使用します。 ftp-proxy.name=FTP プロキシサーバー ftp-proxy.description= ftp-proxy-user.name=FTP プロキシユーザー名 ftp-proxy-user.description= ftp-proxy-passwd.name=FTP プロキシパスワード ftp-proxy-passwd.description= ftp-type.name=FTP 転送タイプ ftp-type.description= ftp-reuse-connection.name=FTP 接続再利用 ftp-reuse-connection.description= ssh-host-key-md.name=SSH ホスト公開鍵のダイジェスト ssh-host-key-md.description=SFTP 使用時にホスト公開鍵のハッシュを検証します。形式は TYPE=DIGEST です(例: sha-1=...)。 bt-detach-seed-only.name=シード状態のタスクを同時制限から除外シードのみ分離 bt-detach-seed-only.description=シードのみを同時アクティブダウンロード数から除外します(例: -j3 で 3 つのダウンロードのうち 1 つがシードになった場合、カウントから外れて次の待機中が開始されます)。 bt-enable-hook-after-hash-check.name=ハッシュチェック後のフックを有効にする bt-enable-hook-after-hash-check.description=ハッシュチェック後にフックコマンドを呼び出すことを許可します。 bt-enable-lpd.name=ローカルピア発見を有効にする bt-enable-lpd.description=Local Peer Discovery を有効にします。private フラグ付きトレントでは無効になります。 bt-exclude-tracker.name=トラッカー除外 bt-exclude-tracker.description=除外する BitTorrent トラッカー URL のカンマ区切りリスト。* を使うとすべて除外します。 bt-external-ip.name=外部 IP bt-external-ip.description=BitTorrent/DHT で使用する外部 IP を指定します。DHT でプライベートネットワークを使用する場合に重要です。 bt-force-encryption.name=暗号化を強制 bt-force-encryption.description=BitTorrent ペイロード暗号化を arc4 で必須にします。 bt-hash-check-seed.name=シード前のハッシュチェック bt-hash-check-seed.description=hash-check の後、ファイルが完全であればシードを継続します。 bt-load-saved-metadata.name=保存済みメタデータを読み込む bt-load-saved-metadata.description=マグネットで DHT からメタデータを取得する前に --bt-save-metadata で保存したファイルを読み込みます。 bt-max-open-files.name=最大オープンファイル数 bt-max-open-files.description=BitTorrent/Metalink のマルチファイルダウンロードで開く最大ファイル数を指定します。 bt-max-peers.name=最大ピア数 bt-max-peers.description=トレントごとの最大ピア数を指定します。0 は無制限。 bt-metadata-only.name=メタデータのみダウンロード bt-metadata-only.description=メタデータのみをダウンロードし、実ファイルはダウンロードしません(マグネットURI 時)。 bt-min-crypto-level.name=最小暗号レベル bt-min-crypto-level.description=使用する暗号方式の最小レベルを設定します。 bt-prioritize-piece.name=ピース優先 bt-prioritize-piece.description=各ファイルの先頭と末尾を優先的にダウンロードします。head, tail キーワードとサイズ指定が可能です。 bt-remove-unselected-file.name=未選択ファイルを削除 bt-remove-unselected-file.description=ダウンロード完了時に選択されていないファイルを削除します。注意して使用してください。 bt-require-crypto.name=暗号を要求 bt-require-crypto.description=従来の BitTorrent プロトコルを拒否し、常に暗号化された接続のみを許可します。 bt-request-peer-speed-limit.name=要求ピア速度制限 bt-request-peer-speed-limit.description=各トレントの合計ダウンロード速度が指定値未満の場合、一時的にピア数を増やして速度向上を試みます。 bt-save-metadata.name=メタデータを保存 bt-save-metadata.description=マグネットURI を使用した際に .torrent メタデータを保存します。ファイル名は info-hash に基づきます。 bt-seed-unverified.name=未検証ファイルをシード bt-seed-unverified.description=ピースハッシュ検証を行わずに既存ファイルをシードします。 bt-stop-timeout.name=シード停止タイムアウト bt-stop-timeout.description=ダウンロード速度が連続 SEC 秒間 0 の場合にシードを停止します。0 で無効。 bt-tracker.name=トラッカー bt-tracker.description=追加する BitTorrent トラッカーの URI をカンマ区切りで指定します。 bt-tracker-connect-timeout.name=トラッカ接続タイムアウト bt-tracker-connect-timeout.description=トラッカへの TCP 接続確立のタイムアウト(秒)。 bt-tracker-interval.name=トラッカ接続間隔 bt-tracker-interval.description=トラッカへのリクエスト間隔(秒)。0 を指定すると応答や進捗に基づいて自動決定されます。 bt-tracker-timeout.name=トラッカタイムアウト bt-tracker-timeout.description= dht-file-path.name=DHT ファイル (IPv4) dht-file-path.description=DHT ルーティングテーブルファイル(IPv4)のパスを変更します。 dht-file-path6.name=DHT ファイル (IPv6) dht-file-path6.description=DHT ルーティングテーブルファイル(IPv6)のパスを変更します。 dht-listen-port.name=DHT リッスンポート dht-listen-port.description=DHT(IPv4/IPv6)と UDP トラッカで使用する受信 UDP ポートを設定します。カンマ区切りや範囲指定が可能です。 dht-message-timeout.name=DHT メッセージタイムアウト dht-message-timeout.description= enable-dht.name=DHT を有効にする (IPv4) enable-dht.description=DHT 機能を有効にします。private フラグ付きトレントでは無効になります。 enable-dht6.name=DHT を有効にする (IPv6) enable-dht6.description=DHT IPv6 機能を有効にします。 enable-peer-exchange.name=ピア交換を有効にする enable-peer-exchange.description=Peer Exchange 拡張を有効にします。private フラグ付きトレントでは無効になります。 follow-torrent.name=トレントに従う follow-torrent.description=.torrent ファイルや content-type が application/x-bittorrent の場合、それを解析して中のファイルをダウンロードします。mem を指定するとディスクに書き込まずメモリ上で処理します。 listen-port.name=リスンポート listen-port.description=BitTorrent の TCP リスンポートを設定します。カンマ区切りや範囲指定が可能です。 max-overall-upload-limit.name=全体アップロード上限 max-overall-upload-limit.description=全体のアップロード速度上限(バイト/秒)。0 は無制限。 max-upload-limit.name=アップロード上限 max-upload-limit.description=各トレントの最大アップロード速度(バイト/秒)。0 は無制限。 peer-id-prefix.name=ピア ID プレフィックス peer-id-prefix.description=ピア ID のプレフィックスを指定します。20 バイトより長い場合は先頭 20 バイトを使用します。 peer-agent.name=ピアエージェント peer-agent.description=ピアプロトコルで使用されるクライアントバージョンの文字列を指定します。 seed-ratio.name=最小シード比率 seed-ratio.description=シードを継続する比率を指定します。1.0 以上を推奨します。0.0 を指定すると比率に関係なくシードします。 seed-time.name=最小シード時間 seed-time.description=シード時間(分)。--seed-time=0 でシードを無効化できます。 follow-metalink.name=Metalink に従う follow-metalink.description=.meta4/.metalink ファイルや content-type が application/metalink4+xml の場合、それを解析して中のファイルをダウンロードします。mem 指定でディスクに書き込みません。 metalink-base-uri.name=ベース URI metalink-base-uri.description=ローカルに保存された metalink の相対 URI 解決に使用するベース URI を指定します。ディレクトリを指す場合は / で終わらせます。 metalink-language.name=言語 metalink-language.description= metalink-location.name=サーバーの優先ロケーション metalink-location.description=優先するサーバーロケーションのカンマ区切りリスト(例: jp, us)。 metalink-os.name=OS metalink-os.description=ダウンロード対象ファイルの OS を指定します。 metalink-version.name=バージョン metalink-version.description=ダウンロード対象ファイルのバージョンを指定します。 metalink-preferred-protocol.name=優先プロトコル metalink-preferred-protocol.description=優先するプロトコルを指定します。http, https, ftp, none を指定可能です。 metalink-enable-unique-protocol.name=ユニークプロトコルを有効にする metalink-enable-unique-protocol.description=同一ミラーに複数プロトコルが存在する場合に一つを選んで使用します。 enable-rpc.name=JSON-RPC/XML-RPC サーバを有効にする enable-rpc.description= pause-metadata.name=メタデータダウンロード後にポーズ pause-metadata.description=メタデータから生成されたダウンロード(.torrent, magnet, metalink)をポーズします。--enable-rpc=true のときに有効です。 rpc-allow-origin-all.name=全オリジン許可 rpc-allow-origin-all.description=RPC レスポンスに Access-Control-Allow-Origin: * を追加します。 rpc-listen-all.name=全インターフェースで待機 rpc-listen-all.description=JSON-RPC/XML-RPC のリクエストを全インターフェースで受け付けます。false の場合はローカルループのみ待機します。 rpc-listen-port.name=リッスンポート rpc-listen-port.description= rpc-max-request-size.name=最大リクエストサイズ rpc-max-request-size.description=JSON-RPC/XML-RPC の最大リクエストサイズ(バイト)。これを超えるリクエストは切断されます。 rpc-save-upload-metadata.name=アップロードメタデータを保存 rpc-save-upload-metadata.description=aria2.addTorrent()/aria2.addMetalink() でアップロードされたメタデータを --dir に保存します。false を指定すると保存されません。 rpc-secure.name=SSL/TLS を有効にする rpc-secure.description=RPC トランスポートを SSL/TLS で暗号化します。クライアントは https/wss を使用します。--rpc-certificate と --rpc-private-key を指定してください。 allow-overwrite.name=上書きを許可 allow-overwrite.description=対応するコントロールファイルがない場合、ダウンロードを最初から開始します。--auto-file-renaming と関連します。 allow-piece-length-change.name=ピース長変更を許可 allow-piece-length-change.description=ピース長がコントロールファイルと異なる場合にダウンロードを続行するかどうかを指定します。true で続行しますが進捗の一部が失われます。 always-resume.name=常にリジューム always-resume.description=常にリジュームを試みます。false の場合、すべての URI がリジューム非対応と判定されれば最初からダウンロードします。 async-dns.name=非同期 DNS async-dns.description= auto-file-renaming.name=自動ファイル名変更 auto-file-renaming.description=同名ファイルが存在する場合に自動的にファイル名を変更します(HTTP(S)/FTP のみ)。 auto-save-interval.name=自動保存間隔 auto-save-interval.description=コントロールファイル(*.aria2)を保存する間隔(秒)。0 で保存しません。停止時には保存されます。0-600 の範囲。 conditional-get.name=更新時のみダウンロード (Conditional GET) conditional-get.description=ローカルファイルがリモートより古い場合のみダウンロードします(HTTP(S))。Metalink の場合は無効です。 conf-path.name=設定ファイル conf-path.description= console-log-level.name=コンソールログレベル console-log-level.description= content-disposition-default-utf8.name=ファイル名の文字コードをUTF-8として処理 content-disposition-default-utf8.description=Content-Disposition ヘッダの引用された文字列を ISO-8859-1 ではなく UTF-8 として扱います。 daemon.name=デーモン有効化 daemon.description= deferred-input.name=遅延入力 deferred-input.description=有効を指定すると --input-file の URI/オプションを一度に読み込まず必要時に逐次読み込みます。大きな入力ファイルでメモリ使用量を削減できます。 disable-ipv6.name=IPv6 を無効化 disable-ipv6.description= disk-cache.name=ディスクキャッシュ disk-cache.description=ディスクキャッシュを有効にします。サイズを 0 にすると無効化。 download-result.name=ダウンロード結果フォーマット download-result.description=ダウンロード結果の表示形式を変更します。opt=default/full/hidden など。 dscp.name=DSCP dscp.description=BitTorrent トラフィックの DSCP 値を設定します。 rlimit-nofile.name=オープンファイル記述子上限 rlimit-nofile.description=オープンファイル記述子のソフトリミットを設定します。posix 対応システムでのみ有効。 enable-color.name=ターミナルで色を有効にする enable-color.description= enable-mmap.name=mmap を有効にする enable-mmap.description=ファイルをメモリマップします。ファイル割当方式との兼ね合いに注意してください。 event-poll.name=イベントポーリング方式 event-poll.description=epoll/kqueue/port/poll/select などを指定します。システム依存です。 file-allocation.name=ファイル割当方式 file-allocation.description=none/prealloc/falloc/trunc などを指定します。使用するファイルシステムによって推奨方式が異なります。 force-save.name=強制保存 force-save.description=ダウンロード完了や削除時でも --save-session に保存します。 save-not-found.name=未発見ファイルも保存 save-not-found.description=ファイルが見つからない場合でも --save-session に保存します。 hash-check-only.name=ハッシュ検証のみ hash-check-only.description=有効を指定するとハッシュ検証後にダウンロードを取り消します。 human-readable.name=人間可読出力 human-readable.description=サイズや速度を読みやすい単位(KiB, MiB等)で表示します。 keep-unfinished-download-result.name=未完了結果を保持 keep-unfinished-download-result.description=未完了のダウンロード結果を --max-download-result を超えても保持します。 max-download-result.name=保存するダウンロード結果数 max-download-result.description=メモリに保持するダウンロード結果の最大数を指定します。0 は保存しない。 max-mmap-limit.name=mmap の最大サイズ max-mmap-limit.description=mmap を有効にするファイルサイズの上限を指定します。 max-resume-failure-tries.name=リジューム失敗最大回数 max-resume-failure-tries.description=--always-resume=false 時に N 回リジューム失敗で最初からダウンロードします。 min-tls-version.name=最小 TLS バージョン min-tls-version.description=許容する最低 TLS バージョンを指定します。 log-level.name=ログレベル log-level.description= optimize-concurrent-downloads.name=同時ダウンロード最適化 optimize-concurrent-downloads.description=利用可能帯域幅に基づき同時ダウンロード数を最適化します。 piece-length.name=ピース長 piece-length.description=HTTP/FTP ダウンロード時のピース長を設定します。Metalink のハッシュがある場合は無視されます。 show-console-readout.name=コンソール出力を表示 show-console-readout.description= summary-interval.name=サマリ表示間隔 summary-interval.description=進捗サマリを表示する間隔(秒)。0 で抑制されます。 max-overall-download-limit.name=全体ダウンロード上限 max-overall-download-limit.description=全体のダウンロード速度上限(バイト/秒)。0 は無制限。 max-download-limit.name=ダウンロード上限 max-download-limit.description=各ダウンロードの最大速度(バイト/秒)。0 は無制限。 no-conf.name=設定ファイルを無効化 no-conf.description= no-file-allocation-limit.name=ファイル割当制限なし no-file-allocation-limit.description=サイズ 未満のファイルに対して割当を行わないようにします。 parameterized-uri.name=パラメタライズド URI を有効にする parameterized-uri.description=波括弧や数値レンジを使った URI 指定を有効にします。 quiet.name=コンソール出力を抑制 quiet.description= realtime-chunk-checksum.name=リアルタイムチャンクチェックサム realtime-chunk-checksum.description=ダウンロード中にチャンクのチェックサムを計算して検証します。 remove-control-file.name=コントロールファイルを削除 remove-control-file.description=ダウンロード前にコントロールファイルを削除します。--allow-overwrite と併用の挙動に注意。 save-session.name=セッション保存ファイル save-session.description=終了時にエラー/未完了のダウンロードを保存するファイル名を指定します。拡張子に .gz をつけると gzip 圧縮されます。 save-session-interval.name=セッション保存間隔 save-session-interval.description=--save-session ファイルを保存する間隔(秒)。0 で終了時のみ保存。 socket-recv-buffer-size.name=ソケット受信バッファサイズ socket-recv-buffer-size.description=ソケットの SO_RCVBUF を設定します。0 は無効。 stop.name=自動停止時間 stop.description=10 秒経過後にアプリを停止します。0 で無効。 truncate-console-readout.name=コンソール出力を切り詰め truncate-console-readout.description=コンソール出力を一行に収まるように切り詰めます。 ================================================ FILE: src/langs/pl_PL.txt ================================================ [global] AriaNg Version=Wersja AriaNg Operation Result=Wynik operacji Operation Succeeded=Operacja zakończona sukcesem is connected=jest połączony Error=Błąd OK=OK Confirm=Potwierdź Cancel=Anuluj Close=Zamknij True=Prawda False=Fałsz DEBUG=Debug INFO=Informacja WARN=Ostrzeżenie ERROR=Błąd Connecting=Łączenie Connected=Połączony Disconnected=Rozłączony Reconnecting=Ponowne łączenie Waiting to reconnect=Oczekiwanie na ponowne połączenie Global=Globalne New=Nowy Start=Start Pause=Pauza Retry=Ponów próbę Retry Selected Tasks=Ponów wybrane zadania Delete=Usuń Select All=Zaznacz wszystko Select None=Odznacz wszystko Select Invert=Odwrotne zaznaczenie Select All Failed Tasks=Zaznacz wszystkie nieudane zadania Select All Completed Tasks=Zaznacz wszystkie ukończone zadania Select All Tasks=Zaznacz wszystkie zadania Display Order=Kolejność wyświetlania Copy Download Url=Kopiuj adres URL pobierania Copy Magnet Link=Kopiuj link Magnet Help=Pomoc Search=Szukaj Default=Domyślne Expand=Rozwiń Collapse=Zwiń Expand All=Rozwiń wszystko Collapse All=Zwiń wszystko Open=Otwórz Save=Zapisz Import=Importuj Remove Task=Usuń zadanie Remove Selected Task=Usuń wybrane zadanie Clear Stopped Tasks=Wyczyść zatrzymane zadania Click to view task detail=Kliknij, aby zobaczyć szczegóły zadania By File Name=Według nazwy pliku By File Size=Według rozmiaru pliku By Progress=Według postępu By Selected Status=Według wybranego statusu By Remaining=Według pozostałej ilości By Download Speed=Według prędkości pobierania By Upload Speed=Według prędkości wysyłania By Peer Address=Według adresu peer By Client Name=Według nazwy klienta Filters=Filtry Download=Pobierz Upload=Wyślij Downloading=Pobieranie Pending Verification=Oczekuje na weryfikację Verifying=Weryfikacja Seeding=Udostępnianie Waiting=Oczekiwanie Paused=Wstrzymane Completed=Zakończone Error Occurred=Wystąpił błąd Removed=Usunięte Finished / Stopped=Zakończone / Zatrzymane Uncompleted=Niezakończone Click to pin=Kliknij, aby przypiąć Settings=Ustawienia AriaNg Settings=Ustawienia AriaNg Aria2 Settings=Ustawienia Aria2 Basic Settings=Podstawowe ustawienia HTTP/FTP/SFTP Settings=Ustawienia HTTP/FTP/SFTP HTTP Settings=Ustawienia HTTP FTP/SFTP Settings=Ustawienia FTP/SFTP BitTorrent Settings=Ustawienia BitTorrent Metalink Settings=Ustawienia Metalink RPC Settings=Ustawienia RPC Advanced Settings=Zaawansowane ustawienia AriaNg Debug Console=Konsola debugowania AriaNg Aria2 Status=Status Aria2 File Name=Nazwa pliku File Size=Rozmiar pliku Progress=Postęp Share Ratio=Współczynnik udostępniania Remaining=Pozostało Download Speed=Prędkość pobierania Upload Speed=Prędkość wysyłania Links=Linki Torrent File=Plik torrent Metalink File=Plik Metalink File Name:=Nazwa pliku: Options=Opcje Overview=Przegląd Pieces=Fragmenty Files=Pliki Peers=Peery Task Name=Nazwa zadania Task Size=Rozmiar zadania Task Status=Status zadania Error Description=Opis błędu Health Percentage=Procent zdrowia Info Hash=Hash informacji Seeders=Udostępniający Connections=Połączenia Seed Creation Time=Czas utworzenia seeda Download Url=Adres URL pobierania Download Dir=Katalog pobierania BT Tracker Servers=Serwery BT Tracker Copy=Kopiuj (Choose Files)=(Wybierz pliki) Videos=Wideo Audios=Audio Pictures=Obrazy Documents=Dokumenty Applications=Aplikacje Archives=Archiwa Other=Inne Custom=Niestandardowe Custom Choose File=Niestandardowy wybór pliku Address=Adres Client=Klient Status=Status Speed=Prędkość (local)=(lokalne) No Data=Brak danych No connected peers=Brak połączonych peerów Failed to change some tasks state.=Nie udało się zmienić stanu niektórych zadań. Confirm Retry=Potwierdź ponowną próbę Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=Czy na pewno chcesz ponowić wybrane zadanie? AriaNg utworzy to samo zadanie po kliknięciu OK. Failed to retry this task.=Nie udało się ponowić tego zadania. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} zadania zostały ponowione, a {{failedCount}} zadań nie powiodło się. Confirm Remove=Potwierdź usunięcie Are you sure you want to remove the selected task?=Czy na pewno chcesz usunąć wybrane zadanie? Failed to remove some task(s).=Nie udało się usunąć niektórych zadań. Confirm Clear=Potwierdź wyczyszczenie Are you sure you want to clear stopped tasks?=Czy na pewno chcesz wyczyścić zatrzymane zadania? Download Links:=Linki do pobrania: Download Now=Pobierz teraz Download Later=Pobierz później Open Torrent File=Otwórz plik torrent Open Metalink File=Otwórz plik Metalink Support multiple URLs, one URL per line.=Obsługuj wiele adresów URL, jeden adres URL na linię. Your browser does not support loading file!=Twoja przeglądarka nie obsługuje ładowania plików! The selected file type is invalid!=Wybrany typ pliku jest nieprawidłowy! Failed to load file!=Nie udało się załadować pliku! Download Completed=Pobieranie zakończone BT Download Completed=Pobieranie BT zakończone Download Error=Błąd pobierania AriaNg Url=Adres URL AriaNg Command API Url=Adres URL API poleceń Export Command API=Eksportuj API poleceń Export=Eksportuj Copied=Skopiowano Pause After Task Created=Wstrzymaj po utworzeniu zadania Language=Język Theme=Motyw Light=Jasny Dark=Ciemny Follow system settings=Dostosuj do ustawień systemowych Debug Mode=Tryb debugowania Page Title=Tytuł strony Preview=Podgląd Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Wskazówki: Możesz użyć tagu "noprefix", aby zignorować prefiks, tagu "nosuffix", aby zignorować sufiks, oraz tagu "scale\=n", aby ustawić precyzję dziesiętną. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Przykład: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Interwał aktualizacji tytułu strony Enable Browser Notification=Włącz powiadomienia w przeglądarce Browser Notification Sound=Dźwięk powiadomienia w przeglądarce Browser Notification Frequency=Częstotliwość powiadomień w przeglądarce Unlimited=Nieograniczone High (Up to 10 Notifications / 1 Minute)=Wysoka (do 10 powiadomień / 1 minuta) Middle (Up to 1 Notification / 1 Minute)=Średnia (do 1 powiadomienia / 1 minuta) Low (Up to 1 Notification / 5 Minutes)=Niska (do 1 powiadomienia / 5 minut) WebSocket Auto Reconnect Interval=Interwał automatycznego ponownego łączenia WebSocket Aria2 RPC Alias=Alias RPC Aria2 Aria2 RPC Address=Adres RPC Aria2 Aria2 RPC Protocol=Protokół RPC Aria2 Aria2 RPC Http Request Method=Metoda żądania HTTP RPC Aria2 POST method only supports aria2 v1.15.2 and above.=Metoda POST obsługuje tylko aria2 w wersji 1.15.2 i nowszej. Aria2 RPC Request Headers=Nagłówki żądania RPC Aria2 Support multiple request headers, one header per line, each line containing "header name: header value".=Obsługuj wiele nagłówków żądania, jeden nagłówek na linię, każda linia zawiera "nazwa nagłówka: wartość nagłówka". Aria2 RPC Secret Token=Tajny token RPC Aria2 Activate=Aktywuj Reset Settings=Resetuj ustawienia Confirm Reset=Potwierdź reset Are you sure you want to reset all settings?=Czy na pewno chcesz zresetować wszystkie ustawienia? Clear Settings History=Wyczyść historię ustawień Are you sure you want to clear all settings history?=Czy na pewno chcesz wyczyścić całą historię ustawień? Delete RPC Setting=Usuń ustawienie RPC Add New RPC Setting=Dodaj nowe ustawienie RPC Are you sure you want to remove rpc setting "{rpcName}"?=Czy na pewno chcesz usunąć ustawienie RPC "{{rpcName}}"? Updating Global Stat Interval=Interwał aktualizacji statystyk globalnych Updating Task Information Interval=Interwał aktualizacji informacji o zadaniach Keyboard Shortcuts=Skróty klawiszowe Supported Keyboard Shortcuts=Obsługiwane skróty klawiszowe Set Focus On Search Box=Ustaw fokus na polu wyszukiwania Swipe Gesture=Gest przesuwania Change Tasks Order by Drag-and-drop=Zmień kolejność zadań przez przeciąganie i upuszczanie Action After Creating New Tasks=Akcja po utworzeniu nowych zadań Navigate to Task List Page=Przejdź do strony listy zadań Navigate to Task Detail Page=Przejdź do strony szczegółów zadania Action After Retrying Task=Akcja po ponowieniu zadania Navigate to Downloading Tasks Page=Przejdź do strony pobierania zadań Stay on Current Page=Pozostań na bieżącej stronie Remove Old Tasks After Retrying=Usuń stare zadania po ponowieniu Confirm Task Removal=Potwierdź usunięcie zadania Include Prefix When Copying From Task Details=Uwzględnij prefiks podczas kopiowania ze szczegółów zadania Show Pieces Info In Task Detail Page=Pokaż informacje o fragmentach na stronie szczegółów zadania Pieces Amount is Less than or Equal to {value}=Liczba fragmentów jest mniejsza lub równa {{value}} RPC List Display Order=Kolejność wyświetlania listy RPC Each Task List Page Uses Independent Display Order=Każda strona listy zadań używa niezależnej kolejności wyświetlania Recently Used=Ostatnio używane RPC Alias=Alias RPC Import / Export AriaNg Settings=Importuj / Eksportuj ustawienia AriaNg Import Settings=Importuj ustawienia Export Settings=Eksportuj ustawienia AriaNg settings data=Dane ustawień AriaNg Confirm Import=Potwierdź import Are you sure you want to import all settings?=Czy na pewno chcesz zaimportować wszystkie ustawienia? Invalid settings data format!=Nieprawidłowy format danych ustawień! Data has been copied to clipboard.=Dane zostały skopiowane do schowka. Supported Placeholder=Obsługiwany zastępczy AriaNg Title=Tytuł AriaNg Current RPC Alias=Bieżący alias RPC Downloading Count=Liczba pobieranych Waiting Count=Liczba oczekujących Stopped Count=Liczba zatrzymanych You have disabled notification in your browser. You should change your browser's settings before you enable this function.=Wyłączyłeś powiadomienia w przeglądarce. Powinieneś zmienić ustawienia przeglądarki przed włączeniem tej funkcji. Language resource has been updated, please reload the page for the changes to take effect.=Zasób językowy został zaktualizowany, przeładuj stronę, aby zmiany zostały zastosowane. Configuration has been modified, please reload the page for the changes to take effect.=Konfiguracja została zmodyfikowana, przeładuj stronę, aby zmiany zostały zastosowane. Reload AriaNg=Przeładuj AriaNg Show Secret=Pokaż sekret Hide Secret=Ukryj sekret Aria2 Version=Wersja Aria2 Enabled Features=Włączone funkcje Operations=Operacje Reconnect=Ponowne łączenie Save Session=Zapisz sesję Shutdown Aria2=Wyłącz Aria2 Confirm Shutdown=Potwierdź wyłączenie Are you sure you want to shutdown aria2?=Czy na pewno chcesz wyłączyć aria2? Session has been saved successfully.=Sesja została pomyślnie zapisana. Aria2 has been shutdown successfully.=Aria2 zostało pomyślnie wyłączone. Toggle Navigation=Przełącz nawigację Shortcut=Skrót Global Rate Limit=Globalne ograniczenie prędkości Loading=Ładowanie... More Than One Day=Więcej niż 1 dzień Unknown=Nieznane Bytes=Bajty Hours=Godziny Minutes=Minuty Seconds=Sekundy Milliseconds=Milisekundy Http=Http Http (Disabled)=Http (wyłączone) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (wyłączone) WebSocket (Security)=WebSocket (bezpieczeństwo) Http and WebSocket would be disabled when accessing AriaNg via Https.=Http i WebSocket będą wyłączone podczas dostępu do AriaNg przez Https. POST=POST GET=GET Enabled=Włączone Disabled=Wyłączone Always=Zawsze Never=Nigdy BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=Zmiany w ustawieniach zostaną zastosowane po odświeżeniu strony. Logging Time=Czas logowania Log Level=Poziom logowania Auto Refresh=Automatyczne odświeżanie Refresh Now=Odśwież teraz Clear Logs=Wyczyść logi Are you sure you want to clear debug logs?=Czy na pewno chcesz wyczyścić logi debugowania? Show Detail=Pokaż szczegóły Log Detail=Szczegóły logu Aria2 RPC Debug=Debugowanie RPC Aria2 Aria2 RPC Request Method=Metoda żądania RPC Aria2 Aria2 RPC Request Parameters=Parametry żądania RPC Aria2 Aria2 RPC Response=Odpowiedź RPC Aria2 Execute=Wykonaj RPC method is illegal!=Metoda RPC jest nielegalna! AriaNg does not support this RPC method!=AriaNg nie obsługuje tej metody RPC! RPC request parameters are invalid!=Parametry żądania RPC są nieprawidłowe! Type is illegal!=Typ jest nielegalny! Parameter is invalid!=Parametr jest nieprawidłowy! Option value cannot be empty!=Wartość opcji nie może być pusta! Input number is invalid!=Wprowadzona liczba jest nieprawidłowa! Input number is below min value!=Wprowadzona liczba jest poniżej minimalnej wartości {{value}}! Input number is above max value!=Wprowadzona liczba jest powyżej maksymalnej wartości {{value}}! Input value is invalid!=Wprowadzona wartość jest nieprawidłowa! Protocol is invalid!=Protokół jest nieprawidłowy! RPC host cannot be empty!=Host RPC nie może być pusty! RPC secret is not base64 encoded!=Sekret RPC nie jest zakodowany w base64! URL is not base64 encoded!=URL nie jest zakodowany w base64! Tap to configure and get started with AriaNg.=Kliknij, aby skonfigurować i rozpocząć pracę z AriaNg. Cannot initialize WebSocket!=Nie można zainicjować WebSocket! Cannot connect to aria2!=Nie można połączyć się z aria2! Access Denied!=Odmowa dostępu! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=Nie możesz używać AriaNg, ponieważ ta przeglądarka nie spełnia minimalnych wymagań dotyczących przechowywania danych. [error] unknown=Wystąpił nieznany błąd. operation.timeout=Przekroczono limit czasu operacji. resource.notfound=Zasób nie został znaleziony. resource.notfound.max-file-not-found=Zasób nie został znaleziony. Zobacz opcję --max-file-not-found. download.aborted.lowest-speed-limit=Pobieranie zostało przerwane, ponieważ prędkość pobierania była zbyt niska. Zobacz opcję --lowest-speed-limit. network.problem=Wystąpił problem z siecią. resume.notsupported=Zdalny serwer nie obsługuje wznowienia. space.notenough=Brak wystarczającej ilości miejsca na dysku. piece.length.different=Długość fragmentu różniła się od tej w pliku kontrolnym .aria2. Zobacz opcję --allow-piece-length-change. download.sametime=aria2 pobierało ten sam plik w tym samym czasie. download.torrent.sametime=aria2 pobierało ten sam plik w tym samym czasie. file.exists=Plik już istnieje. Zobacz opcję --allow-overwrite. file.rename.failed=Nie udało się zmienić nazwy pliku. Zobacz opcję --auto-file-renaming. file.open.failed=Nie udało się otworzyć istniejącego pliku. file.create.failed=Nie udało się utworzyć nowego pliku lub przyciąć istniejącego pliku. io.error=Wystąpił błąd systemu plików. directory.create.failed=Nie udało się utworzyć katalogu. name.resolution.failed=Nie udało się rozwiązać nazwy domeny. metalink.file.parse.failed=Nie udało się przeanalizować dokumentu Metalink. ftp.command.failed=Polecenie FTP nie powiodło się. http.response.header.bad=Nagłówek odpowiedzi HTTP był nieprawidłowy lub nieoczekiwany. redirects.toomany=Wystąpiło zbyt wiele przekierowań. http.authorization.failed=Autoryzacja HTTP nie powiodła się. bencoded.file.parse.failed=Nie udało się przeanalizować pliku zakodowanego w bencode (zwykle plik ".torrent"). torrent.file.corrupted=Plik ".torrent" był uszkodzony lub brakowało informacji potrzebnych dla aria2. magnet.uri.bad=Link Magnet był nieprawidłowy. option.bad=Podano nieprawidłową/nieznaną opcję lub nieoczekiwany argument opcji. server.overload=Zdalny serwer nie mógł obsłużyć żądania z powodu tymczasowego przeciążenia lub konserwacji. rpc.request.parse.failed=Nie udało się przeanalizować żądania JSON-RPC. checksum.failed=Weryfikacja sumy kontrolnej nie powiodła się. [languages] Czech=Czeski German=Niemiecki English=Angielski Spanish=Hiszpański French=Francuski Italian=Włoski Japanese=Japoński Polish=Polski Russian=Rosyjski Simplified Chinese=Chiński uproszczony Traditional Chinese=Chiński tradycyjny [format] longdate=MM/DD/YYYY HH:mm:ss time.millisecond={{value}} Milisekunda time.milliseconds={{value}} Milisekundy time.second={{value}} Sekunda time.seconds={{value}} Sekundy time.minute={{value}} Minuta time.minutes={{value}} Minuty time.hour={{value}} Godzina time.hours={{value}} Godziny requires.aria2-version=Wymaga aria2 w wersji {{version}} lub wyższej task.new.download-links=Linki do pobrania ({{count}} linków): task.pieceinfo=Ukończono: {{completed}}, Łącznie: {{total}} task.error-occurred=Wystąpił błąd ({{errorcode}}) task.verifying-percent=Weryfikacja ({{verifiedPercent}}%) settings.file-count=({{count}} plików) settings.total-count=(Łączna liczba: {{count}}) debug.latest-logs=Ostatnie {{count}} logi [rpc.error] unauthorized=Autoryzacja nie powiodła się! [option] true=Prawda false=Fałsz default=Domyślne none=Brak hide=Ukryj full=Pełne http=Http https=Https ftp=Ftp mem=Tylko pamięć get=GET tunnel=TUNNEL plain=Zwykłe arc4=ARC4 binary=Binarne ascii=ASCII debug=Debug info=Informacja notice=Uwaga warn=Ostrzeżenie error=Błąd adaptive=adaptacyjne epoll=epoll falloc=falloc feedback=feedback geom=geom inorder=w kolejności kqueue=kqueue poll=poll port=port prealloc=prealloc random=losowe select=select trunc=trunc SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Ścieżka pobierania dir.description= log.name=Plik dziennika log.description=Nazwa pliku dziennika. Jeśli podano -, dziennik jest zapisywany na standardowe wyjście. Jeśli podano pusty ciąg (""), dziennik nie jest zapisywany na dysku. max-concurrent-downloads.name=Maksymalna liczba równoczesnych pobrań max-concurrent-downloads.description= check-integrity.name=Sprawdź integralność check-integrity.description=Sprawdź integralność pliku, weryfikując hashe fragmentów lub hash całego pliku. Ta opcja ma wpływ tylko na pobieranie BitTorrent, Metalink z sumami kontrolnymi lub pobieranie HTTP(S)/FTP z opcją --checksum. continue.name=Wznów pobieranie continue.description=Wznów pobieranie częściowo pobranego pliku. Użyj tej opcji, aby wznowić pobieranie rozpoczęte przez przeglądarkę internetową lub inny program, który pobiera pliki sekwencyjnie od początku. Obecnie ta opcja dotyczy tylko pobierania HTTP(S)/FTP. all-proxy.name=Serwer proxy all-proxy.description=Użyj serwera proxy dla wszystkich protokołów. Możesz również zastąpić to ustawienie i określić serwer proxy dla konkretnego protokołu, używając --http-proxy, --https-proxy i --ftp-proxy. Wpływa to na wszystkie pobierania. Format PROXY to [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=Nazwa użytkownika proxy all-proxy-user.description= all-proxy-passwd.name=Hasło proxy all-proxy-passwd.description= checksum.name=Suma kontrolna checksum.description=Ustaw sumę kontrolną. Format wartości opcji to TYPE\=DIGEST. TYPE to typ hasha. Obsługiwane typy hashów są wymienione w algorytmach hashujących w aria2c -v. DIGEST to szesnastkowy skrót. Na przykład ustawienie skrótu sha-1 wygląda tak: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838. Ta opcja dotyczy tylko pobierania HTTP(S)/FTP. connect-timeout.name=Limit czasu połączenia connect-timeout.description=Ustaw limit czasu w sekundach na nawiązanie połączenia z serwerem HTTP/FTP/proxy. Po nawiązaniu połączenia ta opcja nie ma wpływu, a zamiast niej używana jest opcja --timeout. dry-run.name=Symulacja dry-run.description=Jeśli podano true, aria2 tylko sprawdza, czy zdalny plik jest dostępny, i nie pobiera danych. Ta opcja ma wpływ na pobieranie HTTP/FTP. Pobieranie BitTorrent jest anulowane, jeśli podano true. lowest-speed-limit.name=Minimalna prędkość pobierania lowest-speed-limit.description=Zamknij połączenie, jeśli prędkość pobierania jest mniejsza lub równa tej wartości (bajty na sekundę). 0 oznacza, że aria2 nie ma minimalnej prędkości pobierania. Możesz dodać K lub M (1K = 1024, 1M = 1024K). Ta opcja nie wpływa na pobieranie BitTorrent. max-connection-per-server.name=Maksymalna liczba połączeń na serwer max-connection-per-server.description= max-file-not-found.name=Maksymalna liczba prób nieznalezienia pliku max-file-not-found.description=Jeśli aria2 otrzyma status "plik nie znaleziony" od zdalnych serwerów HTTP/FTP NUM razy bez pobrania ani jednego bajtu, wymuś niepowodzenie pobierania. Podaj 0, aby wyłączyć tę opcję. Ta opcja jest skuteczna tylko przy użyciu serwerów HTTP/FTP. Liczba prób jest liczona w kierunku --max-tries, więc należy ją również skonfigurować. max-tries.name=Maksymalna liczba prób max-tries.description=Ustaw liczbę prób. 0 oznacza nieograniczoną liczbę prób. min-split-size.name=Minimalny rozmiar podziału min-split-size.description=aria2 nie dzieli zakresu mniejszego niż 2*SIZE bajtów. Na przykład rozważmy pobieranie pliku 20MiB. Jeśli SIZE to 10M, aria2 może podzielić plik na 2 zakresy [0-10MiB) i [10MiB-20MiB) i pobrać go za pomocą 2 źródeł (jeśli --split >= 2, oczywiście). Jeśli SIZE to 15M, ponieważ 2*15M > 20MiB, aria2 nie dzieli pliku i pobiera go za pomocą 1 źródła. Możesz dodać K lub M (1K = 1024, 1M = 1024K). Możliwe wartości: 1M-1024M. netrc-path.name=Ścieżka .netrc netrc-path.description= no-netrc.name=Wyłącz netrc no-netrc.description= no-proxy.name=Lista bez proxy no-proxy.description=Określ listę nazw hostów, domen i adresów sieciowych z maską podsieci lub bez, gdzie nie powinno się używać proxy. out.name=Nazwa pliku out.description=Nazwa pobieranego pliku. Jest zawsze względna do katalogu podanego w opcji --dir. Gdy używana jest opcja --force-sequential, ta opcja jest ignorowana. proxy-method.name=Metoda proxy proxy-method.description=Ustaw metodę używaną w żądaniu proxy. METHOD to albo GET, albo TUNNEL. Pobieranie HTTPS zawsze używa TUNNEL, niezależnie od tej opcji. remote-time.name=Zdalny znacznik czasu pliku remote-time.description=Pobierz znacznik czasu zdalnego pliku z zdalnego serwera HTTP/FTP i, jeśli jest dostępny, zastosuj go do lokalnego pliku. reuse-uri.name=Ponowne użycie URI reuse-uri.description=Ponownie użyj już użytych URI, jeśli nie ma dostępnych nieużywanych URI. retry-wait.name=Czas oczekiwania między próbami retry-wait.description=Ustaw liczbę sekund do oczekiwania między próbami. Gdy SEC > 0, aria2 ponowi pobieranie, gdy serwer HTTP zwróci odpowiedź 503. server-stat-of.name=Plik statystyk serwera server-stat-of.description=Określ nazwę pliku, do którego zapisywany jest profil wydajności serwerów. Możesz załadować zapisane dane za pomocą opcji --server-stat-if. server-stat-timeout.name=Limit czasu statystyk serwera server-stat-timeout.description=Określa limit czasu w sekundach na unieważnienie profilu wydajności serwerów od ostatniego kontaktu z nimi. split.name=Liczba podziałów split.description=Pobierz plik za pomocą N połączeń. Jeśli podano więcej niż N URI, pierwsze N URI jest używane, a pozostałe URI są używane jako zapasowe. Jeśli podano mniej niż N URI, te URI są używane więcej niż raz, tak aby łącznie było N jednoczesnych połączeń. Liczba połączeń do tego samego hosta jest ograniczona przez opcję --max-connection-per-server. stream-piece-selector.name=Algorytm wyboru fragmentów stream-piece-selector.description=Określ algorytm wyboru fragmentów używany w pobieraniu HTTP/FTP. Fragment oznacza segment o stałej długości, który jest pobierany równolegle w pobieraniu segmentowym. Jeśli podano default, aria2 wybiera fragment tak, aby zmniejszyć liczbę nawiązywanych połączeń. Jest to rozsądne domyślne zachowanie, ponieważ nawiązanie połączenia jest kosztowną operacją. Jeśli podano inorder, aria2 wybiera fragment o najniższym indeksie. Indeks=0 oznacza pierwszy fragment pliku. Będzie to przydatne do oglądania filmu podczas jego pobierania. Opcja --enable-http-pipelining może być przydatna do zmniejszenia narzutu ponownego łączenia. Należy pamiętać, że aria2 honoruje opcję --min-split-size, więc konieczne będzie określenie rozsądnej wartości dla opcji --min-split-size. Jeśli podano random, aria2 wybiera fragment losowo. Podobnie jak w przypadku inorder, opcja --min-split-size jest honorowana. Jeśli podano geom, na początku aria2 wybiera fragment o najniższym indeksie, jak w przypadku inorder, ale wykładniczo zwiększa odstęp od poprzednio wybranego fragmentu. Zmniejszy to liczbę nawiązywanych połączeń i jednocześnie pobierze początkową część pliku jako pierwszą. Będzie to przydatne do oglądania filmu podczas jego pobierania. timeout.name=Limit czasu timeout.description= uri-selector.name=Algorytm wyboru URI uri-selector.description=Określ algorytm wyboru URI. Możliwe wartości to inorder, feedback i adaptive. Jeśli podano inorder, URI są próbowane w kolejności pojawienia się na liście URI. Jeśli podano feedback, aria2 używa prędkości pobierania obserwowanej w poprzednich pobraniach i wybiera najszybszy serwer na liście URI. To również skutecznie pomija martwe lustra. Obserwowana prędkość pobierania jest częścią profilu wydajności serwerów wymienionych w --server-stat-of i --server-stat-if. Jeśli podano adaptive, wybiera jedno z najlepszych luster dla pierwszego i zarezerwowanego połączenia. Dla uzupełniających, zwraca lustra, które nie zostały jeszcze przetestowane, a jeśli każde z nich zostało już przetestowane, zwraca lustra, które muszą zostać ponownie przetestowane. W przeciwnym razie nie wybiera więcej luster. Podobnie jak feedback, używa profilu wydajności serwerów. check-certificate.name=Sprawdź certyfikat check-certificate.description= http-accept-gzip.name=Akceptuj GZip http-accept-gzip.description=Wyślij nagłówek żądania Accept: deflate, gzip i zdekompresuj odpowiedź, jeśli zdalny serwer odpowiada nagłówkiem Content-Encoding: gzip lub Content-Encoding: deflate. http-auth-challenge.name=Wyzwanie autoryzacji HTTP http-auth-challenge.description=Wyślij nagłówek autoryzacji HTTP tylko wtedy, gdy jest to wymagane przez serwer. Jeśli podano false, nagłówek autoryzacji jest zawsze wysyłany do serwera. Istnieje wyjątek: jeśli nazwa użytkownika i hasło są osadzone w URI, nagłówek autoryzacji jest zawsze wysyłany do serwera, niezależnie od tej opcji. http-no-cache.name=Brak cache http-no-cache.description=Wysyłaj nagłówki Cache-Control: no-cache i Pragma: no-cache, aby uniknąć buforowania treści. Jeśli ustawione na false, te nagłówki nie są wysyłane i można dodać nagłówek Cache-Control z dowolną dyrektywą, używając opcji --header. http-user.name=Domyślna nazwa użytkownika HTTP http-user.description= http-passwd.name=Domyślne hasło HTTP http-passwd.description= http-proxy.name=Serwer proxy HTTP http-proxy.description= http-proxy-user.name=Nazwa użytkownika proxy HTTP http-proxy-user.description= http-proxy-passwd.name=Hasło proxy HTTP http-proxy-passwd.description= https-proxy.name=Serwer proxy HTTPS https-proxy.description= https-proxy-user.name=Nazwa użytkownika proxy HTTPS https-proxy-user.description= https-proxy-passwd.name=Hasło proxy HTTPS https-proxy-passwd.description= referer.name=Referer referer.description=Ustawia odsyłający adres HTTP (Referer). Dotyczy wszystkich pobrań HTTP/HTTPS. Jeśli podano *, adres URI pobierania jest również używany jako referer. Może to być przydatne w połączeniu z opcją --parameterized-uri. enable-http-keep-alive.name=Włącz trwałe połączenie enable-http-keep-alive.description=Włącz trwałe połączenie HTTP/1.1. enable-http-pipelining.name=Włącz HTTP Pipelining enable-http-pipelining.description=Włącz pipelining HTTP/1.1. header.name=Niestandardowy nagłówek header.description=Dodaj nagłówek HEADER do żądania HTTP. Każdy wpis w osobnej linii w formacie "nazwa nagłówka: wartość nagłówka". save-cookies.name=Ścieżka do pliku cookies save-cookies.description=Zapisz pliki cookies do pliku FILE w formacie Mozilla/Firefox(1.x/2.x)/Netscape. Jeśli FILE już istnieje, zostanie nadpisany. Sesyjne cookies również są zapisywane, a ich wartości wygaśnięcia są traktowane jako 0. use-head.name=Użyj metody HEAD use-head.description=Użyj metody HEAD dla pierwszego żądania do serwera HTTP. user-agent.name=Niestandardowy User Agent user-agent.description= ftp-user.name=Domyślna nazwa użytkownika FTP ftp-user.description= ftp-passwd.name=Domyślne hasło FTP ftp-passwd.description=Jeśli nazwa użytkownika jest osadzona w URI, ale hasło nie, aria2 spróbuje znaleźć hasło w pliku .netrc. Jeśli je znajdzie, zostanie użyte, w przeciwnym razie użyte zostanie hasło określone w tej opcji. ftp-pasv.name=Tryb pasywny ftp-pasv.description=Użyj trybu pasywnego w FTP. Jeśli ustawione na false, używany będzie tryb aktywny. Opcja ta jest ignorowana dla transferów SFTP. ftp-proxy.name=Serwer proxy FTP ftp-proxy.description= ftp-proxy-user.name=Nazwa użytkownika proxy FTP ftp-proxy-user.description= ftp-proxy-passwd.name=Hasło proxy FTP ftp-proxy-passwd.description= ftp-type.name=Typ transferu ftp-type.description= ftp-reuse-connection.name=Ponowne użycie połączenia ftp-reuse-connection.description= ssh-host-key-md.name=Suma kontrolna klucza publicznego SSH ssh-host-key-md.description=Ustaw sumę kontrolną klucza publicznego hosta SSH. Format wartości to TYPE=DIGEST. TYPE to typ hasha (obsługiwane: sha-1 lub md5). DIGEST to suma kontrolna w formacie szesnastkowym. Przykład: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. Opcja ta może być używana do weryfikacji klucza publicznego serwera podczas korzystania z SFTP. Jeśli nie ustawiono tej opcji (domyślnie), weryfikacja nie jest wykonywana. bt-detach-seed-only.name=Oddziel tylko seedowanie bt-detach-seed-only.description=Wyklucz pobrania będące tylko w trybie seedowania przy liczeniu aktywnych pobrań (patrz opcja -j). Oznacza to, że jeśli podano -j3 i ta opcja jest włączona, a 3 pobrania są aktywne, a jedno przejdzie w tryb seedowania, zostaje ono wykluczone z liczenia aktywnych pobrań (stając się 2), co pozwala na uruchomienie kolejnego pobrania z kolejki. Należy jednak pamiętać, że w metodzie RPC element seedujący nadal jest uznawany za aktywne pobranie. bt-enable-hook-after-hash-check.name=Włącz hook po sprawdzeniu hasha bt-enable-hook-after-hash-check.description=Zezwól na wykonanie polecenia hook po sprawdzeniu hasha (patrz opcja -V) w pobraniach BitTorrent. Domyślnie, jeśli weryfikacja hasha zakończy się sukcesem, wykonywane jest polecenie określone w opcji --on-bt-download-complete. Aby wyłączyć tę akcję, ustaw tę opcję na false. bt-enable-lpd.name=Włącz Local Peer Discovery (LPD) bt-enable-lpd.description=Włącz Local Peer Discovery. Jeśli torrent ma ustawioną flagę prywatną, aria2 nie użyje tej funkcji dla tego pobrania, nawet jeśli wartość opcji jest ustawiona na true. bt-exclude-tracker.name=Wyklucz trackery BitTorrent bt-exclude-tracker.description=Lista oddzielona przecinkami z URI trackerów BitTorrent do usunięcia. Można użyć specjalnej wartości *, która pasuje do wszystkich URI i usuwa wszystkie ogłoszenia trackerów. Przy używaniu * w wierszu poleceń powłoki nie zapomnij go uciec lub umieścić w cudzysłowie. bt-external-ip.name=Zewnętrzny adres IP bt-external-ip.description=Określ zewnętrzny adres IP do użycia w pobraniach BitTorrent i DHT. Może być wysyłany do trackera BitTorrent. W przypadku DHT ta opcja powinna być ustawiona, aby zgłosić, że lokalny węzeł pobiera określony torrent. Jest to kluczowe do użycia DHT w sieci prywatnej. Chociaż funkcja nosi nazwę "zewnętrzna", akceptuje dowolne adresy IP. bt-force-encryption.name=Wymuś szyfrowanie bt-force-encryption.description=Wymaga szyfrowania ładunku wiadomości BitTorrent przy użyciu arc4. Jest to skrót dla --bt-require-crypto --bt-min-crypto-level=arc4. Ta opcja nie zmienia wartości tych opcji. Jeśli ustawione na true, aria2 odrzuca tradycyjny handshake BitTorrent i używa tylko Obfuscation handshake, zawsze szyfrując ładunek wiadomości. bt-hash-check-seed.name=Sprawdzenie hasha przed seedowaniem bt-hash-check-seed.description=Jeśli ustawione na true, po sprawdzeniu hasha przy użyciu opcji --check-integrity i ukończeniu pliku, aria2 kontynuuje jego seedowanie. Jeśli chcesz sprawdzić plik i pobrać go tylko wtedy, gdy jest uszkodzony lub niekompletny, ustaw tę opcję na false. Ta opcja ma zastosowanie tylko do pobrań BitTorrent. bt-load-saved-metadata.name=Wczytaj zapisany plik metadanych bt-load-saved-metadata.description=Przed pobraniem metadanych torrenta z DHT przy pobieraniu za pomocą linku magnet, najpierw spróbuj odczytać plik zapisany przez opcję --bt-save-metadata. Jeśli się powiedzie, pominięte zostanie pobieranie metadanych z DHT. bt-max-open-files.name=Maksymalna liczba otwartych plików bt-max-open-files.description=Określ maksymalną liczbę otwartych plików w globalnym pobieraniu BitTorrent/Metalink. bt-max-peers.name=Maksymalna liczba peerów bt-max-peers.description=Określ maksymalną liczbę peerów na torrent. 0 oznacza brak ograniczeń. bt-metadata-only.name=Pobieraj tylko metadane bt-metadata-only.description=Pobieraj tylko metadane. Pliki opisane w metadanych nie będą pobierane. Ta opcja działa tylko w przypadku korzystania z BitTorrent Magnet URI. bt-min-crypto-level.name=Minimalny poziom szyfrowania bt-min-crypto-level.description=Ustaw minimalny poziom metody szyfrowania. Jeśli peer oferuje kilka metod szyfrowania, aria2 wybiera najniższy poziom spełniający podane wymagania. bt-prioritize-piece.name=Priorytetowe fragmenty bt-prioritize-piece.description=Spróbuj pobrać najpierw pierwsze i ostatnie fragmenty każdego pliku. Jest to przydatne do podglądu plików. Argument może zawierać dwa słowa kluczowe: head i tail. Aby użyć obu, należy je oddzielić przecinkiem. Można także określić rozmiar, np. head=ROZMIAR oznacza nadanie wyższego priorytetu fragmentom z pierwszych ROZMIAR bajtów każdego pliku. tail=ROZMIAR odnosi się do ostatnich bajtów. ROZMIAR może być podany w K lub M (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=Usuń nieoznaczone pliki bt-remove-unselected-file.description=Usuwa nieoznaczone pliki po zakończeniu pobierania torrenta. Aby wybrać pliki, użyj opcji --select-file. Jeśli nie zostanie użyta, wszystkie pliki są traktowane jako wybrane. Używaj tej opcji ostrożnie, ponieważ pliki zostaną faktycznie usunięte z dysku. bt-require-crypto.name=Wymagaj szyfrowania bt-require-crypto.description=Jeśli ustawione na true, aria2 nie akceptuje i nie nawiązuje połączeń przy użyciu przestarzałego BitTorrent handshake (\19BitTorrent protocol). Zamiast tego zawsze używa szyfrowania Obfuscation handshake. bt-request-peer-speed-limit.name=Preferowana prędkość pobierania bt-request-peer-speed-limit.description=Jeśli całkowita prędkość pobierania wszystkich torrentów jest niższa niż SPEED, aria2 tymczasowo zwiększa liczbę peerów w celu uzyskania większej prędkości. Możesz dodać K lub M (1K = 1024, 1M = 1024K). bt-save-metadata.name=Zapisz metadane bt-save-metadata.description=Zapisz metadane jako plik .torrent. Ta opcja działa tylko przy użyciu BitTorrent Magnet URI. Nazwa pliku to zakodowany hash info z rozszerzeniem .torrent. Plik zostanie zapisany w tym samym katalogu co pobierany plik. Jeśli taki plik już istnieje, metadane nie zostaną zapisane. bt-seed-unverified.name=Nie weryfikuj pobranych plików bt-seed-unverified.description=Udostępniaj wcześniej pobrane pliki bez weryfikacji ich sum kontrolnych. bt-stop-timeout.name=Czas oczekiwania na zatrzymanie bt-stop-timeout.description=Zatrzymaj pobieranie torrenta, jeśli prędkość pobierania wynosi 0 przez kolejne SEC sekund. Wartość 0 wyłącza tę funkcję. bt-tracker.name=Trackery BitTorrenta bt-tracker.description=Lista dodatkowych trackerów BitTorrenta oddzielonych przecinkami. Te adresy nie są usuwane przez opcję --bt-exclude-tracker, ponieważ są dodawane po zastosowaniu tej opcji. bt-tracker-connect-timeout.name=Czas oczekiwania na połączenie z trackerem bt-tracker-connect-timeout.description=Ustaw czas oczekiwania (w sekundach) na nawiązanie połączenia z trackerem. Po nawiązaniu połączenia ta opcja nie ma już wpływu, zamiast tego stosowana jest opcja --bt-tracker-timeout. bt-tracker-interval.name=Interwał połączeń z trackerem bt-tracker-interval.description=Ustaw interwał (w sekundach) między zapytaniami do trackerów. Całkowicie nadpisuje wartość interwału zwróconą przez tracker. Wartość 0 pozwala aria2 określić interwał na podstawie odpowiedzi trackera i postępu pobierania. bt-tracker-timeout.name=Limit czasu trackera bt-tracker-timeout.description= dht-file-path.name=Plik DHT (IPv4) dht-file-path.description=Zmień plik tablicy routingu DHT dla IPv4 na PATH. dht-file-path6.name=Plik DHT (IPv6) dht-file-path6.description=Zmień plik tablicy routingu DHT dla IPv6 na PATH. dht-listen-port.name=Port nasłuchiwania DHT dht-listen-port.description=Ustaw port UDP używany przez DHT (IPv4, IPv6) oraz trackery UDP. Można określić wiele portów, np. 6881,6885. Można także podać zakres, np. 6881-6999. Obie metody można łączyć: 6881-6889,6999. dht-message-timeout.name=Czas oczekiwania na wiadomość DHT dht-message-timeout.description= enable-dht.name=Włącz DHT (IPv4) enable-dht.description=Włącz funkcję DHT dla IPv4. Automatycznie włącza także wsparcie dla trackerów UDP. Jeśli torrent ma ustawioną flagę prywatności, aria2 nie użyje DHT dla tego pobrania, nawet jeśli opcja jest ustawiona na true. enable-dht6.name=Włącz DHT (IPv6) enable-dht6.description=Włącz funkcję DHT dla IPv6. Jeśli torrent ma ustawioną flagę prywatności, aria2 nie użyje DHT dla tego pobrania, nawet jeśli opcja jest ustawiona na true. Aby określić port nasłuchiwania, użyj opcji --dht-listen-port. enable-peer-exchange.name=Włącz wymianę peerów enable-peer-exchange.description=Włącz rozszerzenie wymiany peerów (PEX). Jeśli torrent ma ustawioną flagę prywatności, ta funkcja jest wyłączona, nawet jeśli true jest ustawione. follow-torrent.name=Śledź torrenta follow-torrent.description=Jeśli ustawione na true lub mem, pliki z rozszerzeniem .torrent lub typem MIME application/x-bittorrent są traktowane jako torrenty i ich zawartość jest pobierana. Jeśli ustawione na mem, plik .torrent nie jest zapisywany na dysku, a jedynie przechowywany w pamięci. Jeśli false, plik .torrent jest pobierany, ale nie jest analizowany ani używany do pobierania jego zawartości. listen-port.name=Port nasłuchiwania listen-port.description=Ustaw numer portu TCP dla pobrań BitTorrenta. Można określić wiele portów, np. 6881,6885. Można także podać zakres, np. 6881-6999, lub kombinację: 6881-6889,6999. max-overall-upload-limit.name=Maksymalny globalny limit wysyłania max-overall-upload-limit.description=Ustaw maksymalną globalną prędkość wysyłania w bajtach na sekundę. 0 oznacza brak ograniczeń. Możesz dodać K lub M (1K = 1024, 1M = 1024K). max-upload-limit.name=Maksymalny limit wysyłania max-upload-limit.description=Ustaw maksymalną prędkość wysyłania na torrent w bajtach na sekundę. 0 oznacza brak ograniczeń. Możesz dodać K lub M (1K = 1024, 1M = 1024K). peer-id-prefix.name=Prefiks ID peera peer-id-prefix.description=Określ prefiks ID peera. Pełne ID ma długość 20 bajtów. Jeśli podasz więcej, zostanie przycięte. Jeśli mniej, zostaną dodane losowe bajty. peer-agent.name=Agent Peera peer-agent.description=Określa ciąg używany podczas rozszerzonego handshake BitTorrenta dla wersji klienta peera. seed-ratio.name=Minimalny Współczynnik Udostępniania seed-ratio.description=Określa współczynnik udostępniania. Seedy zakończone torrenty do momentu, gdy współczynnik udostępniania osiągnie RATIO. Zaleca się ustawienie wartości równej lub większej niż 1.0. Ustawienie 0.0 powoduje seedowanie bez względu na współczynnik udostępniania. Jeśli opcja --seed-time jest również określona, seedowanie kończy się, gdy spełniony zostanie przynajmniej jeden z warunków. seed-time.name=Minimalny Czas Seedowania seed-time.description=Określa czas seedowania w (częściowych) minutach. Ustawienie --seed-time=0 wyłącza seedowanie po zakończeniu pobierania. follow-metalink.name=Śledzenie Metalink follow-metalink.description=Jeśli ustawione na true lub mem, po pobraniu pliku o rozszerzeniu .meta4, .metalink lub typie zawartości application/metalink4+xml lub application/metalink+xml, aria2 analizuje go jako plik metalink i pobiera pliki w nim wymienione. Jeśli ustawione na mem, plik metalink nie jest zapisywany na dysku, a jedynie przechowywany w pamięci. Jeśli ustawione na false, plik .metalink jest pobierany na dysk, ale nie jest analizowany jako plik metalink, a jego zawartość nie jest pobierana. metalink-base-uri.name=Bazowy URI metalink-base-uri.description=Określa bazowy URI do rozwiązywania względnych URI w elementach metalink:url i metalink:metaurl w pliku metalink zapisanym na lokalnym dysku. Jeśli URI wskazuje na katalog, musi kończyć się znakiem /. metalink-language.name=Język metalink-language.description= metalink-location.name=Preferowana Lokalizacja Serwera metalink-location.description=Lokalizacja preferowanego serwera. Można podać listę lokalizacji oddzielonych przecinkami, np. jp,us. metalink-os.name=System Operacyjny metalink-os.description=System operacyjny pliku do pobrania. metalink-version.name=Wersja metalink-version.description=Wersja pliku do pobrania. metalink-preferred-protocol.name=Preferowany Protokół metalink-preferred-protocol.description=Określa preferowany protokół. Możliwe wartości to http, https, ftp i none. Ustawienie none wyłącza tę funkcję. metalink-enable-unique-protocol.name=Włącz Unikalny Protokół metalink-enable-unique-protocol.description=Jeśli ustawione na true i dla danego mirrora w pliku metalink dostępnych jest kilka protokołów, aria2 używa jednego z nich. Aby określić preferowany protokół, użyj opcji --metalink-preferred-protocol. enable-rpc.name=Włącz Serwer JSON-RPC/XML-RPC enable-rpc.description= pause-metadata.name=Wstrzymaj Po Pobieraniu Metadanych pause-metadata.description=Wstrzymuje pobrania utworzone w wyniku pobierania metadanych. Istnieją 3 typy pobierania metadanych w aria2: (1) pobieranie pliku .torrent, (2) pobieranie metadanych torrenta za pomocą linku magnetycznego, (3) pobieranie pliku metalink. Pobrania utworzone na podstawie tych metadanych zostaną wstrzymane. Opcja działa tylko wtedy, gdy ustawiono --enable-rpc=true. rpc-allow-origin-all.name=Zezwól na Żądania ze Wszystkich Źródeł rpc-allow-origin-all.description=Dodaje nagłówek Access-Control-Allow-Origin z wartością * do odpowiedzi RPC. rpc-listen-all.name=Nasłuchuj na Wszystkich Interfejsach Sieciowych rpc-listen-all.description=Nasłuchuje przychodzących żądań JSON-RPC/XML-RPC na wszystkich interfejsach sieciowych. Jeśli ustawione na false, nasłuchuje tylko na lokalnym interfejsie pętli zwrotnej. rpc-listen-port.name=Port Nasłuchu rpc-listen-port.description= rpc-max-request-size.name=Maksymalny Rozmiar Żądania rpc-max-request-size.description=Ustawia maksymalny rozmiar żądania JSON-RPC/XML-RPC. Jeśli aria2 wykryje, że żądanie przekracza SIZE bajtów, połączenie zostanie odrzucone. rpc-save-upload-metadata.name=Zapisz Metadane Przesyłania rpc-save-upload-metadata.description=Zapisuje przesłane metadane torrenta lub metalink w katalogu określonym przez opcję --dir. Nazwa pliku składa się z szesnastkowego skrótu SHA-1 metadanych plus rozszerzenie. Dla torrenta rozszerzenie to '.torrent', a dla metalink '.meta4'. Jeśli ustawione na false, pobrania dodane przez aria2.addTorrent() lub aria2.addMetalink() nie zostaną zapisane przez opcję --save-session. rpc-secure.name=Włącz SSL/TLS rpc-secure.description=Transport RPC będzie szyfrowany za pomocą SSL/TLS. Klienci RPC muszą używać schematu https do dostępu do serwera. W przypadku klienta WebSocket użyj schematu wss. Aby określić certyfikat serwera i klucz prywatny, użyj opcji --rpc-certificate i --rpc-private-key. allow-overwrite.name=Zezwól na Nadpisywanie allow-overwrite.description=Rozpocznij pobieranie od początku, jeśli nie istnieje odpowiedni plik kontrolny. Zobacz także opcję --auto-file-renaming. allow-piece-length-change.name=Zezwól na Zmianę Długości Części allow-piece-length-change.description=Jeśli ustawione na false, aria2 przerywa pobieranie, gdy długość części różni się od tej w pliku kontrolnym. Jeśli ustawione na true, pobieranie może być kontynuowane, ale część postępu zostanie utracona. always-resume.name=Zawsze Wznawiaj Pobieranie always-resume.description=Zawsze wznawiaj pobieranie. Jeśli ustawione na true, aria2 zawsze próbuje wznowić pobieranie i jeśli nie jest to możliwe, przerywa je. Jeśli ustawione na false, gdy wszystkie podane URI nie obsługują wznawiania lub aria2 napotka N URI, które nie obsługują wznawiania (gdzie N to wartość opcji --max-resume-failure-tries), aria2 pobiera plik od początku. Zobacz opcję --max-resume-failure-tries. async-dns.name=Asynchroniczny DNS async-dns.description= auto-file-renaming.name=Automatyczna Zmiana Nazwy Pliku auto-file-renaming.description=Zmienia nazwę pliku, jeśli plik o tej samej nazwie już istnieje. Opcja działa tylko w pobieraniu HTTP(S)/FTP. Nowa nazwa pliku ma dodaną kropkę i numer (1..9999) przed rozszerzeniem pliku, jeśli istnieje. auto-save-interval.name=Automatyczny Interwał Zapisu auto-save-interval.description=Zapisuje plik kontrolny (*.aria2) co SEC sekund. Jeśli ustawione na 0, plik kontrolny nie jest zapisywany podczas pobierania. aria2 zapisuje plik kontrolny po zatrzymaniu, niezależnie od tej wartości. Możliwe wartości to od 0 do 600. conditional-get.name=Pobieranie warunkowe conditional-get.description=Pobieraj plik tylko wtedy, gdy lokalny plik jest starszy niż zdalny. Funkcja ta działa tylko w przypadku pobierania przez HTTP(S). Nie działa, jeśli rozmiar pliku jest określony w Metalink. Ignoruje również nagłówek Content-Disposition. Jeśli istnieje plik kontrolny, ta opcja zostanie zignorowana. Funkcja ta używa nagłówka If-Modified-Since, aby warunkowo pobierać nowszy plik. Przy pobieraniu czasu modyfikacji lokalnego pliku używa nazwy pliku podanej przez użytkownika (patrz opcja --out) lub części nazwy pliku w URI, jeśli --out nie jest określona. Aby nadpisać istniejący plik, wymagane jest --allow-overwrite. conf-path.name=Plik konfiguracyjny conf-path.description= console-log-level.name=Poziom logów konsoli console-log-level.description= content-disposition-default-utf8.name=Użyj UTF-8 do obsługi Content-Disposition content-disposition-default-utf8.description=Obsługuj cytowane ciągi w nagłówku Content-Disposition jako UTF-8 zamiast ISO-8859-1, na przykład parametr nazwy pliku, ale nie rozszerzoną wersję nazwy pliku. daemon.name=Włącz Daemon daemon.description= deferred-input.name=Odwleczone ładowanie deferred-input.description=Jeśli podano wartość true, aria2 nie odczytuje wszystkich URI i opcji z pliku określonego przez opcję --input-file przy uruchamianiu, lecz odczytuje je jeden po drugim, gdy są potrzebne później. Może to zmniejszyć zużycie pamięci, jeśli plik wejściowy zawiera wiele URI do pobrania. Jeśli podano false, aria2 odczytuje wszystkie URI i opcje przy uruchamianiu. Opcja --deferred-input zostanie wyłączona, gdy używana jest opcja --save-session. disable-ipv6.name=Wyłącz IPv6 disable-ipv6.description= disk-cache.name=Cache dyskowy disk-cache.description=Włącz cache dyskowy. Jeśli rozmiar SIZE wynosi 0, cache dyskowy jest wyłączony. Ta funkcja buforuje pobrane dane w pamięci, która rośnie do maksymalnego rozmiaru SIZE w bajtach. Przechowywanie cache jest tworzone dla instancji aria2 i dzielone przez wszystkie pobierania. Zaletą cache dyskowego jest zmniejszenie operacji I/O na dysku, ponieważ dane są zapisywane w większych jednostkach i są reorganizowane według przesunięcia pliku. Jeśli weryfikacja haszy jest zaangażowana, a dane są buforowane w pamięci, nie musimy ich ponownie odczytywać z dysku. SIZE może zawierać K lub M (1K = 1024, 1M = 1024K). download-result.name=Wynik pobierania download-result.description=Ta opcja zmienia sposób formatowania wyników pobierania. Jeśli OPT to domyślnie, wyświetlane będą GID, status, średnia prędkość pobierania oraz ścieżka/URI. Jeśli zaangażowane są wiele plików, wyświetlana jest ścieżka/URI pierwszego żądanego pliku, a pozostałe są pomijane. Jeśli OPT to pełne, wyświetlane będą GID, status, średnia prędkość pobierania, procent postępu oraz ścieżka/URI. Procent postępu i ścieżka/URI są wyświetlane dla każdego żądanego pliku w każdym wierszu. Jeśli OPT to ukryte, wyniki pobierania są ukryte. dscp.name=DSCP dscp.description=Ustaw wartość DSCP w wychodzących pakietach IP dla ruchu BitTorrent dla QoS. Ten parametr ustawia tylko bity DSCP w polu TOS pakietów IP, a nie całe pole. Jeśli bierzesz wartości z /usr/include/netinet/ip.h, podziel je przez 4 (w przeciwnym razie wartości będą niepoprawne, np. twój klas CS1 stanie się CS4). Jeśli bierzesz powszechnie używane wartości z RFC, dokumentacji dostawców sieci, Wikipedii lub innych źródeł, użyj ich tak jak są. rlimit-nofile.name=Miękki limit otwartych deskryptorów plików rlimit-nofile.description=Ustaw miękki limit otwartych deskryptorów plików. Ta opcja będzie miała wpływ tylko wtedy, gdy: a. System ją obsługuje (posix). b. Limit nie przekracza twardego limitu. c. Określony limit jest większy niż aktualny miękki limit. Jest to równoważne ustawieniu nofile za pomocą ulimit, z tym, że nigdy nie zmniejsza limitu. Ta opcja jest dostępna tylko na systemach wspierających API rlimit. enable-color.name=Włącz kolor w terminalu enable-color.description= enable-mmap.name=Włącz MMap enable-mmap.description=Mapowanie plików do pamięci. Ta opcja może nie działać, jeśli przestrzeń pliku nie jest wcześniej przydzielona. Zobacz --file-allocation. event-poll.name=Metoda sondowania zdarzeń event-poll.description=Określ metodę sondowania zdarzeń. Możliwe wartości to epoll, kqueue, port, poll i select. Każda z tych metod jest dostępna, jeśli system ją obsługuje. epoll jest dostępny w nowszych wersjach Linuksa. kqueue jest dostępny na różnych systemach *BSD, w tym Mac OS X. port jest dostępny na Open Solaris. Domyślna wartość może się różnić w zależności od używanego systemu. file-allocation.name=Metoda przydzielania plików file-allocation.description=Określ metodę przydzielania plików. none nie przydziela przestrzeni pliku przed pobieraniem. prealloc przydziela przestrzeń pliku przed rozpoczęciem pobierania. Może to zająć trochę czasu w zależności od rozmiaru pliku. Jeśli używasz nowszych systemów plików, takich jak ext4 (z obsługą rozszerzeń), btrfs, xfs lub NTFS (tylko kompilacja MinGW), falloc jest najlepszym wyborem. Przydziela duże (kilka GiB) pliki niemal natychmiast. Nie używaj falloc w starszych systemach plików, takich jak ext3 i FAT32, ponieważ trwa to prawie tyle samo, co prealloc, a aria2 jest całkowicie zablokowane do czasu zakończenia alokacji. falloc może być niedostępny, jeśli system nie posiada funkcji posix_fallocate(3). trunc używa systemowego wywołania ftruncate(2) lub odpowiednika specyficznego dla platformy, aby przyciąć plik do określonej długości. W przypadku pobierania wielu plików torrent, pliki przylegające do określonych plików są również przydzielane, jeśli dzielą te same kawałki. force-save.name=Wymuś Zapis force-save.description=Zapisz pobieranie za pomocą opcji --save-session, nawet jeśli pobieranie zostało zakończone lub usunięte. Opcja ta zapisuje również plik kontrolny w takich sytuacjach. Może to być przydatne do zapisania udostępniania plików w stanie zakończonym. save-not-found.name=Zapisz Plik, Który Nie Został Znaleziony save-not-found.description=Zapisz pobieranie za pomocą opcji --save-session, nawet jeśli plik nie został znaleziony na serwerze. Opcja ta zapisuje również plik kontrolny w takich sytuacjach. hash-check-only.name=Tylko Sprawdzenie Hasz hash-check-only.description=Jeśli podano "true", po sprawdzeniu haszu przy użyciu opcji --check-integrity, pobieranie zostanie przerwane, niezależnie od tego, czy plik został pobrany w całości. human-readable.name=Ludzko Czytelny Format Konsoli human-readable.description=Wyświetl rozmiary i prędkości w formacie przyjaznym dla człowieka (np. 1.2Ki, 3.4Mi) w konsoli. keep-unfinished-download-result.name=Zachowaj Wyniki Niedokończonych Pobierania keep-unfinished-download-result.description=Zachowaj wyniki niedokończonych pobrań, nawet jeśli ich liczba przekracza --max-download-result. To przydatne, jeśli chcesz, aby wszystkie niedokończone pobrania zostały zapisane w pliku sesji (zobacz opcję --save-session). Pamiętaj, że nie ma górnej granicy liczby niedokończonych wyników do zapisania. Jeśli jest to niepożądane, wyłącz tę opcję. max-download-result.name=Maksymalna Liczba Wyników Pobierania max-download-result.description=Ustaw maksymalną liczbę wyników pobierania przechowywanych w pamięci. Wyniki pobierania obejmują pobrane, błędne i usunięte pliki. Wyniki pobierania są przechowywane w kolejce FIFO i może pomieścić maksymalnie NUM wyników pobierania. Gdy kolejka jest pełna, a nowy wynik pobierania zostaje utworzony, najstarszy wynik zostaje usunięty, a nowy dodany na koniec. Ustawienie dużej liczby w tej opcji może spowodować wysokie zużycie pamięci po tysiącach pobrań. Określenie wartości 0 oznacza, że żadne wyniki pobierania nie będą przechowywane. Należy pamiętać, że niedokończone pobrania są przechowywane w pamięci, niezależnie od tej opcji. Zobacz opcję --keep-unfinished-download-result. max-mmap-limit.name=Maksymalny Limit MMap max-mmap-limit.description=Ustaw maksymalny rozmiar pliku, dla którego włączone będzie mmap (zobacz opcję --enable-mmap). Rozmiar pliku jest określany przez sumę wszystkich plików zawartych w jednym pobieraniu. Na przykład, jeśli pobieranie zawiera 5 plików, rozmiar pliku to całkowity rozmiar tych plików. Jeśli rozmiar pliku jest większy niż wartość określona w tej opcji, mmap zostanie wyłączone. max-resume-failure-tries.name=Maksymalna Liczba Prób Wznawiania max-resume-failure-tries.description=Gdy używasz opcji --always-resume=false, aria2 pobiera plik od nowa, gdy wykryje N liczbę URI, które nie obsługują wznowienia. Jeśli N wynosi 0, aria2 pobierze plik od nowa, gdy wszystkie URI nie obsługują wznowienia. Zobacz opcję --always-resume. min-tls-version.name=Minimalna Wersja TLS min-tls-version.description=Określa minimalną wersję SSL/TLS do włączenia. log-level.name=Poziom Logów log-level.description=Określa poziom szczegółowości logów. optimize-concurrent-downloads.name=Optymalizuj Równoczesne Pobierania optimize-concurrent-downloads.description=Optymalizuje liczbę równoczesnych pobrań zgodnie z dostępną przepustowością. aria2 wykorzystuje prędkość pobierania z poprzednich pobrań, aby dostosować liczbę pobrań uruchamianych równolegle zgodnie z zasadą N = A + B Log10(prędkość w Mbps). Współczynniki A i B można dostosować, oddzielając je dwukropkiem. Domyślne wartości (A=5, B=25) prowadzą do używania typowo 5 równoczesnych pobrań w sieci 1Mbps i ponad 50 w sieci 100Mbps. Liczba równoczesnych pobrań pozostaje ograniczona maksymalną wartością określoną przez opcję --max-concurrent-downloads. piece-length.name=Długość Części piece-length.description=Określ długość części dla pobrań HTTP/FTP. Jest to granica, przy której aria2 dzieli plik. Wszystkie podziały odbywają się w wielokrotnościach tej długości. Ta opcja zostanie zignorowana w pobieraniach BitTorrent. Zostanie również zignorowana, jeśli plik Metalink zawiera sumy kontrolne dla części. show-console-readout.name=Wyświetl Wyniki w Konsoli show-console-readout.description=Określ, czy wyniki pobierania mają być wyświetlane w konsoli. summary-interval.name=Interwał Podsumowania Pobierania summary-interval.description=Określ interwał w sekundach dla wyświetlania podsumowania postępu pobierania. Ustawienie 0 tłumi wyjście. max-overall-download-limit.name=Maksymalny Limit Łącznego Pobierania max-overall-download-limit.description=Ustaw maksymalną prędkość pobierania łączną w bajtach na sekundę. 0 oznacza brak ograniczeń. Możesz dodać K lub M (1K = 1024, 1M = 1024K). max-download-limit.name=Maksymalny Limit Pobierania max-download-limit.description=Ustaw maksymalną prędkość pobierania na pojedyncze pobieranie w bajtach na sekundę. 0 oznacza brak ograniczeń. Możesz dodać K lub M (1K = 1024, 1M = 1024K). no-conf.name=Wyłącz Plik Konfiguracyjny no-conf.description=Określa, czy plik konfiguracyjny ma być wyłączony. no-file-allocation-limit.name=Brak Limitów Alokacji Pliku no-file-allocation-limit.description=Brak alokacji pliku dla plików mniejszych niż SIZE. Możesz dodać K lub M (1K = 1024, 1M = 1024K). parameterized-uri.name=Włącz Użycie Parametryzowanych URI parameterized-uri.description=Włącz obsługę parametryzowanych URI. Możesz określić zestaw części: http://{sv1,sv2,sv3}/foo.iso. Możesz także określić numeryczne ciągi z licznikiem kroków: http://host/image[000-100:2].img. Licznik kroków może zostać pominięty. Jeśli wszystkie URI nie wskazują na ten sam plik, jak w drugim przykładzie, wymagane jest użycie opcji -Z. quiet.name=Wyłącz Wyjście w Konsoli quiet.description=Określa, czy wyjście w konsoli ma być wyłączone. realtime-chunk-checksum.name=Walidacja Części Danych w Czasie Rzeczywistym realtime-chunk-checksum.description=Sprawdzenie części danych przez obliczenie sumy kontrolnej podczas pobierania pliku, jeśli dostępne są sumy kontrolne dla części. remove-control-file.name=Usuń Plik Kontrolny remove-control-file.description=Usuń plik kontrolny przed pobraniem. Używając z --allow-overwrite=true, pobieranie zawsze rozpocznie się od nowa. Będzie to przydatne dla użytkowników korzystających z serwerów proxy, które uniemożliwiają wznowienie pobierania. save-session.name=Plik Zapisanej Sesji save-session.description=Zapisz błędy/niedokończone pobrania do PLIKU po zakończeniu. Możesz przekazać ten plik do aria2c za pomocą opcji --input-file podczas ponownego uruchomienia. Jeśli chcesz, aby plik wynikowy był zapisany w formacie gzip, dodaj rozszerzenie .gz do nazwy pliku. Należy pamiętać, że pobrania dodane za pomocą metody RPC aria2.addTorrent() i aria2.addMetalink(), których metadane nie mogą zostać zapisane jako plik, nie będą zapisane. Pobrania usunięte za pomocą aria2.remove() i aria2.forceRemove() nie będą zapisane. save-session-interval.name=Interwał Zapisów Sesji save-session-interval.description=Zapisz błędy/niedokończone pobrania do pliku określonego przez --save-session co SEC sekund. Ustawienie 0 oznacza, że plik będzie zapisywany tylko przy zakończeniu działania aria2. socket-recv-buffer-size.name=Rozmiar Bufora Odbioru Gniazda socket-recv-buffer-size.description=Ustaw maksymalny rozmiar bufora odbioru gniazda w bajtach. Określenie 0 wyłącza tę opcję. Wartość ta będzie ustawiona dla deskryptora gniazda za pomocą opcji SO_RCVBUF. stop.name=Automatyczne Zakończenie stop.description=Zakończ działanie programu po upływie SEC sekund. Jeśli 0, ta funkcja jest wyłączona. truncate-console-readout.name=Ostrzeżenia Konsoli truncate-console-readout.description=Przytnij wyjście konsoli do jednej linii. ================================================ FILE: src/langs/ru_RU.txt ================================================ [global] AriaNg Version=Версия AriaNg Operation Result=Результат операции Operation Succeeded=Операция завершена успешно is connected=Подключено Error=Ошибка OK=OK Confirm=Подтвердить Cancel=Отмена Close=Закрыть True=Истина False=Ложь DEBUG=Отладка INFO=Информация WARN=Предупреждение ERROR=Ошибка Connecting=Подключение Connected=Подключено Disconnected=Отключено Reconnecting=Повторное подключение Waiting to reconnect=Ожидание повторного подключения Global=Глобально New=Новый Start=Запуск Pause=Пауза Retry=Повтор Retry Selected Tasks=Повторить выбранные задачи Delete=Удалить Select All=Выбрать все Select None=Отменить выбор всех Select Invert=Инвертировать выбор Select All Failed Tasks=Выбрать все неудавшиеся задачи Select All Completed Tasks=Выбрать все завершенные задачи Select All Tasks=Выбрать все задачи Display Order=Порядок отображения Copy Download Url=Копировать URL загрузки Copy Magnet Link=Копировать магнитную ссылку Help=Помощь Search=Поиск Default=По умолчанию Expand=Развернуть Collapse=Свернуть Expand All=Развернуть все Collapse All=Свернуть все Open=Открыть Save=Сохранить Import=Импорт Remove Task=Удалить задачу Remove Selected Task=Удалить выбранную задачу Clear Stopped Tasks=Очистить остановленные задачи Click to view task detail=Нажмите для просмотра деталей задачи By File Name=По имени файла By File Size=По размеру файла By Progress=По прогрессу By Selected Status=По выбранному статусу By Remaining=По оставшемуся времени By Download Speed=По скорости загрузки By Upload Speed=По скорости отдачи By Peer Address=По адресу пира By Client Name=По имени клиента Filters=Фильтры Download=Загрузка Upload=Отдача Downloading=Загрузка Pending Verification=Ожидание проверки Verifying=Проверка Seeding=Раздача Waiting=Ожидание Paused=На паузе Completed=Завершено Error Occurred=Произошла ошибка Removed=Удалено Finished / Stopped=Завершено / Остановлено Uncompleted=Не завершено Click to pin=Нажмите, чтобы закрепить Settings=Настройки AriaNg Settings=Настройки AriaNg Aria2 Settings=Настройки Aria2 Basic Settings=Базовые настройки HTTP/FTP/SFTP Settings=Настройки HTTP/FTP/SFTP HTTP Settings=Настройки HTTP FTP/SFTP Settings=Настройки FTP/SFTP BitTorrent Settings=Настройки BitTorrent Metalink Settings=Настройки Metalink RPC Settings=Настройки RPC Advanced Settings=Расширенные настройки AriaNg Debug Console=Консоль отладки AriaNg Aria2 Status=Статус Aria2 File Name=Имя файла File Size=Размер файла Progress=Прогресс Share Ratio=Коэффициент раздачи Remaining=Оставшееся время Download Speed=Скорость загрузки Upload Speed=Скорость отдачи Links=Ссылки Torrent File=Файл торрент Metalink File=Файл Metalink File Name:=Имя файла: Options=Опции Overview=Обзор Pieces=Информация о блоках Files=Список файлов Peers=Состояние соединения Task Name=Имя задачи Task Size=Размер задачи Task Status=Статус задачи Error Description=Описание ошибки Health Percentage=Процент целостности Info Hash=Хэш информация Seeders=Количество сидов Connections=Количество соединений Seed Creation Time=Время создания сида Download Url=URL загрузки Download Dir=Каталог загрузки BT Tracker Servers=Серверы трекеров BT Copy=Копировать (Choose Files)=(Выбрать файлы) Videos=Видео Audios=Аудио Pictures=Изображения Documents=Документы Applications=Приложения Archives=Архивы Other=Другое Custom=Пользовательский Custom Choose File=Выбрать пользовательский файл Address=Адрес Client=Клиент Status=Статус Speed=Скорость (local)=(Локально) No Data=Нет данных No connected peers=Нет подключенных пиров Failed to change some tasks state.=Не удалось изменить состояние некоторых задач. Confirm Retry=Подтвердить повтор Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=Вы уверены, что хотите повторить выбранную задачу? AriaNg создаст ту же задачу после нажатия OK. Failed to retry this task.=Не удалось повторить эту задачу. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} задачи были повторены, и {{failedCount}} задачи не удалось повторить. Confirm Remove=Подтвердить удаление Are you sure you want to remove the selected task?=Вы уверены, что хотите удалить выбранную задачу? Failed to remove some task(s).=Не удалось удалить некоторые задачи. Confirm Clear=Подтвердить очистку Are you sure you want to clear stopped tasks?=Вы уверены, что хотите очистить остановленные задачи? Download Links:=Ссылки для загрузки: Download Now=Скачать сейчас Download Later=Скачать позже Open Torrent File=Открыть файл торрент Open Metalink File=Открыть файл Metalink Support multiple URLs, one URL per line.=Поддержка нескольких URL, один URL на строку. Your browser does not support loading file!=Ваш браузер не поддерживает загрузку файла! The selected file type is invalid!=Выбранный тип файла недействителен! Failed to load file!=Не удалось загрузить файл! Download Completed=Загрузка завершена BT Download Completed=BT загрузка завершена Download Error=Ошибка загрузки AriaNg Url=URL AriaNg Command API Url=URL API команд Export Command API=Экспорт API команд Export=Экспорт Copied=Скопировано Pause After Task Created=Пауза после создания задачи Language=Язык Theme=Тема Light=Светлый Dark=Темный Follow system settings=Следовать настройкам системы Debug Mode=Режим отладки Page Title=Заголовок страницы Preview=Предпросмотр Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=Советы: вы можете использовать тег "noprefix" для игнорирования префикса, тег "nosuffix" для игнорирования суффикса и тег "scale\=n" для установки точности десятичных знаков. Example: ${downspeed:noprefix:nosuffix:scale\=1}=Пример: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=Интервал обновления заголовка страницы Enable Browser Notification=Включить уведомление браузера Browser Notification Sound=Звук уведомления браузера Browser Notification Frequency=Частота уведомления браузера Unlimited=Неограниченно High (Up to 10 Notifications / 1 Minute)=Высокая (до 10 уведомлений / 1 минута) Middle (Up to 1 Notification / 1 Minute)=Средняя (до 1 уведомления / 1 минута) Low (Up to 1 Notification / 5 Minutes)=Низкая (до 1 уведомления / 5 минут) WebSocket Auto Reconnect Interval=Интервал автоматического переподключения WebSocket Aria2 RPC Alias=Псевдоним Aria2 RPC Aria2 RPC Address=Адрес Aria2 RPC Aria2 RPC Protocol=Протокол Aria2 RPC Aria2 RPC Http Request Method=Метод HTTP-запроса Aria2 RPC POST method only supports aria2 v1.15.2 and above.=Метод POST поддерживается только в Aria2 версии 1.15.2 и выше. Aria2 RPC Request Headers=Заголовки HTTP-запросов Aria2 RPC Support multiple request headers, one header per line, each line containing "header name: header value".=Поддержка нескольких заголовков запроса, один заголовок на строку, каждая строка содержит "имя заголовка: значение". Aria2 RPC Secret Token=Секретный токен Aria2 RPC Activate=Активировать Reset Settings=Сбросить настройки Confirm Reset=Подтвердить сброс Are you sure you want to reset all settings?=Вы уверены, что хотите сбросить все настройки? Clear Settings History=Очистить историю настроек Are you sure you want to clear all settings history?=Вы уверены, что хотите очистить всю историю настроек? Delete RPC Setting=Удалить настройку RPC Add New RPC Setting=Добавить новую настройку RPC Are you sure you want to remove rpc setting "{rpcName}"?=Вы уверены, что хотите удалить настройку rpc "{{rpcName}}"? Updating Global Stat Interval=Интервал обновления глобальной статистики Updating Task Information Interval=Интервал обновления информации о задаче Keyboard Shortcuts=Горячие клавиши Supported Keyboard Shortcuts=Поддерживаемые горячие клавиши Set Focus On Search Box=Установить фокус на поисковое поле Swipe Gesture=Жест смахивания Change Tasks Order by Drag-and-drop=Изменить порядок задач перетаскиванием Action After Creating New Tasks=Действие после создания новых задач Navigate to Task List Page=Перейти на страницу списка задач Navigate to Task Detail Page=Перейти на страницу деталей задачи Action After Retrying Task=Действие после повторной попытки задачи Navigate to Downloading Tasks Page=Перейти на страницу загрузки задач Stay on Current Page=Остаться на текущей странице Remove Old Tasks After Retrying=Удалить старые задачи после повторной попытки Confirm Task Removal=Подтвердить удаление задачи Include Prefix When Copying From Task Details=Включить префикс при копировании из деталей задачи Show Pieces Info In Task Detail Page=Показать информацию о частях на странице деталей задачи Pieces Amount is Less than or Equal to {value}=Количество частей меньше или равно {{value}} RPC List Display Order=Порядок отображения списка RPC Each Task List Page Uses Independent Display Order=Каждая страница списка задач использует независимый порядок отображения Recently Used=Недавно использованные RPC Alias=Псевдоним RPC Import / Export AriaNg Settings=Импорт / Экспорт настроек AriaNg Import Settings=Импорт настроек Export Settings=Экспорт настроек AriaNg settings data=Данные настроек AriaNg Confirm Import=Подтвердить импорт Are you sure you want to import all settings?=Вы уверены, что хотите импортировать все настройки? Invalid settings data format!=Недопустимый формат данных настроек! Data has been copied to clipboard.=Данные были скопированы в буфер обмена. Supported Placeholder=Поддерживаемое заполнение AriaNg Title=Название AriaNg Current RPC Alias=Текущий псевдоним RPC Downloading Count=Количество загрузок Waiting Count=Количество ожиданий Stopped Count=Количество остановок You have disabled notification in your browser. You should change your browser's settings before you enable this function.=Вы отключили уведомления в вашем браузере. Вам следует изменить настройки браузера, прежде чем включить эту функцию. Language resource has been updated, please reload the page for the changes to take effect.=Языковой ресурс был обновлен, пожалуйста, перезагрузите страницу, чтобы изменения вступили в силу. Configuration has been modified, please reload the page for the changes to take effect.=Конфигурация была изменена, пожалуйста, перезагрузите страницу, чтобы изменения вступили в силу. Reload AriaNg=Перезагрузить AriaNg Show Secret=Показать секрет Hide Secret=Скрыть секрет Aria2 Version=Версия Aria2 Enabled Features=Включенные функции Operations=Операции Reconnect=Переподключение Save Session=Сохранить сессию Shutdown Aria2=Выключить Aria2 Confirm Shutdown=Подтвердить завершение работы Are you sure you want to shutdown aria2?=Вы уверены, что хотите выключить aria2? Session has been saved successfully.=Сессия успешно сохранена. Aria2 has been shutdown successfully.=Aria2 успешно завершил работу. Toggle Navigation=Переключить навигацию Shortcut=Ярлык Global Rate Limit=Глобальное ограничение скорости Loading=Загрузка More Than One Day=Более одного дня Unknown=Неизвестно Bytes=Байты Hours=Часы Minutes=Минуты Seconds=Секунды Milliseconds=Миллисекунды Http=Http Http (Disabled)=Http (Отключено) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (Отключено) WebSocket (Security)=WebSocket (Безопасность) Http and WebSocket would be disabled when accessing AriaNg via Https.=Http и WebSocket будут отключены при доступе к AriaNg через Https. POST=POST GET=GET Enabled=Включено Disabled=Отключено Always=Всегда Never=Никогда BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=Изменения в настройках вступят в силу после обновления страницы. Logging Time=Время регистрации Log Level=Уровень логов Auto Refresh=Автоматическое обновление Refresh Now=Обновить сейчас Clear Logs=Очистить логи Are you sure you want to clear debug logs?=Вы уверены, что хотите очистить логи отладки? Show Detail=Показать подробности Log Detail=Детали логов Aria2 RPC Debug=Отладка Aria2 RPC Aria2 RPC Request Method=Метод запроса Aria2 RPC Aria2 RPC Request Parameters=Параметры запроса Aria2 RPC Aria2 RPC Response=Ответ Aria2 RPC Execute=Выполнить RPC method is illegal!=Метод RPC недопустим! AriaNg does not support this RPC method!=AriaNg не поддерживает этот метод RPC! RPC request parameters are invalid!=Параметры запроса RPC недействительны! Type is illegal!=Тип недопустим! Parameter is invalid!=Параметр недействителен! Option value cannot be empty!=Значение параметра не может быть пустым! Input number is invalid!=Введенный номер недействителен! Input number is below min value!=Введенное значение ниже минимального {{value}}! Input number is above max value!=Введенное значение выше максимального {{value}}! Input value is invalid!=Введенное значение недействительно! Protocol is invalid!=Протокол недействителен! RPC host cannot be empty!=RPC хост не может быть пустым! RPC secret is not base64 encoded!=RPC секрет не закодирован в base64! URL is not base64 encoded!=URL не закодирован в base64! Tap to configure and get started with AriaNg.=Нажмите, чтобы настроить и начать использовать AriaNg. Cannot initialize WebSocket!=Не удается инициализировать WebSocket! Cannot connect to aria2!=Не удается подключиться к aria2! Access Denied!=Доступ запрещен! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=Вы не можете использовать AriaNg, потому что этот браузер не соответствует минимальным требованиям для хранения данных. [error] unknown=Неизвестная ошибка. operation.timeout=Операция завершилась по таймауту. resource.notfound=Не удалось найти указанный ресурс. resource.notfound.max-file-not-found=Не удалось найти указанный ресурс. См. опцию --max-file-not-found. download.aborted.lowest-speed-limit=Загрузка прервана из-за слишком низкой скорости загрузки. См. опцию --lowest-speed-limit. network.problem=Проблема с сетью. resume.notsupported=Сервер не поддерживает возобновление загрузки. space.notenough=Недостаточно свободного места на диске. piece.length.different=Длина части отличается от указанной в управляющем файле .aria2. См. опцию --allow-piece-length-change. download.sametime=aria2 уже загружает другой файл с такими же данными. download.torrent.sametime=aria2 уже загружает другой торрент-файл с таким же хэшем. file.exists=Файл уже существует. См. опцию --allow-overwrite. file.rename.failed=Ошибка при переименовании файла. См. опцию --auto-file-renaming. file.open.failed=Ошибка при открытии файла. file.create.failed=Ошибка при создании файла или удалении существующего файла. io.error=Ошибка файловой системы. directory.create.failed=Не удалось создать указанный каталог. name.resolution.failed=Ошибка при разрешении имени. metalink.file.parse.failed=Ошибка при анализе файла Metalink. ftp.command.failed=Ошибка при выполнении команды FTP. http.response.header.bad=Неверный или нераспознанный заголовок ответа HTTP. redirects.toomany=Слишком много переадресаций для указанного URL. http.authorization.failed=Ошибка аутентификации HTTP. bencoded.file.parse.failed=Ошибка при анализе торрент-файла. torrent.file.corrupted=Указанный торрент-файл ".torrent" поврежден или не содержит необходимую информацию для aria2. magnet.uri.bad=Указанный магнитный URI недействителен. option.bad=Ошибка настройки. server.overload=Удаленный сервер слишком загружен, чтобы обработать текущий запрос. rpc.request.parse.failed=Ошибка при разборе RPC-запроса. checksum.failed=Ошибка проверки контрольной суммы файла. [languages] Czech=Че́шский German=Немецкий English=Английский Spanish=испанский French=Французский Italian=Итальянский Japanese=Японский Polish=Польский Russian=Русский Simplified Chinese=Упрощенный китайский Traditional Chinese=Традиционный китайский [format] longdate=DD/MM/YYYY HH:mm:ss time.millisecond={{value}} миллисекунда time.milliseconds={{value}} миллисекунд time.second={{value}} секунда time.seconds={{value}} секунд time.minute={{value}} минута time.minutes={{value}} минут time.hour={{value}} час time.hours={{value}} часов requires.aria2-version=Требуется версия {{version}} aria2 task.new.download-links=Ссылки для загрузки ({{count}} ссылки): task.pieceinfo=Завершено: {{completed}}, Всего: {{total}} блоков task.error-occurred=Произошла ошибка ({{errorcode}}) task.verifying-percent=Верификация в процессе ({{verifiedPercent}}%) settings.file-count=({{count}} файлов) settings.total-count=(Всего: {{count}}) debug.latest-logs=Последние {{count}} логов [rpc.error] unauthorized=Аутентификация не удалась! [option] true=Да false=Нет default=По умолчанию none=Нет hide=Скрыть full=Полный http=Http https=Https ftp=Ftp mem=Только память get=GET tunnel=ТУННЕЛЬ plain=Простой текст arc4=ARC4 binary=Бинарный ascii=ASCII debug=Отладка info=Информация notice=Уведомление warn=Предупреждение error=Ошибка adaptive=Адаптивный epoll=epoll falloc=falloc feedback=Обратная связь geom=Геометрия inorder=По порядку kqueue=kqueue poll=poll port=port prealloc=prealloc random=Случайный select=select trunc=trunc SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=Путь загрузки dir.description=Указывает директорию, в которую будут сохраняться загруженные файлы. log.name=Файл логов log.description=Путь к файлу логов. Если установлено "-", логи будут записаны в stdout. Если установлено пустое значение (""), логи не будут сохраняться на диск. max-concurrent-downloads.name=Максимальное количество одновременных загрузок max-concurrent-downloads.description=Устанавливает максимальное количество файлов, которые aria2 будет загружать одновременно. check-integrity.name=Проверка целостности check-integrity.description=Проверяет целостность файла путем проверки хэша каждого блока или всего файла. Эта опция действует только для BT, Metalink и HTTP(S)/FTP ссылок, которые настроили опцию --checksum. continue.name=Возобновить загрузку continue.description=Возобновляет загрузку частично загруженных файлов. Включение этой опции позволяет возобновить загрузку файлов, скачанных последовательно браузером или другими программами. Эта опция в настоящее время поддерживается только для файлов, загруженных через HTTP(S)/FTP. all-proxy.name=Прокси-сервер all-proxy.description=Устанавливает адрес прокси-сервера для всех протоколов. Также можно переопределить эту опцию для конкретных протоколов, используя опции --http-proxy, --https-proxy и --ftp-proxy. Это настройка будет влиять на все загрузки. Формат адреса прокси-сервера: [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=Имя пользователя прокси-сервера all-proxy-user.description=Устанавливает имя пользователя для аутентификации при подключении ко всем прокси-серверам. all-proxy-passwd.name=Пароль прокси-сервера all-proxy-passwd.description=Устанавливает пароль для аутентификации при подключении ко всем прокси-серверам. checksum.name=Контрольная сумма checksum.description=Устанавливает контрольную сумму. Формат значения опции TIPO=DIGEST. TIPO - это поддерживаемый тип хэша, перечисленный в aria2c -v hash алгоритмах. DIGEST - это шестнадцатеричный дайджест. Например, установить sha-1 хэш будет так: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838. Эта опция действует только для HTTP(S)/FTP загрузок. connect-timeout.name=Тайм-аут подключения connect-timeout.description=Устанавливает тайм-аут (в секундах) для установки соединения с HTTP/FTP/прокси сервером. После установления соединения, эта опция больше не будет действовать, используйте опцию --timeout. dry-run.name=Пробный запуск dry-run.description=Если установлено "да", aria2 только проверит наличие удаленного файла без загрузки его содержимого. Эта опция действует только для HTTP/FTP загрузок. Если установлено true, BT загрузки будут немедленно прерваны. lowest-speed-limit.name=Минимальный лимит скорости lowest-speed-limit.description=Закрывает соединение, если скорость загрузки ниже установленного значения (в Б/с). 0 означает отсутствие минимального лимита скорости. Можно добавлять единицы измерения, такие как K или M (1K=1024, 1M=1024K). Эта опция не влияет на BT загрузки. max-connection-per-server.name=Максимальное количество соединений на сервер max-connection-per-server.description=Устанавливает максимальное количество соединений, которые aria2 может одновременно устанавливать с одним сервером для загрузки одного файла. Это помогает оптимизировать скорость загрузки, предотвращая излишнюю нагрузку на сервер. max-file-not-found.name=Попытки повторного поиска файла не найдены max-file-not-found.description=Если aria2 получает статус "файл не найден" от удаленного HTTP/FTP сервера больше раз, чем установлено в этой опции, загрузка завершится с ошибкой. Установка 0 отключит эту опцию. Эта опция влияет только на HTTP/FTP серверы. Повторные попытки будут записаны вместе с количеством попыток, поэтому необходимо установить опцию --max-tries. max-tries.name=Максимальное количество попыток max-tries.description=Устанавливает максимальное количество попыток. 0 означает отсутствие ограничений. min-split-size.name=Минимальный размер деления файла min-split-size.description=aria2 не будет делить файлы размером меньше 2*РАЗМЕР байт. Например, если размер файла 20 МБ, а РАЗМЕР равен 10M, aria2 разделит файл на 2 сегмента [0-10MB) и [10MB-20MB) и будет использовать 2 источника для загрузки (если --split >= 2). Если РАЗМЕР равен 15M, то, поскольку 2*15M > 20MB, aria2 не будет делить файл и использует 1 источник для загрузки. Можно указывать единицы измерения, такие как K или M (1K=1024, 1M=1024K). Допустимые значения: от 1M до 1024M. netrc-path.name=Путь к файлу .netrc netrc-path.description=Указывает путь к файлу .netrc, который будет использоваться для аутентификации при подключении к серверу. no-netrc.name=Отключить netrc no-netrc.description=Отключает использование файла .netrc для аутентификации. Если установлено, aria2 не будет искать и использовать этот файл для аутентификации. no-proxy.name=Список серверов, для которых не использовать прокси no-proxy.description=Устанавливает имена хостов, доменные имена, сетевые адреса с маской подсети или без нее, для которых не использовать прокси-сервер. Используйте запятую для разделения нескольких записей. out.name=Имя файла out.description=Имя загруженного файла. Оно всегда относительно пути, установленного опцией --dir. Эта опция недействительна при использовании опции --force-sequential. proxy-method.name=Метод запроса прокси-сервера proxy-method.description=Устанавливает метод запроса для использования прокси-сервером. Метод может быть установлен как GET или TUNNEL. Загрузки HTTPS игнорируют эту опцию и всегда используют TUNNEL. remote-time.name=Получить время файла с сервера remote-time.description=Получает временную метку удаленного файла от HTTP/FTP службы и устанавливает ее на локальный файл, если доступно reuse-uri.name=Повторное использование URI reuse-uri.description=Когда все предоставленные URI использованы, продолжайте использовать уже использованные URI. retry-wait.name=Время ожидания перед повторной попыткой retry-wait.description=Устанавливает интервал времени (в секундах) между попытками повторной попытки. Когда установлено значение больше 0, aria2 будет пытаться снова при получении ответа 503 от HTTP сервера. server-stat-of.name=Сохранить состояние сервера server-stat-of.description=Указывает имя файла для сохранения состояния сервера. Можно использовать параметр --server-stat-if для чтения сохраненных данных. server-stat-timeout.name=Тайм-аут состояния сервера server-stat-timeout.description=Указывает время истечения состояния сервера (в секундах). split.name=Соединения для загрузки split.description=Использует N соединений для загрузки. Если предоставлены более N URI адресов, будут использованы первые N адресов, остальные будут использоваться как резервные. Если предоставлено меньше N URI адресов, они будут повторно использоваться для обеспечения одновременной активности N соединений. Количество соединений к одному серверу ограничено опцией --max-connection-per-server. stream-piece-selector.name=Алгоритм выбора частей stream-piece-selector.description=Указывает алгоритм выбора частей для загрузки HTTP/FTP. Части - это сегменты фиксированной длины во время параллельной загрузки. Если установлено значение "по умолчанию", aria2 выберет части, уменьшая количество соединений. Так как создание соединений затратно, это разумное поведение по умолчанию. Если установлено значение "последовательно", aria2 выберет части с наименьшим индексом. Индекс 0 указывает на первую часть файла. Это полезно для потокового видео. Опция --enable-http-pipelining помогает уменьшить расходы на переподключение. Обратите внимание, что aria2 зависит от опции --min-split-size, поэтому необходимо установить разумное значение для --min-split-size. Если установлено значение "случайно", aria2 выберет случайную часть. Как и "последовательно", зависит от опции --min-split-size. Если установлено значение "геометрически", aria2 сначала выберет часть с наименьшим индексом, затем зарезервирует место для выбранных ранее частей, используя экспоненциальный рост. Это уменьшит количество соединений, в то время как первые части файла будут загружаться первыми. Это также полезно для потокового видео. timeout.name=Тайм-аут timeout.description=Устанавливает таймаут для всех сетевых операций. Если операция не завершается в течение указанного времени, она будет прервана. Значение указывается в секундах. uri-selector.name=Алгоритм выбора URI uri-selector.description=Указывает алгоритм выбора URI. Возможные значения включают "последовательно", "отзыв" и "адаптивно". Если установлено значение "последовательно", URI будут использоваться в порядке их появления в списке. Если установлено значение "отзыв", aria2 выберет сервер с самой быстрой скоростью загрузки из списка URI, игнорируя недействительные зеркала. Предыдущая измеренная скорость загрузки будет частью файла состояния сервера, см. опции --server-stat-of и --server-stat-if. Если установлено значение "адаптивно", будет выбран лучший зеркало и ожидающее соединение. Обратите внимание, что возвращенные зеркала не проверены и будут повторно проверены только если все зеркала уже были проверены. Например, "отзыв" использует файл состояния сервера. check-certificate.name=Проверка сертификата check-certificate.description=Устанавливает, будет ли aria2 проверять SSL-сертификаты при соединении с HTTPS-серверами. Если установлено "true", aria2 будет проверять сертификаты, если "false" — будет игнорировать их. http-accept-gzip.name=Принимать GZip http-accept-gzip.description=Если заголовок ответа удаленного сервера включает Content-Encoding: gzip или Content-Encoding: deflate, отправляет запросы с заголовками Accept: deflate, gzip и распаковывает ответ. http-auth-challenge.name=Вызов аутентификации HTTP http-auth-challenge.description=Отправляет заголовки запросов аутентификации HTTP только по запросу сервера. Если установлено значение "нет", всегда отправляет заголовки запросов аутентификации. Исключение: если имя пользователя и пароль включены в URI, эта опция игнорируется, и заголовки запросов аутентификации отправляются всегда. http-no-cache.name=Отключить кеш http-no-cache.description=Заголовки запросов будут содержать Cache-Control: no-cache и Pragma: no-cache, чтобы избежать кеширования. Если установлено значение "нет", вышеуказанные заголовки запросов не будут отправлены, и опция --header может быть использована для добавления заголовка Cache-Control. http-user.name=Имя пользователя HTTP по умолчанию http-user.description=Устанавливает имя пользователя для аутентификации при подключении к HTTP-серверам. http-passwd.name=Пароль HTTP по умолчанию http-passwd.description=Устанавливает пароль для аутентификации при подключении к HTTP-серверам. http-proxy.name=Прокси-сервер HTTP http-proxy.description=Устанавливает прокси-сервер для HTTP-соединений. Укажите адрес прокси-сервера, через который будут проходить HTTP-запросы. http-proxy-user.name=Имя пользователя прокси-сервера HTTP http-proxy-user.description=Устанавливает имя пользователя для аутентификации при подключении к HTTP-прокси-серверу. http-proxy-passwd.name=Пароль прокси-сервера HTTP http-proxy-passwd.description=Устанавливает пароль для аутентификации при подключении к HTTP-прокси-серверу. https-proxy.name=Прокси-сервер HTTPS https-proxy.description=Устанавливает прокси-сервер для HTTPS-соединений. Укажите адрес прокси-сервера, через который будут проходить HTTPS-запросы. https-proxy-user.name=Имя пользователя прокси-сервера HTTPS https-proxy-user.description=Устанавливает имя пользователя для аутентификации при подключении к HTTPS-прокси-серверу. https-proxy-passwd.name=Пароль прокси-сервера HTTPS https-proxy-passwd.description=Устанавливает пароль для аутентификации при подключении к HTTPS-прокси-серверу. referer.name=Referer referer.description=Устанавливает заголовок Referer, который будет отправляться при запросах к веб-серверу. Это может быть полезно для имитации настоящих запросов из браузера. enable-http-keep-alive.name=Включить HTTP keep-alive enable-http-keep-alive.description=Включает keep-alive HTTP/1.1. enable-http-pipelining.name=Включить HTTP pipelining enable-http-pipelining.description=Включает HTTP/1.1 pipelining. header.name=Пользовательские заголовки header.description=Добавляет содержимое заголовка HTTP запроса. Каждая строка представляет опцию, содержащую "имя заголовка: значение заголовка". save-cookies.name=Путь сохранения cookie save-cookies.description=Сохраняет cookie в файл в формате Mozilla/Firefox(1.x/2.x)/Netscape. Если файл уже существует, он будет перезаписан. Истекшие cookie также будут сохранены, но их время истечения будет установлено на 0. use-head.name=Использовать метод HEAD use-head.description=Использует метод HEAD при первом запросе к HTTP серверу. user-agent.name=Пользовательский агент user-agent.description=Устанавливает строку User-Agent, которую aria2 будет использовать при взаимодействии с веб-серверами. ftp-user.name=Имя пользователя FTP по умолчанию ftp-user.description=Устанавливает имя пользователя, которое будет использоваться по умолчанию для аутентификации при подключении к FTP-серверам. ftp-passwd.name=Пароль FTP по умолчанию ftp-passwd.description=Если URI содержит только имя пользователя без пароля, aria2 сначала попытается найти пароль в файле .netrc. Если пароль найден в файле .netrc, он будет использован. В противном случае будет использован пароль, установленный с помощью этой опции. ftp-pasv.name=Пассивный режим ftp-pasv.description=Использует пассивный режим в FTP. Если установлено значение "нет", будет использован активный режим. Эта опция не применяется к передачам SFTP. ftp-proxy.name=Прокси-сервер FTP ftp-proxy.description=Устанавливает прокси-сервер для FTP-соединений. Укажите адрес прокси-сервера, через который будут проходить FTP-запросы. ftp-proxy-user.name=Имя пользователя прокси-сервера FTP ftp-proxy-user.description=Устанавливает имя пользователя для аутентификации при подключении к FTP-прокси-серверу. ftp-proxy-passwd.name=Пароль прокси-сервера FTP ftp-proxy-passwd.description=Устанавливает пароль для аутентификации при подключении к FTP-прокси-серверу. ftp-type.name=Тип передачи ftp-type.description=Устанавливает тип передачи для FTP-соединений. Возможные значения: passive или active. ftp-reuse-connection.name=Повторное использование соединения ftp-reuse-connection.description=Разрешает повторное использование одного FTP-соединения для нескольких загрузок или выгрузок, улучшая производительность. ssh-host-key-md.name=Контрольная сумма публичного ключа SSH ssh-host-key-md.description=Устанавливает контрольную сумму публичного ключа SSH сервера. Формат опции: TIPO=DIGEST. TIPO - это тип хэша. Поддерживаемые типы хэшей: sha-1 и md5. DIGEST - это шестнадцатеричный дайджест. Например: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. Эта опция может быть использована для проверки публичного ключа сервера при использовании SFTP. Если эта опция не установлена, будет использована проверка по умолчанию. bt-detach-seed-only.name=Отделить только задачи посева bt-detach-seed-only.description=Исключает только задачи посева при подсчете активных задач загрузки (см. опцию -j). Это означает, что если параметр установлен на -j3 и в настоящее время есть 3 активные задачи, одна из которых в режиме посева, она будет исключена (т.е. число станет 2) и следующая задача в очереди будет запущена. Однако важно отметить, что в методах RPC задачи посева по-прежнему считаются активными. bt-enable-hook-after-hash-check.name=Включить событие по окончанию проверки хэша bt-enable-hook-after-hash-check.description=Позволяет выполнять команду после завершения проверки хэша загрузок BT (см. опцию -V). По умолчанию, когда проверка хэша успешна, будет выполнена команда, установленная через --on-bt-download-complete. Чтобы отключить это поведение, установите значение "нет". bt-enable-lpd.name=Включить обнаружение локальных узлов (LPD) bt-enable-lpd.description=Включает или отключает использование локальной передачи данных (LPD) для обмена информацией о пирах в сети BitTorrent. bt-exclude-tracker.name=Исключить адреса трекеров BT bt-exclude-tracker.description=Исключенные адреса трекеров BT, разделенные запятыми. Можно использовать * для совпадения всех адресов, тем самым исключая все адреса трекеров. При использовании * в командной строке оболочки необходимо использовать экранирование или кавычки. bt-external-ip.name=Внешний IP-адрес bt-external-ip.description=Указывает внешний IP-адрес, используемый для загрузок BitTorrent и DHT. Может быть отправлен на серверы BitTorrent. Для DHT эта опция сообщит локальным узлам о загрузке определенного торрента. Это важно для использования DHT в частных сетях. Хотя называется "внешний", принимает различные типы IP-адресов. bt-force-encryption.name=Принудительное шифрование bt-force-encryption.description=Содержимое BT сообщений должно быть зашифровано с использованием arc4. Эта опция является быстрым способом установки --bt-require-crypto --bt-min-crypto-level=arc4. Не изменяет содержимое этих двух опций. Если установлено значение "да", отклоняет предыдущие BT рукопожатия и использует только замаскированные рукопожатия и зашифрованные сообщения. bt-hash-check-seed.name=Проверка хэша перед посевом bt-hash-check-seed.description=Если установлено значение "да", aria2 продолжит посев только после завершения проверки хэша и завершения файла, используя опцию --check-integrity. Если необходимо проверять только файлы, когда они повреждены или неполные, установите значение "нет". Эта опция действует только для загрузок BT. bt-load-saved-metadata.name=Загрузка сохраненных метаданных bt-load-saved-metadata.description=При использовании магнитной загрузки сначала пытается загрузить сохраненный файл с опцией --bt-save-metadata перед загрузкой метаданных из DHT. Если загрузка файла успешна, метаданные не будут загружены из DHT. bt-max-open-files.name=Максимальное количество открытых файлов bt-max-open-files.description=Устанавливает максимальное количество открытых файлов глобально для загрузок BT/Metalink. bt-max-peers.name=Максимальное количество пирингов bt-max-peers.description=Устанавливает максимальное количество подключенных пиров для каждой загрузки BT. 0 означает отсутствие ограничений. bt-metadata-only.name=Скачать только метаданные bt-metadata-only.description=Скачивает только торрент-файлы. Файлы, описанные в торрент-файле, не будут загружены. Эта опция действует только для магнитных ссылок. bt-min-crypto-level.name=Минимальный уровень шифрования bt-min-crypto-level.description=Устанавливает минимальный уровень шифрования. Если пир предлагает несколько методов шифрования, aria2 выберет минимальный уровень, соответствующий указанному. bt-prioritize-piece.name=Приоритет загрузки bt-prioritize-piece.description=Пытается сначала загрузить части в начале или конце каждого файла. Эта опция полезна для предварительного просмотра файлов. Параметры могут включать два ключевых слова: head и tail. Если присутствуют оба ключевых слова, их следует разделить запятой. Каждое ключевое слово может включать параметр SIZE. Например, указав head=SIZE, первые SIZE данных каждого файла будут иметь более высокий приоритет. tail=SIZE означает последние SIZE данных каждого файла. SIZE может включать K или M (1K=1024, 1M=1024K). bt-remove-unselected-file.name=Удалить невыбранные файлы bt-remove-unselected-file.description=После завершения задачи BT удаляет невыбранные файлы. Для выбора файлов для загрузки используйте опцию --select-file. Если файлы не выбраны, все файлы будут считаться загружаемыми по умолчанию. Эта опция удаляет файлы напрямую с диска, поэтому используйте ее с осторожностью. bt-require-crypto.name=Обязательное шифрование bt-require-crypto.description=Если установлено значение "да", aria не примет ранние рукопожатия BitTorrent (\19протокол BitTorrent) и установит только замаскированное соединение. Таким образом, aria2 будет использовать только замаскированные рукопожатия. bt-request-peer-speed-limit.name=Желаемая скорость загрузки от пиров bt-request-peer-speed-limit.description=Если общая скорость загрузки BT ниже значения, установленного этой опцией, aria2 временно увеличит количество соединений для повышения скорости загрузки. В некоторых обстоятельствах установка желаемой скорости загрузки может улучшить скорость загрузки. Можно добавить единицы K или M (1K=1024, 1M=1024K). bt-save-metadata.name=Сохранить торрент-файл bt-save-metadata.description=Сохраняет торрент-файл как файл ".torrent". Эта опция действует только для магнитных ссылок. Имя файла представляет собой шестнадцатеричный хэш, закодированный в шестнадцатеричном формате, за которым следует расширение ".torrent". Он сохраняется в той же директории, что и загруженные файлы. Если файл с таким именем уже существует, торрент-файл не будет сохранен. bt-seed-unverified.name=Не проверять уже загруженные файлы bt-seed-unverified.description=Не проверяет хэш каждого куска ранее загруженных файлов. bt-stop-timeout.name=Автоматическое завершение без скорости bt-stop-timeout.description=Когда скорость загрузки BT задачи остается на уровне 0 в течение времени, установленного этой опцией, загрузка останавливается. Если установлено значение 0, эта функция будет отключена. bt-tracker.name=Адрес трекера BT bt-tracker.description=Адреса трекеров BT, разделенные запятыми. Эти адреса не подвержены влиянию опции --bt-exclude-tracker, так как добавляются только после того, как опция --bt-exclude-tracker исключила другие адреса. bt-tracker-connect-timeout.name=Тайм-аут подключения к трекеру BT bt-tracker-connect-timeout.description=Устанавливает тайм-аут подключения к трекеру BT в секундах. После установления соединения эта опция больше не действует, используйте опцию --bt-tracker-timeout. bt-tracker-interval.name=Интервал подключения к трекеру BT bt-tracker-interval.description=Устанавливает интервал запросов к трекеру BT в секундах. Эта опция полностью переопределит минимальный интервал и интервал, возвращаемые трекером, aria2 будет использовать только значение этой опции. Если установлено значение 0, aria2 решит интервал на основе ответа трекера и прогресса загрузки. bt-tracker-timeout.name=Тайм-аут трекера BT bt-tracker-timeout.description=Устанавливает таймаут для взаимодействия с трекерами BitTorrent. Определяет время ожидания ответа от трекера перед повторной попыткой. dht-file-path.name=Файл DHT (IPv4) dht-file-path.description=Изменяет путь к файлу таблицы маршрутизации DHT IPv4. dht-file-path6.name=Файл DHT (IPv6) dht-file-path6.description=Изменяет путь к файлу таблицы маршрутизации DHT IPv6. dht-listen-port.name=Порт прослушивания DHT dht-listen-port.description=Устанавливает UDP порт, используемый DHT (IPv4, IPv6) и UDP сервером. Несколько портов можно разделить запятыми ",", например: 6881,6885. Также можно использовать тире "-" для указания диапазона: 6881-6999, или оба вместе: 6881-6889, 6999. dht-message-timeout.name=Тайм-аут сообщения DHT dht-message-timeout.description=Устанавливает таймаут для обмена сообщениями в DHT (распределённая хеш-таблица). Определяет время ожидания ответа от пиров в сети DHT. enable-dht.name=Включить DHT (IPv4) enable-dht.description=Включает функцию DHT IPv4. Эта опция также включает поддержку UDP сервера. Если торрент помечен как частный, aria2 не включит DHT, даже если эта опция установлена на "да". enable-dht6.name=Включить DHT (IPv6) enable-dht6.description=Включает функцию DHT IPv6. Если торрент помечен как частный, aria2 не включит DHT, даже если эта опция установлена на "да". Используйте опцию --dht-listen-port для установки порта прослушивания. enable-peer-exchange.name=Включить обмен пирамид enable-peer-exchange.description=Включает расширение обмена пирамид. Если торрент помечен как частный, aria2 не включит эту функцию, даже если эта опция установлена на "да". follow-torrent.name=Скачать файлы в торренте follow-torrent.description=Если установлено "Да" или "Только память", то при завершении загрузки файла с суффиксом .torrent или с типом содержимого application/x-bittorrent, aria2 прочитает и загрузит файлы, указанные в файле torrent. Если установлено "Только память", файл torrent не будет записан на диск, а только сохранен в памяти. Если установлено "Нет", файл .torrent будет загружен на диск, но не будет прочитан, и файлы, указанные в нем, не будут загружены. listen-port.name=Порт прослушивания listen-port.description=Устанавливает порт TCP для загрузок BT. Несколько портов могут быть разделены запятыми ",", например: 6881,6885. Также можно использовать дефис "-" для указания диапазона: 6881-6999, или их комбинацию: 6881-6889, 6999. max-overall-upload-limit.name=Максимальная глобальная скорость отдачи max-overall-upload-limit.description=Устанавливает максимальную глобальную скорость отдачи в байтах/секунду. 0 означает отсутствие ограничений. Можно увеличить значение, добавив единицы K или M (1K=1024, 1M=1024K). max-upload-limit.name=Максимальная скорость отдачи max-upload-limit.description=Устанавливает максимальную скорость отдачи для каждой задачи в байтах/секунду. 0 означает отсутствие ограничений. Можно увеличить значение, добавив единицы K или M (1K=1024, 1M=1024K). peer-id-prefix.name=Префикс идентификатора узла peer-id-prefix.description=Задает префикс для идентификатора узла. Идентификатор узла в BT имеет длину 20 байт. Если он превышает 20 байт, будут использованы только первые 20 байт. Если он короче 20 байт, будут добавлены случайные данные, чтобы достичь 20 байт. peer-agent.name=Агент пира peer-agent.description=Устанавливает строку User-Agent, которую будет использовать aria2 при соединении с пирами для передачи данных. seed-ratio.name=Минимальное соотношение раздачи seed-ratio.description=Задает соотношение раздачи. Раздача прекращается, когда соотношение раздачи достигает значения, установленного в этой опции. Настоятельно рекомендуется установить это значение на уровень выше или равный 1.0. Если не желаете ограничивать соотношение раздачи, можно установить на 0.0. Если также установлена опция --seed-time, раздача завершится, когда одно из условий будет выполнено. seed-time.name=Минимальное время раздачи seed-time.description=Задает время раздачи в минутах (в десятичном формате). Если установлено на 0, раздача не произойдет после завершения загрузки задачи BT. follow-metalink.name=Загрузка файлов из Metalink follow-metalink.description=Если установлено на "Да" или "Только память", когда файл с суффиксом .meta4 или .metalink или с типом содержимого application/metalink4+xml или application/metalink+xml будет завершен, aria2 прочитает и загрузит файлы, указанные в файле Metalink. Если установлено на "Только память", файл Metalink не будет записан на диск, а только сохранен в памяти. Если установлено на "Нет", файл .metalink будет загружен на диск, но не будет прочитан, и файлы, содержащиеся в нем, не будут загружены. metalink-base-uri.name=Базовый URI metalink-base-uri.description=Задает базовый URI для разрешения относительных URI адресов metalink:url и metalink:metaurl в файлах Metalink, хранящихся на локальном диске. Если URI представляет каталог, он должен заканчиваться на /. metalink-language.name=Язык metalink-language.description=Устанавливает язык, который будет использоваться для мета-данных в формате Metalink. Язык указывается в виде кода языка, например, "en" для английского. metalink-location.name=Предпочитаемое расположение сервера metalink-location.description=Предпочитаемое расположение сервера. Можно использовать список, разделенный запятыми, например: jp,us. metalink-os.name=Операционная система metalink-os.description=Операционная система файла для загрузки. metalink-version.name=Номер версии metalink-version.description=Номер версии файла для загрузки. metalink-preferred-protocol.name=Предпочитаемый протокол metalink-preferred-protocol.description=Задает предпочитаемый для использования протокол. Можно установить http, https, ftp или "нет". Если установлено на "нет", эта опция отключена. metalink-enable-unique-protocol.name=Использовать только один уникальный протокол metalink-enable-unique-protocol.description=Если файл Metalink доступен по нескольким протоколам и эта опция установлена на "Да", aria2 будет использовать только один. Используйте параметр --metalink-preferred-protocol для указания предпочитаемого протокола. enable-rpc.name=Включить сервер JSON-RPC/XML-RPC enable-rpc.description=Включает интерфейс удалённого вызова процедур (RPC), позволяя управлять aria2 через внешние приложения. pause-metadata.name=Приостановить после загрузки торрент-файла pause-metadata.description=Приостанавливает последующие загрузки после загрузки торрент-файла. В aria2 есть 3 типа загрузки торрент-файлов: (1) Загрузка файлов .torrent. (2) Торрент-файлы, загруженные через магнитные ссылки. (3) Загрузка файлов Metalink. Эти торрент-файлы после загрузки продолжат загружаться в зависимости от содержимого файла. Эта опция приостановит эти последующие загрузки. Эта опция эффективна только если опция --enable-rpc включена. rpc-allow-origin-all.name=Принимать все удаленные запросы rpc-allow-origin-all.description=Добавляет поле Access-Control-Allow-Origin в заголовок ответа RPC со значением *. rpc-listen-all.name=Прослушивать на всех сетевых интерфейсах rpc-listen-all.description=Прослушивает запросы JSON-RPC/XML-RPC на всех сетевых интерфейсах. Если установлено на "Нет", прослушивает только запросы из локальной сети. rpc-listen-port.name=Порт прослушивания rpc-listen-port.description=Устанавливает порт, на котором aria2 будет слушать запросы RPC. По умолчанию используется порт 6800. rpc-max-request-size.name=Максимальный размер запроса rpc-max-request-size.description=Устанавливает максимальный размер запроса JSON-RPC/XML-RPC. Если aria2 обнаруживает, что запрос превышает установленное количество байт, соединение будет сразу закрыто. rpc-save-upload-metadata.name=Сохранять загруженные торрент-файлы rpc-save-upload-metadata.description=Сохраняет загруженные торрент или Metalink файлы в директорию, указанную опцией dir. Имя файла состоит из метаданных хэша SHA-1 и расширения. Для торрент-файлов расширение .torrent. Для Metalink - .meta4. Если эта опция установлена на "Нет", загрузки, добавленные через методы aria2.addTorrent() или aria2.addMetalink(), не могут быть сохранены с опцией --save-session. rpc-secure.name=Включить SSL/TLS rpc-secure.description=RPC будет передаваться через шифрование SSL/TLS. Клиент RPC должен использовать протокол https для подключения к серверу. Для WebSocket клиентов используйте протокол wss. Используйте опции --rpc-certificate и --rpc-private-key для установки сертификата и приватного ключа сервера. allow-overwrite.name=Разрешить перезапись allow-overwrite.description=Перезагружает файл с начала, если соответствующий контрольный файл не существует. См. опцию --auto-file-renaming. allow-piece-length-change.name=Разрешить изменение длины части allow-piece-length-change.description=Если установлено на "Нет", aria2 остановит загрузку, если длина части отличается от длины в контрольном файле. Если установлено на "Да", можно продолжить, но часть прогресса загрузки будет потеряна. always-resume.name=Всегда возобновлять always-resume.description=Всегда возобновляет прерванную загрузку. Если установлено на "Да", aria2 всегда пытается возобновить прерванную загрузку, иначе останавливает загрузку. Если установлено на "Нет", для URI, которые не поддерживают возобновление загрузки, или если aria2 сталкивается с N URI, которые не поддерживают возобновление загрузки (N - значение, установленное опцией --max-resume-failure-tries), aria2 загрузит файл с начала. См. параметр --max-resume-failure-tries. async-dns.name=Асинхронный DNS async-dns.description=Включает асинхронное разрешение DNS, что позволяет улучшить производительность при разрешении имен хостов. auto-file-renaming.name=Автоматическое переименование файлов auto-file-renaming.description=Переименовывает файлы auto-save-interval.name=Интервал автоматического сохранения auto-save-interval.description=Автоматически сохраняет контрольный файл (*.aria2) каждые указанные секунды. Если установлено на 0, контрольный файл не будет автоматически сохранен во время загрузки. Независимо от установленного значения, aria2 сохранит контрольный файл после завершения задачи. Значение может быть установлено от 0 до 600. conditional-get.name=Условная загрузка conditional-get.description=Загружает файл только если он старше локального файла. Эта функция работает только для загрузок HTTP(S). Если размер файла уже указан в Metalink, функция не будет действовать. Также эта функция проигнорирует заголовок ответа Content-Disposition. Если существует контрольный файл, эта опция будет проигнорирована. Эта функция использует заголовок запроса If-Modified-Since для получения самого нового файла. При извлечении времени модификации локального файла, эта функция будет использовать имя файла, предоставленное пользователем (см. опцию --out), или имя файла в URI, если опция --out не указана. Для перезаписи существующего файла необходимо использовать параметр --allow-overwrite. conf-path.name=Путь к файлу конфигурации conf-path.description=Указывает путь к файлу конфигурации, который будет использоваться при запуске aria2. console-log-level.name=Уровень логов консоли console-log-level.description=Устанавливает уровень детализации для вывода логов в консоли. Доступные уровни: debug, info, notice, warn, и error. content-disposition-default-utf8.name=Использовать UTF-8 для обработки Content-Disposition content-disposition-default-utf8.description=Использует набор символов UTF-8 вместо ISO-8859-1 для обработки строки в заголовке "Content-Disposition", например, параметра имени файла, но не имени файла расширенной версии. daemon.name=Включить фоновый процесс daemon.description=Запускает aria2 в фоновом режиме как демон, освобождая терминал для других задач. deferred-input.name=Отложенная загрузка deferred-input.description=Если установлено "Да", aria2 не будет читать все URI из файла, указанного в опции --input-file при запуске, а будет читать их только по мере необходимости. Если файл ввода содержит большое количество URI для загрузки, эта опция может снизить использование памяти. Если установлено "Нет", aria2 будет читать все URI при запуске. Опция --deferred-input будет отключена при использовании --save-session. disable-ipv6.name=Отключить IPv6 disable-ipv6.description=Отключает использование IPv6 для всех сетевых соединений. disk-cache.name=Дисковый кеш disk-cache.description=Включает дисковый кеш. Если установлено 0, дисковый кеш будет отключен. Эта функция кеширует загруженные данные в памяти до максимального значения, указанного в этой опции. Память для кеша создается экземпляром aria2 и используется всеми загрузками. Так как данные записываются большими блоками и упорядочиваются по смещениям в файле, одним из преимуществ дискового кеша является уменьшение дискового ввода-вывода. Если вызывается проверка хэша, и данные находятся в памяти, то нет необходимости считывать их с диска. Размер может включать K или M (1K=1024, 1M=1024K). download-result.name=Результат загрузки download-result.description=Эта опция изменяет формат результата загрузки. Если установлено "По умолчанию", будет напечатан GID, статус, средняя скорость загрузки и путь/URI. Если задействовано несколько файлов, будет напечатан только путь/URI первого запрашиваемого файла, остальные будут проигнорированы. Если установлено "Полный", будет напечатан GID, статус, средняя скорость загрузки, прогресс загрузки и путь/URI. В этом случае прогресс загрузки и путь/URI будут напечатаны в одной строке для каждого файла. Если установлено "Скрытый", результат загрузки будет скрыт. dscp.name=DSCP dscp.description=Устанавливает значение DSCP для поля TOS в исходящих BT пакетах для QoS. Этот параметр устанавливает только биты DSCP поля TOS, а не все поле целиком. Если значения получены из /usr/include/netinet/ip.h, их нужно разделить на 4 (иначе значения будут неверными, например, класс CS1 станет CS4). Если используются стандартные значения из RFC, документации поставщика сети, Wikipedia или других источников, их можно использовать напрямую. rlimit-nofile.name=Максимальное количество открытых файловых дескрипторов rlimit-nofile.description=Устанавливает мягкий лимит на количество открытых файловых дескрипторов. Эта опция эффективна только если: a. Система поддерживает (POSIX). b. Лимит не превышает жесткий лимит. c. Указанный лимит больше текущего мягкого лимита. Это эквивалентно установке ulimit, но не может снизить лимит. Эта опция эффективна только если система поддерживает API rlimit. enable-color.name=Использовать цвета в выводе терминала enable-color.description=Включает или отключает использование цветного оформления в выводе консоли. enable-mmap.name=Включить MMap enable-mmap.description=Кеширует файлы, отображенные в память. Если пространство файла не выделено заранее, эта опция недействительна. См. --file-allocation. event-poll.name=Метод опроса событий event-poll.description=Устанавливает метод опроса событий. Возможные значения включают epoll, kqueue, port, poll и select. Для epoll, kqueue, port и poll доступны только если система их поддерживает. Большинство дистрибутивов Linux поддерживают epoll. Различные системы *BSD, включая Mac OS X, поддерживают kqueue. Open Solaris поддерживает port. Значение по умолчанию зависит от используемой операционной системы. file-allocation.name=Метод выделения файла file-allocation.description=Задает метод выделения файлов. "None" не выделяет пространство файла заранее. "Prealloc" выделяет пространство перед началом загрузки. Это займет время в зависимости от размера файла. Если используется современная файловая система, такая как ext4 (с расширенной поддержкой), btrfs, xfs или NTFS (только сборка MinGW), "falloc" - лучший выбор. Может выделить большие файлы (несколько GiB) почти мгновенно. Не используйте falloc на устаревших файловых системах, таких как ext3 и FAT32, так как требуется столько же времени, сколько и prealloc, и aria2 будет заблокирован до завершения выделения. falloc может быть недоступен, если система не поддерживает функцию posix_fallocate(3). "Trunc" использует системный вызов ftruncate(2) или платформенно-специфичную реализацию для усечения файла до определенной длины. В загрузках BitTorrent с несколькими файлами, если файл делит те же секции с соседним файлом, также будут выделены соседние файлы. force-save.name=Принудительное сохранение force-save.description=Сохраняет задание, даже если оно завершено или удалено при использовании опции --save-session. В этом случае эта опция также сохранит контрольный файл. Эта опция может сохранить задачи BT, которые считаются завершенными, но все еще находятся на раздаче. save-not-found.name=Сохранять ненайденные файлы save-not-found.description=При использовании опции --save-session сохраняет задание загрузки, даже если файлы в задании отсутствуют. Эта опция также сохранит эту ситуацию в контрольном файле. hash-check-only.name=Только проверка хэша hash-check-only.description=Если установлено "Да", завершает загрузку на основании завершения загрузки после выполнения проверки хэша с помощью опции --check-integrity. human-readable.name=Читаемый вывод в консоль human-readable.description=Печатает размеры и скорость в читаемом формате (например, 1.2Ki, 3.4Mi). keep-unfinished-download-result.name=Сохранять результаты незавершенных задач keep-unfinished-download-result.description=Сохраняет все результаты незавершенных задач загрузки, даже если они превышают количество, установленное опцией --max-download-result. Это может помочь сохранить все незавершенные загрузки в файле сессии (см. опцию --save-session). Важно отметить, что нет ограничения на количество незавершенных задач. Если это не требуется, отключите эту опцию. max-download-result.name=Максимальное количество результатов загрузки max-download-result.description=Устанавливает максимальное количество результатов загрузок, сохраняемых в памяти. Результаты загрузок включают завершённые, с ошибками или удалённые загрузки. Результаты сохраняются в очереди FIFO, что позволяет хранить не более указанного количества записей. Когда очередь заполнена и создаётся новый результат загрузки, самый старый результат удаляется из начала очереди, а новый добавляется в конец. Установка большого значения для этой опции может привести к высокому потреблению памяти, если выполняются тысячи загрузок. Установите 0, чтобы не сохранять результаты загрузок. Обратите внимание, что незавершённые загрузки всегда будут сохраняться в памяти, независимо от настройки этой опции. См. также опцию --keep-unfinished-download-result. max-mmap-limit.name=Максимальный лимит MMap max-mmap-limit.description=Устанавливает максимальный размер файла для включения MMap (см. опцию --enable-mmap). Размер файла определяется суммой всех размеров файлов в задаче загрузки. Например, если загрузка содержит 5 файлов, размер файла будет общей суммой этих файлов. Если размер файла превышает установленный для этой опции, MMap будет отключен. max-resume-failure-tries.name=Максимальное количество попыток возобновления прерванных загрузок max-resume-failure-tries.description=Когда опция --always-resume установлена на "Нет", если aria2 обнаруживает, что N URI не поддерживают возобновление прерванных загрузок, загрузка файла начнется с начала. Если N установлено на 0, загрузка файла начнется с начала только если все URI не поддерживают возобновление прерванных загрузок. См. опцию --always-resume. min-tls-version.name=Минимальная версия TLS min-tls-version.description=Указывает минимальную версию SSL/TLS. log-level.name=Уровень логов log-level.description=Устанавливает уровень детализации для записей в журнале. Доступные уровни: debug, info, notice, warn и error. optimize-concurrent-downloads.name=Оптимизация одновременных загрузок optimize-concurrent-downloads.description=Оптимизирует количество одновременных загрузок в зависимости от доступной пропускной способности. aria2 использует ранее измеренную скорость загрузки для получения количества одновременных загрузок с помощью правила N=A + B Log10 (скорость в Мбит/с). Коэффициенты A и B можно настроить, разделив их двоеточием в параметре. Значение по умолчанию (A=5, B=25) может использовать 5 одновременных загрузок в сети 1 Мбит/с и 50 в сети 100 Мбит/с. Количество одновременных загрузок ограничено максимумом, определенным параметром --max-concurrent-downloads. piece-length.name=Размер блока файла piece-length.description=Устанавливает размер блока для загрузок HTTP/FTP. aria2 делит файлы по этому лимиту. Все сегменты будут кратны этой длине. Эта опция не действует для загрузок BitTorrent. show-console-readout.name=Отображение данных консоли show-console-readout.description=Включает или отключает отображение текущего состояния загрузки в консоли. summary-interval.name=Интервал вывода сводки загрузки summary-interval.description=Устанавливает интервал вывода сводки прогресса загрузки (в секундах). Установите на 0, чтобы отключить вывод. max-overall-download-limit.name=Максимальная глобальная скорость загрузки max-overall-download-limit.description=Устанавливает максимальную глобальную скорость загрузки (байт/сек). 0 означает отсутствие ограничений. Можно увеличить значение, добавив единицы K или M (1K=1024, 1M=1024K). max-download-limit.name=Максимальная скорость загрузки max-download-limit.description=Устанавливает максимальную скорость загрузки для каждой задачи (байт/сек). 0 означает отсутствие ограничений. Можно увеличить значение, добавив единицы K или M (1K=1024, 1M=1024K). no-conf.name=Отключить файл конфигурации no-conf.description=Запускает aria2 без загрузки настроек из файла конфигурации. no-file-allocation-limit.name=Лимит выделения файлов no-file-allocation-limit.description=Не сравнивает выделенные файлы с этим лимитом размера. Можно увеличить значение, добавив единицы K или M (1K=1024, 1M=1024K). parameterized-uri.name=Включить поддержку параметризованных URI parameterized-uri.description=Включает поддержку параметризованных URI. Можно указать набор частей: http://{sv1,sv2,sv3}/foo.iso. Также можно использовать шаговый счетчик для указания числовых последовательностей: http://host/image[000-100:2].img. Шаговый счетчик необязателен. Если все URI не указывают на один и тот же файл, как во втором примере выше, необходимо использовать опцию -Z. quiet.name=Отключить вывод консоли quiet.description=Отключает вывод информации в стандартный поток вывода. Полезно для запуска в тихом режиме. realtime-chunk-checksum.name=Контроль целостности данных в реальном времени realtime-chunk-checksum.description=Если предоставлена контрольная сумма блока данных, проверяет блоки данных с контрольной суммой во время загрузки. remove-control-file.name=Удалить контрольный файл remove-control-file.description=Удаляет контрольный файл перед загрузкой. В сочетании с опцией --allow-overwrite=true, загрузка файла всегда начнется с начала. Эта опция может быть полезна пользователям, которые используют прокси, не поддерживающие возобновление загрузок. save-session.name=Файл сохранения сессии save-session.description=Сохраняет загрузки с ошибками и незавершенные загрузки в указанный файл при выходе. Можно перезагрузить их с помощью опции --input-file при перезапуске aria2. Если хотите сжать вывод с помощью GZip, можно добавить расширение .gz к имени файла. Обратите внимание, что метаданные загрузок, добавленных через методы RPC aria2.addTorrent() и aria2.addMetalink(), не будут сохранены, если не сохранены в файл. Загрузки, удаленные с помощью aria2.remove() и aria2.forceRemove(), не будут сохранены. save-session-interval.name=Интервал сохранения сессии save-session-interval.description=Сохраняет загрузки с ошибками или незавершенные загрузки в файл, указанный в опции --save-session, через указанные секунды. Если установлено на 0, сессия будет сохранена только при выходе aria2. socket-recv-buffer-size.name=Размер буфера приема сокета socket-recv-buffer-size.description=Устанавливает максимальный размер буфера приема сокета в байтах. Если установлено на 0, эта опция отключена. Значение этой опции устанавливается на дескриптор файла сокета при вызове setsockopt() с опцией SO_RCVBUF. stop.name=Время автоматической остановки stop.description=Останавливает все активные загрузки и завершает работу aria2. truncate-console-readout.name=Обрезка вывода консоли truncate-console-readout.description=Обрезает вывод консоли до одной строки. ================================================ FILE: src/langs/zh_Hans.txt ================================================ [global] AriaNg Version=AriaNg 版本 Operation Result=操作结果 Operation Succeeded=操作成功 is connected=已连接 Error=错误 OK=确定 Confirm=确认 Cancel=取消 Close=关闭 True=是 False=否 DEBUG=调试 (Debug) INFO=普通 (Info) WARN=警告 (Warn) ERROR=错误 (Error) Connecting=连接中 Connected=已连接 Disconnected=未连接 Reconnecting=重连中 Waiting to reconnect=等待重连 Global=全局 New=新建 Start=开始任务 Pause=暂停任务 Retry=重试 Retry Selected Tasks=重试选中的任务 Delete=删除任务 Select All=全部选中 Select None=全部不选 Select Invert=反向选择 Select All Failed Tasks=全选失败的任务 Select All Completed Tasks=全选已完成的任务 Select All Tasks=全部选中任务 Display Order=显示顺序 Copy Download Url=复制下载链接 Copy Magnet Link=复制磁力链接 Help=帮助 Search=搜索 Default=默认 Expand=展开 Collapse=折叠 Expand All=全部展开 Collapse All=全部折叠 Open=打开 Save=保存 Import=导入 Remove Task=删除任务 Remove Selected Task=删除选中的任务 Clear Stopped Tasks=清空已结束任务 Click to view task detail=点击查看任务详情 By File Name=按文件名 By File Size=按文件大小 By Progress=按进度 By Selected Status=按选中状态 By Remaining=按剩余时间 By Download Speed=按下载速度 By Upload Speed=按上传速度 By Peer Address=按节点地址 By Client Name=按客户端名称 Filters=过滤器 Download=下载 Upload=上传 Downloading=正在下载 Pending Verification=等待验证 Verifying=正在验证 Seeding=正在做种 Waiting=正在等待 Paused=已暂停 Completed=已完成 Error Occurred=发生错误 Removed=已删除 Finished / Stopped=已完成 / 已停止 Uncompleted=未完成 Click to pin=点击固定 Settings=系统设置 AriaNg Settings=AriaNg 设置 Aria2 Settings=Aria2 设置 Basic Settings=基本设置 HTTP/FTP/SFTP Settings=HTTP/FTP/SFTP 设置 HTTP Settings=HTTP 设置 FTP/SFTP Settings=FTP/SFTP 设置 BitTorrent Settings=BitTorrent 设置 Metalink Settings=Metalink 设置 RPC Settings=RPC 设置 Advanced Settings=高级设置 AriaNg Debug Console=AriaNg 调试控制台 Aria2 Status=Aria2 状态 File Name=文件名 File Size=大小 Progress=进度 Share Ratio=分享率 Remaining=剩余时间 Download Speed=下载速度 Upload Speed=上传速度 Links=链接 Torrent File=种子文件 Metalink File=Metalink 文件 File Name:=文件名: Options=选项 Overview=总览 Pieces=区块信息 Files=文件列表 Peers=连接状态 Task Name=任务名称 Task Size=任务大小 Task Status=任务状态 Error Description=错误描述 Health Percentage=健康度 Info Hash=特征值 Seeders=种子数 Connections=连接数 Seed Creation Time=种子创建时间 Download Url=下载地址 Download Dir=下载路径 BT Tracker Servers=BT 服务器 Copy=复制 (Choose Files)=(选择文件) Videos=视频 Audios=音频 Pictures=图片 Documents=文档 Applications=应用程序 Archives=存档文件 Other=其他 Custom=自定义 Custom Choose File=自定义选择文件 Address=地址 Client=客户端 Status=状态 Speed=速度 (local)=(本机) No Data=无数据 No connected peers=没有连接到其他节点 Failed to change some tasks state.=修改一些任务状态时失败. Confirm Retry=确认重试 Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=您是否要重试选中的任务? 点击 "确定" 后, AriaNg 将会创建相同的任务. Failed to retry this task.=该任务重试失败. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} 个任务重试成功以及 {{failedCount}} 个任务失败. Confirm Remove=确认删除 Are you sure you want to remove the selected task?=您是否要删除选中的任务? Failed to remove some task(s).=删除一些任务时失败. Confirm Clear=确认清除 Are you sure you want to clear stopped tasks?=您是否要清除已结束的任务? Download Links:=下载链接: Download Now=立即下载 Download Later=手动下载 Open Torrent File=打开种子文件 Open Metalink File=打开 Metalink 文件 Support multiple URLs, one URL per line.=支持多个 URL 地址, 每个地址占一行. Your browser does not support loading file!=您的浏览器不支持加载文件! The selected file type is invalid!=选择的文件类型无效! Failed to load file!=加载文件失败! Download Completed=下载完成 BT Download Completed=BT 下载完成 Download Error=下载出错 AriaNg Url=AriaNg 地址 Command API Url=命令行 API 地址 Export Command API=导出命令行 API Export=导出 Copied=已复制 Pause After Task Created=任务创建后暂停 Language=语言 Theme=主题 Light=浅色 Dark=深色 Follow system settings=跟随系统设置 Debug Mode=调试模式 Page Title=页面标题 Preview=预览 Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=小提示: 您可以使用 "noprefix" 标签忽略前缀, "nosuffix" 标签忽略后缀, 以及 "scale\=n" 标签设置小数的精度. Example: ${downspeed:noprefix:nosuffix:scale\=1}=示例: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=页面标题更新间隔 Enable Browser Notification=启用浏览器通知 Browser Notification Sound=浏览器通知声音 Browser Notification Frequency=浏览器通知频次 Unlimited=无限制 High (Up to 10 Notifications / 1 Minute)=高 (最多 10 条通知 / 每分钟) Middle (Up to 1 Notification / 1 Minute)=中 (最多 1 条通知 / 每分钟) Low (Up to 1 Notification / 5 Minutes)=低 (最多 1 条通知 / 每5分钟) WebSocket Auto Reconnect Interval=WebSocket 自动重连时间 Aria2 RPC Alias=Aria2 RPC 别名 Aria2 RPC Address=Aria2 RPC 地址 Aria2 RPC Protocol=Aria2 RPC 协议 Aria2 RPC Http Request Method=Aria2 RPC Http 请求方法 POST method only supports aria2 v1.15.2 and above.=POST 方法仅支持 aria2 v1.15.2 及以上. Aria2 RPC Request Headers=Aria2 RPC 请求头 Support multiple request headers, one header per line, each line containing "header name: header value".=支持多个请求头, 每个请求头占一行, 每行包含 "请求头名: 请求头值". Aria2 RPC Secret Token=Aria2 RPC 密钥 Activate=激活 Reset Settings=重置设置 Confirm Reset=确认重置 Are you sure you want to reset all settings?=您是否要重置所有设置? Clear Settings History=清除设置历史 Are you sure you want to clear all settings history?=您是否要清除所有设置的历史记录? Delete RPC Setting=删除 RPC 设置 Add New RPC Setting=添加新 RPC 设置 Are you sure you want to remove rpc setting "{rpcName}"?=您是否要删除 RPC 设置 "{{rpcName}}"? Updating Global Stat Interval=全局状态更新间隔 Updating Task Information Interval=任务信息更新间隔 Keyboard Shortcuts=键盘快捷键 Supported Keyboard Shortcuts=支持的键盘快捷键 Set Focus On Search Box=将焦点放在搜索框上 Swipe Gesture=滑动手势 Change Tasks Order by Drag-and-drop=拖拽任务排序 Action After Creating New Tasks=创建新任务后执行操作 Navigate to Task List Page=转到任务列表页面 Navigate to Task Detail Page=转到任务详情页面 Action After Retrying Task=重试任务后执行操作 Navigate to Downloading Tasks Page=转到正在下载列表页面 Stay on Current Page=留在当前页面 Remove Old Tasks After Retrying=重试任务后删除原任务 Confirm Task Removal=任务删除前确认 Include Prefix When Copying From Task Details=任务详情页复制时包括前缀 Show Pieces Info In Task Detail Page=任务详情页显示区块信息 Pieces Amount is Less than or Equal to {value}=区块数量小于等于 {{value}} RPC List Display Order=RPC 列表显示顺序 Each Task List Page Uses Independent Display Order=各任务列表页面使用独立显示顺序 Recently Used=最近使用 RPC Alias=RPC 别名 Import / Export AriaNg Settings=导入 / 导出 AriaNg 设置 Import Settings=导入设置 Export Settings=导出设置 AriaNg settings data=AriaNg 设置数据 Confirm Import=确认导入 Are you sure you want to import all settings?=您是否要导入所有设置? Invalid settings data format!=无效的设置数据格式! Data has been copied to clipboard.=数据已经复制到剪贴板中. Supported Placeholder=支持的占位符 AriaNg Title=AriaNg 标题 Current RPC Alias=当前 RPC 别名 Downloading Count=正在下载数量 Waiting Count=正在等待数量 Stopped Count=已停止数量 You have disabled notification in your browser. You should change your browser's settings before you enable this function.=您已经在浏览器中禁用通知功能. 如需使用此功能, 请修改您浏览器的设置. Language resource has been updated, please reload the page for the changes to take effect.=语言资源已经更新, 请重新加载页面使其生效. Configuration has been modified, please reload the page for the changes to take effect.=配置已经修改, 请重新加载页面使其生效. Reload AriaNg=重新加载 AriaNg Show Secret=显示密钥 Hide Secret=隐藏密钥 Aria2 Version=Aria2 版本 Enabled Features=已启用的功能 Operations=操作 Reconnect=重新连接 Save Session=保存会话 Shutdown Aria2=关闭 Aria2 Confirm Shutdown=确认关闭 Are you sure you want to shutdown aria2?=您是否要关闭 aria2? Session has been saved successfully.=会话已经成功保存. Aria2 has been shutdown successfully.=Aria2 已经成功关闭. Toggle Navigation=切换导航 Shortcut=快捷方式 Global Rate Limit=全局速度限制 Loading=正在加载... More Than One Day=超过1天 Unknown=未知 Bytes=字节 Hours=小时 Minutes=分 Seconds=秒 Milliseconds=毫秒 Http=Http Http (Disabled)=Http (已禁用) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (已禁用) WebSocket (Security)=WebSocket (安全) Http and WebSocket would be disabled when accessing AriaNg via Https.=使用 Https 访问 AriaNg 时,Http 和 WebSocket 将被禁用. POST=POST GET=GET Enabled=启用 Disabled=禁用 Always=始终 Never=从不 BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=设置将在页面刷新后生效. Logging Time=记录时间 Log Level=日志级别 Auto Refresh=自动刷新 Refresh Now=立即刷新 Clear Logs=清空日志 Are you sure you want to clear debug logs?=您是否要清除调试日志? Show Detail=显示详情 Log Detail=日志详情 Aria2 RPC Debug=Aria2 RPC 调试 Aria2 RPC Request Method=Aria2 RPC 请求方法 Aria2 RPC Request Parameters=Aria2 RPC 请求参数 Aria2 RPC Response=Aria2 RPC 响应 Execute=执行 RPC method is illegal!=RPC方法错误! AriaNg does not support this RPC method!=AriaNg 不支持该RPC方法! RPC request parameters are invalid!=RPC 请求参数无效! Type is illegal!=类型错误! Parameter is invalid!=请求参数无效! Option value cannot be empty!=参数内容不能为空! Input number is invalid!=输入的数字无效! Input number is below min value!=输入的数字小于最小值 {{value}} ! Input number is above max value!=输入的数字大于最大值 {{value}} ! Input value is invalid!=输入的内容无效! Protocol is invalid!=协议无效! RPC host cannot be empty!=RPC 主机不能为空! RPC secret is not base64 encoded!=RPC 密钥不是 Base64 编码后的字符串! URL is not base64 encoded!=指定 URL 不是 Base64 编码后的字符串! Tap to configure and get started with AriaNg.=您还没有进行过设置, 点击这里进行设置. Cannot initialize WebSocket!=无法初始化 WebSocket! Cannot connect to aria2!=无法连接到 aria2! Access Denied!=拒绝访问! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=您无法使用 AriaNg, 因为这个浏览器不满足数据存储的最低要求. [error] unknown=未知错误. operation.timeout=操作超时. resource.notfound=无法找到指定资源. resource.notfound.max-file-not-found=无法找到指定资源. 参见 --max-file-not-found option 参数. download.aborted.lowest-speed-limit=由于下载速度过慢, 下载已经终止. 参见 --lowest-speed-limit option 参数. network.problem=网络问题. resume.notsupported=服务器不支持断点续传. space.notenough=可用磁盘空间不足. piece.length.different=分片大小与 .aria2 控制文件中的不同. 参见 --allow-piece-length-change 参数. download.sametime=aria2 已经下载了另一个相同文件. download.torrent.sametime=aria2 已经下载了另一个相同哈希的种子文件. file.exists=文件已经存在. 参见 --allow-overwrite 参数. file.rename.failed=文件重命名失败. 参见 --auto-file-renaming 参数. file.open.failed=文件打开失败. file.create.failed=文件创建或删除已有文件失败. io.error=文件系统出错. directory.create.failed=无法创建指定目录. name.resolution.failed=域名解析失败. metalink.file.parse.failed=解析 Metalink 文件失败. ftp.command.failed=FTP 命令执行失败. http.response.header.bad=HTTP 返回头无效或无法识别. redirects.toomany=指定地址重定向过多. http.authorization.failed=HTTP 认证失败. bencoded.file.parse.failed=解析种子文件失败. torrent.file.corrupted=指定 ".torrent" 种子文件已经损坏或缺少 aria2 需要的信息. magnet.uri.bad=指定磁链地址无效. option.bad=设置错误. server.overload=远程服务器繁忙, 无法处理当前请求. rpc.request.parse.failed=处理 RPC 请求失败. checksum.failed=文件校验失败. [languages] Czech=捷克语 German=德语 English=英语 Spanish=西班牙语 French=法语 Italian=意大利语 Japanese=日语 Polish=波兰语 Russian=俄语 Simplified Chinese=简体中文 Traditional Chinese=繁体中文 [format] longdate=YYYY年MM月DD日 HH:mm:ss time.millisecond={{value}} 毫秒 time.milliseconds={{value}} 毫秒 time.second={{value}} 秒 time.seconds={{value}} 秒 time.minute={{value}} 分钟 time.minutes={{value}} 分钟 time.hour={{value}} 小时 time.hours={{value}} 小时 requires.aria2-version=需要 aria2 v{{version}} 或更高版本 task.new.download-links=下载链接 ({{count}} 个链接): task.pieceinfo=已完成: {{completed}}, 共计: {{total}} 块 task.error-occurred=发生错误 ({{errorcode}}) task.verifying-percent=正在验证 ({{verifiedPercent}}%) settings.file-count=({{count}} 个文件) settings.total-count=(共计: {{count}}个) debug.latest-logs=最近 {{count}} 条日志 [rpc.error] unauthorized=认证失败! [option] true=是 false=否 default=默认 none=无 hide=隐藏 full=完整 http=Http https=Https ftp=Ftp mem=仅内存 get=GET tunnel=TUNNEL plain=明文 arc4=ARC4 binary=二进制 ascii=ASCII debug=调试 (Debug) info=普通 (Info) notice=一般 (Notice) warn=警告 (Warn) error=错误 (Error) adaptive=自适应 epoll=epoll falloc=falloc feedback=反馈 geom=几何 inorder=顺序 kqueue=kqueue poll=poll port=port prealloc=prealloc random=随机 select=select trunc=trunc SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=下载路径 dir.description= log.name=日志文件 log.description=日志文件的路径. 如果设置为 "-", 日志则写入到 stdout. 如果设置为空字符串(""), 日志将不会记录到磁盘上. max-concurrent-downloads.name=最大同时下载数 max-concurrent-downloads.description= check-integrity.name=检查完整性 check-integrity.description=通过对文件的每个分块或整个文件进行哈希验证来检查文件的完整性. 此选项仅对BT、Metalink及设置了 --checksum 选项的 HTTP(S)/FTP 链接生效. continue.name=断点续传 continue.description=继续下载部分完成的文件. 启用此选项可以继续下载从浏览器或其他程序按顺序下载的文件. 此选项目前只支持 HTTP(S)/FTP 下载的文件. all-proxy.name=代理服务器 all-proxy.description=设置所有协议的代理服务器地址. 您还可以针对特定的协议覆盖此选项, 即使用 --http-proxy, --https-proxy 和 --ftp-proxy 选项. 此设置将会影响所有下载. 代理服务器地址的格式为 [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=代理服务器用户名 all-proxy-user.description= all-proxy-passwd.name=代理服务器密码 all-proxy-passwd.description= checksum.name=校验和 checksum.description=设置校验和. 选项值格式为 TYPE=DIGEST. TYPE 为哈希类型. 支持的哈希类型列在 aria2c -v 的 Hash Algorithms 中. DIGEST 是十六进制摘要. 例如, 设置 sha-1 摘要如同这样: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 此选项仅对 HTTP(S)/FTP 下载生效. connect-timeout.name=连接超时时间 connect-timeout.description=设置建立 HTTP/FTP/代理服务器 连接的超时时间(秒). 当连接建立后, 此选项不再生效, 请使用 --timeout 选项. dry-run.name=模拟运行 dry-run.description=如果设置为"是", aria2 将仅检查远程文件是否存在而不会下载文件内容. 此选项仅对 HTTP/FTP 下载生效. 如果设置为 true, BT 下载将会直接取消. lowest-speed-limit.name=最小速度限制 lowest-speed-limit.description=当下载速度低于此选项设置的值(B/s) 时将会关闭连接. 0 表示不设置最小速度限制. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). 此选项不会影响 BT 下载. max-connection-per-server.name=单服务器最大连接数 max-connection-per-server.description= max-file-not-found.name=文件未找到重试次数 max-file-not-found.description=如果 aria2 从远程 HTTP/FTP 服务器收到 "文件未找到" 的状态超过此选项设置的次数后下载将会失败. 设置为 0 将会禁用此选项. 此选项仅影响 HTTP/FTP 服务器. 重试时同时会记录重试次数, 所以也需要设置 --max-tries 这个选项. max-tries.name=最大尝试次数 max-tries.description=设置最大尝试次数. 0 表示不限制. min-split-size.name=最小文件分片大小 min-split-size.description=aria2 不会分割小于 2*SIZE 字节的文件. 例如, 文件大小为 20MB, 如果 SIZE 为 10M, aria2 会把文件分成 2 段 [0-10MB) 和 [10MB-20MB), 并且使用 2 个源进行下载 (如果 --split >= 2). 如果 SIZE 为 15M, 由于 2*15M > 20MB, 因此 aria2 不会分割文件并使用 1 个源进行下载. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). 可以设置的值为: 1M-1024M. netrc-path.name=.netrc 文件路径 netrc-path.description= no-netrc.name=禁用 netrc no-netrc.description= no-proxy.name=不使用代理服务器列表 no-proxy.description=设置不使用代理服务器的主机名, 域名, 包含或不包含子网掩码的网络地址, 多个使用逗号分隔. out.name=文件名 out.description=下载文件的文件名. 其总是相对于 --dir 选项中设置的路径. 当使用 --force-sequential 参数时此选项无效. proxy-method.name=代理服务器请求方法 proxy-method.description=设置用来请求代理服务器的方法. 方法可设置为 GET 或 TUNNEL. HTTPS 下载将忽略此选项并总是使用 TUNNEL. remote-time.name=获取服务器文件时间 remote-time.description=从 HTTP/FTP 服务获取远程文件的时间戳, 如果可用将设置到本地文件 reuse-uri.name=URI 复用 reuse-uri.description=当所有给定的 URI 地址都已使用, 继续使用已经使用过的 URI 地址. retry-wait.name=重试等待时间 retry-wait.description=设置重试间隔时间(秒). 当此选项的值大于 0 时, aria2 在 HTTP 服务器返回 503 响应时将会重试. server-stat-of.name=服务器状态保存文件 server-stat-of.description=指定用来保存服务器状态的文件名. 您可以使用 --server-stat-if 参数读取保存的数据. server-stat-timeout.name=服务器状态超时 server-stat-timeout.description=指定服务器状态的过期时间 (单位为秒). split.name=单任务连接数 split.description=下载时使用 N 个连接. 如果提供超过 N 个 URI 地址, 则使用前 N 个地址, 剩余的地址将作为备用. 如果提供的 URI 地址不足 N 个, 这些地址多次使用以保证同时建立 N 个连接. 同一服务器的连接数会被 --max-connection-per-server 选项限制. stream-piece-selector.name=分片选择算法 stream-piece-selector.description=指定 HTTP/FTP 下载使用的分片选择算法. 分片表示的是并行下载时固定长度的分隔段. 如果设置为"默认", aria2 将会按减少建立连接数选择分片. 由于建立连接操作的成本较高, 因此这是合理的默认行为. 如果设置为"顺序", aria2 将选择索引最小的分片. 索引为 0 时表示为文件的第一个分片. 这将有助于视频的边下边播. --enable-http-pipelining 选项有助于减少重连接的开销. 请注意, aria2 依赖于 --min-split-size 选项, 所以有必要对 --min-split-size 选项设置一个合理的值. 如果设置为"随机", aria2 将随机选择一个分片. 就像"顺序"一样, 依赖于 --min-split-size 选项. 如果设置为"几何", aria2 会先选择索引最小的分片, 然后会为之前选择的分片保留指数增长的空间. 这将减少建立连接的次数, 同时文件开始部分将会先行下载. 这也有助于视频的边下边播. timeout.name=超时时间 timeout.description= uri-selector.name=URI 选择算法 uri-selector.description=指定 URI 选择的算法. 可选的值包括 "按顺序", "反馈" 和 "自适应". 如果设置为"按顺序", URI 将按列表中出现的顺序使用. 如果设置为"反馈", aria2 将根据之前的下载速度选择 URI 列表中下载速度最快的服务器. 同时也将有效跳过无效镜像. 之前统计的下载速度将作为服务器状态文件的一部分, 参见 --server-stat-of 和 --server-stat-if 选项. 如果设置为"自适应", 将从最好的镜像和保留的连接里选择一项. 补充说明, 其返回的镜像没有被测试过, 同时如果每个镜像都已经被测试过时, 返回的镜像还会被重新测试. 否则, 其将不会选择其他镜像. 例如"反馈", 其使用服务器状态文件. check-certificate.name=检查证书 check-certificate.description= http-accept-gzip.name=支持 GZip http-accept-gzip.description=如果远程服务器的响应头中包含 Content-Encoding: gzip 或 Content-Encoding: deflate , 将发送包含 Accept: deflate, gzip 的请求头并解压缩响应. http-auth-challenge.name=认证质询 http-auth-challenge.description=仅当服务器需要时才发送 HTTP 认证请求头. 如果设置为"否", 每次都会发送认证请求头. 例外: 如果用户名和密码包含在 URI 中, 将忽略此选项并且每次都会发送认证请求头. http-no-cache.name=禁用缓存 http-no-cache.description=发送的请求头中将包含 Cache-Control: no-cache 和 Pragma: no-cache header 以避免内容被缓存. 如果设置为"否", 上述请求头将不会发送, 同时您也可以使用 --header 选项将 Cache-Control 请求头添加进去. http-user.name=HTTP 默认用户名 http-user.description= http-passwd.name=HTTP 默认密码 http-passwd.description= http-proxy.name=HTTP 代理服务器 http-proxy.description= http-proxy-user.name=HTTP 代理服务器用户名 http-proxy-user.description= http-proxy-passwd.name=HTTP 代理服务器密码 http-proxy-passwd.description= https-proxy.name=HTTPS 代理服务器 https-proxy.description= https-proxy-user.name=HTTPS 代理服务器用户名 https-proxy-user.description= https-proxy-passwd.name=HTTPS 代理服务器密码 https-proxy-passwd.description= referer.name=请求来源 referer.description=设置 HTTP 请求来源 (Referer). 此选项将影响所有 HTTP/HTTPS 下载. 如果设置为 *, 请求来源将设置为下载链接. 此选项可以配合 --parameterized-uri 选项使用. enable-http-keep-alive.name=启用持久连接 enable-http-keep-alive.description=启用 HTTP/1.1 持久连接. enable-http-pipelining.name=启用 HTTP 管线化 enable-http-pipelining.description=启用 HTTP/1.1 管线化. header.name=自定义请求头 header.description=增加 HTTP 请求头内容. 每行放置一项, 每项包含 "请求头名: 请求头值". save-cookies.name=Cookies 保存路径 save-cookies.description=以 Mozilla/Firefox(1.x/2.x)/Netscape 格式将 Cookies 保存到文件中. 如果文件已经存在, 将被覆盖. 会话过期的 Cookies 也将会保存, 其过期时间将会设置为 0. use-head.name=启用 HEAD 方法 use-head.description=第一次请求 HTTP 服务器时使用 HEAD 方法. user-agent.name=自定义 User Agent user-agent.description= ftp-user.name=FTP 默认用户名 ftp-user.description= ftp-passwd.name=FTP 默认密码 ftp-passwd.description=如果 URI 中包含用户名单不包含密码, aria2 首先会从 .netrc 文件中获取密码. 如果在 .netrc 文件中找到密码, 则使用该密码. 否则, 使用此选项设置的密码. ftp-pasv.name=被动模式 ftp-pasv.description=在 FTP 中使用被动模式. 如果设置为"否", 则使用主动模式. 此选项不适用于 SFTP 传输. ftp-proxy.name=FTP 代理服务器 ftp-proxy.description= ftp-proxy-user.name=FTP 代理服务器用户名 ftp-proxy-user.description= ftp-proxy-passwd.name=FTP 代理服务器密码 ftp-proxy-passwd.description= ftp-type.name=传输类型 ftp-type.description= ftp-reuse-connection.name=连接复用 ftp-reuse-connection.description= ssh-host-key-md.name=SSH 公钥校验和 ssh-host-key-md.description=设置 SSH 主机公钥的校验和. 选项值格式为 TYPE=DIGEST. TYPE 为哈希类型. 支持的哈希类型为 sha-1 和 md5. DIGEST 是十六进制摘要. 例如: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. 此选项可以在使用 SFTP 时用来验证服务器的公钥. 如果此选项不设置, 即保留默认, 不会进行任何验证。 bt-detach-seed-only.name=分离仅做种任务 bt-detach-seed-only.description=统计当前活动下载任务(参见 -j 选项) 时排除仅做种的任务. 这意味着, 如果参数设置为 -j3, 此选项打开并且当前有 3 个正在活动的任务, 并且其中有 1 个进入做种模式, 那么其会从正在下载的数量中排除(即数量会变为 2), 在队列中等待的下一个任务将会开始执行. 但要知道, 在 RPC 方法中, 做种的任务仍然被认为是活动的下载任务. bt-enable-hook-after-hash-check.name=启用哈希检查完成事件 bt-enable-hook-after-hash-check.description=允许 BT 下载哈希检查(参见 -V 选项) 完成后调用命令. 默认情况下, 当哈希检查成功后, 通过 --on-bt-download-complete 设置的命令将会被执行. 如果要禁用此行为, 请设置为"否". bt-enable-lpd.name=启用本地节点发现 (LPD) bt-enable-lpd.description= bt-exclude-tracker.name=BT 排除服务器地址 bt-exclude-tracker.description=逗号分隔的 BT 排除服务器地址. 您可以使用 * 匹配所有地址, 因此将排除所有服务器地址. 当在 shell 命令行使用 * 时, 需要使用转义符或引号. bt-external-ip.name=外部 IP 地址 bt-external-ip.description=指定用在 BitTorrent 下载和 DHT 中的外部 IP 地址. 它可能被发送到 BitTorrent 服务器. 对于 DHT, 此选项将会报告本地节点正在下载特定的种子. 这对于在私有网络中使用 DHT 非常关键. 虽然这个方法叫外部, 但其可以接受各种类型的 IP 地址. bt-force-encryption.name=强制加密 bt-force-encryption.description=BT 消息中的内容需要使用 arc4 加密. 此选项是设置 --bt-require-crypto --bt-min-crypto-level=arc4 这两个选项的快捷方式. 此选项不会修改上述两个选项的内容. 如果设置为"是", 将拒绝以前的 BT 握手, 并仅使用模糊握手及加密消息. bt-hash-check-seed.name=做种前检查文件哈希 bt-hash-check-seed.description=如果设置为"是", 当使用 --check-integrity 选项完成哈希检查及文件完成后才继续做种. 如果您希望仅当文件损坏或未完成时检查文件, 请设置为"否". 此选项仅对 BT 下载有效 bt-load-saved-metadata.name=加载已保存的元数据文件 bt-load-saved-metadata.description=当使用磁链下载时, 在从 DHT 获取种子元数据之前, 首先尝试加载使用 --bt-save-metadata 选项保存的文件. 如果文件加载成功, 则不会从 DHT 下载元数据. bt-max-open-files.name=最多打开文件数 bt-max-open-files.description=设置 BT/Metalink 下载全局打开的最大文件数. bt-max-peers.name=最大连接节点数 bt-max-peers.description=设置每个 BT 下载的最大连接节点数. 0 表示不限制. bt-metadata-only.name=仅下载种子文件 bt-metadata-only.description=仅下载种子文件. 种子文件中描述的文件将不会下载. 此选项仅对磁链生效. bt-min-crypto-level.name=最低加密级别 bt-min-crypto-level.description=设置加密方法的最小级别. 如果节点提供多种加密方法, aria2 将选择满足给定级别的最低级别. bt-prioritize-piece.name=优先下载 bt-prioritize-piece.description=尝试先下载每个文件开头或结尾的分片. 此选项有助于预览文件. 参数可以包括两个关键词: head 和 tail. 如果包含两个关键词, 需要使用逗号分隔. 每个关键词可以包含一个参数, SIZE. 例如, 如果指定 head=SIZE, 每个文件的最前 SIZE 数据将会获得更高的优先级. tail=SIZE 表示每个文件的最后 SIZE 数据. SIZE 可以包含 K 或 M (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=删除未选择的文件 bt-remove-unselected-file.description=当 BT 任务完成后删除未选择的文件. 要选择需要下载的文件, 请使用 --select-file 选项. 如果没有选择, 则所有文件都默认为需要下载. 此选项会从磁盘上直接删除文件, 请谨慎使用此选项. bt-require-crypto.name=需要加密 bt-require-crypto.description=如果设置为"是", aria 将不会接受以前的 BitTorrent 握手协议(\19BitTorrent 协议)并建立连接. 因此 aria2 总是模糊握手. bt-request-peer-speed-limit.name=期望下载速度 bt-request-peer-speed-limit.description=如果一个 BT 下载的整体下载速度低于此选项设置的值, aria2 会临时提高连接数以提高下载速度. 在某些情况下, 设置期望下载速度可以提高您的下载速度. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). bt-save-metadata.name=保存种子文件 bt-save-metadata.description=保存种子文件为 ".torrent" 文件. 此选项仅对磁链生效. 文件名为十六进制编码后的哈希值及 ".torrent"后缀. 保存的目录与下载文件的目录相同. 如果相同的文件已存在, 种子文件将不会保存. bt-seed-unverified.name=不检查已经下载的文件 bt-seed-unverified.description=不检查之前下载文件中每个分片的哈希值. bt-stop-timeout.name=无速度时自动停止时间 bt-stop-timeout.description=当 BT 任务下载速度持续为 0, 达到此选项设置的时间后停止下载. 如果设置为 0, 此功能将禁用. bt-tracker.name=BT 服务器地址 bt-tracker.description=逗号分隔的 BT 服务器地址. 这些地址不受 --bt-exclude-tracker 选项的影响, 因为这些地址在 --bt-exclude-tracker 选项排除掉其他地址之后才会添加. bt-tracker-connect-timeout.name=BT 服务器连接超时时间 bt-tracker-connect-timeout.description=设置 BT 服务器的连接超时时间 (秒). 当连接建立后, 此选项不再生效, 请使用 --bt-tracker-timeout 选项. bt-tracker-interval.name=BT 服务器连接间隔时间 bt-tracker-interval.description=设置请求 BT 服务器的间隔时间 (秒). 此选项将完全覆盖服务器返回的最小间隔时间和间隔时间, aria2 仅使用此选项的值.如果设置为 0, aria2 将根据服务器的响应情况和下载进程决定时间间隔. bt-tracker-timeout.name=BT 服务器超时时间 bt-tracker-timeout.description= dht-file-path.name=DHT (IPv4) 文件 dht-file-path.description=修改 IPv4 DHT 路由表文件路径. dht-file-path6.name=DHT (IPv6) 文件 dht-file-path6.description=修改 IPv6 DHT 路由表文件路径. dht-listen-port.name=DHT 监听端口 dht-listen-port.description=设置 DHT (IPv4, IPv6) 和 UDP 服务器使用的 UDP 端口. 多个端口可以使用逗号 "," 分隔, 例如: 6881,6885. 您还可以使用短横线 "-" 表示范围: 6881-6999, 或可以一起使用: 6881-6889, 6999. dht-message-timeout.name=DHT 消息超时时间 dht-message-timeout.description= enable-dht.name=启用 DHT (IPv4) enable-dht.description=启用 IPv4 DHT 功能. 此选项同时会启用 UDP 服务器支持. 如果种子设置为私有, 即使此选项设置为"是", aria2 也不会启用 DHT. enable-dht6.name=启用 DHT (IPv6) enable-dht6.description=启用 IPv6 DHT 功能. 如果种子设置为私有, 即使此选项设置为"是", aria2 也不会启用 DHT. 使用 --dht-listen-port 选项设置监听的端口. enable-peer-exchange.name=启用节点交换 enable-peer-exchange.description=启用节点交换扩展. 如果种子设置为私有, 即使此选项设置为"是", aria2 也不会启用此功能. follow-torrent.name=下载种子中的文件 follow-torrent.description=如果设置为"是"或"仅内存", 当后缀为 .torrent 或内容类型为 application/x-bittorrent 的文件下载完成时, aria2 将按种子文件读取并下载该文件中提到的文件. 如果设置为"仅内存", 该种子文件将不会写入到磁盘中, 而仅会存储在内存中. 如果设置为"否", 则 .torrent 文件会下载到磁盘中, 但不会按种子文件读取并且其中的文件不会进行下载. listen-port.name=监听端口 listen-port.description=设置 BT 下载的 TCP 端口. 多个端口可以使用逗号 "," 分隔, 例如: 6881,6885. 您还可以使用短横线 "-" 表示范围: 6881-6999, 或可以一起使用: 6881-6889, 6999. max-overall-upload-limit.name=全局最大上传速度 max-overall-upload-limit.description=设置全局最大上传速度 (字节/秒). 0 表示不限制. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). max-upload-limit.name=最大上传速度 max-upload-limit.description=设置每个任务的最大上传速度 (字节/秒). 0 表示不限制. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). peer-id-prefix.name=节点 ID 前缀 peer-id-prefix.description=指定节点 ID 的前缀. BT 中节点 ID 长度为 20 字节. 如果超过 20 字节, 将仅使用前 20 字节. 如果少于 20 字节, 将在其后不足随机的数据保证为 20 字节. peer-agent.name=Peer Agent peer-agent.description=指定 BT 扩展握手期间用于节点客户端版本的字符串. seed-ratio.name=最小分享率 seed-ratio.description=指定分享率. 当分享率达到此选项设置的值时会完成做种. 强烈建议您将此选项设置为大于等于 1.0. 如果您想不限制分享比率, 可以设置为 0.0. 如果同时设置了 --seed-time 选项, 当任意一个条件满足时将停止做种. seed-time.name=最小做种时间 seed-time.description=以 (小数形式的) 分钟指定做种时间. 此选项设置为 0 时, 将在 BT 任务下载完成后不进行做种. follow-metalink.name=下载 Metalink 中的文件 follow-metalink.description=如果设置为"是"或"仅内存", 当后缀为 .meta4 或 .metalink 或内容类型为 application/metalink4+xml 或 application/metalink+xml 的文件下载完成时, aria2 将按 Metalink 文件读取并下载该文件中提到的文件. 如果设置为"仅内存", 该 Metalink 文件将不会写入到磁盘中, 而仅会存储在内存中. 如果设置为"否", 则 .metalink 文件会下载到磁盘中, 但不会按 Metalink 文件读取并且其中的文件不会进行下载. metalink-base-uri.name=基础 URI metalink-base-uri.description=指定基础 URI 以便解析本地磁盘中存储的 Metalink 文件里 metalink:url 和 metalink:metaurl 中的相对 URI 地址. 如果 URI 表示的为目录, 最后需要以 / 结尾. metalink-language.name=语言 metalink-language.description= metalink-location.name=首选服务器位置 metalink-location.description=首选服务器所在的位置. 可以使用逗号分隔的列表, 例如: jp,us. metalink-os.name=操作系统 metalink-os.description=下载文件的操作系统. metalink-version.name=版本号 metalink-version.description=下载文件的版本号. metalink-preferred-protocol.name=首选使用协议 metalink-preferred-protocol.description=指定首选使用的协议. 可以设置为 http, https, ftp 或"无". 设置为"无"时禁用此选项. metalink-enable-unique-protocol.name=仅使用唯一协议 metalink-enable-unique-protocol.description=如果一个 Metalink 文件可用多种协议, 并且此选项设置为"是", aria2 将只会使用其中一种. 使用 --metalink-preferred-protocol 参数指定首选的协议. enable-rpc.name=启用 JSON-RPC/XML-RPC 服务器 enable-rpc.description= pause-metadata.name=种子文件下载完后暂停 pause-metadata.description=当种子文件下载完成后暂停后续的下载. 在 aria2 中有 3 种种子文件的下载类型: (1) 下载 .torrent 文件. (2) 通过磁链下载的种子文件. (3) 下载 Metalink 文件. 这些种子文件下载完后会根据文件内容继续进行下载. 此选项会暂停这些后续的下载. 此选项仅当 --enable-rpc 选项启用时生效. rpc-allow-origin-all.name=接受所有远程请求 rpc-allow-origin-all.description=在 RPC 响应头增加 Access-Control-Allow-Origin 字段, 值为 * . rpc-listen-all.name=在所有网卡上监听 rpc-listen-all.description=在所有网络适配器上监听 JSON-RPC/XML-RPC 的请求, 如果设置为"否", 仅监听本地网络的请求. rpc-listen-port.name=监听端口 rpc-listen-port.description= rpc-max-request-size.name=最大请求大小 rpc-max-request-size.description=设置 JSON-RPC/XML-RPC 最大的请求大小. 如果 aria2 检测到请求超过设定的字节数, 会直接取消连接. rpc-save-upload-metadata.name=保存上传的种子文件 rpc-save-upload-metadata.description=在 dir 选项设置的目录中保存上传的种子文件或 Metalink 文件. 文件名包括 SHA-1 哈希后的元数据和扩展名两部分. 对于种子文件, 扩展名为 '.torrent'. 对于 Metalink 为 '.meta4'. 如果此选项设置为"否", 通过 aria2.addTorrent() 或 aria2.addMetalink() 方法添加的下载将无法通过 --save-session 选项保存. rpc-secure.name=启用 SSL/TLS rpc-secure.description=RPC 将通过 SSL/TLS 加密传输. RPC 客户端需要使用 https 协议连接服务器. 对于 WebSocket 客户端, 使用 wss 协议. 使用 --rpc-certificate 和 --rpc-private-key 选项设置服务器的证书和私钥. allow-overwrite.name=允许覆盖 allow-overwrite.description=如果相应的控制文件不存在时从头重新下载文件. 参见 --auto-file-renaming 选项. allow-piece-length-change.name=允许分片大小变化 allow-piece-length-change.description=如果设置为"否", 当分片长度与控制文件中的不同时, aria2 将会中止下载. 如果设置为"是", 您可以继续, 但部分下载进度将会丢失. always-resume.name=始终断点续传 always-resume.description=始终断点续传. 如果设置为"是", aria2 始终尝试断点续传, 如果无法恢复, 则中止下载. 如果设置为"否", 对于不支持断点续传的 URI 或 aria2 遇到 N 个不支持断点续传的 URI (N 为 --max-resume-failure-tries 选项设置的值), aria2 会从头下载文件. 参见 --max-resume-failure-tries 参数. async-dns.name=异步 DNS async-dns.description= auto-file-renaming.name=文件自动重命名 auto-file-renaming.description=重新命名已经存在的文件. 此选项仅对 HTTP(S)/FTP 下载有效. 新的文件名后会在文件名后、扩展名 (如果有) 前追加句点和数字(1..9999). auto-save-interval.name=自动保存间隔 auto-save-interval.description=每隔设置的秒数自动保存控制文件(*.aria2). 如果设置为 0, 下载期间控制文件不会自动保存. 不论设置的值为多少, aria2 会在任务结束时保存控制文件. 可以设置的值为 0 到 600. conditional-get.name=条件下载 conditional-get.description=仅当本地文件比远程文件旧时才进行下载. 此功能仅适用于 HTTP(S) 下载. 如果在 Metalink 中文件大小已经被指定则功能无法生效. 同时此功能还将忽略 Content-Disposition 响应头. 如果存在控制文件, 此选项将被忽略. 此功能通过 If-Modified-Since 请求头获取较新的文件. 当获取到本地文件的修改时间时, 此功能将使用用户提供的文件名 (参见 --out 选项), 如果没有指定 --out 选项则使用 URI 中的文件名. 为了覆盖已经存在的文件, 需要使用 --allow-overwrite 参数. conf-path.name=配置文件路径 conf-path.description= console-log-level.name=控制台日志级别 console-log-level.description= content-disposition-default-utf8.name=使用 UTF-8 处理 Content-Disposition content-disposition-default-utf8.description=处理 "Content-Disposition" 头中的字符串时使用 UTF-8 字符集来代替 ISO-8859-1, 例如, 文件名参数, 但不是扩展版本的文件名. daemon.name=启用后台进程 daemon.description= deferred-input.name=延迟加载 deferred-input.description=如果设置为"是", aria2 在启动时不会读取 --input-file 选项设置的文件中的所有 URI 地址, 而是会在之后需要时按需读取. 如果输入文件中包含大量要下载的 URI, 此选项可以减少内存的使用. 如果设置为"否", aria2 会在启动时读取所有的 URI. 当 -save-session 使用时将会禁用 --deferred-input 选项. disable-ipv6.name=禁用 IPv6 disable-ipv6.description= disk-cache.name=磁盘缓存 disk-cache.description=启用磁盘缓存. 如果设置为 0, 将禁用磁盘缓存. 此功能将下载的数据缓存在内存中, 最多占用此选项设置的字节数. 缓存存储由 aria2 实例创建并对所有下载共享. 由于数据以较大的单位写入并按文件的偏移重新排序, 所以磁盘缓存的一个优点是减少磁盘的 I/O. 如果调用哈希检查时并且数据缓存在内存中时, 将不需要从磁盘中读取. 大小可以包含 K 或 M (1K = 1024, 1M = 1024K). download-result.name=下载结果 download-result.description=此选项将修改下载结果的格式. 如果设置为"默认", 将打印 GID, 状态, 平均下载速度和路径/URI. 如果涉及多个文件, 仅打印第一个请求文件的路径/URI, 其余的将被忽略. 如果设置为"完整", 将打印 GID, 状态, 平均下载速度, 下载进度和路径/URI. 其中, 下载进度和路径/URI 将会每个文件打印一行. 如果设置为"隐藏", 下载结果将会隐藏. dscp.name=DSCP dscp.description=为 QoS 设置 BT 上行 IP 包的 DSCP 值. 此参数仅设置 IP 包中 TOS 字段的 DSCP 位, 而不是整个字段. 如果您从 /usr/include/netinet/ip.h 得到的值, 需要除以 4 (否则值将不正确, 例如您的 CS1 类将会转为 CS4). 如果您从 RFC, 网络供应商的文档, 维基百科或其他来源采取常用的值, 可以直接使用. rlimit-nofile.name=最多打开的文件描述符 rlimit-nofile.description=设置打开的文件描述符的软限制 (soft limit). 此选项仅当满足如下条件时开放: a. 系统支持它 (posix). b. 限制没有超过硬限制 (hard limit). c. 指定的限制比当前的软限制高. 这相当于设置 ulimit, 除了其不能降低限制. 此选项仅当系统支持 rlimit API 时有效. enable-color.name=终端输出使用颜色 enable-color.description= enable-mmap.name=启用 MMap enable-mmap.description=内存中存放映射文件. 当文件空间没有预先分配至, 此选项无效. 参见 --file-allocation. event-poll.name=事件轮询方法 event-poll.description=设置事件轮询的方法. 可选的值包括 epoll, kqueue, port, poll 和 select. 对于 epoll, kqueue, port 和 poll, 只有系统支持时才可用. 最新的 Linux 支持 epoll. 各种 *BSD 系统包括 Mac OS X 支持 kqueue. Open Solaris 支持 port. 默认值根据您使用的操作系统不同而不同. file-allocation.name=文件分配方法 file-allocation.description=指定文件分配方法. "无" 不会预先分配文件空间. "prealloc"会在下载开始前预先分配空间. 这将会根据文件的大小需要一定的时间. 如果您使用的是较新的文件系统, 例如 ext4 (带扩展支持), btrfs, xfs 或 NTFS (仅 MinGW 构建), "falloc" 是最好的选择. 其几乎可以瞬间分配大(数 GiB)文件. 不要在旧的文件系统, 例如 ext3 和 FAT32 上使用 falloc, 因为与 prealloc 花费的时间相同, 并且其会阻塞 aria2 直到分配完成. 当您的系统不支持 posix_fallocate(3) 函数时, falloc 可能无法使用. "trunc" 使用 ftruncate(2) 系统调用或平台特定的实现将文件截取到特定的长度. 在多文件的 BitTorrent 下载中, 若某文件与其相邻的文件共享相同的分片时, 则相邻的文件也会被分配. force-save.name=强制保存 force-save.description=即使任务完成或删除时使用 --save-session 选项时也保存该任务. 此选项在这种情况下还会保存控制文件. 此选项可以保存被认为已经完成但正在做种的 BT 任务. save-not-found.name=保存未找到的文件 save-not-found.description=当使用 --save-session 选项时, 即使当任务中的文件不存在时也保存该下载任务. 此选项同时会将这种情况保存到控制文件中. hash-check-only.name=仅哈希检查 hash-check-only.description=如果设置为"是", 哈希检查完使用 --check-integrity 选项, 根据是否下载完成决定是否终止下载. human-readable.name=控制台可读输出 human-readable.description=在控制台输出可读格式的大小和速度 (例如, 1.2Ki, 3.4Mi). keep-unfinished-download-result.name=保留未完成的任务 keep-unfinished-download-result.description=保留所有未完成的下载结果, 即使超过了 --max-download-result 选项设置的数量. 这将有助于在会话文件中保存所有的未完成的下载 (参考 --save-session 选项). 需要注意的是, 未完成任务的数量没有上限. 如果不希望这样, 请关闭此选项. max-download-result.name=最多下载结果 max-download-result.description=设置内存中存储最多的下载结果数量. 下载结果包括已完成/错误/已删除的下载. 下载结果存储在一个先进先出的队列中, 因此其可以存储最多指定的下载结果的数量. 当队列已满且有新的下载结果创建时, 最老的下载结果将从队列的最前部移除, 新的将放在最后. 此选项设置较大的值后如果经过几千次的下载将导致较高的内存消耗. 设置为 0 表示不存储下载结果. 注意, 未完成的下载将始终保存在内存中, 不考虑该选项的设置. 参考 --keep-unfinished-download-result 选项. max-mmap-limit.name=MMap 最大限制 max-mmap-limit.description=设置启用 MMap (参见 --enable-mmap 选项) 最大的文件大小. 文件大小由一个下载任务中所有文件大小的和决定. 例如, 如果一个下载包含 5 个文件, 那么文件大小就是这些文件的总大小. 如果文件大小超过此选项设置的大小时, MMap 将会禁用. max-resume-failure-tries.name=最大断点续传尝试次数 max-resume-failure-tries.description=当 --always-resume 选项设置为"否"时, 如果 aria2 检测到有 N 个 URI 不支持断点续传时, 将从头开始下载文件. 如果 N 设置为 0, 当所有 URI 都不支持断点续传时才会从头下载文件. 参见 --always-resume 选项. min-tls-version.name=最低 TLS 版本 min-tls-version.description=指定启用的最低 SSL/TLS 版本. log-level.name=日志级别 log-level.description= optimize-concurrent-downloads.name=优化并发下载 optimize-concurrent-downloads.description=根据可用带宽优化并发下载的数量. aria2 使用之前统计的下载速度通过规则 N = A + B Log10 (速度单位为 Mbps) 得到并发下载的数量. 其中系数 A 和 B 可以在参数中以冒号分隔自定义. 默认值 (A=5, B=25) 可以在 1Mbps 网络上使用通常 5 个并发下载, 在 100Mbps 网络上为 50 个. 并发下载的数量保持在 --max-concurrent-downloads 参数定义的最大之下. piece-length.name=文件分片大小 piece-length.description=设置 HTTP/FTP 下载的分配大小. aria2 根据这个边界分割文件. 所有的分割都是这个长度的倍数. 此选项不适用于 BitTorrent 下载. 如果 Metalink 文件中包含分片哈希的结果此选项也不适用. show-console-readout.name=显示控制台输出 show-console-readout.description= summary-interval.name=下载摘要输出间隔 summary-interval.description=设置下载进度摘要的输出间隔(秒). 设置为 0 禁止输出. max-overall-download-limit.name=全局最大下载速度 max-overall-download-limit.description=设置全局最大下载速度 (字节/秒). 0 表示不限制. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). max-download-limit.name=最大下载速度 max-download-limit.description=设置每个任务的最大下载速度 (字节/秒). 0 表示不限制. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). no-conf.name=禁用配置文件 no-conf.description= no-file-allocation-limit.name=文件分配限制 no-file-allocation-limit.description=不对比此参数设置大小小的分配文件. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). parameterized-uri.name=启用参数化 URI 支持 parameterized-uri.description=启用参数化 URI 支持. 您可以指定部分的集合: http://{sv1,sv2,sv3}/foo.iso. 同时您也可以使用步进计数器指定数字化的序列: http://host/image[000-100:2].img. 步进计数器可以省略. 如果所有 URI 地址不指向同样的文件, 例如上述第二个示例, 需要使用 -Z 选项. quiet.name=禁用控制台输出 quiet.description= realtime-chunk-checksum.name=实时数据块验证 realtime-chunk-checksum.description=如果提供了数据块的校验和, 将在下载过程中通过校验和验证数据块. remove-control-file.name=删除控制文件 remove-control-file.description=在下载前删除控制文件. 使用 --allow-overwrite=true 选项时, 总是从头开始下载文件. 此选项将有助于使用不支持断点续传代理服务器的用户. save-session.name=状态保存文件 save-session.description=当退出时保存错误及未完成的任务到指定的文件中. 您可以在重启 aria2 时使用 --input-file 选项重新加载. 如果您希望输出的内容使用 GZip 压缩, 您可以在文件名后增加 .gz 扩展名. 请注意, 通过 aria2.addTorrent() 和 aria2.addMetalink() RPC 方法添加的下载, 其元数据没有保存到文件的将不会保存. 通过 aria2.remove() 和 aria2.forceRemove() 删除的下载将不会保存. save-session-interval.name=保存状态间隔 save-session-interval.description=每隔此选项设置的时间(秒)后会保存错误或未完成的任务到 --save-session 选项指定的文件中. 如果设置为 0, 仅当 aria2 退出时才会保存. socket-recv-buffer-size.name=Socket 接收缓冲区大小 socket-recv-buffer-size.description=设置 Socket 接收缓冲区最大的字节数. 指定为 0 时将禁用此选项. 当使用 SO_RCVBUF 选项调用 setsockopt() 时此选项的值将设置到 Socket 的文件描述符中. stop.name=自动关闭时间 stop.description=在此选项设置的时间(秒)后关闭应用. 如果设置为 0, 此功能将禁用. truncate-console-readout.name=缩短控制台输出内容 truncate-console-readout.description=缩短控制台输出的内容在一行中. ================================================ FILE: src/langs/zh_Hant.txt ================================================ [global] AriaNg Version=AriaNg 版本 Operation Result=操作結果 Operation Succeeded=操作成功 is connected=已連線 Error=錯誤 OK=確定 Confirm=確認 Cancel=取消 Close=關閉 True=是 False=否 DEBUG=偵錯 (Debug) INFO=普通 (Info) WARN=警告 (Warn) ERROR=錯誤 (Error) Connecting=連線中 Connected=已連線 Disconnected=未連線 Reconnecting=重連中 Waiting to reconnect=等待重連 Global=全域 New=新增 Start=開始工作 Pause=暫停工作 Retry=重試 Retry Selected Tasks=重試選中的工作 Delete=刪除工作 Select All=全部選中 Select None=全部不選 Select Invert=反向選擇 Select All Failed Tasks=全選失敗的工作 Select All Completed Tasks=全選已完成的工作 Select All Tasks=全部選中工作 Display Order=顯示順序 Copy Download Url=複製下載連結 Copy Magnet Link=複製磁力連結 Help=說明 Search=搜尋 Default=預設 Expand=展開 Collapse=摺疊 Expand All=全部展開 Collapse All=全部摺疊 Open=打開 Save=儲存 Import=匯入 Remove Task=刪除工作 Remove Selected Task=刪除選中的工作 Clear Stopped Tasks=清除已結束工作 Click to view task detail=點選檢視工作詳情 By File Name=依檔名 By File Size=依檔案大小 By Progress=依進度 By Selected Status=依選中狀態 By Remaining=依剩餘時間 By Download Speed=依下載速度 By Upload Speed=依上傳速度 By Peer Address=依節點位址 By Client Name=依客戶端名 Filters=篩選器 Download=下載 Upload=上傳 Downloading=正在下載 Pending Verification=等待驗證 Verifying=正在驗證 Seeding=正在做種 Waiting=正在等待 Paused=已暫停 Completed=已完成 Error Occurred=發生錯誤 Removed=已刪除 Finished / Stopped=已完成 / 已停止 Uncompleted=未完成 Click to pin=點選固定 Settings=系統設定 AriaNg Settings=AriaNg 設定 Aria2 Settings=Aria2 設定 Basic Settings=基本設定 HTTP/FTP/SFTP Settings=HTTP/FTP/SFTP 設定 HTTP Settings=HTTP 設定 FTP/SFTP Settings=FTP/SFTP 設定 BitTorrent Settings=BitTorrent 設定 Metalink Settings=Metalink 設定 RPC Settings=RPC 設定 Advanced Settings=進階設定 AriaNg Debug Console=AriaNg 偵錯控制台 Aria2 Status=Aria2 狀態 File Name=檔名 File Size=大小 Progress=進度 Share Ratio=分享率 Remaining=剩餘時間 Download Speed=下載速度 Upload Speed=上傳速度 Links=連結 Torrent File=種子檔案 Metalink File=Metalink 檔案 File Name:=檔名: Options=選項 Overview=總覽 Pieces=區塊資訊 Files=檔案清單 Peers=連線狀態 Task Name=工作名稱 Task Size=工作大小 Task Status=工作狀態 Error Description=錯誤描述 Health Percentage=健康度 Info Hash=特徵值 Seeders=種子數 Connections=連線數 Seed Creation Time=種子建立時間 Download Url=下載位址 Download Dir=下載路徑 BT Tracker Servers=BT 伺服器 Copy=複製 (Choose Files)=(選擇檔案) Videos=影片 Audios=音訊 Pictures=圖片 Documents=文件 Applications=應用程式 Archives=封存檔案 Other=其他 Custom=自訂 Custom Choose File=自訂選擇檔案 Address=位址 Client=客戶端 Status=狀態 Speed=速度 (local)=(本機) No Data=無資料 No connected peers=沒有連線到其他節點 Failed to change some tasks state.=修改一些工作狀態時失敗. Confirm Retry=確認重試 Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.=您是否要重試選中的工作? 點選 "確定" 後, AriaNg 將會建立相同的工作. Failed to retry this task.=該工作重試失敗. {successCount} tasks have been retried and {failedCount} tasks are failed.={{successCount}} 個工作重試成功以及 {{failedCount}} 個工作失敗. Confirm Remove=確認刪除 Are you sure you want to remove the selected task?=您是否要刪除選中的工作? Failed to remove some task(s).=刪除一些工作時失敗. Confirm Clear=確認清除 Are you sure you want to clear stopped tasks?=您是否要清除已結束的工作? Download Links:=下載連結: Download Now=立即下載 Download Later=手動下載 Open Torrent File=打開種子檔案 Open Metalink File=打開 Metalink 檔案 Support multiple URLs, one URL per line.=支援多個 URL 位址, 每個位址佔一行. Your browser does not support loading file!=您的瀏覽器不支援載入檔案! The selected file type is invalid!=選擇的檔案類型無效! Failed to load file!=載入檔案失敗! Download Completed=下載完成 BT Download Completed=BT 下載完成 Download Error=下載出錯 AriaNg Url=AriaNg 連結 Command API Url=命令行 API 連結 Export Command API=匯出命令行 API Export=匯出 Copied=已複製 Pause After Task Created=工作建立後暫停 Language=語言 Theme=主題 Light=淺色 Dark=深色 Follow system settings=跟隨系统設定 Debug Mode=偵錯模式 Page Title=頁面標題 Preview=預覽 Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale\=n" tag to set the decimal precision.=小提示: 您可以使用 "noprefix" 標籤忽略前綴, "nosuffix" 標籤忽略副檔名, 以及 "scale\=n" 標籤設定小數的精度. Example: ${downspeed:noprefix:nosuffix:scale\=1}=示例: ${downspeed:noprefix:nosuffix:scale\=1} Updating Page Title Interval=頁面標題更新間隔 Enable Browser Notification=啟用瀏覽器通知 Browser Notification Sound=瀏覽器通知聲音 Browser Notification Frequency=瀏覽器通知頻次 Unlimited=無限制 High (Up to 10 Notifications / 1 Minute)=高 (最多 10 條通知 / 每分鐘) Middle (Up to 1 Notification / 1 Minute)=中 (最多 1 條通知 / 每分鐘) Low (Up to 1 Notification / 5 Minutes)=低 (最多 1 條通知 / 每5分鐘) WebSocket Auto Reconnect Interval=WebSocket 自动重連線時間 Aria2 RPC Alias=Aria2 RPC 別名 Aria2 RPC Address=Aria2 RPC 位址 Aria2 RPC Protocol=Aria2 RPC 協定 Aria2 RPC Http Request Method=Aria2 RPC Http 要求方法 POST method only supports aria2 v1.15.2 and above.=POST 方法僅支援 aria2 v1.15.2 及以上. Aria2 RPC Request Headers=Aria2 RPC 要求標頭 Support multiple request headers, one header per line, each line containing "header name: header value".=支援多個要求標頭, 每個要求標頭佔一行, 每行包含 "標頭名: 標頭值". Aria2 RPC Secret Token=Aria2 RPC 金鑰 Activate=啟用 Reset Settings=重設設定 Confirm Reset=確認重設 Are you sure you want to reset all settings?=您是否要重設所有設定? Clear Settings History=清除設定歷史 Are you sure you want to clear all settings history?=您是否要清除所有設定的歷史紀錄? Delete RPC Setting=刪除 RPC 設定 Add New RPC Setting=加入新 RPC 設定 Are you sure you want to remove rpc setting "{rpcName}"?=您是否要刪除 RPC 設定 "{{rpcName}}"? Updating Global Stat Interval=全域狀態更新間隔 Updating Task Information Interval=工作資訊更新間隔 Keyboard Shortcuts=鍵盤快速鍵 Supported Keyboard Shortcuts=支援的鍵盤快速鍵 Set Focus On Search Box=將焦點設在搜尋框上 Swipe Gesture=滑動手勢 Change Tasks Order by Drag-and-drop=拖拽工作排序 Action After Creating New Tasks=建立新工作後執行操作 Navigate to Task List Page=轉到工作清單頁面 Navigate to Task Detail Page=轉到工作詳情頁面 Action After Retrying Task=重試工作後執行操作 Navigate to Downloading Tasks Page=轉到正在下載工作頁面 Stay on Current Page=留在目前頁面 Remove Old Tasks After Retrying=重試工作後刪除原工作 Confirm Task Removal=工作刪除前確認 Include Prefix When Copying From Task Details=工作詳情頁複製時包括前綴 Show Pieces Info In Task Detail Page=工作詳情頁顯示區塊資訊 Pieces Amount is Less than or Equal to {value}=區塊數量小於等於 {{value}} RPC List Display Order=RPC 清單顯示順序 Each Task List Page Uses Independent Display Order=各工作清單頁面使用獨立顯示順序 Recently Used=最近使用 RPC Alias=RPC 別名 Import / Export AriaNg Settings=匯入 / 匯出 AriaNg 設定 Import Settings=匯入設定 Export Settings=匯出設定 AriaNg settings data=AriaNg 設定資料 Confirm Import=確認匯入 Are you sure you want to import all settings?=您是否要匯入所有設定? Invalid settings data format!=無效的設定資料格式! Data has been copied to clipboard.=資料已經複製到剪貼簿中. Supported Placeholder=支援的預留位置 AriaNg Title=AriaNg 標題 Current RPC Alias=目前 RPC 別名 Downloading Count=正在下載數量 Waiting Count=正在等待數量 Stopped Count=已停止數量 You have disabled notification in your browser. You should change your browser's settings before you enable this function.=您已經在瀏覽器中停用通知功能. 如需使用此功能, 請修改您瀏覽器的設定. Language resource has been updated, please reload the page for the changes to take effect.=語言資源已經更新, 請重新載入頁面使其生效. Configuration has been modified, please reload the page for the changes to take effect.=配置已經修改, 請重新載入頁面使其生效. Reload AriaNg=重新載入 AriaNg Show Secret=顯示金鑰 Hide Secret=隱藏金鑰 Aria2 Version=Aria2 版本 Enabled Features=已啟用的功能 Operations=操作 Reconnect=重新連線 Save Session=儲存會話 Shutdown Aria2=關閉 Aria2 Confirm Shutdown=確認關閉 Are you sure you want to shutdown aria2?=您是否要關閉 aria2? Session has been saved successfully.=會話已經成功儲存. Aria2 has been shutdown successfully.=Aria2 已經成功關閉. Toggle Navigation=切換導航 Shortcut=捷徑 Global Rate Limit=全域速度限制 Loading=正在載入... More Than One Day=超過1天 Unknown=不詳 Bytes=位元組 Hours=小時 Minutes=分 Seconds=秒 Milliseconds=毫秒 Http=Http Http (Disabled)=Http (已停用) Https=Https WebSocket=WebSocket WebSocket (Disabled)=WebSocket (已停用) WebSocket (Security)=WebSocket (安全) Http and WebSocket would be disabled when accessing AriaNg via Https.=使用 Https 訪問 AriaNg 時,Http 和 WebSocket 將被停用. POST=POST GET=GET Enabled=啟用 Disabled=停用 Always=始終 Never=從不 BitTorrent=BitTorrent Changes to the settings take effect after refreshing page.=設定將在頁面重新整理後生效. Logging Time=記錄時間 Log Level=記錄層級 Auto Refresh=自動刷新 Refresh Now=立即刷新 Clear Logs=清除記錄 Are you sure you want to clear debug logs?=您是否要清除偵錯記錄? Show Detail=顯示詳情 Log Detail=記錄詳情 Aria2 RPC Debug=Aria2 RPC 偵錯 Aria2 RPC Request Method=Aria2 RPC 要求方法 Aria2 RPC Request Parameters=Aria2 RPC 要求參數 Aria2 RPC Response=Aria2 RPC 回應 Execute=執行 RPC method is illegal!=RPC方法錯誤! AriaNg does not support this RPC method!=AriaNg 不支援該RPC方法! RPC request parameters are invalid!=RPC 要求參數無效! Type is illegal!=類型錯誤! Parameter is invalid!=要求參數無效! Option value cannot be empty!=參數內容不能為空! Input number is invalid!=輸入的數字無效! Input number is below min value!=輸入的數字小於最小值 {{value}} ! Input number is above max value!=輸入的數字大於最大值 {{value}} ! Input value is invalid!=輸入的內容無效! Protocol is invalid!=協定無效! RPC host cannot be empty!=RPC 主機不能為空! RPC secret is not base64 encoded!=RPC 金鑰不是 Base64 編碼後的字串! URL is not base64 encoded!=指定 URL 不是 Base64 編碼後的字串! Tap to configure and get started with AriaNg.=您還沒有進行過設定, 點選這裡進行設定. Cannot initialize WebSocket!=無法初始化 WebSocket! Cannot connect to aria2!=無法連線到 aria2! Access Denied!=拒絕訪問! You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.=您無法使用 AriaNg, 因為此瀏覽器不滿足資料儲存的最低要求. [error] unknown=不詳錯誤. operation.timeout=操作超時. resource.notfound=無法找到指定資源. resource.notfound.max-file-not-found=無法找到指定資源. 參見 --max-file-not-found option 參數. download.aborted.lowest-speed-limit=由於下載速度過慢, 下載已經終止. 參見 --lowest-speed-limit option 參數. network.problem=網路問題. resume.notsupported=伺服器不支援斷點續傳. space.notenough=可用磁碟空間不足. piece.length.different=分段大小與 .aria2 控制檔案中的不同. 參見 --allow-piece-length-change 參數. download.sametime=aria2 已經下載了另一個相同檔案. download.torrent.sametime=aria2 已經下載了另一個相同雜湊的種子檔案. file.exists=檔案已經存在. 參見 --allow-overwrite 參數. file.rename.failed=檔案重命名失敗. 參見 --auto-file-renaming 參數. file.open.failed=檔案打開失敗. file.create.failed=檔案建立或刪除已有檔案失敗. io.error=檔案系統出錯. directory.create.failed=無法建立指定目錄. name.resolution.failed=域名解析失敗. metalink.file.parse.failed=解析 Metalink 檔案失敗. ftp.command.failed=FTP 命令執行失敗. http.response.header.bad=HTTP 返回頭無效或無法識別. redirects.toomany=指定位址重新導向過多. http.authorization.failed=HTTP 認證失敗. bencoded.file.parse.failed=解析種子檔案失敗. torrent.file.corrupted=指定 ".torrent" 種子檔案已經損壞或缺少 aria2 需要的資訊. magnet.uri.bad=指定磁力連結位址無效. option.bad=設定錯誤. server.overload=遠端伺服器繁忙, 無法處理目前要求. rpc.request.parse.failed=處理 RPC 要求失敗. checksum.failed=檔案校驗失敗. [languages] Czech=捷克語 German=德語 English=英語 Spanish=西班牙語 French=法語 Italian=義大利語 Japanese=日語 Polish=波蘭語 Russian=俄語 Simplified Chinese=簡體中文 Traditional Chinese=繁體中文 [format] longdate=YYYY年MM月DD日 HH:mm:ss time.millisecond={{value}} 毫秒 time.milliseconds={{value}} 毫秒 time.second={{value}} 秒 time.seconds={{value}} 秒 time.minute={{value}} 分鐘 time.minutes={{value}} 分鐘 time.hour={{value}} 小時 time.hours={{value}} 小時 requires.aria2-version=需要 aria2 v{{version}} 或更高版本 task.new.download-links=下載連結 ({{count}} 個連結): task.pieceinfo=已完成: {{completed}}, 共計: {{total}} 塊 task.error-occurred=發生錯誤 ({{errorcode}}) task.verifying-percent=正在驗證 ({{verifiedPercent}}%) settings.file-count=({{count}} 個檔案) settings.total-count=(共計: {{count}}個) debug.latest-logs=最近 {{count}} 條記錄 [rpc.error] unauthorized=認證失敗! [option] true=是 false=否 default=預設 none=無 hide=隱藏 full=完整 http=Http https=Https ftp=Ftp mem=僅記憶體 get=GET tunnel=TUNNEL plain=明文 arc4=ARC4 binary=二進位 ascii=ASCII debug=偵錯 (Debug) info=普通 (Info) notice=一般 (Notice) warn=警告 (Warn) error=錯誤 (Error) adaptive=自適應 epoll=epoll falloc=falloc feedback=反饋 geom=幾何 inorder=順序 kqueue=kqueue poll=poll port=port prealloc=prealloc random=隨機 select=select trunc=trunc SSLv3=SSLv3 TLSv1=TLSv1 TLSv1.1=TLSv1.1 TLSv1.2=TLSv1.2 [options] dir.name=下載路徑 dir.description= log.name=記錄檔案 log.description=記錄檔案的路徑. 如果設定為 "-", 記錄則寫入到 stdout. 如果設定為空字串(""), 記錄將不會記錄到磁碟上. max-concurrent-downloads.name=最大同時下載數 max-concurrent-downloads.description= check-integrity.name=檢查完整性 check-integrity.description=通過對檔案的每個分塊或整個檔案進行雜湊驗證來檢查檔案的完整性. 此選項僅對BT、Metalink及設定了 --checksum 選項的 HTTP(S)/FTP 鏈接生效. continue.name=斷點續傳 continue.description=繼續下載部分完成的檔案. 啟用此選項可以繼續下載從瀏覽器或其他程式依順序下載的檔案. 此選項目前只支援 HTTP(S)/FTP 下載的檔案. all-proxy.name=代理伺服器 all-proxy.description=設定所有協定的代理伺服器位址. 您還可以針對特定的協定覆蓋此選項, 即使用 --http-proxy, --https-proxy 和 --ftp-proxy 選項. 此設定將會影響所有下載. 代理伺服器位址的格式為 [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=代理伺服器使用者名稱 all-proxy-user.description= all-proxy-passwd.name=代理伺服器密碼 all-proxy-passwd.description= checksum.name=總和檢查碼 checksum.description=設定總和檢查碼. 選項值格式為 TYPE=DIGEST. TYPE 為雜湊類型. 支援的雜湊類型列在 aria2c -v 的 Hash Algorithms 中. DIGEST 是十六進位摘要. 例如, 設定 sha-1 摘要如同這樣: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 此選項僅對 HTTP(S)/FTP 下載生效. connect-timeout.name=連線超時時間 connect-timeout.description=設定建立 HTTP/FTP/代理伺服器 連線的超時時間(秒). 當連線建立後, 此選項不再生效, 請使用 --timeout 選項. dry-run.name=模擬運行 dry-run.description=如果設定為"是", aria2 將僅檢查遠端檔案是否存在而不會下載檔案內容. 此選項僅對 HTTP/FTP 下載生效. 如果設定為 true, BT 下載將會直接取消. lowest-speed-limit.name=最小速度限制 lowest-speed-limit.description=當下載速度低於此選項設定的值(B/s) 時將會關閉連線. 0 表示不設定最小速度限制. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). 此選項不會影響 BT 下載. max-connection-per-server.name=單伺服器最大連線數 max-connection-per-server.description= max-file-not-found.name=檔案未找到重試次數 max-file-not-found.description=如果 aria2 從遠端 HTTP/FTP 伺服器收到 "檔案未找到" 的狀態超過此選項設定的次數後下載將會失敗. 設定為 0 將會停用此選項. 此選項僅影響 HTTP/FTP 伺服器. 重試時同時會記錄重試次數, 所以也需要設定 --max-tries 這個選項. max-tries.name=最大嘗試次數 max-tries.description=設定最大嘗試次數. 0 表示不限制. min-split-size.name=最小檔案分段大小 min-split-size.description=aria2 不會分割小於 2*SIZE 位元組的檔案. 例如, 檔案大小為 20MB, 如果 SIZE 為 10M, aria2 會把檔案分成 2 段 [0-10MB) 和 [10MB-20MB), 並且使用 2 個源進行下載 (如果 --split >= 2). 如果 SIZE 為 15M, 由於 2*15M > 20MB, 因此 aria2 不會分割檔案並使用 1 個源進行下載. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). 可以設定的值為: 1M-1024M. netrc-path.name=.netrc 檔案路徑 netrc-path.description= no-netrc.name=停用 netrc no-netrc.description= no-proxy.name=不使用代理伺服器清單 no-proxy.description=設定不使用代理伺服器的主機名, 域名, 包含或不包含子網掩碼的網路位址, 多個使用逗號分隔. out.name=檔名 out.description=下載檔案的檔名. 其總是相對於 --dir 選項中設定的路徑. 當使用 --force-sequential 參數時此選項無效. proxy-method.name=代理伺服器要求方法 proxy-method.description=設定用來要求代理伺服器的方法. 方法可設定為 GET 或 TUNNEL. HTTPS 下載將忽略此選項並總是使用 TUNNEL. remote-time.name=獲取伺服器檔案時間 remote-time.description=從 HTTP/FTP 服務獲取遠端檔案的時間戳, 如果可用將設定到本機檔案 reuse-uri.name=URI 復用 reuse-uri.description=當所有給定的 URI 位址都已使用, 繼續使用已經使用過的 URI 位址. retry-wait.name=重試等待時間 retry-wait.description=設定重試間隔時間(秒). 當此選項的值大於 0 時, aria2 在 HTTP 伺服器返回 503 響應時將會重試. server-stat-of.name=伺服器狀態儲存檔案 server-stat-of.description=指定用來儲存伺服器狀態的檔名. 您可以使用 --server-stat-if 參數讀取儲存的資料. server-stat-timeout.name=伺服器狀態超時 server-stat-timeout.description=指定伺服器狀態的過期時間 (單位為秒). split.name=單工作連線數 split.description=下載時使用 N 個連線. 如果提供超過 N 個 URI 位址, 則使用前 N 個位址, 剩餘的位址將作為備用. 如果提供的 URI 位址不足 N 個, 這些位址多次使用以保證同時建立 N 個連線. 同一伺服器的連線數會被 --max-connection-per-server 選項限制. stream-piece-selector.name=分段選擇演算法 stream-piece-selector.description=指定 HTTP/FTP 下載使用的分段選擇演算法. 分段表示的是並行下載時固定長度的分隔段. 如果設定為"預設", aria2 將會依減少建立連線數選擇分段. 由於建立連線操作的成本較高, 因此這是合理的預設行為. 如果設定為"順序", aria2 將選擇索引最小的分段. 索引為 0 時表示為檔案的第一個分段. 這將有助於視頻的邊下邊播. --enable-http-pipelining 選項有助於減少重連線的開銷. 請注意, aria2 依賴於 --min-split-size 選項, 所以有必要對 --min-split-size 選項設定一個合理的值. 如果設定為"隨機", aria2 將隨機選擇一個分段. 就像"順序"一樣, 依賴於 --min-split-size 選項. 如果設定為"幾何", aria2 會先選擇索引最小的分段, 然後會為之前選擇的分段保留指數增長的空間. 這將減少建立連線的次數, 同時檔案開始部分將會先行下載. 這也有助於視頻的邊下邊播. timeout.name=超時時間 timeout.description= uri-selector.name=URI 選擇演算法 uri-selector.description=指定 URI 選擇的演算法. 可選的值包括 "依順序", "反饋" 和 "自適應". 如果設定為"依順序", URI 將依清單中出現的順序使用. 如果設定為"反饋", aria2 將根據之前的下載速度選擇 URI 清單中下載速度最快的伺服器. 同時也將有效跳過無效鏡像. 之前統計的下載速度將作為伺服器狀態檔案的一部分, 參見 --server-stat-of 和 --server-stat-if 選項. 如果設定為"自適應", 將從最好的鏡像和保留的連線裡選擇一項. 補充說明, 其返回的鏡像沒有被測試過, 同時如果每個鏡像都已經被測試過時, 返回的鏡像還會被重新測試. 否則, 其將不會選擇其他鏡像. 例如"反饋", 其使用伺服器狀態檔案. check-certificate.name=檢查證書 check-certificate.description= http-accept-gzip.name=支援 GZip http-accept-gzip.description=如果遠端伺服器的響應頭中包含 Content-Encoding: gzip 或 Content-Encoding: deflate , 將發送包含 Accept: deflate, gzip 的要求標頭並解壓縮響應. http-auth-challenge.name=認證質詢 http-auth-challenge.description=僅當伺服器需要時才發送 HTTP 認證要求標頭. 如果設定為"否", 每次都會發送認證要求標頭. 例外: 如果使用者名稱和密碼包含在 URI 中, 將忽略此選項並且每次都會發送認證要求標頭. http-no-cache.name=停用快取 http-no-cache.description=發送的要求標頭中將包含 Cache-Control: no-cache 和 Pragma: no-cache header 以避免內容被快取. 如果設定為"否", 上述要求標頭將不會發送, 同時您也可以使用 --header 選項將 Cache-Control 要求標頭加入進去. http-user.name=HTTP 預設使用者名稱 http-user.description= http-passwd.name=HTTP 預設密碼 http-passwd.description= http-proxy.name=HTTP 代理伺服器 http-proxy.description= http-proxy-user.name=HTTP 代理伺服器使用者名稱 http-proxy-user.description= http-proxy-passwd.name=HTTP 代理伺服器密碼 http-proxy-passwd.description= https-proxy.name=HTTPS 代理伺服器 https-proxy.description= https-proxy-user.name=HTTPS 代理伺服器使用者名稱 https-proxy-user.description= https-proxy-passwd.name=HTTPS 代理伺服器密碼 https-proxy-passwd.description= referer.name=要求來源 referer.description=設定 HTTP 要求來源 (Referer). 此選項將影響所有 HTTP/HTTPS 下載. 如果設定為 *, 要求來源將設定為下載連結. 此選項可以配合 --parameterized-uri 選項使用. enable-http-keep-alive.name=啟用持久連線 enable-http-keep-alive.description=啟用 HTTP/1.1 持久連線. enable-http-pipelining.name=啟用 HTTP 管線化 enable-http-pipelining.description=啟用 HTTP/1.1 管線化. header.name=自訂要求標頭 header.description=增加 HTTP 要求標頭內容. 每行放置一項, 每項包含 "標頭名: 標頭值". save-cookies.name=Cookies 儲存路徑 save-cookies.description=以 Mozilla/Firefox(1.x/2.x)/Netscape 格式將 Cookies 儲存到檔案中. 如果檔案已經存在, 將被覆蓋. 會話過期的 Cookies 也將會儲存, 其過期時間將會設定為 0. use-head.name=啟用 HEAD 方法 use-head.description=第一次要求 HTTP 伺服器時使用 HEAD 方法. user-agent.name=自訂 User Agent user-agent.description= ftp-user.name=FTP 預設使用者名稱 ftp-user.description= ftp-passwd.name=FTP 預設密碼 ftp-passwd.description=如果 URI 中包含使用者名稱單不包含密碼, aria2 首先會從 .netrc 檔案中獲取密碼. 如果在 .netrc 檔案中找到密碼, 則使用該密碼. 否則, 使用此選項設定的密碼. ftp-pasv.name=被動模式 ftp-pasv.description=在 FTP 中使用被動模式. 如果設定為"否", 則使用主動模式. 此選項不適用於 SFTP 傳輸. ftp-proxy.name=FTP 代理伺服器 ftp-proxy.description= ftp-proxy-user.name=FTP 代理伺服器使用者名稱 ftp-proxy-user.description= ftp-proxy-passwd.name=FTP 代理伺服器密碼 ftp-proxy-passwd.description= ftp-type.name=傳輸類型 ftp-type.description= ftp-reuse-connection.name=連線復用 ftp-reuse-connection.description= ssh-host-key-md.name=SSH 公鑰總和檢查碼 ssh-host-key-md.description=設定 SSH 主機公鑰的總和檢查碼. 選項值格式為 TYPE=DIGEST. TYPE 為雜湊類型. 支援的雜湊類型為 sha-1 和 md5. DIGEST 是十六進位摘要. 例如: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. 此選項可以在使用 SFTP 時用來驗證伺服器的公鑰. 如果此選項不設定, 即保留預設, 不會進行任何驗證。 bt-detach-seed-only.name=分離僅做種工作 bt-detach-seed-only.description=統計目前活動下載工作(參見 -j 選項) 時排除僅做種的工作. 這意味著, 如果參數設定為 -j3, 此選項打開並且目前有 3 個正在活動的工作, 並且其中有 1 個進入做種模式, 那麼其會從正在下載的數量中排除(即數量會變為 2), 在隊列中等待的下一個工作將會開始執行. 但要知道, 在 RPC 方法中, 做種的工作仍然被認為是活動的下載工作. bt-enable-hook-after-hash-check.name=啟用雜湊檢查完成事件 bt-enable-hook-after-hash-check.description=允許 BT 下載雜湊檢查(參見 -V 選項) 完成後調用命令. 預設情況下, 當雜湊檢查成功後, 通過 --on-bt-download-complete 設定的命令將會被執行. 如果要停用此行為, 請設定為"否". bt-enable-lpd.name=啟用本機節點發現 (LPD) bt-enable-lpd.description= bt-exclude-tracker.name=BT 排除伺服器位址 bt-exclude-tracker.description=逗號分隔的 BT 排除伺服器位址. 您可以使用 * 匹配所有位址, 因此將排除所有伺服器位址. 當在 shell 命令行使用 * 時, 需要使用跳脫字元或引號. bt-external-ip.name=外部 IP 位址 bt-external-ip.description=指定用在 BitTorrent 下載和 DHT 中的外部 IP 位址. 它可能被發送到 BitTorrent 伺服器. 對於 DHT, 此選項將會報告本機節點正在下載特定的種子. 這對於在私有網路中使用 DHT 非常關鍵. 雖然這個方法叫外部, 但其可以接受各種類型的 IP 位址. bt-force-encryption.name=強制加密 bt-force-encryption.description=BT 消息中的內容需要使用 arc4 加密. 此選項是設定 --bt-require-crypto --bt-min-crypto-level=arc4 這兩個選項的快捷方式. 此選項不會修改上述兩個選項的內容. 如果設定為"是", 將拒絕以前的 BT 握手, 並僅使用模糊握手及加密消息. bt-hash-check-seed.name=做種前檢查檔案雜湊 bt-hash-check-seed.description=如果設定為"是", 當使用 --check-integrity 選項完成雜湊檢查及檔案完成後才繼續做種. 如果您希望僅當檔案損壞或未完成時檢查檔案, 請設定為"否". 此選項僅對 BT 下載有效 bt-load-saved-metadata.name=載入已儲存的中繼資料檔案 bt-load-saved-metadata.description=當使用磁力連結下載時, 在從 DHT 獲取種子中繼資料之前, 首先嘗試載入使用 --bt-save-metadata 選項儲存的檔案. 如果檔案載入成功, 則不會從 DHT 下載中繼資料. bt-max-open-files.name=最多打開檔案數 bt-max-open-files.description=設定 BT/Metalink 下載全域打開的最大檔案數. bt-max-peers.name=最大連線節點數 bt-max-peers.description=設定每個 BT 下載的最大連線節點數. 0 表示不限制. bt-metadata-only.name=僅下載種子檔案 bt-metadata-only.description=僅下載種子檔案. 種子檔案中描述的檔案將不會下載. 此選項僅對磁力連結生效. bt-min-crypto-level.name=最低加密層級 bt-min-crypto-level.description=設定加密方法的最小層級. 如果節點提供多種加密方法, aria2 將選擇滿足給定層級的最低層級. bt-prioritize-piece.name=優先下載 bt-prioritize-piece.description=嘗試先下載每個檔案開頭或結尾的分段. 此選項有助於預覽檔案. 參數可以包括兩個關鍵詞: head 和 tail. 如果包含兩個關鍵詞, 需要使用逗號分隔. 每個關鍵詞可以包含一個參數, SIZE. 例如, 如果指定 head=SIZE, 每個檔案的最前 SIZE 資料將會獲得更高的優先順序. tail=SIZE 表示每個檔案的最後 SIZE 資料. SIZE 可以包含 K 或 M (1K = 1024, 1M = 1024K). bt-remove-unselected-file.name=刪除未選擇的檔案 bt-remove-unselected-file.description=當 BT 工作完成後刪除未選擇的檔案. 要選擇需要下載的檔案, 請使用 --select-file 選項. 如果沒有選擇, 則所有檔案都預設為需要下載. 此選項會從磁碟上直接刪除檔案, 請謹慎使用此選項. bt-require-crypto.name=需要加密 bt-require-crypto.description=如果設定為"是", aria 將不會接受以前的 BitTorrent 握手協定(\19BitTorrent 協定)並建立連線. 因此 aria2 總是模糊握手. bt-request-peer-speed-limit.name=期望下載速度 bt-request-peer-speed-limit.description=如果一個 BT 下載的整體下載速度低於此選項設定的值, aria2 會臨時提高連線數以提高下載速度. 在某些情況下, 設定期望下載速度可以提高您的下載速度. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). bt-save-metadata.name=儲存種子檔案 bt-save-metadata.description=儲存種子檔案為 ".torrent" 檔案. 此選項僅對磁力連結生效. 檔名為十六進位編碼後的雜湊值及 ".torrent"副檔名. 儲存的目錄與下載檔案的目錄相同. 如果相同的檔案已存在, 種子檔案將不會儲存. bt-seed-unverified.name=不檢查已經下載的檔案 bt-seed-unverified.description=不檢查之前下載檔案中每個分段的雜湊值. bt-stop-timeout.name=無速度時自動停止時間 bt-stop-timeout.description=當 BT 工作下載速度持續為 0, 達到此選項設定的時間後停止下載. 如果設定為 0, 此功能將停用. bt-tracker.name=BT 伺服器位址 bt-tracker.description=逗號分隔的 BT 伺服器位址. 這些位址不受 --bt-exclude-tracker 選項的影響, 因為這些位址在 --bt-exclude-tracker 選項排除掉其他位址之後才會加入. bt-tracker-connect-timeout.name=BT 伺服器連線超時時間 bt-tracker-connect-timeout.description=設定 BT 伺服器的連線超時時間 (秒). 當連線建立後, 此選項不再生效, 請使用 --bt-tracker-timeout 選項. bt-tracker-interval.name=BT 伺服器連線間隔時間 bt-tracker-interval.description=設定要求 BT 伺服器的間隔時間 (秒). 此選項將完全覆蓋伺服器返回的最小間隔時間和間隔時間, aria2 僅使用此選項的值.如果設定為 0, aria2 將根據伺服器的響應情況和下載處理程序決定時間間隔. bt-tracker-timeout.name=BT 伺服器超時時間 bt-tracker-timeout.description= dht-file-path.name=DHT (IPv4) 檔案 dht-file-path.description=修改 IPv4 DHT 路由表檔案路徑. dht-file-path6.name=DHT (IPv6) 檔案 dht-file-path6.description=修改 IPv6 DHT 路由表檔案路徑. dht-listen-port.name=DHT 監聽埠 dht-listen-port.description=設定 DHT (IPv4, IPv6) 和 UDP 伺服器使用的 UDP 埠. 多個埠可以使用逗號 "," 分隔, 例如: 6881,6885. 您還可以使用短橫線 "-" 表示範圍: 6881-6999, 或可以一起使用: 6881-6889, 6999. dht-message-timeout.name=DHT 消息超時時間 dht-message-timeout.description= enable-dht.name=啟用 DHT (IPv4) enable-dht.description=啟用 IPv4 DHT 功能. 此選項同時會啟用 UDP 伺服器支援. 如果種子設定為私有, 即使此選項設定為"是", aria2 也不會啟用 DHT. enable-dht6.name=啟用 DHT (IPv6) enable-dht6.description=啟用 IPv6 DHT 功能. 如果種子設定為私有, 即使此選項設定為"是", aria2 也不會啟用 DHT. 使用 --dht-listen-port 選項設定監聽的埠. enable-peer-exchange.name=啟用節點交換 enable-peer-exchange.description=啟用節點交換擴充. 如果種子設定為私有, 即使此選項設定為"是", aria2 也不會啟用此功能. follow-torrent.name=下載種子中的檔案 follow-torrent.description=如果設定為"是"或"僅記憶體", 當副檔名為 .torrent 或內容類型為 application/x-bittorrent 的檔案下載完成時, aria2 將依種子檔案讀取並下載該檔案中提到的檔案. 如果設定為"僅記憶體", 該種子檔案將不會寫入到磁碟中, 而僅會儲存在記憶體中. 如果設定為"否", 則 .torrent 檔案會下載到磁碟中, 但不會依種子檔案讀取並且其中的檔案不會進行下載. listen-port.name=監聽埠 listen-port.description=設定 BT 下載的 TCP 埠. 多個埠可以使用逗號 "," 分隔, 例如: 6881,6885. 您還可以使用短橫線 "-" 表示範圍: 6881-6999, 或可以一起使用: 6881-6889, 6999. max-overall-upload-limit.name=全域最大上傳速度 max-overall-upload-limit.description=設定全域最大上傳速度 (位元組/秒). 0 表示不限制. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). max-upload-limit.name=最大上傳速度 max-upload-limit.description=設定每個工作的最大上傳速度 (位元組/秒). 0 表示不限制. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). peer-id-prefix.name=節點 ID 前綴 peer-id-prefix.description=指定節點 ID 的前綴. BT 中節點 ID 長度為 20 位元組. 如果超過 20 位元組, 將僅使用前 20 位元組. 如果少於 20 位元組, 將在其後不足隨機的資料保證為 20 位元組. peer-agent.name=Peer Agent peer-agent.description=指定 BT 擴充握手期間用於節點客戶端版本的字串. seed-ratio.name=最小分享率 seed-ratio.description=指定分享率. 當分享率達到此選項設定的值時會完成做種. 強烈建議您將此選項設定為大於等於 1.0. 如果您想不限制分享比率, 可以設定為 0.0. 如果同時設定了 --seed-time 選項, 當任意一個條件滿足時將停止做種. seed-time.name=最小做種時間 seed-time.description=以 (小數形式的) 分鐘指定做種時間. 此選項設置爲 0 時, 將在 BT 任務下載完成後不進行做種. follow-metalink.name=下載 Metalink 中的檔案 follow-metalink.description=如果設定為"是"或"僅記憶體", 當副檔名為 .meta4 或 .metalink 或內容類型為 application/metalink4+xml 或 application/metalink+xml 的檔案下載完成時, aria2 將依 Metalink 檔案讀取並下載該檔案中提到的檔案. 如果設定為"僅記憶體", 該 Metalink 檔案將不會寫入到磁碟中, 而僅會儲存在記憶體中. 如果設定為"否", 則 .metalink 檔案會下載到磁碟中, 但不會依 Metalink 檔案讀取並且其中的檔案不會進行下載. metalink-base-uri.name=基礎 URI metalink-base-uri.description=指定基礎 URI 以便解析本機磁碟中儲存的 Metalink 檔案裡 metalink:url 和 metalink:metaurl 中的相對 URI 位址. 如果 URI 表示的為目錄, 最後需要以 / 結尾. metalink-language.name=語言 metalink-language.description= metalink-location.name=首選伺服器位置 metalink-location.description=首選伺服器所在的位置. 可以使用逗號分隔的清單, 例如: jp,us. metalink-os.name=操作系統 metalink-os.description=下載檔案的操作系統. metalink-version.name=版本號 metalink-version.description=下載檔案的版本號. metalink-preferred-protocol.name=首選使用協定 metalink-preferred-protocol.description=指定首選使用的協定. 可以設定為 http, https, ftp 或"無". 設定為"無"時停用此選項. metalink-enable-unique-protocol.name=僅使用唯一協定 metalink-enable-unique-protocol.description=如果一個 Metalink 檔案可用多種協定, 並且此選項設定為"是", aria2 將只會使用其中一種. 使用 --metalink-preferred-protocol 參數指定首選的協定. enable-rpc.name=啟用 JSON-RPC/XML-RPC 伺服器 enable-rpc.description= pause-metadata.name=種子檔案下載完後暫停 pause-metadata.description=當種子檔案下載完成後暫停後續的下載. 在 aria2 中有 3 種種子檔案的下載類型: (1) 下載 .torrent 檔案. (2) 通過磁力連結下載的種子檔案. (3) 下載 Metalink 檔案. 這些種子檔案下載完後會根據檔案內容繼續進行下載. 此選項會暫停這些後續的下載. 此選項僅當 --enable-rpc 選項啟用時生效. rpc-allow-origin-all.name=接受所有遠端要求 rpc-allow-origin-all.description=在 RPC 響應頭增加 Access-Control-Allow-Origin 欄位, 值為 * . rpc-listen-all.name=在所有網卡上監聽 rpc-listen-all.description=在所有網路適配器上監聽 JSON-RPC/XML-RPC 的要求, 如果設定為"否", 僅監聽本機網路的要求. rpc-listen-port.name=監聽埠 rpc-listen-port.description= rpc-max-request-size.name=最大要求大小 rpc-max-request-size.description=設定 JSON-RPC/XML-RPC 最大的要求大小. 如果 aria2 檢測到要求超過設定的位元組數, 會直接取消連線. rpc-save-upload-metadata.name=儲存上傳的種子檔案 rpc-save-upload-metadata.description=在 dir 選項設定的目錄中儲存上傳的種子檔案或 Metalink 檔案. 檔名包括 SHA-1 雜湊後的中繼資料和副檔名兩部分. 對於種子檔案, 副檔名為 '.torrent'. 對於 Metalink 為 '.meta4'. 如果此選項設定為"否", 通過 aria2.addTorrent() 或 aria2.addMetalink() 方法加入的下載將無法通過 --save-session 選項儲存. rpc-secure.name=啟用 SSL/TLS rpc-secure.description=RPC 將通過 SSL/TLS 加密傳輸. RPC 客戶端需要使用 https 協定連線伺服器. 對於 WebSocket 客戶端, 使用 wss 協定. 使用 --rpc-certificate 和 --rpc-private-key 選項設定伺服器的證書和私鑰. allow-overwrite.name=允許覆蓋 allow-overwrite.description=如果相應的控制檔案不存在時從頭重新下載檔案. 參見 --auto-file-renaming 選項. allow-piece-length-change.name=允許分段大小變化 allow-piece-length-change.description=如果設定為"否", 當分段長度與控制檔案中的不同時, aria2 將會中止下載. 如果設定為"是", 您可以繼續, 但部分下載進度將會丟失. always-resume.name=始終斷點續傳 always-resume.description=始終斷點續傳. 如果設定為"是", aria2 始終嘗試斷點續傳, 如果無法恢復, 則中止下載. 如果設定為"否", 對於不支援斷點續傳的 URI 或 aria2 遇到 N 個不支援斷點續傳的 URI (N 為 --max-resume-failure-tries 選項設定的值), aria2 會從頭下載檔案. 參見 --max-resume-failure-tries 參數. async-dns.name=非同步 DNS async-dns.description= auto-file-renaming.name=檔案自動重命名 auto-file-renaming.description=重新命名已經存在的檔案. 此選項僅對 HTTP(S)/FTP 下載有效. 新的檔名後會在檔名後、副檔名 (如果有) 前追加句點和數字(1..9999). auto-save-interval.name=自動儲存間隔 auto-save-interval.description=每隔設定的秒數自動儲存控制檔案(*.aria2). 如果設定為 0, 下載期間控制檔案不會自動儲存. 不論設定的值為多少, aria2 會在工作結束時儲存控制檔案. 可以設定的值為 0 到 600. conditional-get.name=條件下載 conditional-get.description=僅當本機檔案比遠端檔案舊時才進行下載. 此功能僅適用於 HTTP(S) 下載. 如果在 Metalink 中檔案大小已經被指定則功能無法生效. 同時此功能還將忽略 Content-Disposition 響應頭. 如果存在控制檔案, 此選項將被忽略. 此功能通過 If-Modified-Since 要求標頭獲取較新的檔案. 當獲取到本機檔案的修改時間時, 此功能將使用使用者提供的檔名 (參見 --out 選項), 如果沒有指定 --out 選項則使用 URI 中的檔名. 為了覆蓋已經存在的檔案, 需要使用 --allow-overwrite 參數. conf-path.name=設定檔案路徑 conf-path.description= console-log-level.name=控制台記錄層級 console-log-level.description= content-disposition-default-utf8.name=使用 UTF-8 處理 Content-Disposition content-disposition-default-utf8.description=處理 "Content-Disposition" 頭中的字串時使用 UTF-8 字集來代替 ISO-8859-1, 例如, 檔名參數, 但不是擴充版本的檔名. daemon.name=啟用背景處理程序 daemon.description= deferred-input.name=延遲載入 deferred-input.description=如果設定為"是", aria2 在啟動時不會讀取 --input-file 選項設定的檔案中的所有 URI 位址, 而是會在之後需要時依需讀取. 如果輸入檔案中包含大量要下載的 URI, 此選項可以減少記憶體的使用. 如果設定為"否", aria2 會在啟動時讀取所有的 URI. 當 -save-session 使用時將會停用 --deferred-input 選項. disable-ipv6.name=停用 IPv6 disable-ipv6.description= disk-cache.name=磁碟快取 disk-cache.description=啟用磁碟快取. 如果設定為 0, 將停用磁碟快取. 此功能將下載的資料快取在記憶體中, 最多佔用此選項設定的位元組數. 快取儲存由 aria2 實例建立並對所有下載共享. 由於資料以較大的單位寫入並依檔案的偏移重新排序, 所以磁碟快取的一個優點是減少磁碟的 I/O. 如果調用雜湊檢查時並且資料快取在記憶體中時, 將不需要從磁碟中讀取. 大小可以包含 K 或 M (1K = 1024, 1M = 1024K). download-result.name=下載結果 download-result.description=此選項將修改下載結果的格式. 如果設定為"預設", 將列印 GID, 狀態, 平均下載速度和路徑/URI. 如果涉及多個檔案, 僅列印第一個要求檔案的路徑/URI, 其餘的將被忽略. 如果設定為"完整", 將列印 GID, 狀態, 平均下載速度, 下載進度和路徑/URI. 其中, 下載進度和路徑/URI 將會每個檔案列印一行. 如果設定為"隱藏", 下載結果將會隱藏. dscp.name=DSCP dscp.description=為 QoS 設定 BT 上行 IP 包的 DSCP 值. 此參數僅設定 IP 包中 TOS 欄位的 DSCP 位, 而不是整個欄位. 如果您從 /usr/include/netinet/ip.h 得到的值, 需要除以 4 (否則值將不正確, 例如您的 CS1 類將會轉為 CS4). 如果您從 RFC, 網路供應商的文件, 維基百科或其他來源採取常用的值, 可以直接使用. rlimit-nofile.name=最多打開的檔案描述項 rlimit-nofile.description=設定打開的檔案描述項的軟限制 (soft limit). 此選項僅當滿足如下條件時開放: a. 系統支援它 (posix). b. 限制沒有超過硬限制 (hard limit). c. 指定的限制比目前的軟限制高. 這相當於設定 ulimit, 除了其不能降低限制. 此選項僅當系統支援 rlimit API 時有效. enable-color.name=終端輸出使用顏色 enable-color.description= enable-mmap.name=啟用 MMap enable-mmap.description=記憶體中存放映射檔案. 當檔案空間沒有預先分配至, 此選項無效. 參見 --file-allocation. event-poll.name=事件輪詢方法 event-poll.description=設定事件輪詢的方法. 可選的值包括 epoll, kqueue, port, poll 和 select. 對於 epoll, kqueue, port 和 poll, 只有系統支援時才可用. 最新的 Linux 支援 epoll. 各種 *BSD 系統包括 Mac OS X 支援 kqueue. Open Solaris 支援 port. 預設值根據您使用的操作系統不同而不同. file-allocation.name=檔案分配方法 file-allocation.description=指定檔案分配方法. "無" 不會預先分配檔案空間. "prealloc"會在下載開始前預先分配空間. 這將會根據檔案的大小需要一定的時間. 如果您使用的是較新的檔案系統, 例如 ext4 (帶擴充支援), btrfs, xfs 或 NTFS (僅 MinGW 組建), "falloc" 是最好的選擇. 其幾乎可以瞬間分配大(數 GiB)檔案. 不要在舊的檔案系統, 例如 ext3 和 FAT32 上使用 falloc, 因為與 prealloc 花費的時間相同, 並且其會阻塞 aria2 直到分配完成. 當您的系統不支援 posix_fallocate(3) 函數時, falloc 可能無法使用. "trunc" 使用 ftruncate(2) 系統調用或平台特定的實現將檔案截取到特定的長度. 在多檔案的 BitTorrent 下載中, 若某檔案與其相鄰的檔案共享相同的分段時, 則相鄰的檔案也會被分配. force-save.name=強制儲存 force-save.description=即使工作完成或刪除時使用 --save-session 選項時也儲存該工作. 此選項在這種情況下還會儲存控制檔案. 此選項可以儲存被認為已經完成但正在做種的 BT 工作. save-not-found.name=儲存未找到的檔案 save-not-found.description=當使用 --save-session 選項時, 即使當工作中的檔案不存在時也儲存該下載工作. 此選項同時會將這種情況儲存到控制檔案中. hash-check-only.name=僅雜湊檢查 hash-check-only.description=如果設定為"是", 雜湊檢查完使用 --check-integrity 選項, 根據是否下載完成決定是否終止下載. human-readable.name=控制台可讀輸出 human-readable.description=在控制台輸出可讀格式的大小和速度 (例如, 1.2Ki, 3.4Mi). keep-unfinished-download-result.name=保留未完成的工作 keep-unfinished-download-result.description=保留所有未完成的下載結果, 即使超過了 --max-download-result 選項設定的數量. 這將有助於在會話檔案中儲存所有的未完成的下載 (參考 --save-session 選項). 需要注意的是, 未完成工作的數量沒有上限. 如果不希望這樣, 請關閉此選項. max-download-result.name=最多下載結果 max-download-result.description=設定記憶體中儲存最多的下載結果數量. 下載結果包括已完成/錯誤/已刪除的下載. 下載結果儲存在一個先進先出的隊列中, 因此其可以儲存最多指定的下載結果的數量. 當隊列已滿且有新的下載結果建立時, 最老的下載結果將從隊列的最前部移除, 新的將放在最後. 此選項設定較大的值後如果經過幾千次的下載將導致較高的記憶體消耗. 設定為 0 表示不儲存下載結果. 注意, 未完成的下載將始終儲存在記憶體中, 不考慮該選項的設定. 參考 --keep-unfinished-download-result 選項. max-mmap-limit.name=MMap 最大限制 max-mmap-limit.description=設定啟用 MMap (參見 --enable-mmap 選項) 最大的檔案大小. 檔案大小由一個下載工作中所有檔案大小的和決定. 例如, 如果一個下載包含 5 個檔案, 那麼檔案大小就是這些檔案的總大小. 如果檔案大小超過此選項設定的大小時, MMap 將會停用. max-resume-failure-tries.name=最大斷點續傳嘗試次數 max-resume-failure-tries.description=當 --always-resume 選項設定為"否"時, 如果 aria2 檢測到有 N 個 URI 不支援斷點續傳時, 將從頭開始下載檔案. 如果 N 設定為 0, 當所有 URI 都不支援斷點續傳時才會從頭下載檔案. 參見 --always-resume 選項. min-tls-version.name=最低 TLS 版本 min-tls-version.description=指定啟用的最低 SSL/TLS 版本. log-level.name=記錄層級 log-level.description= optimize-concurrent-downloads.name=最佳化同時下載 optimize-concurrent-downloads.description=根據可用頻寬最佳化同時下載的數量. aria2 使用之前統計的下載速度通過規則 N = A + B Log10 (速度單位為 Mbps) 得到同時下載的數量. 其中係數 A 和 B 可以在參數中以冒號分隔自訂. 預設值 (A=5, B=25) 可以在 1Mbps 網路上使用通常 5 個同時下載, 在 100Mbps 網路上為 50 個. 同時下載的數量保持在 --max-concurrent-downloads 參數定義的最大之下. piece-length.name=檔案分段大小 piece-length.description=設定 HTTP/FTP 下載的分配大小. aria2 根據這個邊界分割檔案. 所有的分割都是這個長度的倍數. 此選項不適用於 BitTorrent 下載. 如果 Metalink 檔案中包含分段雜湊的結果此選項也不適用. show-console-readout.name=顯示控制台輸出 show-console-readout.description= summary-interval.name=下載摘要輸出間隔 summary-interval.description=設定下載進度摘要的輸出間隔(秒). 設定為 0 禁止輸出. max-overall-download-limit.name=全域最大下載速度 max-overall-download-limit.description=設定全域最大下載速度 (位元組/秒). 0 表示不限制. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). max-download-limit.name=最大下載速度 max-download-limit.description=設定每個工作的最大下載速度 (位元組/秒). 0 表示不限制. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). no-conf.name=停用設定檔案 no-conf.description= no-file-allocation-limit.name=檔案分配限制 no-file-allocation-limit.description=不對比此參數設定大小小的分配檔案. 您可以增加數值的單位 K 或 M (1K = 1024, 1M = 1024K). parameterized-uri.name=啟用參數化 URI 支援 parameterized-uri.description=啟用參數化 URI 支援. 您可以指定部分的集合: http://{sv1,sv2,sv3}/foo.iso. 同時您也可以使用步進計數器指定數字化的序列: http://host/image[000-100:2].img. 步進計數器可以省略. 如果所有 URI 位址不指向同樣的檔案, 例如上述第二個示例, 需要使用 -Z 選項. quiet.name=停用控制台輸出 quiet.description= realtime-chunk-checksum.name=即時資料區塊驗證 realtime-chunk-checksum.description=如果提供了資料區塊的總和檢查碼, 將在下載過程中通過總和檢查碼驗證資料區塊. remove-control-file.name=刪除控制檔案 remove-control-file.description=在下載前刪除控制檔案. 使用 --allow-overwrite=true 選項時, 總是從頭開始下載檔案. 此選項將有助於使用不支援斷點續傳代理伺服器的使用者. save-session.name=狀態儲存檔案 save-session.description=當離開時儲存錯誤及未完成的工作到指定的檔案中. 您可以在重啟 aria2 時使用 --input-file 選項重新載入. 如果您希望輸出的內容使用 GZip 壓縮, 您可以在檔名後增加 .gz 副檔名. 請注意, 通過 aria2.addTorrent() 和 aria2.addMetalink() RPC 方法加入的下載, 其中繼資料沒有儲存到檔案的將不會儲存. 通過 aria2.remove() 和 aria2.forceRemove() 刪除的下載將不會儲存. save-session-interval.name=儲存狀態間隔 save-session-interval.description=每隔此選項設定的時間(秒)後會儲存錯誤或未完成的工作到 --save-session 選項指定的檔案中. 如果設定為 0, 僅當 aria2 離開時才會儲存. socket-recv-buffer-size.name=Socket 接收緩衝區大小 socket-recv-buffer-size.description=設定 Socket 接收緩衝區最大的位元組數. 指定為 0 時將停用此選項. 當使用 SO_RCVBUF 選項調用 setsockopt() 時此選項的值將設定到 Socket 的檔案描述項中. stop.name=自動關閉時間 stop.description=在此選項設定的時間(秒)後關閉應用程式. 如果設定為 0, 此功能將停用. truncate-console-readout.name=縮短控制台輸出內容 truncate-console-readout.description=縮短控制台輸出的內容在一行中. ================================================ FILE: src/robots.txt ================================================ # AriaNg User-agent: * Disallow: / ================================================ FILE: src/scripts/config/aria2Errors.js ================================================ (function () { 'use strict'; angular.module('ariaNg').constant('aria2Errors', { //'0': { }, //All downloads were successful. '1': { descriptionKey: 'error.unknown' }, '2': { descriptionKey: 'error.operation.timeout' }, '3': { descriptionKey: 'error.resource.notfound' }, '4': { descriptionKey: 'error.resource.notfound.max-file-not-found' }, '5': { descriptionKey: 'error.download.aborted.lowest-speed-limit' }, '6': { descriptionKey: 'error.network.problem' }, //'7': { },//If there were unfinished downloads. This error is only reported if all finished downloads were successful and there were unfinished downloads in a queue when aria2 exited by pressing Ctrl-C by an user or sending TERM or INT signal. '8': { descriptionKey: 'error.resume.notsupported' }, '9': { descriptionKey: 'error.space.notenough' }, '10': { descriptionKey: 'error.piece.length.different' }, '11': { descriptionKey: 'error.download.sametime' }, '12': { descriptionKey: 'error.download.torrent.sametime' }, '13': { descriptionKey: 'error.file.exists' }, '14': { descriptionKey: 'error.file.rename.failed' }, '15': { descriptionKey: 'error.file.open.failed' }, '16': { descriptionKey: 'error.file.create.failed' }, '17': { descriptionKey: 'error.io.error' }, '18': { descriptionKey: 'error.directory.create.failed' }, '19': { descriptionKey: 'error.name.resolution.failed' }, '20': { descriptionKey: 'error.metalink.file.parse.failed' }, '21': { descriptionKey: 'error.ftp.command.failed' }, '22': { descriptionKey: 'error.http.response.header.bad' }, '23': { descriptionKey: 'error.redirects.toomany' }, '24': { descriptionKey: 'error.http.authorization.failed' }, '25': { descriptionKey: 'error.bencoded.file.parse.failed' }, '26': { descriptionKey: 'error.torrent.file.corrupted' }, '27': { descriptionKey: 'error.magnet.uri.bad' }, '28': { descriptionKey: 'error.option.bad' }, '29': { descriptionKey: 'error.server.overload' }, '30': { descriptionKey: 'error.rpc.request.parse.failed' }, //'31': { }, //Reserved. Not used. '32': { descriptionKey: 'error.checksum.failed' } }); }()); ================================================ FILE: src/scripts/config/aria2Options.js ================================================ (function () { 'use strict'; angular.module('ariaNg').constant('aria2AllOptions', { // Aria2 Option Definition EXAMPLE: // 'option key': { // [since: '',] //This option is supported by this or higher aria2 version // type: 'string|integer|float|text|boolean|option', // [suffix: 'Bytes|Milliseconds|Seconds|Minutes|Hours',] // [readonly: true|false,] //default: false // [defaultValue: '',] // [required: true|false,] //default: false // [separator: '',] //SUPPORT 'text' type // [overrideMode: 'override|append',] //default: override // [submitFormat: 'string|array',] //default: string, parameter 'separator' is required // [showCount: true|false,] //SUPPORT 'text' type, parameter 'separator' is required, default: false // [trimCount: true|false,] //SUPPORT 'text' type, parameter 'separator', 'showCount' is required, default: false // [options: [],] //SUPPORT 'option' type // [min: 0,] //SUPPORT 'integer', 'float' type // [max: 0,] //SUPPORT 'integer', 'float' type // [pattern: ''] // } 'gid': { type: 'string', readonly: true, required: true }, 'dir': { type: 'string', required: true }, 'log': { type: 'string', required: true }, 'max-concurrent-downloads': { type: 'integer', defaultValue: '5', required: true, min: 1 }, 'check-integrity': { type: 'boolean', defaultValue: 'false', required: true }, 'continue': { type: 'boolean', required: true }, 'all-proxy': { type: 'string' }, 'all-proxy-user': { type: 'string' }, 'all-proxy-passwd': { type: 'string' }, 'checksum': { type: 'string', required: true, pattern: '^(md5|sha-(1|224|256|384|512))=[a-zA-Z0-9]+$' }, 'connect-timeout': { type: 'integer', suffix: 'Seconds', defaultValue: '60', required: true, min: 1, max: 600 }, 'dry-run': { type: 'boolean', defaultValue: 'false', required: true }, 'lowest-speed-limit': { type: 'string', suffix: 'Bytes', defaultValue: '0', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'max-connection-per-server': { type: 'integer', defaultValue: '1', required: true, min: 1, max: 16 }, 'max-file-not-found': { type: 'integer', defaultValue: '0', required: true, min: 0 }, 'max-tries': { type: 'integer', defaultValue: '5', required: true, min: 0 }, 'min-split-size': { type: 'string', suffix: 'Bytes', defaultValue: '20M', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'netrc-path': { type: 'string', readonly: true, defaultValue: '$(HOME)/.netrc' }, 'no-netrc': { type: 'boolean', required: true }, 'no-proxy': { type: 'text', separator: ',', showCount: true }, 'out': { type: 'string' }, 'proxy-method': { type: 'option', options: ['get', 'tunnel'], defaultValue: 'get', required: true }, 'remote-time': { type: 'boolean', defaultValue: 'false', required: true }, 'reuse-uri': { type: 'boolean', defaultValue: 'true', required: true }, 'retry-wait': { type: 'integer', suffix: 'Seconds', defaultValue: '0', required: true, min: 0, max: 600 }, 'server-stat-of': { type: 'string' }, 'server-stat-timeout': { type: 'integer', suffix: 'Seconds', readonly: true, defaultValue: '86400' }, 'split': { type: 'integer', defaultValue: '5', required: true, min: 1 }, 'stream-piece-selector': { type: 'option', options: ['default', 'inorder', 'random', 'geom'], defaultValue: 'default', required: true }, 'timeout': { type: 'integer', suffix: 'Seconds', defaultValue: '60', required: true, min: 1, max: 600 }, 'uri-selector': { type: 'option', options: ['inorder', 'feedback', 'adaptive'], defaultValue: 'feedback', required: true }, 'check-certificate': { type: 'boolean', readonly: true, defaultValue: 'true' }, 'http-accept-gzip': { type: 'boolean', defaultValue: 'false', required: true }, 'http-auth-challenge': { type: 'boolean', defaultValue: 'false', required: true }, 'http-no-cache': { type: 'boolean', defaultValue: 'false', required: true }, 'http-user': { type: 'string' }, 'http-passwd': { type: 'string' }, 'http-proxy': { type: 'string' }, 'http-proxy-user': { type: 'string' }, 'http-proxy-passwd': { type: 'string' }, 'https-proxy': { type: 'string' }, 'https-proxy-user': { type: 'string' }, 'https-proxy-passwd': { type: 'string' }, 'referer': { type: 'string' }, 'enable-http-keep-alive': { type: 'boolean', defaultValue: 'true', required: true }, 'enable-http-pipelining': { type: 'boolean', defaultValue: 'false', required: true }, 'header': { type: 'text', separator: '\n', overrideMode: 'append', submitFormat: 'array', showCount: true, trimCount: true }, 'save-cookies': { type: 'string' }, 'use-head': { type: 'boolean', defaultValue: 'false', required: true }, 'user-agent': { type: 'string', defaultValue: 'aria2/$VERSION' }, 'ftp-user': { type: 'string', defaultValue: 'anonymous' }, 'ftp-passwd': { type: 'string', defaultValue: 'ARIA2USER@' }, 'ftp-pasv': { type: 'boolean', defaultValue: 'true', required: true }, 'ftp-proxy': { type: 'string' }, 'ftp-proxy-user': { type: 'string' }, 'ftp-proxy-passwd': { type: 'string' }, 'ftp-type': { type: 'option', options: ['binary', 'ascii'], defaultValue: 'binary', required: true }, 'ftp-reuse-connection': { type: 'boolean', defaultValue: 'true', required: true }, 'ssh-host-key-md': { type: 'string' }, 'show-files': { type: 'boolean', readonly: true }, 'bt-detach-seed-only': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'bt-enable-hook-after-hash-check': { since: '1.19.3', type: 'boolean', defaultValue: 'true', required: true }, 'bt-enable-lpd': { type: 'boolean', defaultValue: 'false', required: true }, 'bt-exclude-tracker': { type: 'text', separator: ',', showCount: true }, 'bt-external-ip': { type: 'string' }, 'bt-force-encryption': { type: 'boolean', defaultValue: 'false', required: true }, 'bt-hash-check-seed': { type: 'boolean', defaultValue: 'true', required: true }, 'bt-load-saved-metadata': { since: '1.33.0', type: 'boolean', defaultValue: 'false', required: true }, 'bt-max-open-files': { type: 'integer', defaultValue: '100', required: true, min: 1 }, 'bt-max-peers': { type: 'integer', defaultValue: '55', required: true, min: 0 }, 'bt-metadata-only': { type: 'boolean', defaultValue: 'false', required: true }, 'bt-min-crypto-level': { type: 'option', options: ['plain', 'arc4'], defaultValue: 'plain', required: true }, 'bt-prioritize-piece': { type: 'string' }, 'bt-remove-unselected-file': { type: 'boolean', defaultValue: 'false', required: true }, 'bt-require-crypto': { type: 'boolean', defaultValue: 'false', required: true }, 'bt-request-peer-speed-limit': { type: 'string', suffix: 'Bytes', defaultValue: '50K', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'bt-save-metadata': { type: 'boolean', defaultValue: 'false', required: true }, 'bt-seed-unverified': { type: 'boolean', defaultValue: 'false', required: true }, 'bt-stop-timeout': { type: 'integer', suffix: 'Seconds', defaultValue: '0', required: true, min: 0 }, 'bt-tracker': { type: 'text', separator: ',', showCount: true }, 'bt-tracker-connect-timeout': { type: 'integer', suffix: 'Seconds', defaultValue: '60', required: true, min: 1, max: 600 }, 'bt-tracker-interval': { type: 'integer', suffix: 'Seconds', defaultValue: '0', required: true, min: 0 }, 'bt-tracker-timeout': { type: 'integer', suffix: 'Seconds', defaultValue: '60', required: true, min: 1, max: 600 }, 'dht-file-path': { type: 'string', readonly: true, defaultValue: '$HOME/.aria2/dht.dat' }, 'dht-file-path6': { type: 'string', readonly: true, defaultValue: '$HOME/.aria2/dht6.dat' }, 'dht-listen-port': { type: 'string', readonly: true, defaultValue: '6881-6999' }, 'dht-message-timeout': { type: 'integer', suffix: 'Seconds', readonly: true, defaultValue: '10' }, 'enable-dht': { type: 'boolean', readonly: true, defaultValue: 'true' }, 'enable-dht6': { type: 'boolean', readonly: true }, 'enable-peer-exchange': { type: 'boolean', defaultValue: 'true', required: true }, 'follow-torrent': { type: 'option', options: ['true', 'false', 'mem'], defaultValue: 'true', required: true }, 'listen-port': { type: 'integer', readonly: true, defaultValue: '6881-6999' }, 'max-overall-upload-limit': { type: 'string', suffix: 'Bytes', defaultValue: '0', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'max-upload-limit': { type: 'string', suffix: 'Bytes', defaultValue: '0', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'peer-id-prefix': { type: 'string', readonly: true, defaultValue: 'A2-$MAJOR-$MINOR-$PATCH-' }, 'peer-agent': { since: '1.33.0', type: 'string', defaultValue: 'aria2/$MAJOR.$MINOR.$PATCH', readonly: true }, 'seed-ratio': { type: 'float', defaultValue: '1.0', required: true, min: 0 }, 'seed-time': { type: 'float', suffix: 'Minutes', required: true, min: 0 }, 'follow-metalink': { type: 'option', options: ['true', 'false', 'mem'], defaultValue: 'true', required: true }, 'metalink-base-uri': { type: 'string' }, 'metalink-language': { type: 'string' }, 'metalink-location': { type: 'string' }, 'metalink-os': { type: 'string' }, 'metalink-version': { type: 'string' }, 'metalink-preferred-protocol': { type: 'option', options: ['http', 'https', 'ftp', 'none'], defaultValue: 'none', required: true }, 'metalink-enable-unique-protocol': { type: 'boolean', defaultValue: 'true', required: true }, 'enable-rpc': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'pause-metadata': { type: 'boolean', defaultValue: 'false', required: true }, 'rpc-allow-origin-all': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'rpc-listen-all': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'rpc-listen-port': { type: 'integer', readonly: true, defaultValue: '6800' }, 'rpc-max-request-size': { type: 'string', suffix: 'Bytes', readonly: true, defaultValue: '2M' }, 'rpc-save-upload-metadata': { type: 'boolean', defaultValue: 'true', required: true }, 'rpc-secure': { type: 'boolean', readonly: true }, 'allow-overwrite': { type: 'boolean', defaultValue: 'false', required: true }, 'allow-piece-length-change': { type: 'boolean', defaultValue: 'false', required: true }, 'always-resume': { type: 'boolean', defaultValue: 'true', required: true }, 'async-dns': { type: 'boolean', defaultValue: 'true', required: true }, 'auto-file-renaming': { type: 'boolean', defaultValue: 'true', required: true }, 'auto-save-interval': { type: 'integer', suffix: 'Seconds', readonly: true, defaultValue: '60' }, 'conditional-get': { type: 'boolean', defaultValue: 'false', required: true }, 'conf-path': { type: 'string', readonly: true, defaultValue: '$HOME/.aria2/aria2.conf' }, 'console-log-level': { type: 'option', options: ['debug', 'info', 'notice', 'warn', 'error'], readonly: true, defaultValue: 'notice' }, 'content-disposition-default-utf8': { since: '1.31.0', type: 'boolean', defaultValue: 'false' }, 'daemon': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'deferred-input': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'disable-ipv6': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'disk-cache': { type: 'string', suffix: 'Bytes', readonly: true, defaultValue: '16M' }, 'download-result': { type: 'option', options: ['default', 'full', 'hide'], defaultValue: 'default', required: true }, 'dscp': { type: 'string', readonly: true }, 'rlimit-nofile': { type: 'string', readonly: true }, 'enable-color': { type: 'boolean', readonly: true, defaultValue: 'true' }, 'enable-mmap': { type: 'boolean', defaultValue: 'false', required: true }, 'event-poll': { type: 'option', options: ['epoll', 'kqueue', 'port', 'poll', 'select'], readonly: true }, 'file-allocation': { type: 'option', options: ['none', 'prealloc', 'trunc', 'falloc'], defaultValue: 'prealloc', required: true }, 'force-save': { type: 'boolean', defaultValue: 'false', required: true }, 'save-not-found': { since: '1.27.0', type: 'boolean', defaultValue: 'true', required: true }, 'hash-check-only': { type: 'boolean', defaultValue: 'false', required: true }, 'human-readable': { type: 'boolean', readonly: true, defaultValue: 'true' }, 'keep-unfinished-download-result': { type: 'boolean', defaultValue: 'true', required: true }, 'max-download-result': { type: 'integer', defaultValue: '1000', required: true, min: 0 }, 'max-mmap-limit': { since: '1.20.0', type: 'string', suffix: 'Bytes', defaultValue: '9223372036854775807', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'max-resume-failure-tries': { type: 'integer', defaultValue: '0', required: true, min: 0 }, 'min-tls-version': { type: 'option', options: ['SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2'], readonly: true, defaultValue: 'TLSv1' }, 'log-level': { type: 'option', options: ['debug', 'info', 'notice', 'warn', 'error'], defaultValue: 'debug', required: true }, 'optimize-concurrent-downloads': { since: '1.22.0', type: 'string', defaultValue: 'false' }, 'piece-length': { type: 'string', suffix: 'Bytes', defaultValue: '1M', required: true, pattern: '^(0|[1-9]\\d*(M|m)?)$' }, 'show-console-readout': { type: 'boolean', readonly: true, defaultValue: 'true' }, 'summary-interval': { type: 'integer', suffix: 'Seconds', readonly: true, defaultValue: '60' }, 'max-overall-download-limit': { type: 'string', suffix: 'Bytes', defaultValue: '0', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'max-download-limit': { type: 'string', suffix: 'Bytes', defaultValue: '0', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'no-conf': { type: 'boolean', readonly: true }, 'no-file-allocation-limit': { type: 'string', suffix: 'Bytes', defaultValue: '5M', required: true, pattern: '^(0|[1-9]\\d*(K|k|M|m)?)$' }, 'parameterized-uri': { type: 'boolean', defaultValue: 'false', required: true }, 'quiet': { type: 'boolean', readonly: true, defaultValue: 'false' }, 'realtime-chunk-checksum': { type: 'boolean', defaultValue: 'true', required: true }, 'remove-control-file': { type: 'boolean', required: true }, 'save-session': { type: 'string' }, 'save-session-interval': { type: 'integer', suffix: 'Seconds', readonly: true, defaultValue: '0' }, 'socket-recv-buffer-size': { since: '1.19.3', type: 'string', suffix: 'Bytes', readonly: true, defaultValue: '0' }, 'stop': { type: 'integer', suffix: 'Seconds', readonly: true, defaultValue: '0' }, 'truncate-console-readout': { type: 'boolean', readonly: true, defaultValue: 'true' } }).constant('aria2GlobalAvailableOptions', { // Aria2 Setting Page Definition EXAMPLE: // 'category key': [ // 'option key 1', 'option key 2', // more options if possible // ] basicOptions: [ 'dir', 'log', 'max-concurrent-downloads', 'check-integrity', 'continue' ], httpFtpSFtpOptions: [ 'all-proxy', 'all-proxy-user', 'all-proxy-passwd', 'connect-timeout', 'dry-run', 'lowest-speed-limit', 'max-connection-per-server', 'max-file-not-found', 'max-tries', 'min-split-size', 'netrc-path', 'no-netrc', 'no-proxy', 'proxy-method', 'remote-time', 'reuse-uri', 'retry-wait', 'server-stat-of', 'server-stat-timeout', 'split', 'stream-piece-selector', 'timeout', 'uri-selector' ], httpOptions: [ 'check-certificate', 'http-accept-gzip', 'http-auth-challenge', 'http-no-cache', 'http-user', 'http-passwd', 'http-proxy', 'http-proxy-user', 'http-proxy-passwd', 'https-proxy', 'https-proxy-user', 'https-proxy-passwd', 'referer', 'enable-http-keep-alive', 'enable-http-pipelining', 'header', 'save-cookies', 'use-head', 'user-agent' ], ftpSFtpOptions: [ 'ftp-user', 'ftp-passwd', 'ftp-pasv', 'ftp-proxy', 'ftp-proxy-user', 'ftp-proxy-passwd', 'ftp-type', 'ftp-reuse-connection', 'ssh-host-key-md' ], btOptions: [ 'bt-detach-seed-only', 'bt-enable-hook-after-hash-check', 'bt-enable-lpd', 'bt-exclude-tracker', 'bt-external-ip', 'bt-force-encryption', 'bt-hash-check-seed', 'bt-load-saved-metadata', 'bt-max-open-files', 'bt-max-peers', 'bt-metadata-only', 'bt-min-crypto-level', 'bt-prioritize-piece', 'bt-remove-unselected-file', 'bt-require-crypto', 'bt-request-peer-speed-limit', 'bt-save-metadata', 'bt-seed-unverified', 'bt-stop-timeout', 'bt-tracker', 'bt-tracker-connect-timeout', 'bt-tracker-interval', 'bt-tracker-timeout', 'dht-file-path', 'dht-file-path6', 'dht-listen-port', 'dht-message-timeout', 'enable-dht', 'enable-dht6', 'enable-peer-exchange', 'follow-torrent', 'listen-port', 'max-overall-upload-limit', 'max-upload-limit', 'peer-id-prefix', 'peer-agent', 'seed-ratio', 'seed-time' ], metalinkOptions: [ 'follow-metalink', 'metalink-base-uri', 'metalink-language', 'metalink-location', 'metalink-os', 'metalink-version', 'metalink-preferred-protocol', 'metalink-enable-unique-protocol' ], rpcOptions: [ 'enable-rpc', 'pause-metadata', 'rpc-allow-origin-all', 'rpc-listen-all', 'rpc-listen-port', 'rpc-max-request-size', 'rpc-save-upload-metadata', 'rpc-secure' ], advancedOptions: [ 'allow-overwrite', 'allow-piece-length-change', 'always-resume', 'async-dns', 'auto-file-renaming', 'auto-save-interval', 'conditional-get', 'conf-path', 'console-log-level', 'content-disposition-default-utf8', 'daemon', 'deferred-input', 'disable-ipv6', 'disk-cache', 'download-result', 'dscp', 'rlimit-nofile', 'enable-color', 'enable-mmap', 'event-poll', 'file-allocation', 'force-save', 'save-not-found', 'hash-check-only', 'human-readable', 'keep-unfinished-download-result', 'max-download-result', 'max-mmap-limit', 'max-resume-failure-tries', 'min-tls-version', 'log-level', 'optimize-concurrent-downloads', 'piece-length', 'show-console-readout', 'summary-interval', 'max-overall-download-limit', 'max-download-limit', 'no-conf', 'no-file-allocation-limit', 'parameterized-uri', 'quiet', 'realtime-chunk-checksum', 'remove-control-file', 'save-session', 'save-session-interval', 'socket-recv-buffer-size', 'stop', 'truncate-console-readout' ] }).constant('aria2QuickSettingsAvailableOptions', { globalSpeedLimitOptions: [ 'max-overall-download-limit', 'max-overall-upload-limit' ] }).constant('aria2TaskAvailableOptions', { // Aria2 Task Option Definition EXAMPLE: // { // key: 'option key', // category: 'global|http|bittorrent', // [canShow: 'new|active|waiting|paused',] // possible to show in specific status, supporting multiple choice. if not set, always show // [canUpdate: 'new|active|waiting|paused',] // possible to write in specific status, supporting multiple choice. if not set, always writable // [showHistory: true|false,] // show history under the input box, only supporting "string" type. if not set, this is set to false // } taskOptions: [ { key: 'dir', category: 'global', canUpdate: 'new', showHistory: true }, { key: 'out', category: 'http', canUpdate: 'new' }, { key: 'allow-overwrite', category: 'global', canShow: 'new' }, { key: 'max-download-limit', category: 'global' }, { key: 'max-upload-limit', category: 'bittorrent' }, { key: 'split', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'min-split-size', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'max-connection-per-server', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'lowest-speed-limit', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'stream-piece-selector', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'http-user', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'http-passwd', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'all-proxy', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'all-proxy-user', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'all-proxy-passwd', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'checksum', category: 'http' }, { key: 'continue', category: 'http', canUpdate: 'new|waiting|paused' }, { key: 'referer', category: 'http', canUpdate: 'new' }, { key: 'header', category: 'http', canUpdate: 'new' }, { key: 'bt-max-peers', category: 'bittorrent' }, { key: 'bt-request-peer-speed-limit', category: 'bittorrent' }, { key: 'bt-remove-unselected-file', category: 'bittorrent' }, { key: 'bt-stop-timeout', category: 'bittorrent', canUpdate: 'new|waiting|paused' }, { key: 'bt-tracker', category: 'bittorrent', canUpdate: 'new|waiting|paused' }, { key: 'seed-ratio', category: 'bittorrent', canUpdate: 'new|waiting|paused' }, { key: 'seed-time', category: 'bittorrent', canUpdate: 'new|waiting|paused' }, { key: 'pause-metadata', category: 'bittorrent', canUpdate: 'new' }, { key: 'conditional-get', category: 'global', canShow: 'new' }, { key: 'check-integrity', category: 'global' }, { key: 'file-allocation', category: 'global', canShow: 'new' }, { key: 'parameterized-uri', category: 'global', canShow: 'new' }, { key: 'force-save', category: 'global' } ] }); }()); ================================================ FILE: src/scripts/config/aria2RpcConstants.js ================================================ (function () { 'use strict'; angular.module('ariaNg').constant('aria2RpcConstants', { rpcServiceVersion: '2.0', rpcServiceName: 'aria2', rpcSystemServiceName: 'system', rpcTokenPrefix: 'token:' }).constant('aria2RpcErrors', { Unauthorized: { message: 'Unauthorized', tipTextKey: 'rpc.error.unauthorized' } }); }()); ================================================ FILE: src/scripts/config/buildConfiguration.js ================================================ (function () { 'use strict'; angular.module('ariaNg').constant('ariaNgBuildConfiguration', { buildVersion: '${ARIANG_VERSION}', buildCommit: '${ARIANG_BUILD_COMMIT}' }); }()); ================================================ FILE: src/scripts/config/configuration.js ================================================ (function () { 'use strict'; angular.module('ariaNg').config(['$qProvider', '$translateProvider', 'localStorageServiceProvider', 'NotificationProvider', 'ariaNgConstants', 'ariaNgLanguages', function ($qProvider, $translateProvider, localStorageServiceProvider, NotificationProvider, ariaNgConstants, ariaNgLanguages) { $qProvider.errorOnUnhandledRejections(false); localStorageServiceProvider .setPrefix(ariaNgConstants.appPrefix) .setStorageType('localStorage') .setStorageCookie(365, '/'); var supportedLangs = []; var languageAliases = {}; for (var langName in ariaNgLanguages) { if (!ariaNgLanguages.hasOwnProperty(langName)) { continue; } var language = ariaNgLanguages[langName]; var aliases = language.aliases; supportedLangs.push(langName); if (!angular.isArray(aliases) || aliases.length < 1) { continue; } for (var i = 0; i < aliases.length; i++) { var langAlias = aliases[i]; languageAliases[langAlias] = langName; } } $translateProvider.useLoader('ariaNgLanguageLoader') .useLoaderCache(true) .registerAvailableLanguageKeys(supportedLangs, languageAliases) .fallbackLanguage(ariaNgConstants.defaultLanguage) .useSanitizeValueStrategy('escapeParameters'); NotificationProvider.setOptions({ delay: ariaNgConstants.notificationInPageTimeout }); }]); }()); ================================================ FILE: src/scripts/config/constants.js ================================================ (function () { 'use strict'; angular.module('ariaNg').constant('ariaNgConstants', { title: 'AriaNg', appPrefix: 'AriaNg', optionStorageKey: 'Options', browserNotificationHistoryStorageKey: 'Notifications', languageStorageKeyPrefix: 'Language', settingHistoryKeyPrefix: 'History', languagePath: 'langs', languageFileExtension: '.txt', defaultLanguage: 'en', defaultHost: 'localhost', defaultSecureProtocol: 'https', defaultPathSeparator: '/', httpRequestTimeout: 20000, globalStatStorageCapacity: 120, taskStatStorageCapacity: 300, lazySaveTimeout: 500, errorTooltipDelay: 500, notificationInPageTimeout: 2000, historyMaxStoreCount: 10, cachedDebugLogsLimit: 100 }).constant('ariaNgDefaultOptions', { language: 'en', theme: 'light', title: '${downspeed}, ${upspeed} - ${title}', titleRefreshInterval: 5000, browserNotification: false, browserNotificationSound: true, browserNotificationFrequency: 'unlimited', rpcAlias: '', rpcHost: '', rpcPort: '6800', rpcInterface: 'jsonrpc', protocol: 'http', httpMethod: 'POST', rpcRequestHeaders: '', secret: '', extendRpcServers: [], webSocketReconnectInterval: 5000, globalStatRefreshInterval: 1000, downloadTaskRefreshInterval: 1000, keyboardShortcuts: true, swipeGesture: true, dragAndDropTasks: true, rpcListDisplayOrder: 'recentlyUsed', afterCreatingNewTask: 'task-list', removeOldTaskAfterRetrying: false, confirmTaskRemoval: true, includePrefixWhenCopyingFromTaskDetails: true, showPiecesInfoInTaskDetailPage: 'le10240', afterRetryingTask: 'task-list-downloading', taskListIndependentDisplayOrder: false, displayOrder: 'default:asc', waitingTaskListPageDisplayOrder: 'default:asc', stoppedTaskListPageDisplayOrder: 'default:asc', fileListDisplayOrder: 'default:asc', peerListDisplayOrder: 'default:asc' }); }()); ================================================ FILE: src/scripts/config/defaultLanguage.js ================================================ (function () { 'use strict'; angular.module('ariaNg').config(['$translateProvider', 'ariaNgConstants', function ($translateProvider, ariaNgConstants) { var defaultLanguageResource = { 'AriaNg Version': 'AriaNg Version', 'Operation Result': 'Operation Result', 'Operation Succeeded': 'Operation Succeeded', 'is connected': 'is connected', 'Error': 'Error', 'OK': 'OK', 'Confirm': 'Confirm', 'Cancel': 'Cancel', 'Close': 'Close', 'True': 'True', 'False': 'False', 'DEBUG': 'Debug', 'INFO': 'Info', 'WARN': 'Warn', 'ERROR': 'Error', 'Connecting': 'Connecting', 'Connected': 'Connected', 'Disconnected': 'Disconnected', 'Reconnecting': 'Reconnecting', 'Waiting to reconnect': 'Waiting to reconnect', 'Global': 'Global', 'New': 'New', 'Start': 'Start', 'Pause': 'Pause', 'Retry': 'Retry', 'Retry Selected Tasks': 'Retry Selected Tasks', 'Delete': 'Delete', 'Select All': 'Select All', 'Select None': 'Select None', 'Select Invert': 'Select Invert', 'Select All Failed Tasks': 'Select All Failed Tasks', 'Select All Completed Tasks': 'Select All Completed Tasks', 'Select All Tasks': 'Select All Tasks', 'Display Order': 'Display Order', 'Copy Download Url': 'Copy Download Url', 'Copy Magnet Link': 'Copy Magnet Link', 'Help': 'Help', 'Search': 'Search', 'Default': 'Default', 'Expand': 'Expand', 'Collapse': 'Collapse', 'Expand All': 'Expand All', 'Collapse All': 'Collapse All', 'Open': 'Open', 'Save': 'Save', 'Import': 'Import', 'Remove Task': 'Remove Task', 'Remove Selected Task': 'Remove Selected Task', 'Clear Stopped Tasks': 'Clear Stopped Tasks', 'Click to view task detail': 'Click to view task detail', 'By File Name': 'By File Name', 'By File Size': 'By File Size', 'By Progress': 'By Progress', 'By Selected Status': 'By Selected Status', 'By Remaining': 'By Remaining', 'By Download Speed': 'By Download Speed', 'By Upload Speed': 'By Upload Speed', 'By Peer Address': 'By Peer Address', 'By Client Name': 'By Client Name', 'Filters': 'Filters', 'Download': 'Download', 'Upload': 'Upload', 'Downloading': 'Downloading', 'Pending Verification': 'Pending Verification', 'Verifying': 'Verifying', 'Seeding': 'Seeding', 'Waiting': 'Waiting', 'Paused': 'Paused', 'Completed': 'Completed', 'Error Occurred': 'Error Occurred', 'Removed': 'Removed', 'Finished / Stopped': 'Finished / Stopped', 'Uncompleted': 'Uncompleted', 'Click to pin': 'Click to pin', 'Settings': 'Settings', 'AriaNg Settings': 'AriaNg Settings', 'Aria2 Settings': 'Aria2 Settings', 'Basic Settings': 'Basic Settings', 'HTTP/FTP/SFTP Settings': 'HTTP/FTP/SFTP Settings', 'HTTP Settings': 'HTTP Settings', 'FTP/SFTP Settings': 'FTP/SFTP Settings', 'BitTorrent Settings': 'BitTorrent Settings', 'Metalink Settings': 'Metalink Settings', 'RPC Settings': 'RPC Settings', 'Advanced Settings': 'Advanced Settings', 'AriaNg Debug Console': 'AriaNg Debug Console', 'Aria2 Status': 'Aria2 Status', 'File Name': 'File Name', 'File Size': 'File Size', 'Progress': 'Progress', 'Share Ratio': 'Share Ratio', 'Remaining': 'Remaining', 'Download Speed': 'Download Speed', 'Upload Speed': 'Upload Speed', 'Links': 'Links', 'Torrent File': 'Torrent File', 'Metalink File': 'Metalink File', 'File Name:': 'File Name:', 'Options': 'Options', 'Overview': 'Overview', 'Pieces': 'Pieces', 'Files': 'Files', 'Peers': 'Peers', 'Task Name': 'Task Name', 'Task Size': 'Task Size', 'Task Status': 'Task Status', 'Error Description': 'Error Description', 'Health Percentage': 'Health Percentage', 'Info Hash': 'Info Hash', 'Seeders': 'Seeders', 'Connections': 'Connections', 'Seed Creation Time': 'Seed Creation Time', 'Download Url': 'Download Url', 'Download Dir': 'Download Dir', 'BT Tracker Servers': 'BT Tracker Servers', 'Copy': 'Copy', '(Choose Files)': '(Choose Files)', 'Videos': 'Videos', 'Audios': 'Audios', 'Pictures': 'Pictures', 'Documents': 'Documents', 'Applications': 'Applications', 'Archives': 'Archives', 'Other': 'Other', 'Custom': 'Custom', 'Custom Choose File': 'Custom Choose File', 'Address': 'Address', 'Client': 'Client', 'Status': 'Status', 'Speed': 'Speed', '(local)': '(local)', 'No Data': 'No Data', 'No connected peers': 'No connected peers', 'Failed to change some tasks state.': 'Failed to change some tasks state.', 'Confirm Retry': 'Confirm Retry', 'Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.': 'Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.', 'Failed to retry this task.': 'Failed to retry this task.', '{successCount} tasks have been retried and {failedCount} tasks are failed.': '{{successCount}} tasks have been retried and {{failedCount}} tasks are failed.', 'Confirm Remove': 'Confirm Remove', 'Are you sure you want to remove the selected task?': 'Are you sure you want to remove the selected task?', 'Failed to remove some task(s).': 'Failed to remove some task(s).', 'Confirm Clear': 'Confirm Clear', 'Are you sure you want to clear stopped tasks?': 'Are you sure you want to clear stopped tasks?', 'Download Links:': 'Download Links:', 'Download Now': 'Download Now', 'Download Later': 'Download Later', 'Open Torrent File': 'Open Torrent File', 'Open Metalink File': 'Open Metalink File', 'Support multiple URLs, one URL per line.': 'Support multiple URLs, one URL per line.', 'Your browser does not support loading file!': 'Your browser does not support loading file!', 'The selected file type is invalid!': 'The selected file type is invalid!', 'Failed to load file!': 'Failed to load file!', 'Download Completed': 'Download Completed', 'BT Download Completed': 'BT Download Completed', 'Download Error': 'Download Error', 'AriaNg Url': 'AriaNg Url', 'Command API Url': 'Command API Url', 'Export Command API': 'Export Command API', 'Export': 'Export', 'Copied': 'Copied', 'Pause After Task Created': 'Pause After Task Created', 'Language': 'Language', 'Theme': 'Theme', 'Light': 'Light', 'Dark': 'Dark', 'Follow system settings': 'Follow system settings', 'Debug Mode': 'Debug Mode', 'Page Title': 'Page Title', 'Preview': 'Preview', 'Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale=n" tag to set the decimal precision.': 'Tips: You can use the "noprefix" tag to ignore the prefix, "nosuffix" tag to ignore the suffix, and "scale=n" tag to set the decimal precision.', 'Example: ${downspeed:noprefix:nosuffix:scale=1}': 'Example: ${downspeed:noprefix:nosuffix:scale=1}', 'Updating Page Title Interval': 'Updating Page Title Interval', 'Enable Browser Notification': 'Enable Browser Notification', 'Browser Notification Sound': 'Browser Notification Sound', 'Browser Notification Frequency': 'Browser Notification Frequency', 'Unlimited': 'Unlimited', 'High (Up to 10 Notifications / 1 Minute)': 'High (Up to 10 Notifications / 1 Minute)', 'Middle (Up to 1 Notification / 1 Minute)': 'Middle (Up to 1 Notification / 1 Minute)', 'Low (Up to 1 Notification / 5 Minutes)': 'Low (Up to 1 Notification / 5 Minutes)', 'WebSocket Auto Reconnect Interval': 'WebSocket Auto Reconnect Interval', 'Aria2 RPC Alias': 'Aria2 RPC Alias', 'Aria2 RPC Address': 'Aria2 RPC Address', 'Aria2 RPC Protocol': 'Aria2 RPC Protocol', 'Aria2 RPC Http Request Method': 'Aria2 RPC Http Request Method', 'POST method only supports aria2 v1.15.2 and above.': 'POST method only supports aria2 v1.15.2 and above.', 'Aria2 RPC Request Headers': 'Aria2 RPC Request Headers', 'Support multiple request headers, one header per line, each line containing "header name: header value".': 'Support multiple request headers, one header per line, each line containing "header name: header value".', 'Aria2 RPC Secret Token': 'Aria2 RPC Secret Token', 'Activate': 'Activate', 'Reset Settings': 'Reset Settings', 'Confirm Reset': 'Confirm Reset', 'Are you sure you want to reset all settings?': 'Are you sure you want to reset all settings?', 'Clear Settings History': 'Clear Settings History', 'Are you sure you want to clear all settings history?': 'Are you sure you want to clear all settings history?', 'Delete RPC Setting': 'Delete RPC Setting', 'Add New RPC Setting': 'Add New RPC Setting', 'Are you sure you want to remove rpc setting "{rpcName}"?': 'Are you sure you want to remove rpc setting "{{rpcName}}"?', 'Updating Global Stat Interval': 'Updating Global Stat Interval', 'Updating Task Information Interval': 'Updating Task Information Interval', 'Keyboard Shortcuts': 'Keyboard Shortcuts', 'Supported Keyboard Shortcuts': 'Supported Keyboard Shortcuts', 'Set Focus On Search Box': 'Set Focus On Search Box', 'Swipe Gesture': 'Swipe Gesture', 'Change Tasks Order by Drag-and-drop': 'Change Tasks Order by Drag-and-drop', 'Action After Creating New Tasks': 'Action After Creating New Tasks', 'Navigate to Task List Page': 'Navigate to Task List Page', 'Navigate to Task Detail Page': 'Navigate to Task Detail Page', 'Action After Retrying Task': 'Action After Retrying Task', 'Navigate to Downloading Tasks Page': 'Navigate to Downloading Tasks Page', 'Stay on Current Page': 'Stay on Current Page', 'Remove Old Tasks After Retrying': 'Remove Old Tasks After Retrying', 'Confirm Task Removal': 'Confirm Task Removal', 'Include Prefix When Copying From Task Details': 'Include Prefix When Copying From Task Details', 'Show Pieces Info In Task Detail Page': 'Show Pieces Info In Task Detail Page', 'Pieces Amount is Less than or Equal to {value}': 'Pieces Amount is Less than or Equal to {{value}}', 'RPC List Display Order': 'RPC List Display Order', 'Each Task List Page Uses Independent Display Order': 'Each Task List Page Uses Independent Display Order', 'Recently Used': 'Recently Used', 'RPC Alias': 'RPC Alias', 'Import / Export AriaNg Settings': 'Import / Export AriaNg Settings', 'Import Settings': 'Import Settings', 'Export Settings': 'Export Settings', 'AriaNg settings data': 'AriaNg settings data', 'Confirm Import': 'Confirm Import', 'Are you sure you want to import all settings?': 'Are you sure you want to import all settings?', 'Invalid settings data format!': 'Invalid settings data format!', 'Data has been copied to clipboard.': 'Data has been copied to clipboard.', 'Supported Placeholder': 'Supported Placeholder', 'AriaNg Title': 'AriaNg Title', 'Current RPC Alias': 'Current RPC Alias', 'Downloading Count': 'Downloading Count', 'Waiting Count': 'Waiting Count', 'Stopped Count': 'Stopped Count', 'You have disabled notification in your browser. You should change your browser\'s settings before you enable this function.': 'You have disabled notification in your browser. You should change your browser\'s settings before you enable this function.', 'Language resource has been updated, please reload the page for the changes to take effect.': 'Language resource has been updated, please reload the page for the changes to take effect.', 'Configuration has been modified, please reload the page for the changes to take effect.': 'Configuration has been modified, please reload the page for the changes to take effect.', 'Reload AriaNg': 'Reload AriaNg', 'Show Secret': 'Show Secret', 'Hide Secret': 'Hide Secret', 'Aria2 Version': 'Aria2 Version', 'Enabled Features': 'Enabled Features', 'Operations': 'Operations', 'Reconnect': 'Reconnect', 'Save Session': 'Save Session', 'Shutdown Aria2': 'Shutdown Aria2', 'Confirm Shutdown': 'Confirm Shutdown', 'Are you sure you want to shutdown aria2?': 'Are you sure you want to shutdown aria2?', 'Session has been saved successfully.': 'Session has been saved successfully.', 'Aria2 has been shutdown successfully.': 'Aria2 has been shutdown successfully.', 'Toggle Navigation': 'Toggle Navigation', 'Shortcut': 'Shortcut', 'Global Rate Limit': 'Global Rate Limit', 'Loading': 'Loading...', 'More Than One Day': 'More than 1 day', 'Unknown': 'Unknown', 'Bytes': 'Bytes', 'Hours': 'Hours', 'Minutes': 'Minutes', 'Seconds': 'Seconds', 'Milliseconds': 'Milliseconds', 'Http': 'Http', 'Http (Disabled)': 'Http (Disabled)', 'Https': 'Https', 'WebSocket': 'WebSocket', 'WebSocket (Disabled)': 'WebSocket (Disabled)', 'WebSocket (Security)': 'WebSocket (Security)', 'Http and WebSocket would be disabled when accessing AriaNg via Https.': 'Http and WebSocket would be disabled when accessing AriaNg via Https.', 'POST': 'POST', 'GET': 'GET', 'Enabled': 'Enabled', 'Disabled': 'Disabled', 'Always': 'Always', 'Never': 'Never', 'BitTorrent': 'BitTorrent', 'Changes to the settings take effect after refreshing page.': 'Changes to the settings take effect after refreshing page.', 'Logging Time': 'Logging Time', 'Log Level': 'Log Level', 'Auto Refresh': 'Auto Refresh', 'Refresh Now': 'Refresh Now', 'Clear Logs': 'Clear Logs', 'Are you sure you want to clear debug logs?': 'Are you sure you want to clear debug logs?', 'Show Detail': 'Show Detail', 'Log Detail': 'Log Detail', 'Aria2 RPC Debug': 'Aria2 RPC Debug', 'Aria2 RPC Request Method': 'Aria2 RPC Request Method', 'Aria2 RPC Request Parameters': 'Aria2 RPC Request Parameters', 'Aria2 RPC Response': 'Aria2 RPC Response', 'Execute': 'Execute', 'RPC method is illegal!': 'RPC method is illegal!', 'AriaNg does not support this RPC method!': 'AriaNg does not support this RPC method!', 'RPC request parameters are invalid!': 'RPC request parameters are invalid!', 'Type is illegal!': 'Type is illegal!', 'Parameter is invalid!': 'Parameter is invalid!', 'Option value cannot be empty!': 'Option value cannot be empty!', 'Input number is invalid!': 'Input number is invalid!', 'Input number is below min value!': 'Input number is below min value {{value}}!', 'Input number is above max value!': 'Input number is above max value {{value}}!', 'Input value is invalid!': 'Input value is invalid!', 'Protocol is invalid!': 'Protocol is invalid!', 'RPC host cannot be empty!': 'RPC host cannot be empty!', 'RPC secret is not base64 encoded!': 'RPC secret is not base64 encoded!', 'URL is not base64 encoded!': 'URL is not base64 encoded!', 'Tap to configure and get started with AriaNg.': 'Tap to configure and get started with AriaNg.', 'Cannot initialize WebSocket!': 'Cannot initialize WebSocket!', 'Cannot connect to aria2!': 'Cannot connect to aria2!', 'Access Denied!': 'Access Denied!', 'You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.': 'You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.', 'error': { 'unknown': 'Unknown error occurred.', 'operation.timeout': 'Operation timed out.', 'resource.notfound': 'Resource was not found.', 'resource.notfound.max-file-not-found': 'Resource was not found. See --max-file-not-found option.', 'download.aborted.lowest-speed-limit': 'Download is aborted because download speed was too slow. See --lowest-speed-limit option.', 'network.problem': 'Network problem occurred.', 'resume.notsupported': 'Remote server does not support resume.', 'space.notenough': 'There was not enough disk space available.', 'piece.length.different': 'Piece length was different from one in .aria2 control file. See --allow-piece-length-change option.', 'download.sametime': 'aria2 was downloading same file at that moment.', 'download.torrent.sametime': 'aria2 was downloading same file at that moment.', 'file.exists': 'File already existed. See --allow-overwrite option.', 'file.rename.failed': 'Failed to rename file. See --auto-file-renaming option.', 'file.open.failed': 'Failed to open existing file.', 'file.create.failed': 'Failed to create new file or truncate existing file.', 'io.error': 'Filesystem error occurred.', 'directory.create.failed': 'Failed to create directory.', 'name.resolution.failed': 'Failed to resolve domain name.', 'metalink.file.parse.failed': 'Failed to parse Metalink document.', 'ftp.command.failed': 'FTP command failed.', 'http.response.header.bad': 'HTTP response header was bad or unexpected.', 'redirects.toomany': 'Too many redirects occurred.', 'http.authorization.failed': 'HTTP authorization failed.', 'bencoded.file.parse.failed': 'Failed to parse bencoded file (usually ".torrent" file).', 'torrent.file.corrupted': 'The ".torrent" file was corrupted or missing information that aria2 needed.', 'magnet.uri.bad': 'Magnet URI was bad.', 'option.bad': 'Bad/unrecognized option was given or unexpected option argument was given.', 'server.overload': 'The remote server was unable to handle the request due to a temporary overloading or maintenance.', 'rpc.request.parse.failed': 'Failed to parse JSON-RPC request.', 'checksum.failed': 'Checksum validation failed.' }, 'languages': { 'Czech': 'Czech', 'German': 'German', 'English': 'English', 'Spanish': 'Spanish', 'French': 'French', 'Italian': 'Italian', 'Polish': 'Polish', 'Russian': 'Russian', 'Simplified Chinese': 'Simplified Chinese', 'Traditional Chinese': 'Traditional Chinese' }, 'format': { 'longdate': 'MM/DD/YYYY HH:mm:ss', 'time.millisecond': '{{value}} Millisecond', 'time.milliseconds': '{{value}} Milliseconds', 'time.second': '{{value}} Second', 'time.seconds': '{{value}} Seconds', 'time.minute': '{{value}} Minute', 'time.minutes': '{{value}} Minutes', 'time.hour': '{{value}} Hour', 'time.hours': '{{value}} Hours', 'requires.aria2-version': 'Requires aria2 v{{version}} or higher', 'task.new.download-links': 'Download Links ({{count}} Links):', 'task.pieceinfo': 'Completed: {{completed}}, Total: {{total}}', 'task.error-occurred': 'Error Occurred ({{errorcode}})', 'task.verifying-percent': 'Verifying ({{verifiedPercent}}%)', 'settings.file-count': '({{count}} Files)', 'settings.total-count': '(Total Count: {{count}})', 'debug.latest-logs': 'Latest {{count}} Logs' }, 'rpc': { 'error': { 'unauthorized': 'Authorization Failed!' } }, 'option': { 'true': 'True', 'false': 'False', 'default': 'Default', 'none': 'None', 'hide': 'Hide', 'full': 'Full', 'http': 'Http', 'https': 'Https', 'ftp': 'Ftp', 'mem': 'Memory Only', 'get': 'GET', 'tunnel': 'TUNNEL', 'plain': 'Plain', 'arc4': 'ARC4', 'binary': 'Binary', 'ascii': 'ASCII', 'debug': 'Debug', 'info': 'Info', 'notice': 'Notice', 'warn': 'Warn', 'error': 'Error', 'adaptive': 'adaptive', 'epoll': 'epoll', 'falloc': 'falloc', 'feedback': 'feedback', 'geom': 'geom', 'inorder': 'inorder', 'kqueue': 'kqueue', 'poll': 'poll', 'port': 'port', 'prealloc': 'prealloc', 'random': 'random', 'select': 'select', 'trunc': 'trunc', 'SSLv3': 'SSLv3', 'TLSv1': 'TLSv1', 'TLSv1.1': 'TLSv1.1', 'TLSv1.2': 'TLSv1.2' }, 'options': { 'dir.name': 'Download Path', 'dir.description': '', 'log.name': 'Log File', 'log.description': 'The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, or this option is omitted, no log is written to disk at all.', 'max-concurrent-downloads.name': 'Max Concurrent Downloads', 'max-concurrent-downloads.description': '', 'check-integrity.name': 'Check Integrity', 'check-integrity.description': 'Check file integrity by validating piece hashes or a hash of entire file. This option has effect only in BitTorrent, Metalink downloads with checksums or HTTP(S)/FTP downloads with --checksum option.', 'continue.name': 'Resume Download', 'continue.description': 'Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.', 'all-proxy.name': 'Proxy Server', 'all-proxy.description': 'Use a proxy server for all protocols. You also can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy This affects all downloads. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT].', 'all-proxy-user.name': 'Proxy User Name', 'all-proxy-user.description': '', 'all-proxy-passwd.name': 'Proxy Password', 'all-proxy-passwd.description': '', 'checksum.name': 'Checksum', 'checksum.description': 'Set checksum. The option value format is TYPE=DIGEST. TYPE is hash type. The supported hash type is listed in Hash Algorithms in aria2c -v. DIGEST is hex digest. For example, setting sha-1 digest looks like this: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 This option applies only to HTTP(S)/FTP downloads.', 'connect-timeout.name': 'Connect Timeout', 'connect-timeout.description': 'Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead.', 'dry-run.name': 'Dry Run', 'dry-run.description': 'If true is given, aria2 just checks whether the remote file is available and doesn\'t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified.', 'lowest-speed-limit.name': 'Lowest Speed Limit', 'lowest-speed-limit.description': 'Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M (1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads.', 'max-connection-per-server.name': 'Max Connection Per Server', 'max-connection-per-server.description': '', 'max-file-not-found.name': 'Max File Not Found Try Times', 'max-file-not-found.description': 'If aria2 receives "file not found" status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. The number of retry attempt is counted toward --max-tries, so it should be configured too.', 'max-tries.name': 'Max Try Times', 'max-tries.description': 'Set number of tries. 0 means unlimited.', 'min-split-size.name': 'Min Split Size', 'min-split-size.description': 'aria2 does not split less than 2*SIZE byte range. For example, let\'s consider downloading 20MiB file. If SIZE is 10M, aria2 can split file into 2 range [0-10MiB) and [10MiB-20MiB) and download it using 2 sources(if --split >= 2, of course). If SIZE is 15M, since 2*15M > 20MiB, aria2 does not split file and download it using 1 source. You can append K or M (1K = 1024, 1M = 1024K). Possible Values: 1M-1024M.', 'netrc-path.name': '.netrc Path', 'netrc-path.description': '', 'no-netrc.name': 'Disable netrc', 'no-netrc.description': '', 'no-proxy.name': 'No Proxy List', 'no-proxy.description': 'Specify a comma separated list of host names, domains and network addresses with or without a subnet mask where no proxy should be used.', 'out.name': 'File Name', 'out.description': 'The file name of the downloaded file. It is always relative to the directory given in --dir option. When the --force-sequential option is used, this option is ignored.', 'proxy-method.name': 'Proxy Method', 'proxy-method.description': 'Set the method to use in proxy request. METHOD is either GET or TUNNEL. HTTPS downloads always use TUNNEL regardless of this option.', 'remote-time.name': 'Remote File Timestamp', 'remote-time.description': 'Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file.', 'reuse-uri.name': 'Reuse Uri', 'reuse-uri.description': 'Reuse already used URIs if no unused URIs are left.', 'retry-wait.name': 'Retry Wait', 'retry-wait.description': 'Set the seconds to wait between retries. When SEC > 0, aria2 will retry downloads when the HTTP server returns a 503 response.', 'server-stat-of.name': 'Server Stat Output', 'server-stat-of.description': 'Specify the file name to which performance profile of the servers is saved. You can load saved data using --server-stat-if option.', 'server-stat-timeout.name': 'Server Stat Timeout', 'server-stat-timeout.description': 'Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them.', 'split.name': 'Split Count', 'split.description': 'Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by the --max-connection-per-server option.', 'stream-piece-selector.name': 'Piece Selection Algorithm', 'stream-piece-selector.description': 'Specify piece selection algorithm used in HTTP/FTP download. Piece means fixed length segment which is downloaded in parallel in segmented download. If default is given, aria2 selects piece so that it reduces the number of establishing connection. This is reasonable default behavior because establishing connection is an expensive operation. If inorder is given, aria2 selects piece which has minimum index. Index=0 means first of the file. This will be useful to view movie while downloading it. --enable-http-pipelining option may be useful to reduce re-connection overhead. Please note that aria2 honors --min-split-size option, so it will be necessary to specify a reasonable value to --min-split-size option. If random is given, aria2 selects piece randomly. Like inorder, --min-split-size option is honored. If geom is given, at the beginning aria2 selects piece which has minimum index like inorder, but it exponentially increasingly keeps space from previously selected piece. This will reduce the number of establishing connection and at the same time it will download the beginning part of the file first. This will be useful to view movie while downloading it.', 'timeout.name': 'Timeout', 'timeout.description': '', 'uri-selector.name': 'URI Selection Algorithm', 'uri-selector.description': 'Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn\'t select anymore mirrors. Like feedback, it uses a performance profile of servers.', 'check-certificate.name': 'Check Certificate', 'check-certificate.description': '', 'http-accept-gzip.name': 'Accept GZip', 'http-accept-gzip.description': 'Send Accept: deflate, gzip request header and inflate response if remote server responds with Content-Encoding: gzip or Content-Encoding: deflate.', 'http-auth-challenge.name': 'Auth Challenge', 'http-auth-challenge.description': 'Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if user name and password are embedded in URI, authorization header is always sent to the server regardless of this option.', 'http-no-cache.name': 'No Cache', 'http-no-cache.description': 'Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option.', 'http-user.name': 'HTTP Default User Name', 'http-user.description': '', 'http-passwd.name': 'HTTP Default Password', 'http-passwd.description': '', 'http-proxy.name': 'HTTP Proxy Server', 'http-proxy.description': '', 'http-proxy-user.name': 'HTTP Proxy User Name', 'http-proxy-user.description': '', 'http-proxy-passwd.name': 'HTTP Proxy Password', 'http-proxy-passwd.description': '', 'https-proxy.name': 'HTTPS Proxy Server', 'https-proxy.description': '', 'https-proxy-user.name': 'HTTPS Proxy User Name', 'https-proxy-user.description': '', 'https-proxy-passwd.name': 'HTTPS Proxy Password', 'https-proxy-passwd.description': '', 'referer.name': 'Referer', 'referer.description': 'Set an http referrer (Referer). This affects all http/https downloads. If * is given, the download URI is also used as the referrer. This may be useful when used together with the --parameterized-uri option.', 'enable-http-keep-alive.name': 'Enable Persistent Connection', 'enable-http-keep-alive.description': 'Enable HTTP/1.1 persistent connection.', 'enable-http-pipelining.name': 'Enable HTTP Pipelining', 'enable-http-pipelining.description': 'Enable HTTP/1.1 pipelining.', 'header.name': 'Custom Header', 'header.description': 'Append HEADER to HTTP request header. Put one item per line, each item containing "header name: header value".', 'save-cookies.name': 'Cookies Path', 'save-cookies.description': 'Save Cookies to FILE in Mozilla/Firefox(1.x/2.x)/ Netscape format. If FILE already exists, it is overwritten. Session Cookies are also saved and their expiry values are treated as 0.', 'use-head.name': 'Use HEAD Method', 'use-head.description': 'Use HEAD method for the first request to the HTTP server.', 'user-agent.name': 'Custom User Agent', 'user-agent.description': '', 'ftp-user.name': 'FTP Default User Name', 'ftp-user.description': '', 'ftp-passwd.name': 'FTP Default Password', 'ftp-passwd.description': 'If user name is embedded but password is missing in URI, aria2 tries to resolve password using .netrc. If password is found in .netrc, then use it as password. If not, use the password specified in this option.', 'ftp-pasv.name': 'Passive Mode', 'ftp-pasv.description': 'Use the passive mode in FTP. If false is given, the active mode will be used. This option is ignored for SFTP transfer.', 'ftp-proxy.name': 'FTP Proxy Server', 'ftp-proxy.description': '', 'ftp-proxy-user.name': 'FTP Proxy User Name', 'ftp-proxy-user.description': '', 'ftp-proxy-passwd.name': 'FTP Proxy Password', 'ftp-proxy-passwd.description': '', 'ftp-type.name': 'Transfer Type', 'ftp-type.description': '', 'ftp-reuse-connection.name': 'Reuse Connection', 'ftp-reuse-connection.description': '', 'ssh-host-key-md.name': 'SSH Public Key Checksum', 'ssh-host-key-md.description': 'Set checksum for SSH host public key. The option value format is TYPE=DIGEST. TYPE is hash type. The supported hash type is sha-1 or md5. DIGEST is hex digest. For example: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. This option can be used to validate server\'s public key when SFTP is used. If this option is not set, which is default, no validation takes place.', 'bt-detach-seed-only.name': 'Detach Seed Only', 'bt-detach-seed-only.description': 'Exclude seed only downloads when counting concurrent active downloads (See -j option). This means that if -j3 is given and this option is turned on and 3 downloads are active and one of those enters seed mode, then it is excluded from active download count (thus it becomes 2), and the next download waiting in queue gets started. But be aware that seeding item is still recognized as active download in RPC method.', 'bt-enable-hook-after-hash-check.name': 'Enable Hook After Hash Check', 'bt-enable-hook-after-hash-check.description': 'Allow hook command invocation after hash check (see -V option) in BitTorrent download. By default, when hash check succeeds, the command given by --on-bt-download-complete is executed. To disable this action, give false to this option.', 'bt-enable-lpd.name': 'Enable Local Peer Discovery (LPD)', 'bt-enable-lpd.description': 'Enable Local Peer Discovery. If a private flag is set in a torrent, aria2 doesn\'t use this feature for that download even if true is given.', 'bt-exclude-tracker.name': 'BitTorrent Exclude Trackers', 'bt-exclude-tracker.description': 'Comma separated list of BitTorrent tracker\'s announce URI to remove. You can use special value * which matches all URIs, thus removes all announce URIs. When specifying * in shell command-line, don\'t forget to escape or quote it.', 'bt-external-ip.name': 'External IP', 'bt-external-ip.description': 'Specify the external IP address to use in BitTorrent download and DHT. It may be sent to BitTorrent tracker. For DHT, this option should be set to report that local node is downloading a particular torrent. This is critical to use DHT in a private network. Although this function is named external, it can accept any kind of IP addresses.', 'bt-force-encryption.name': 'Force Encryption', 'bt-force-encryption.description': 'Requires BitTorrent message payload encryption with arc4. This is a shorthand of --bt-require-crypto --bt-min-crypto-level=arc4. This option does not change the option value of those options. If true is given, deny legacy BitTorrent handshake and only use Obfuscation handshake and always encrypt message payload.', 'bt-hash-check-seed.name': 'Hash Check Before Seeding', 'bt-hash-check-seed.description': 'If true is given, after hash check using --check-integrity option and file is complete, continue to seed file. If you want to check file and download it only when it is damaged or incomplete, set this option to false. This option has effect only on BitTorrent download.', 'bt-load-saved-metadata.name': 'Load Saved Metadata File', 'bt-load-saved-metadata.description': 'Before getting torrent metadata from DHT when downloading with magnet link, first try to read file saved by --bt-save-metadata option. If it is successful, then skip downloading metadata from DHT.', 'bt-max-open-files.name': 'Max Open Files', 'bt-max-open-files.description': 'Specify maximum number of files to open in multi-file BitTorrent/Metalink download globally.', 'bt-max-peers.name': 'Max Peers', 'bt-max-peers.description': 'Specify the maximum number of peers per torrent. 0 means unlimited.', 'bt-metadata-only.name': 'Download Metadata Only', 'bt-metadata-only.description': 'Download meta data only. The file(s) described in meta data will not be downloaded. This option has effect only when BitTorrent Magnet URI is used.', 'bt-min-crypto-level.name': 'Min Crypto Level', 'bt-min-crypto-level.description': 'Set minimum level of encryption method. If several encryption methods are provided by a peer, aria2 chooses the lowest one which satisfies the given level.', 'bt-prioritize-piece.name': 'Prioritize Piece', 'bt-prioritize-piece.description': 'Try to download first and last pieces of each file first. This is useful for previewing files. The argument can contain 2 keywords: head and tail. To include both keywords, they must be separated by comma. These keywords can take one parameter, SIZE. For example, if head=SIZE is specified, pieces in the range of first SIZE bytes of each file get higher priority. tail=SIZE means the range of last SIZE bytes of each file. SIZE can include K or M (1K = 1024, 1M = 1024K).', 'bt-remove-unselected-file.name': 'Remove Unselected File', 'bt-remove-unselected-file.description': 'Removes the unselected files when download is completed in BitTorrent. To select files, use --select-file option. If it is not used, all files are assumed to be selected. Please use this option with care because it will actually remove files from your disk.', 'bt-require-crypto.name': 'Require Crypto', 'bt-require-crypto.description': 'If true is given, aria2 doesn\'t accept and establish connection with legacy BitTorrent handshake(\\19BitTorrent protocol). Thus aria2 always uses Obfuscation handshake.', 'bt-request-peer-speed-limit.name': 'Preferred Download Speed', 'bt-request-peer-speed-limit.description': 'If the whole download speed of every torrent is lower than SPEED, aria2 temporarily increases the number of peers to try for more download speed. Configuring this option with your preferred download speed can increase your download speed in some cases. You can append K or M (1K = 1024, 1M = 1024K).', 'bt-save-metadata.name': 'Save Metadata', 'bt-save-metadata.description': 'Save meta data as ".torrent" file. This option has effect only when BitTorrent Magnet URI is used. The file name is hex encoded info hash with suffix ".torrent". The directory to be saved is the same directory where download file is saved. If the same file already exists, meta data is not saved.', 'bt-seed-unverified.name': 'Not Verify Downloaded Fileds', 'bt-seed-unverified.description': 'Seed previously downloaded files without verifying piece hashes.', 'bt-stop-timeout.name': 'Stop Timeout', 'bt-stop-timeout.description': 'Stop BitTorrent download if download speed is 0 in consecutive SEC seconds. If 0 is given, this feature is disabled.', 'bt-tracker.name': 'BitTorrent Trackers', 'bt-tracker.description': 'Comma separated list of additional BitTorrent tracker\'s announce URI. These URIs are not affected by --bt-exclude-tracker option because they are added after URIs in --bt-exclude-tracker option are removed.', 'bt-tracker-connect-timeout.name': 'BitTorrent Tracker Connect Timeout', 'bt-tracker-connect-timeout.description': 'Set the connect timeout in seconds to establish connection to tracker. After the connection is established, this option makes no effect and --bt-tracker-timeout option is used instead.', 'bt-tracker-interval.name': 'BitTorrent Tracker Connect Interval', 'bt-tracker-interval.description': 'Set the interval in seconds between tracker requests. This completely overrides interval value and aria2 just uses this value and ignores the min interval and interval value in the response of tracker. If 0 is set, aria2 determines interval based on the response of tracker and the download progress.', 'bt-tracker-timeout.name': 'BitTorrent Tracker Timeout', 'bt-tracker-timeout.description': '', 'dht-file-path.name': 'DHT (IPv4) File', 'dht-file-path.description': 'Change the IPv4 DHT routing table file to PATH.', 'dht-file-path6.name': 'DHT (IPv6) File', 'dht-file-path6.description': 'Change the IPv6 DHT routing table file to PATH.', 'dht-listen-port.name': 'DHT Listen Port', 'dht-listen-port.description': 'Set UDP listening port used by DHT(IPv4, IPv6) and UDP tracker. Multiple ports can be specified by using "," for example: 6881,6885. You can also use - to specify a range: 6881-6999. , and - can be used together.', 'dht-message-timeout.name': 'DHT Message Timeout', 'dht-message-timeout.description': '', 'enable-dht.name': 'Enable DHT (IPv4)', 'enable-dht.description': 'Enable IPv4 DHT functionality. It also enables UDP tracker support. If a private flag is set in a torrent, aria2 doesn\'t use DHT for that download even if true is given.', 'enable-dht6.name': 'Enable DHT (IPv6)', 'enable-dht6.description': 'Enable IPv6 DHT functionality. If a private flag is set in a torrent, aria2 doesn\'t use DHT for that download even if true is given. Use --dht-listen-port option to specify port number to listen on.', 'enable-peer-exchange.name': 'Enable Peer Exchange', 'enable-peer-exchange.description': 'Enable Peer Exchange extension. If a private flag is set in a torrent, this feature is disabled for that download even if true is given.', 'follow-torrent.name': 'Follow Torrent', 'follow-torrent.description': 'If true or mem is specified, when a file whose suffix is .torrent or content type is application/x-bittorrent is downloaded, aria2 parses it as a torrent file and downloads files mentioned in it. If mem is specified, a torrent file is not written to the disk, but is just kept in memory. If false is specified, the .torrent file is downloaded to the disk, but is not parsed as a torrent and its contents are not downloaded.', 'listen-port.name': 'Listen Port', 'listen-port.description': 'Set TCP port number for BitTorrent downloads. Multiple ports can be specified by using "," for example: 6881,6885. You can also use - to specify a range: 6881-6999. , and - can be used together: 6881-6889,6999.', 'max-overall-upload-limit.name': 'Global Max Upload Limit', 'max-overall-upload-limit.description': 'Set max overall upload speed in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K).', 'max-upload-limit.name': 'Max Upload Limit', 'max-upload-limit.description': 'Set max upload speed per each torrent in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K).', 'peer-id-prefix.name': 'Peer ID Prefix', 'peer-id-prefix.description': 'Specify the prefix of peer ID. The peer ID in BitTorrent is 20 byte length. If more than 20 bytes are specified, only first 20 bytes are used. If less than 20 bytes are specified, random byte data are added to make its length 20 bytes.', 'peer-agent.name': 'Peer Agent', 'peer-agent.description': 'Specify the string used during the bitorrent extended handshake for the peer’s client version.', 'seed-ratio.name': 'Min Share Ratio', 'seed-ratio.description': 'Specify share ratio. Seed completed torrents until share ratio reaches RATIO. You are strongly encouraged to specify equals or more than 1.0 here. Specify 0.0 if you intend to do seeding regardless of share ratio. If --seed-time option is specified along with this option, seeding ends when at least one of the conditions is satisfied.', 'seed-time.name': 'Min Seed Time', 'seed-time.description': 'Specify seeding time in (fractional) minutes. Specifying --seed-time=0 disables seeding after download completed.', 'follow-metalink.name': 'Follow Metalink', 'follow-metalink.description': 'If true or mem is specified, when a file whose suffix is .meta4 or .metalink or content type of application/metalink4+xml or application/metalink+xml is downloaded, aria2 parses it as a metalink file and downloads files mentioned in it. If mem is specified, a metalink file is not written to the disk, but is just kept in memory. If false is specified, the .metalink file is downloaded to the disk, but is not parsed as a metalink file and its contents are not downloaded.', 'metalink-base-uri.name': 'Base URI', 'metalink-base-uri.description': 'Specify base URI to resolve relative URI in metalink:url and metalink:metaurl element in a metalink file stored in local disk. If URI points to a directory, URI must end with /.', 'metalink-language.name': 'Language', 'metalink-language.description': '', 'metalink-location.name': 'Preferred Server Location', 'metalink-location.description': 'The location of the preferred server. A comma-delimited list of locations is acceptable, for example, jp,us.', 'metalink-os.name': 'Operation System', 'metalink-os.description': 'The operating system of the file to download.', 'metalink-version.name': 'Version', 'metalink-version.description': 'The version of the file to download.', 'metalink-preferred-protocol.name': 'Preferred Protocol', 'metalink-preferred-protocol.description': 'Specify preferred protocol. The possible values are http, https, ftp and none. Specify none to disable this feature.', 'metalink-enable-unique-protocol.name': 'Enable Unique Protocol', 'metalink-enable-unique-protocol.description': 'If true is given and several protocols are available for a mirror in a metalink file, aria2 uses one of them. Use --metalink-preferred-protocol option to specify the preference of protocol.', 'enable-rpc.name': 'Enable JSON-RPC/XML-RPC Server', 'enable-rpc.description': '', 'pause-metadata.name': 'Pause After Metadata Downloaded', 'pause-metadata.description': 'Pause downloads created as a result of metadata download. There are 3 types of metadata downloads in aria2: (1) downloading .torrent file. (2) downloading torrent metadata using magnet link. (3) downloading metalink file. These metadata downloads will generate downloads using their metadata. This option pauses these subsequent downloads. This option is effective only when --enable-rpc=true is given.', 'rpc-allow-origin-all.name': 'Allow All Origin Request', 'rpc-allow-origin-all.description': 'Add Access-Control-Allow-Origin header field with value * to the RPC response.', 'rpc-listen-all.name': 'Listen on All Network Interfaces', 'rpc-listen-all.description': 'Listen incoming JSON-RPC/XML-RPC requests on all network interfaces. If false is given, listen only on local loopback interface.', 'rpc-listen-port.name': 'Listen Port', 'rpc-listen-port.description': '', 'rpc-max-request-size.name': 'Max Request Size', 'rpc-max-request-size.description': 'Set max size of JSON-RPC/XML-RPC request. If aria2 detects the request is more than SIZE bytes, it drops connection.', 'rpc-save-upload-metadata.name': 'Save Upload Metadata', 'rpc-save-upload-metadata.description': 'Save the uploaded torrent or metalink meta data in the directory specified by --dir option. The file name consists of SHA-1 hash hex string of meta data plus extension. For torrent, the extension is \'.torrent\'. For metalink, it is \'.meta4\'. If false is given to this option, the downloads added by aria2.addTorrent() or aria2.addMetalink() will not be saved by --save-session option.', 'rpc-secure.name': 'Enable SSL/TLS', 'rpc-secure.description': 'RPC transport will be encrypted by SSL/TLS. The RPC clients must use https scheme to access the server. For WebSocket client, use wss scheme. Use --rpc-certificate and --rpc-private-key options to specify the server certificate and private key.', 'allow-overwrite.name': 'Allow Overwrite', 'allow-overwrite.description': 'Restart download from scratch if the corresponding control file doesn\'t exist. See also --auto-file-renaming option.', 'allow-piece-length-change.name': 'Allow Piece Length Change', 'allow-piece-length-change.description': 'If false is given, aria2 aborts download when a piece length is different from one in a control file. If true is given, you can proceed but some download progress will be lost.', 'always-resume.name': 'Always Resume Download', 'always-resume.description': 'Always resume download. If true is given, aria2 always tries to resume download and if resume is not possible, aborts download. If false is given, when all given URIs do not support resume or aria2 encounters N URIs which does not support resume (N is the value specified using --max-resume-failure-tries option), aria2 downloads file from scratch. See --max-resume-failure-tries option.', 'async-dns.name': 'Asynchronous DNS', 'async-dns.description': '', 'auto-file-renaming.name': 'Auto File Renaming', 'auto-file-renaming.description': 'Rename file name if the same file already exists. This option works only in HTTP(S)/FTP download. The new file name has a dot and a number(1..9999) appended after the name, but before the file extension, if any.', 'auto-save-interval.name': 'Auto Save Interval', 'auto-save-interval.description': 'Save a control file(*.aria2) every SEC seconds. If 0 is given, a control file is not saved during download. aria2 saves a control file when it stops regardless of the value. The possible values are between 0 to 600.', 'conditional-get.name': 'Conditional Download', 'conditional-get.description': 'Download file only when the local file is older than remote file. This function only works with HTTP(S) downloads only. It does not work if file size is specified in Metalink. It also ignores Content-Disposition header. If a control file exists, this option will be ignored. This function uses If-Modified-Since header to get only newer file conditionally. When getting modification time of local file, it uses user supplied file name (see --out option) or file name part in URI if --out is not specified. To overwrite existing file, --allow-overwrite is required.', 'conf-path.name': 'Configuration File', 'conf-path.description': '', 'console-log-level.name': 'Console Log Level', 'console-log-level.description': '', 'content-disposition-default-utf8.name': 'Use UTF-8 to Handle Content-Disposition', 'content-disposition-default-utf8.description': 'Handle quoted string in Content-Disposition header as UTF-8 instead of ISO-8859-1, for example, the filename parameter, but not the extended version filename.', 'daemon.name': 'Enable Daemon', 'daemon.description': '', 'deferred-input.name': 'Deferred Load', 'deferred-input.description': 'If true is given, aria2 does not read all URIs and options from file specified by --input-file option at startup, but it reads one by one when it needs later. This may reduce memory usage if input file contains a lot of URIs to download. If false is given, aria2 reads all URIs and options at startup. --deferred-input option will be disabled when --save-session is used together.', 'disable-ipv6.name': 'Disable IPv6', 'disable-ipv6.description': '', 'disk-cache.name': 'Disk Cache', 'disk-cache.description': 'Enable disk cache. If SIZE is 0, the disk cache is disabled. This feature caches the downloaded data in memory, which grows to at most SIZE bytes. The cache storage is created for aria2 instance and shared by all downloads. The one advantage of the disk cache is reduce the disk I/O because the data are written in larger unit and it is reordered by the offset of the file. If hash checking is involved and the data are cached in memory, we don\'t need to read them from the disk. SIZE can include K or M (1K = 1024, 1M = 1024K).', 'download-result.name': 'Download Result', 'download-result.description': 'This option changes the way Download Results is formatted. If OPT is default, print GID, status, average download speed and path/URI. If multiple files are involved, path/URI of first requested file is printed and remaining ones are omitted. If OPT is full, print GID, status, average download speed, percentage of progress and path/URI. The percentage of progress and path/URI are printed for each requested file in each row. If OPT is hide, Download Results is hidden.', 'dscp.name': 'DSCP', 'dscp.description': 'Set DSCP value in outgoing IP packets of BitTorrent traffic for QoS. This parameter sets only DSCP bits in TOS field of IP packets, not the whole field. If you take values from /usr/include/netinet/ip.h divide them by 4 (otherwise values would be incorrect, e.g. your CS1 class would turn into CS4). If you take commonly used values from RFC, network vendors\' documentation, Wikipedia or any other source, use them as they are.', 'rlimit-nofile.name': 'Soft Limit of Open File Descriptors', 'rlimit-nofile.description': 'Set the soft limit of open file descriptors. This open will only have effect when: a. The system supports it (posix). b. The limit does not exceed the hard limit. c. The specified limit is larger than the current soft limit. This is equivalent to setting nofile via ulimit, except that it will never decrease the limit. This option is only available on systems supporting the rlimit API.', 'enable-color.name': 'Enable Color in Terminal', 'enable-color.description': '', 'enable-mmap.name': 'Enable MMap', 'enable-mmap.description': 'Map files into memory. This option may not work if the file space is not pre-allocated. See --file-allocation.', 'event-poll.name': 'Event Polling Method', 'event-poll.description': 'Specify the method for polling events. The possible values are epoll, kqueue, port, poll and select. For each epoll, kqueue, port and poll, it is available if system supports it. epoll is available on recent Linux. kqueue is available on various *BSD systems including Mac OS X. port is available on Open Solaris. The default value may vary depending on the system you use.', 'file-allocation.name': 'File Allocation Method', 'file-allocation.description': 'Specify file allocation method. none doesn\'t pre-allocate file space. prealloc pre-allocates file space before download begins. This may take some time depending on the size of the file. If you are using newer file systems such as ext4 (with extents support), btrfs, xfs or NTFS(MinGW build only), falloc is your best choice. It allocates large(few GiB) files almost instantly. Don\'t use falloc with legacy file systems such as ext3 and FAT32 because it takes almost same time as prealloc and it blocks aria2 entirely until allocation finishes. falloc may not be available if your system doesn\'t have posix_fallocate(3) function. trunc uses ftruncate(2) system call or platform-specific counterpart to truncate a file to a specified length. In multi file torrent downloads, the files adjacent forward to the specified files are also allocated if they share the same piece.', 'force-save.name': 'Force Save', 'force-save.description': 'Save download with --save-session option even if the download is completed or removed. This option also saves control file in that situations. This may be useful to save BitTorrent seeding which is recognized as completed state.', 'save-not-found.name': 'Save Not Found File', 'save-not-found.description': 'Save download with --save-session option even if the file was not found on the server. This option also saves control file in that situations.', 'hash-check-only.name': 'Hash Check Only', 'hash-check-only.description': 'If true is given, after hash check using --check-integrity option, abort download whether or not download is complete.', 'human-readable.name': 'Console Human Readable Output', 'human-readable.description': 'Print sizes and speed in human readable format (e.g., 1.2Ki, 3.4Mi) in the console readout.', 'keep-unfinished-download-result.name': 'Keep Unfinished Download Result', 'keep-unfinished-download-result.description': 'Keep unfinished download results even if doing so exceeds --max-download-result. This is useful if all unfinished downloads must be saved in session file (see --save-session option). Please keep in mind that there is no upper bound to the number of unfinished download result to keep. If that is undesirable, turn this option off.', 'max-download-result.name': 'Max Download Result', 'max-download-result.description': 'Set maximum number of download result kept in memory. The download results are completed/error/removed downloads. The download results are stored in FIFO queue and it can store at most NUM download results. When queue is full and new download result is created, oldest download result is removed from the front of the queue and new one is pushed to the back. Setting big number in this option may result high memory consumption after thousands of downloads. Specifying 0 means no download result is kept. Note that unfinished downloads are kept in memory regardless of this option value. See --keep-unfinished-download-result option.', 'max-mmap-limit.name': 'Max MMap Limit', 'max-mmap-limit.description': 'Set the maximum file size to enable mmap (see --enable-mmap option). The file size is determined by the sum of all files contained in one download. For example, if a download contains 5 files, then file size is the total size of those files. If file size is strictly greater than the size specified in this option, mmap will be disabled.', 'max-resume-failure-tries.name': 'Max Resume Failure Try Times', 'max-resume-failure-tries.description': 'When used with --always-resume=false, aria2 downloads file from scratch when aria2 detects N number of URIs that does not support resume. If N is 0, aria2 downloads file from scratch when all given URIs do not support resume. See --always-resume option.', 'min-tls-version.name': 'Min TLS Version', 'min-tls-version.description': 'Specify minimum SSL/TLS version to enable.', 'log-level.name': 'Log Level', 'log-level.description': '', 'optimize-concurrent-downloads.name': 'Optimize Concurrent Downloads', 'optimize-concurrent-downloads.description': 'Optimizes the number of concurrent downloads according to the bandwidth available. aria2 uses the download speed observed in the previous downloads to adapt the number of downloads launched in parallel according to the rule N = A + B Log10(speed in Mbps). The coefficients A and B can be customized in the option arguments with A and B separated by a colon. The default values (A=5, B=25) lead to using typically 5 parallel downloads on 1Mbps networks and above 50 on 100Mbps networks. The number of parallel downloads remains constrained under the maximum defined by the --max-concurrent-downloads parameter.', 'piece-length.name': 'Piece Length', 'piece-length.description': 'Set a piece length for HTTP/FTP downloads. This is the boundary when aria2 splits a file. All splits occur at multiple of this length. This option will be ignored in BitTorrent downloads. It will be also ignored if Metalink file contains piece hashes.', 'show-console-readout.name': 'Show Console Output', 'show-console-readout.description': '', 'summary-interval.name': 'Download Summary Output Interval', 'summary-interval.description': 'Set interval in seconds to output download progress summary. Setting 0 suppresses the output.', 'max-overall-download-limit.name': 'Global Max Download Limit', 'max-overall-download-limit.description': 'Set max overall download speed in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K).', 'max-download-limit.name': 'Max Download Limit', 'max-download-limit.description': 'Set max download speed per each download in bytes/sec. 0 means unrestricted. You can append K or M (1K = 1024, 1M = 1024K).', 'no-conf.name': 'Disable Configuration File', 'no-conf.description': '', 'no-file-allocation-limit.name': 'No File Allocation Limit', 'no-file-allocation-limit.description': 'No file allocation is made for files whose size is smaller than SIZE. You can append K or M (1K = 1024, 1M = 1024K).', 'parameterized-uri.name': 'Enable Parameterized URI', 'parameterized-uri.description': 'Enable parameterized URI support. You can specify set of parts: http://{sv1,sv2,sv3}/foo.iso. Also you can specify numeric sequences with step counter: http://host/image[000-100:2].img. A step counter can be omitted. If all URIs do not point to the same file, such as the second example above, -Z option is required.', 'quiet.name': 'Disable Console Output', 'quiet.description': '', 'realtime-chunk-checksum.name': 'Realtime Data Chunk Validation', 'realtime-chunk-checksum.description': 'Validate chunk of data by calculating checksum while downloading a file if chunk checksums are provided.', 'remove-control-file.name': 'Remove Control File', 'remove-control-file.description': 'Remove control file before download. Using with --allow-overwrite=true, download always starts from scratch. This will be useful for users behind proxy server which disables resume.', 'save-session.name': 'Session Save File', 'save-session.description': 'Save error/unfinished downloads to FILE on exit. You can pass this output file to aria2c with --input-file option on restart. If you like the output to be gzipped append a .gz extension to the file name. Please note that downloads added by aria2.addTorrent() and aria2.addMetalink() RPC method and whose meta data could not be saved as a file are not saved. Downloads removed using aria2.remove() and aria2.forceRemove() will not be saved.', 'save-session-interval.name': 'Save Session Interval', 'save-session-interval.description': 'Save error/unfinished downloads to a file specified by --save-session option every SEC seconds. If 0 is given, file will be saved only when aria2 exits.', 'socket-recv-buffer-size.name': 'Socket Receive Buffer Size', 'socket-recv-buffer-size.description': 'Set the maximum socket receive buffer in bytes. Specifing 0 will disable this option. This value will be set to socket file descriptor using SO_RCVBUF socket option with setsockopt() call.', 'stop.name': 'Auto Shutdown Time', 'stop.description': 'Stop application after SEC seconds has passed. If 0 is given, this feature is disabled.', 'truncate-console-readout.name': 'Truncate Console Output', 'truncate-console-readout.description': 'Truncate console readout to fit in a single line.' } }; $translateProvider.translations(ariaNgConstants.defaultLanguage, defaultLanguageResource); }]); }()); ================================================ FILE: src/scripts/config/fileTypes.js ================================================ (function () { 'use strict'; angular.module('ariaNg').constant('ariaNgFileTypes', { video: { name: 'Videos', extensions: [ '.3g2', '.3gp', '.3gp2', '.3gpp', '.asf', '.asx', '.avi', '.dat', '.divx', '.flv', '.m1v', '.m2ts', '.m2v', '.m4v', '.mkv', '.mov', '.mp4', '.mpe', '.mpeg', '.mpg', '.mts', '.ogv', '.qt', '.ram', '.rm', '.rmvb', '.ts', '.vob', '.wmv' ] }, audio: { name: 'Audios', extensions: [ '.aac', '.ac3', '.adts', '.amr', '.ape', '.eac3', '.flac', '.m1a', '.m2a', '.m4a', '.mid', '.mka', '.mp2', '.mp3', '.mpa', '.mpc', '.ogg', '.ra', '.tak', '.vqf', '.wm', '.wav', '.wma', '.wv' ] }, picture: { name: 'Pictures', extensions: [ '.abr', '.bmp', '.emf', '.gif', '.j2c', '.j2k', '.jfif', '.jif', '.jp2', '.jpc', '.jpe', '.jpeg', '.jpf', '.jpg', '.jpk', '.jpx', '.pcx', '.pct', '.pic', '.pict', '.png', '.pns', '.psd', '.psdx', '.raw', '.svg', '.svgz', '.tga', '.tif', '.tiff', '.wbm', '.wbmp', '.webp', '.wmf', '.xif' ] }, document: { name: 'Documents', extensions: [ '.csv', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.key', '.mpp', '.numbers', '.odp', '.ods', '.odt', '.pages', '.pdf', '.pot', '.potm', '.potx', '.pps', '.ppsm', '.ppsx', '.ppt', '.pptm', '.pptx', '.rtf', '.txt', '.vsd', '.vsdx', '.wk1', '.wk2', '.wk3', '.wk4', '.wks', '.wpd', '.wps', '.xla', '.xlam', '.xll', '.xlm', '.xls', '.xlsb', '.xlsm', '.xlsx', '.xlt', '.xltx', '.xlw', '.xps' ] }, application: { name: 'Applications', extensions: [ '.apk', '.bat', '.com', '.deb', '.dll', '.dmg', '.exe', '.ipa', '.jar', '.msi', '.rpm', '.sh' ] }, archive: { name: 'Archives', extensions: [ '.001', '.7z', '.ace', '.arj', '.bz2', '.cab', '.cbr', '.cbz', '.gz', '.img', '.iso', '.lzh', '.qcow2', '.r', '.rar', '.sef', '.tar', '.taz', '.tbz', '.tbz2', '.uue', '.vdi', '.vhd', '.vmdk', '.wim', '.xar', '.xz', '.z', '.zip' ] } }); }()); ================================================ FILE: src/scripts/config/initiator.js ================================================ (function () { 'use strict'; angular.module('ariaNg').run(['moment', 'ariaNgLocalizationService', 'ariaNgSettingService', function (moment, ariaNgLocalizationService, ariaNgSettingService) { var language = ariaNgSettingService.getLanguage(); moment.updateLocale('zh-cn', { week: null }); ariaNgLocalizationService.applyLanguage(language); }]); }()); ================================================ FILE: src/scripts/config/languages.js ================================================ (function () { 'use strict'; angular.module('ariaNg').constant('ariaNgLanguages', { 'cz_CZ': { name: 'Czech', displayName: 'Čeština' }, 'de_DE': { name: 'German', displayName: 'Deutsch' }, 'en': { name: 'English', displayName: 'English' }, 'es': { name: 'Spanish', displayName: 'Español' }, 'fr_FR': { name: 'French', displayName: 'Français' }, 'it_IT': { name: 'Italian', displayName: 'Italiano' }, 'ja_JP': { name: 'Japanese', displayName: '日本語' }, 'pl_PL': { name: 'Polish', displayName: 'Polski' }, 'ru_RU': { name: 'Russian', displayName: 'Русский' }, 'zh_Hans': { name: 'Simplified Chinese', displayName: '简体中文', aliases: ['zh_CHS', 'zh_CN', 'zh_SG'] }, 'zh_Hant': { name: 'Traditional Chinese', displayName: '繁體中文', aliases: ['zh_CHT', 'zh_TW', 'zh_HK', 'zh_MO'] } }); }()); ================================================ FILE: src/scripts/controllers/command.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('CommandController', ['$rootScope', '$window', '$location', '$routeParams', 'ariaNgDefaultOptions', 'ariaNgCommonService', 'ariaNgLogService', 'ariaNgSettingService', 'aria2TaskService', 'aria2SettingService', function ($rootScope, $window, $location, $routeParams, ariaNgDefaultOptions, ariaNgCommonService, ariaNgLogService, ariaNgSettingService, aria2TaskService, aria2SettingService) { var path = $location.path(); var doNewTaskCommand = function (url, params) { try { url = ariaNgCommonService.base64UrlDecode(url); } catch (ex) { ariaNgCommonService.showError('URL is not base64 encoded!'); return false; } var options = {}; var isPaused = false; if (params) { for (var key in params) { if (!params.hasOwnProperty(key)) { continue; } if (aria2SettingService.isOptionKeyValid(key)) { options[key] = params[key]; } } if (params.pause === 'true') { isPaused = true; } } $rootScope.loadPromise = aria2TaskService.newUriTask({ urls: [url], options: options }, isPaused, function (response) { if (!response.success) { return false; } if (isPaused) { $location.path('/waiting'); } else { $location.path('/downloading'); } }); ariaNgLogService.info('[CommandController] new download: ' + url); return true; }; var doSetRpcCommand = function (rpcProtocol, rpcHost, rpcPort, rpcInterface, secret) { rpcPort = rpcPort || ariaNgDefaultOptions.rpcPort; rpcInterface = rpcInterface || ariaNgDefaultOptions.rpcInterface; secret = secret || ariaNgDefaultOptions.secret; ariaNgLogService.info('[CommandController] set rpc: ' + rpcProtocol + '://' + rpcHost + ':' + rpcPort + '/' + rpcInterface + ', secret: ' + secret); if (!rpcProtocol || (rpcProtocol !== 'http' && rpcProtocol !== 'https' && rpcProtocol !== 'ws' && rpcProtocol !== 'wss')) { ariaNgCommonService.showError('Protocol is invalid!'); return false; } if (!rpcHost) { ariaNgCommonService.showError('RPC host cannot be empty!'); return false; } if (secret) { try { secret = ariaNgCommonService.base64UrlDecode(secret); } catch (ex) { ariaNgCommonService.showError('RPC secret is not base64 encoded!'); return false; } } var newSetting = { rpcAlias: '', rpcHost: rpcHost, rpcPort: rpcPort, rpcInterface: rpcInterface, protocol: rpcProtocol, httpMethod: ariaNgDefaultOptions.httpMethod, rpcRequestHeaders: '', secret: secret }; if (ariaNgSettingService.isRpcSettingEqualsDefault(newSetting)) { $location.path('/downloading'); } else { ariaNgSettingService.setDefaultRpcSetting(newSetting, { keepCurrent: false, forceSet: true }); $location.path('/downloading'); $window.location.reload(); } return true; }; var doCommand = function (path, params) { if (path.indexOf('/new') === 0) { return doNewTaskCommand(params.url, params); } else if (path.indexOf('/settings/rpc/set') === 0) { return doSetRpcCommand(params.protocol, params.host, params.port, params.interface, params.secret); } else { ariaNgCommonService.showError('Parameter is invalid!'); return false; } }; var allParameters = angular.extend({}, $routeParams, $location.search()); if (!doCommand(path, allParameters)) { $location.path('/downloading'); } }]); }()); ================================================ FILE: src/scripts/controllers/debug.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('AriaNgDebugController', ['$rootScope', '$scope', '$location', '$interval', '$timeout', '$filter', 'ariaNgConstants', 'ariaNgCommonService', 'ariaNgLocalizationService', 'ariaNgLogService', 'ariaNgKeyboardService', 'ariaNgSettingService', 'aria2RpcService', function ($rootScope, $scope, $location, $interval, $timeout, $filter, ariaNgConstants, ariaNgCommonService, ariaNgLocalizationService, ariaNgLogService, ariaNgKeyboardService, ariaNgSettingService, aria2RpcService) { var tabStatusItems = [ { name: 'logs', show: true }, { name: 'rpc', show: true } ]; var debugLogRefreshPromise = null; var getVisibleTabOrders = function () { var items = []; for (var i = 0; i < tabStatusItems.length; i++) { if (tabStatusItems[i].show) { items.push(tabStatusItems[i].name); } } return items; }; var loadAria2RPCMethods = function () { if ($scope.context.availableRpcMethods && $scope.context.availableRpcMethods.length) { return; } return aria2RpcService.listMethods({ silent: false, callback: function (response) { if (response.success) { $scope.context.availableRpcMethods = response.data; } } }); }; $scope.context = { currentTab: 'logs', logMaxCount: ariaNgConstants.cachedDebugLogsLimit, logAutoRefreshAvailableInterval: ariaNgCommonService.getTimeOptions([100, 200, 500, 1000, 2000], true), logAutoRefreshInterval: 1000, logListDisplayOrder: 'time:desc', logLevelFilter: 'DEBUG', logs: [], currentLog: null, availableRpcMethods: [], rpcRequestMethod: '', rpcRequestParameters: '{}', rpcResponse: null }; $scope.enableDebugMode = function () { return ariaNgSettingService.isEnableDebugMode(); }; $scope.changeTab = function (tabName) { if (tabName === 'rpc') { $rootScope.loadPromise = loadAria2RPCMethods(); } $scope.context.currentTab = tabName; }; $scope.changeLogListDisplayOrder = function (type) { var oldType = ariaNgCommonService.parseOrderType($scope.context.logListDisplayOrder); var newType = ariaNgCommonService.parseOrderType(type); if (newType.type === oldType.type) { newType.reverse = !oldType.reverse; } $scope.context.logListDisplayOrder = newType.getValue(); }; $scope.isLogListSetDisplayOrder = function (type) { var orderType = ariaNgCommonService.parseOrderType($scope.context.logListDisplayOrder); var targetType = ariaNgCommonService.parseOrderType(type); return orderType.equals(targetType); }; $scope.getLogListOrderType = function () { return $scope.context.logListDisplayOrder; }; $scope.filterLog = function (log) { if (!log || !angular.isString(log.level)) { return false; } if (!$scope.context.logLevelFilter) { return true; } return ariaNgLogService.compareLogLevel(log.level, $scope.context.logLevelFilter) >= 0; }; $scope.setLogLevelFilter = function (filter) { $scope.context.logLevelFilter = filter; }; $scope.isSetLogLevelFilter = function (filter) { return $scope.context.logLevelFilter === filter; }; $scope.getLogLevelFilter = function () { return $scope.context.logLevelFilter; }; $scope.setAutoRefreshInterval = function (interval) { $scope.context.logAutoRefreshInterval = interval; if (debugLogRefreshPromise) { $interval.cancel(debugLogRefreshPromise); } if (interval > 0) { $scope.reloadLogs(); debugLogRefreshPromise = $interval(function () { $scope.reloadLogs(); }, $scope.context.logAutoRefreshInterval); } }; $scope.reloadLogs = function () { $scope.context.logs = ariaNgLogService.getDebugLogs().slice(); }; $scope.clearDebugLogs = function () { ariaNgCommonService.confirm('Confirm Clear', 'Are you sure you want to clear debug logs?', 'warning', function () { ariaNgLogService.clearDebugLogs(); $scope.reloadLogs(); }, false); }; $scope.showLogDetail = function (log) { $scope.context.currentLog = log; angular.element('#log-detail-modal').modal(); }; $('#log-detail-modal').on('hide.bs.modal', function (e) { $scope.context.currentLog = null; }); $scope.executeAria2Method = function () { if (!$scope.context.rpcRequestMethod || $scope.context.rpcRequestMethod.indexOf('.') < 0) { ariaNgCommonService.showError('RPC method is illegal!'); return; } var methodNameParts = $scope.context.rpcRequestMethod.split('.'); if (methodNameParts.length !== 2) { ariaNgCommonService.showError('RPC method is illegal!'); return; } var methodName = methodNameParts[1]; if (!angular.isFunction(aria2RpcService[methodName])) { ariaNgCommonService.showError('AriaNg does not support this RPC method!'); return; } var context = { silent: false, callback: function (response) { if (response) { $scope.context.rpcResponse = $filter('json')(response.data); } else { $scope.context.rpcResponse = $filter('json')(response); } } }; var parameters = {}; try { parameters = angular.fromJson($scope.context.rpcRequestParameters); } catch (ex) { ariaNgLogService.error('[AriaNgDebugController.executeAria2Method] failed to parse request parameters: ' + $scope.context.rpcRequestParameters, ex); ariaNgCommonService.showError('RPC request parameters are invalid!'); return; } for (var key in parameters) { if (!parameters.hasOwnProperty(key) || key === 'silent' || key === 'callback') { continue; } context[key] = parameters[key]; } return aria2RpcService[methodName](context); }; $scope.requestParametersTextboxKeyDown = function (event) { if (!ariaNgSettingService.getKeyboardShortcuts()) { return; } if (ariaNgKeyboardService.isCtrlEnterPressed(event) && $scope.executeMethodForm.$valid) { if (event.preventDefault) { event.preventDefault(); } $scope.executeAria2Method(); return false; } }; $scope.$on('$destroy', function () { if (debugLogRefreshPromise) { $interval.cancel(debugLogRefreshPromise); } }); $rootScope.swipeActions.extendLeftSwipe = function () { var tabItems = getVisibleTabOrders(); var tabIndex = tabItems.indexOf($scope.context.currentTab); if (tabIndex < tabItems.length - 1) { $scope.changeTab(tabItems[tabIndex + 1]); return true; } else { return false; } }; $rootScope.swipeActions.extendRightSwipe = function () { var tabItems = getVisibleTabOrders(); var tabIndex = tabItems.indexOf($scope.context.currentTab); if (tabIndex > 0) { $scope.changeTab(tabItems[tabIndex - 1]); return true; } else { return false; } }; $rootScope.loadPromise = $timeout(function () { if (!ariaNgSettingService.isEnableDebugMode()) { ariaNgCommonService.showError('Access Denied!', function () { if (!ariaNgSettingService.isEnableDebugMode()) { $location.path('/settings/ariang'); } }); return; } $scope.setAutoRefreshInterval($scope.context.logAutoRefreshInterval); }, 100); }]); }()); ================================================ FILE: src/scripts/controllers/list.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('DownloadListController', ['$rootScope', '$scope', '$window', '$location', '$route', '$interval', 'dragulaService', 'aria2RpcErrors', 'ariaNgCommonService', 'ariaNgSettingService', 'aria2TaskService', function ($rootScope, $scope, $window, $location, $route, $interval, dragulaService, aria2RpcErrors, ariaNgCommonService, ariaNgSettingService, aria2TaskService) { var location = $location.path().substring(1); var downloadTaskRefreshPromise = null; var pauseDownloadTaskRefresh = false; var needRequestWholeInfo = true; var refreshDownloadTask = function (silent) { if (pauseDownloadTaskRefresh) { return; } return aria2TaskService.getTaskList(location, needRequestWholeInfo, function (response) { if (pauseDownloadTaskRefresh) { return; } if (!response.success) { if (response.data.message === aria2RpcErrors.Unauthorized.message) { $interval.cancel(downloadTaskRefreshPromise); } return; } var isRequestWholeInfo = response.context.requestWholeInfo; var taskList = response.data; if (isRequestWholeInfo) { $rootScope.taskContext.list = taskList; needRequestWholeInfo = false; } else { if ($rootScope.taskContext.list && $rootScope.taskContext.list.length > 0) { for (var i = 0; i < $rootScope.taskContext.list.length; i++) { var task = $rootScope.taskContext.list[i]; delete task.verifiedLength; delete task.verifyIntegrityPending; } } if (ariaNgCommonService.extendArray(taskList, $rootScope.taskContext.list, 'gid')) { needRequestWholeInfo = false; } else { needRequestWholeInfo = true; } } if ($rootScope.taskContext.list && $rootScope.taskContext.list.length > 0) { aria2TaskService.processDownloadTasks($rootScope.taskContext.list); if (!isRequestWholeInfo) { var hasFullStruct = false; for (var i = 0; i < $rootScope.taskContext.list.length; i++) { var task = $rootScope.taskContext.list[i]; if (task.hasTaskName || task.files || task.bittorrent) { hasFullStruct = true; break; } } if (!hasFullStruct) { needRequestWholeInfo = true; $rootScope.taskContext.list.length = 0; return; } } } $rootScope.taskContext.enableSelectAll = $rootScope.taskContext.list && $rootScope.taskContext.list.length > 0; }, silent); }; $scope.getOrderType = function () { return ariaNgSettingService.getDisplayOrder(location); }; $scope.isSupportDragTask = function () { if (!ariaNgSettingService.getDragAndDropTasks()) { return false; } var displayOrder = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder(location)); return location === 'waiting' && displayOrder.type === 'default'; }; if (ariaNgSettingService.getDownloadTaskRefreshInterval() > 0) { downloadTaskRefreshPromise = $interval(function () { refreshDownloadTask(true); }, ariaNgSettingService.getDownloadTaskRefreshInterval()); } dragulaService.options($scope, 'task-list', { revertOnSpill: true, moves: function () { return $scope.isSupportDragTask(); } }); $scope.$on('task-list.drop-model', function (el, target, source) { var element = angular.element(target); var gid = element.attr('data-gid'); var index = element.index(); pauseDownloadTaskRefresh = true; aria2TaskService.changeTaskPosition(gid, index, function () { pauseDownloadTaskRefresh = false; }, true); }); $scope.$on('$destroy', function () { pauseDownloadTaskRefresh = true; if (downloadTaskRefreshPromise) { $interval.cancel(downloadTaskRefreshPromise); } }); $rootScope.keydownActions.selectAll = function (event) { if (event.preventDefault) { event.preventDefault(); } $scope.$apply(function () { $scope.selectAllTasks(); }); return false; }; $rootScope.keydownActions.delete = function (event) { if (event.preventDefault) { event.preventDefault(); } $scope.$apply(function () { $scope.removeTasks(); }); return false; } $rootScope.loadPromise = refreshDownloadTask(false); }]); }()); ================================================ FILE: src/scripts/controllers/main.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('MainController', ['$rootScope', '$scope', '$route', '$window', '$location', '$document', '$interval', 'clipboard', 'aria2RpcErrors', 'ariaNgCommonService', 'ariaNgVersionService', 'ariaNgNotificationService', 'ariaNgSettingService', 'ariaNgMonitorService', 'ariaNgTitleService', 'aria2TaskService', 'aria2SettingService', function ($rootScope, $scope, $route, $window, $location, $document, $interval, clipboard, aria2RpcErrors, ariaNgCommonService, ariaNgVersionService, ariaNgNotificationService, ariaNgSettingService, ariaNgMonitorService, ariaNgTitleService, aria2TaskService, aria2SettingService) { var pageTitleRefreshPromise = null; var globalStatRefreshPromise = null; var getTaskListPageType = function () { var location = $location.path().substring(1); if (location === 'downloading' || location === 'waiting' || location === 'stopped') { return location; } else { return ''; } }; var refreshPageTitle = function () { var title = ariaNgTitleService.getFinalTitleByGlobalStat({ globalStat: $scope.globalStat, currentRpcProfile: getCurrentRPCProfile() }); $document[0].title = title; }; var refreshGlobalStat = function (silent, callback) { return aria2SettingService.getGlobalStat(function (response) { if (!response.success && response.data.message === aria2RpcErrors.Unauthorized.message) { $interval.cancel(globalStatRefreshPromise); return; } if (response.success) { $scope.globalStat = response.data; ariaNgMonitorService.recordGlobalStat(response.data); } if (callback) { callback(response); } }, silent); }; var getCurrentRPCProfile = function () { if (!$scope.rpcSettings || $scope.rpcSettings.length < 1) { return null; } for (var i = 0; i < $scope.rpcSettings.length; i++) { var rpcSetting = $scope.rpcSettings[i]; if (rpcSetting.isDefault) { return rpcSetting; } } return null; }; if (ariaNgSettingService.getBrowserNotification()) { ariaNgNotificationService.requestBrowserPermission(); } $scope.ariaNgVersion = ariaNgVersionService.getBuildVersion(); $scope.globalStatusContext = { isEnabled: ariaNgSettingService.getGlobalStatRefreshInterval() > 0, data: ariaNgMonitorService.getGlobalStatsData() }; $scope.enableDebugMode = function () { return ariaNgSettingService.isEnableDebugMode(); }; $scope.quickSettingContext = null; $scope.rpcSettings = ariaNgSettingService.getAllRpcSettings(); $scope.currentRpcProfile = getCurrentRPCProfile(); $scope.isCurrentRpcUseWebSocket = ariaNgSettingService.isCurrentRpcUseWebSocket(); $scope.isTaskSelected = function () { return $rootScope.taskContext.getSelectedTaskIds().length > 0; }; $scope.isSelectedTasksAllHaveUrl = function () { var selectedTasks = $rootScope.taskContext.getSelectedTasks(); if (selectedTasks.length < 1) { return false; } for (var i = 0; i < selectedTasks.length; i++) { if (!selectedTasks[i].singleUrl) { return false; } } return true; }; $scope.isSelectedTasksAllHaveInfoHash = function () { var selectedTasks = $rootScope.taskContext.getSelectedTasks(); if (selectedTasks.length < 1) { return false; } for (var i = 0; i < selectedTasks.length; i++) { if (!selectedTasks[i].bittorrent || !selectedTasks[i].infoHash) { return false; } } return true; }; $scope.isSpecifiedTaskSelected = function () { var selectedTasks = $rootScope.taskContext.getSelectedTasks(); if (selectedTasks.length < 1) { return false; } for (var i = 0; i < selectedTasks.length; i++) { for (var j = 0; j < arguments.length; j++) { if (selectedTasks[i].status === arguments[j]) { return true; } } } return false; }; $scope.isSpecifiedTaskShowing = function () { var tasks = $rootScope.taskContext.list; if (tasks.length < 1) { return false; } for (var i = 0; i < tasks.length; i++) { for (var j = 0; j < arguments.length; j++) { if (tasks[i].status === arguments[j]) { return true; } } } return false; }; $scope.changeTasksState = function (state) { var gids = $rootScope.taskContext.getSelectedTaskIds(); if (!gids || gids.length < 1) { return; } var invoke = null; if (state === 'start') { invoke = aria2TaskService.startTasks; } else if (state === 'pause') { invoke = aria2TaskService.pauseTasks; } else { return; } $rootScope.loadPromise = invoke(gids, function (response) { if (response.hasError && gids.length > 1) { ariaNgCommonService.showError('Failed to change some tasks state.'); } if (!response.hasSuccess) { return; } refreshGlobalStat(true); if (!response.hasError && state === 'start') { if ($location.path() === '/waiting') { $location.path('/downloading'); } else { $route.reload(); } } else if (!response.hasError && state === 'pause') { if ($location.path() === '/downloading') { $location.path('/waiting'); } else { $route.reload(); } } }, (gids.length > 1)); }; $scope.retryTask = function (task) { ariaNgCommonService.confirm('Confirm Retry', 'Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.', 'info', function () { $rootScope.loadPromise = aria2TaskService.retryTask(task.gid, function (response) { if (!response.success) { ariaNgCommonService.showError('Failed to retry this task.'); return; } refreshGlobalStat(true); var actionAfterRetryingTask = ariaNgSettingService.getAfterRetryingTask(); if (response.success && response.data) { if (actionAfterRetryingTask === 'task-list-downloading') { if ($location.path() !== '/downloading') { $location.path('/downloading'); } else { $route.reload(); } } else if (actionAfterRetryingTask === 'task-detail') { $location.path('/task/detail/' + response.data); } else { $route.reload(); } } }, false); }); }; $scope.hasRetryableTask = function () { return $rootScope.taskContext.hasRetryableTask(); }; $scope.hasCompletedTask = function () { return $rootScope.taskContext.hasCompletedTask(); }; $scope.isSelectedTaskRetryable = function () { var selectedTasks = $rootScope.taskContext.getSelectedTasks(); if (selectedTasks.length < 1) { return false; } for (var i = 0; i < selectedTasks.length; i++) { if (!$rootScope.isTaskRetryable(selectedTasks[i])) { return false; } } return true; }; $scope.retryTasks = function () { var tasks = $rootScope.taskContext.getSelectedTasks(); if (!tasks || tasks.length < 1) { return; } else if (tasks.length === 1) { return $scope.retryTask(tasks[0]); } var retryableTasks = []; var skipCount = 0; for (var i = 0; i < tasks.length; i++) { if ($rootScope.isTaskRetryable(tasks[i])) { retryableTasks.push(tasks[i]); } else { skipCount++; } } ariaNgCommonService.confirm('Confirm Retry', 'Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.', 'info', function () { $rootScope.loadPromise = aria2TaskService.retryTasks(retryableTasks, function (response) { refreshGlobalStat(true); ariaNgCommonService.showInfo('Operation Result', '{successCount} tasks have been retried and {failedCount} tasks are failed.', function () { var actionAfterRetryingTask = ariaNgSettingService.getAfterRetryingTask(); if (response.hasSuccess) { if (actionAfterRetryingTask === 'task-list-downloading') { if ($location.path() !== '/downloading') { $location.path('/downloading'); } else { $route.reload(); } } else { $route.reload(); } } }, { textParams: { successCount: response.successCount, failedCount: response.failedCount, skipCount: skipCount } }); }, false); }, true); }; $scope.removeTasks = function () { var tasks = $rootScope.taskContext.getSelectedTasks(); if (!tasks || tasks.length < 1) { return; } var removeTasks = function () { $rootScope.loadPromise = aria2TaskService.removeTasks(tasks, function (response) { if (response.hasError && tasks.length > 1) { ariaNgCommonService.showError('Failed to remove some task(s).'); } if (!response.hasSuccess) { return; } refreshGlobalStat(true); if (!response.hasError) { if ($location.path() !== '/stopped') { $location.path('/stopped'); } else { $route.reload(); } } }, (tasks.length > 1)); }; if (ariaNgSettingService.getConfirmTaskRemoval()) { ariaNgCommonService.confirm('Confirm Remove', 'Are you sure you want to remove the selected task?', 'warning', removeTasks); } else { removeTasks(); }; }; $scope.clearStoppedTasks = function () { ariaNgCommonService.confirm('Confirm Clear', 'Are you sure you want to clear stopped tasks?', 'warning', function () { $rootScope.loadPromise = aria2TaskService.clearStoppedTasks(function (response) { if (!response.success) { return; } refreshGlobalStat(true); if ($location.path() !== '/stopped') { $location.path('/stopped'); } else { $route.reload(); } }); }); }; $scope.isAllTasksSelected = function () { return $rootScope.taskContext.isAllSelected(); }; $scope.selectAllTasks = function () { $rootScope.taskContext.selectAll(); }; $scope.selectAllFailedTasks = function () { $rootScope.taskContext.selectAllFailed(); }; $scope.selectAllCompletedTasks = function () { $rootScope.taskContext.selectAllCompleted(); }; $scope.copySelectedTasksDownloadLink = function () { var selectedTasks = $rootScope.taskContext.getSelectedTasks(); var result = ''; for (var i = 0; i < selectedTasks.length; i++) { if (i > 0) { result += '\n'; } result += selectedTasks[i].singleUrl; } if (result.length > 0) { clipboard.copyText(result); } }; $scope.copySelectedTasksMagnetLink = function () { var selectedTasks = $rootScope.taskContext.getSelectedTasks(); var result = ''; for (var i = 0; i < selectedTasks.length; i++) { if (i > 0) { result += '\n'; } result += 'magnet:?xt=urn:btih:' + selectedTasks[i].infoHash; } if (result.length > 0) { clipboard.copyText(result); } }; $scope.changeDisplayOrder = function (type, autoSetReverse) { var taskListPageType = getTaskListPageType(); var oldType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder(taskListPageType)); var newType = ariaNgCommonService.parseOrderType(type); if (autoSetReverse && newType.type === oldType.type) { newType.reverse = !oldType.reverse; } ariaNgSettingService.setDisplayOrder(newType.getValue(), taskListPageType); }; $scope.isSetDisplayOrder = function (type) { var taskListPageType = getTaskListPageType(); var orderType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder(taskListPageType)); var targetType = ariaNgCommonService.parseOrderType(type); return orderType.equals(targetType); }; $scope.showQuickSettingDialog = function (type, title) { $scope.quickSettingContext = { type: type, title: title }; }; $scope.switchRpcSetting = function (setting) { if (setting.isDefault) { return; } ariaNgSettingService.setDefaultRpcSetting(setting); if ($location.path().indexOf('/task/detail/') === 0) { $rootScope.setAutoRefreshAfterPageLoad(); $location.path('/downloading'); } else { $window.location.reload(); } }; if (ariaNgSettingService.getTitleRefreshInterval() > 0) { pageTitleRefreshPromise = $interval(function () { refreshPageTitle(); }, ariaNgSettingService.getTitleRefreshInterval()); } if (ariaNgSettingService.getGlobalStatRefreshInterval() > 0) { globalStatRefreshPromise = $interval(function () { refreshGlobalStat(true); }, ariaNgSettingService.getGlobalStatRefreshInterval()); } $scope.$on('$destroy', function () { if (pageTitleRefreshPromise) { $interval.cancel(pageTitleRefreshPromise); } if (globalStatRefreshPromise) { $interval.cancel(globalStatRefreshPromise); } }); refreshGlobalStat(true, function () { refreshPageTitle(); }); }]); }()); ================================================ FILE: src/scripts/controllers/new.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('NewTaskController', ['$rootScope', '$scope', '$location', '$timeout', 'ariaNgCommonService', 'ariaNgLogService', 'ariaNgKeyboardService', 'ariaNgFileService', 'ariaNgSettingService', 'aria2TaskService', 'aria2SettingService', function ($rootScope, $scope, $location, $timeout, ariaNgCommonService, ariaNgLogService, ariaNgKeyboardService, ariaNgFileService, ariaNgSettingService, aria2TaskService, aria2SettingService) { var tabStatusItems = [ { name: 'links', show: true }, { name: 'options', show: true } ]; var parameters = $location.search(); var getVisibleTabOrders = function () { var items = []; for (var i = 0; i < tabStatusItems.length; i++) { if (tabStatusItems[i].show) { items.push(tabStatusItems[i].name); } } return items; }; var setTabItemShow = function (name, status) { for (var i = 0; i < tabStatusItems.length; i++) { if (tabStatusItems[i].name === name) { tabStatusItems[i].show = status; break; } } }; var saveDownloadPath = function (options) { if (!options || !options.dir) { return; } aria2SettingService.addSettingHistory('dir', options.dir); }; var getDownloadTasksByLinks = function (options) { var urls = ariaNgCommonService.parseUrlsFromOriginInput($scope.context.urls); var tasks = []; if (!options) { options = angular.copy($scope.context.options); } for (var i = 0; i < urls.length; i++) { if (urls[i] === '' || urls[i].trim() === '') { continue; } tasks.push({ urls: [urls[i].trim()], options: options }); } return tasks; }; var downloadByLinks = function (pauseOnAdded, responseCallback) { var options = angular.copy($scope.context.options); var tasks = getDownloadTasksByLinks(options); saveDownloadPath(options); return aria2TaskService.newUriTasks(tasks, pauseOnAdded, responseCallback); }; var downloadByTorrent = function (pauseOnAdded, responseCallback) { var options = angular.copy($scope.context.options); var task = { content: $scope.context.uploadFile.base64Content, options: options }; saveDownloadPath(task.options); return aria2TaskService.newTorrentTask(task, pauseOnAdded, responseCallback); }; var downloadByMetalink = function (pauseOnAdded, responseCallback) { var task = { content: $scope.context.uploadFile.base64Content, options: angular.copy($scope.context.options) }; saveDownloadPath(task.options); return aria2TaskService.newMetalinkTask(task, pauseOnAdded, responseCallback); }; $scope.context = { currentTab: 'links', taskType: 'urls', urls: '', uploadFile: null, availableOptions: (function () { var keys = aria2SettingService.getNewTaskOptionKeys(); return aria2SettingService.getSpecifiedOptions(keys, { disableRequired: true }); })(), globalOptions: null, options: {}, optionFilter: { global: true, http: false, bittorrent: false }, exportCommandApiOptions: null }; if (parameters.url) { try { $scope.context.urls = ariaNgCommonService.base64UrlDecode(parameters.url); } catch (ex) { ariaNgLogService.error('[NewTaskController] base64 decode error, url=' + parameters.url, ex); } } $scope.changeTab = function (tabName) { if (tabName === 'options') { $scope.loadDefaultOption(); } $scope.context.currentTab = tabName; }; $rootScope.swipeActions.extendLeftSwipe = function () { var tabItems = getVisibleTabOrders(); var tabIndex = tabItems.indexOf($scope.context.currentTab); if (tabIndex < tabItems.length - 1) { $scope.changeTab(tabItems[tabIndex + 1]); return true; } else { return false; } }; $rootScope.swipeActions.extendRightSwipe = function () { var tabItems = getVisibleTabOrders(); var tabIndex = tabItems.indexOf($scope.context.currentTab); if (tabIndex > 0) { $scope.changeTab(tabItems[tabIndex - 1]); return true; } else { return false; } }; $scope.loadDefaultOption = function () { if ($scope.context.globalOptions) { return; } $rootScope.loadPromise = aria2SettingService.getGlobalOption(function (response) { if (response.success) { $scope.context.globalOptions = response.data; } }); }; $scope.openTorrent = function () { ariaNgFileService.openFileContent({ scope: $scope, fileFilter: '.torrent', fileType: 'binary' }, function (result) { $scope.context.uploadFile = result; $scope.context.taskType = 'torrent'; $scope.changeTab('options'); }, function (error) { ariaNgCommonService.showError(error); }, angular.element('#file-holder')); }; $scope.openMetalink = function () { ariaNgFileService.openFileContent({ scope: $scope, fileFilter: '.meta4,.metalink', fileType: 'binary' }, function (result) { $scope.context.uploadFile = result; $scope.context.taskType = 'metalink'; $scope.changeTab('options'); }, function (error) { ariaNgCommonService.showError(error); }, angular.element('#file-holder')); }; $scope.isNewTaskValid = function () { if (!$scope.context.uploadFile) { return $scope.newTaskForm.$valid; } return true; }; $scope.startDownload = function (pauseOnAdded) { var responseCallback = function (response) { if (!response.hasSuccess && !response.success) { return; } var firstTask = null; if (response.results && response.results.length > 0) { firstTask = response.results[0]; } else if (response) { firstTask = response; } if (ariaNgSettingService.getAfterCreatingNewTask() === 'task-detail' && firstTask && firstTask.data) { $location.path('/task/detail/' + firstTask.data); } else { if (pauseOnAdded) { $location.path('/waiting'); } else { $location.path('/downloading'); } } }; if ($scope.context.taskType === 'urls') { $rootScope.loadPromise = downloadByLinks(pauseOnAdded, responseCallback); } else if ($scope.context.taskType === 'torrent') { $rootScope.loadPromise = downloadByTorrent(pauseOnAdded, responseCallback); } else if ($scope.context.taskType === 'metalink') { $rootScope.loadPromise = downloadByMetalink(pauseOnAdded, responseCallback); } }; $scope.showExportCommandAPIModal = function () { $scope.context.exportCommandApiOptions = { type: 'new-task', data: getDownloadTasksByLinks() }; }; $scope.setOption = function (key, value, optionStatus) { if (value !== '' || !aria2SettingService.isOptionKeyRequired(key)) { $scope.context.options[key] = value; } else { delete $scope.context.options[key]; } optionStatus.setReady(); }; $scope.urlTextboxKeyDown = function (event) { if (!ariaNgSettingService.getKeyboardShortcuts()) { return; } if (ariaNgKeyboardService.isCtrlEnterPressed(event) && $scope.newTaskForm.$valid) { if (event.preventDefault) { event.preventDefault(); } $scope.startDownload(); return false; } }; $scope.getValidUrlsCount = function () { var urls = ariaNgCommonService.parseUrlsFromOriginInput($scope.context.urls); return urls ? urls.length : 0; }; $rootScope.loadPromise = $timeout(function () {}, 100); }]); }()); ================================================ FILE: src/scripts/controllers/settings-aria2.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('Aria2SettingsController', ['$rootScope', '$scope', '$location', 'ariaNgConstants', 'ariaNgCommonService', 'aria2SettingService', function ($rootScope, $scope, $location, ariaNgConstants, ariaNgCommonService, aria2SettingService) { var location = $location.path().substring($location.path().lastIndexOf('/') + 1); $scope.context = { availableOptions: (function (type) { var keys = aria2SettingService.getAvailableGlobalOptionsKeys(type); if (!keys) { ariaNgCommonService.showError('Type is illegal!'); return; } return aria2SettingService.getSpecifiedOptions(keys); })(location), globalOptions: [] }; $scope.setGlobalOption = function (key, value, optionStatus) { return aria2SettingService.setGlobalOption(key, value, function (response) { if (response.success && response.data === 'OK') { optionStatus.setSuccess(); } else { optionStatus.setFailed(response.data.message); } }, true); }; $rootScope.loadPromise = (function () { return aria2SettingService.getGlobalOption(function (response) { if (response.success) { $scope.context.globalOptions = response.data; } }); })(); }]); }()); ================================================ FILE: src/scripts/controllers/settings-ariang.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('AriaNgSettingsController', ['$rootScope', '$scope', '$routeParams', '$window', '$interval', '$timeout', '$filter', 'clipboard', 'ariaNgLanguages', 'ariaNgCommonService', 'ariaNgVersionService', 'ariaNgKeyboardService', 'ariaNgNotificationService', 'ariaNgLocalizationService', 'ariaNgLogService', 'ariaNgFileService', 'ariaNgSettingService', 'ariaNgMonitorService', 'ariaNgTitleService', 'aria2SettingService', function ($rootScope, $scope, $routeParams, $window, $interval, $timeout, $filter, clipboard, ariaNgLanguages, ariaNgCommonService, ariaNgVersionService, ariaNgKeyboardService, ariaNgNotificationService, ariaNgLocalizationService, ariaNgLogService, ariaNgFileService, ariaNgSettingService, ariaNgMonitorService, ariaNgTitleService, aria2SettingService) { var extendType = $routeParams.extendType; var lastRefreshPageNotification = null; var getFinalTitle = function () { return ariaNgTitleService.getFinalTitleByGlobalStat({ globalStat: ariaNgMonitorService.getCurrentGlobalStat(), currentRpcProfile: getCurrentRPCProfile() }); }; var getCurrentRPCProfile = function () { if (!$scope.context || !$scope.context.rpcSettings || $scope.context.rpcSettings.length < 1) { return null; } for (var i = 0; i < $scope.context.rpcSettings.length; i++) { var rpcSetting = $scope.context.rpcSettings[i]; if (rpcSetting.isDefault) { return rpcSetting; } } return null; }; var setNeedRefreshPage = function () { if (lastRefreshPageNotification) { return; } lastRefreshPageNotification = ariaNgNotificationService.notifyInPage('', 'Configuration has been modified, please reload the page for the changes to take effect.', { delay: false, type: 'info', templateUrl: 'views/notification-reloadable.html', onClose: function () { lastRefreshPageNotification = null; } }); }; $scope.context = { currentTab: 'global', ariaNgVersion: ariaNgVersionService.getBuildVersion(), buildCommit: ariaNgVersionService.getBuildCommit(), languages: (function () { var languages = []; for (var langName in ariaNgLanguages) { if (!ariaNgLanguages.hasOwnProperty(langName)) { continue; } var language = ariaNgLanguages[langName]; languages.push({ type: langName, name: language.name, displayName: language.displayName }); } languages.sort(function (lang1, lang2) { return String.naturalCompare(lang1.type, lang2.type); }); return languages; })(), titlePreview: getFinalTitle(), availableTime: ariaNgCommonService.getTimeOptions([1000, 2000, 3000, 5000, 10000, 30000, 60000], true), trueFalseOptions: [{name: 'Enabled', value: true}, {name: 'Disabled', value: false}], showRpcSecret: false, isInsecureProtocolDisabled: ariaNgSettingService.isInsecureProtocolDisabled(), settings: ariaNgSettingService.getAllOptions(), sessionSettings: ariaNgSettingService.getAllSessionOptions(), rpcSettings: ariaNgSettingService.getAllRpcSettings(), isMacKeyboardLike: ariaNgKeyboardService.isMacKeyboardLike(), isSupportReconnect: aria2SettingService.canReconnect(), isSupportBlob: ariaNgFileService.isSupportBlob(), isSupportDarkMode: ariaNgSettingService.isBrowserSupportDarkMode(), importSettings: null, exportSettings: null, exportSettingsCopied: false, exportCommandApiOptions: null }; $scope.context.titlePreview = getFinalTitle(); $scope.context.showDebugMode = $scope.context.sessionSettings.debugMode || extendType === 'debug'; $scope.changeGlobalTab = function () { $scope.context.currentTab = 'global'; }; $scope.isCurrentGlobalTab = function () { return $scope.context.currentTab === 'global'; }; $scope.changeRpcTab = function (rpcIndex) { $scope.context.currentTab = 'rpc' + rpcIndex; }; $scope.isCurrentRpcTab = function (rpcIndex) { return $scope.context.currentTab === 'rpc' + rpcIndex; }; $scope.getCurrentRpcTabIndex = function () { if ($scope.isCurrentGlobalTab()) { return -1; } return parseInt($scope.context.currentTab.substring(3)); }; $scope.updateTitlePreview = function () { $scope.context.titlePreview = getFinalTitle(); }; $rootScope.swipeActions.extendLeftSwipe = function () { var tabIndex = -1; if (!$scope.isCurrentGlobalTab()) { tabIndex = parseInt($scope.getCurrentRpcTabIndex()); } if (tabIndex < $scope.context.rpcSettings.length - 1) { $scope.changeRpcTab(tabIndex + 1); return true; } else { return false; } }; $rootScope.swipeActions.extendRightSwipe = function () { var tabIndex = -1; if (!$scope.isCurrentGlobalTab()) { tabIndex = parseInt($scope.getCurrentRpcTabIndex()); } if (tabIndex > 0) { $scope.changeRpcTab(tabIndex - 1); return true; } else if (tabIndex === 0) { $scope.changeGlobalTab(); return true; } else { return false; } }; $scope.isSupportNotification = function () { return ariaNgNotificationService.isSupportBrowserNotification() && ariaNgSettingService.isCurrentRpcUseWebSocket($scope.context.settings.protocol); }; $scope.setLanguage = function (value) { if (ariaNgSettingService.setLanguage(value)) { ariaNgLocalizationService.applyLanguage(value); } $scope.updateTitlePreview(); }; $scope.setTheme = function (value) { ariaNgSettingService.setTheme(value); $rootScope.setTheme(value); }; $scope.setDebugMode = function (value) { ariaNgSettingService.setDebugMode(value); }; $scope.setTitle = function (value) { ariaNgSettingService.setTitle(value); }; $scope.setEnableBrowserNotification = function (value) { ariaNgSettingService.setBrowserNotification(value); if (value && !ariaNgNotificationService.hasBrowserPermission()) { ariaNgNotificationService.requestBrowserPermission(function (result) { if (!result.granted) { $scope.context.settings.browserNotification = false; ariaNgCommonService.showError('You have disabled notification in your browser. You should change your browser\'s settings before you enable this function.'); } }); } }; $scope.setBrowserNotificationSound = function (value) { ariaNgSettingService.setBrowserNotificationSound(value); }; $scope.setBrowserNotificationFrequency = function (value) { ariaNgSettingService.setBrowserNotificationFrequency(value); }; $scope.setWebSocketReconnectInterval = function (value) { setNeedRefreshPage(); ariaNgSettingService.setWebSocketReconnectInterval(value); }; $scope.setTitleRefreshInterval = function (value) { setNeedRefreshPage(); ariaNgSettingService.setTitleRefreshInterval(value); }; $scope.setGlobalStatRefreshInterval = function (value) { setNeedRefreshPage(); ariaNgSettingService.setGlobalStatRefreshInterval(value); }; $scope.setDownloadTaskRefreshInterval = function (value) { setNeedRefreshPage(); ariaNgSettingService.setDownloadTaskRefreshInterval(value); }; $scope.setRPCListDisplayOrder = function (value) { setNeedRefreshPage(); ariaNgSettingService.setRPCListDisplayOrder(value); }; $scope.setTaskListIndependentDisplayOrder = function (value) { ariaNgSettingService.setTaskListIndependentDisplayOrder(value); }; $scope.setKeyboardShortcuts = function (value) { ariaNgSettingService.setKeyboardShortcuts(value); }; $scope.setSwipeGesture = function (value) { ariaNgSettingService.setSwipeGesture(value); }; $scope.setDragAndDropTasks = function (value) { ariaNgSettingService.setDragAndDropTasks(value); }; $scope.setAfterCreatingNewTask = function (value) { ariaNgSettingService.setAfterCreatingNewTask(value); }; $scope.setRemoveOldTaskAfterRetrying = function (value) { ariaNgSettingService.setRemoveOldTaskAfterRetrying(value); }; $scope.setConfirmTaskRemoval = function (value) { ariaNgSettingService.setConfirmTaskRemoval(value); }; $scope.setIncludePrefixWhenCopyingFromTaskDetails = function (value) { ariaNgSettingService.setIncludePrefixWhenCopyingFromTaskDetails(value); }; $scope.setShowPiecesInfoInTaskDetailPage = function (value) { ariaNgSettingService.setShowPiecesInfoInTaskDetailPage(value); }; $scope.setAfterRetryingTask = function (value) { ariaNgSettingService.setAfterRetryingTask(value); }; $scope.showImportSettingsModal = function () { $scope.context.importSettings = null; angular.element('#import-settings-modal').modal(); }; $('#import-settings-modal').on('hide.bs.modal', function (e) { $scope.context.importSettings = null; }); $scope.openAriaNgConfigFile = function () { ariaNgFileService.openFileContent({ scope: $scope, fileFilter: '.json', fileType: 'text' }, function (result) { $scope.context.importSettings = result.content; }, function (error) { ariaNgCommonService.showError(error); }, angular.element('#import-file-holder')); }; $scope.importSettings = function (settings) { var settingsObj = null; try { settingsObj = JSON.parse(settings); } catch (e) { ariaNgLogService.error('[AriaNgSettingsController.importSettings] parse settings json error', e); ariaNgCommonService.showError('Invalid settings data format!'); return; } if (!angular.isObject(settingsObj) || angular.isArray(settingsObj)) { ariaNgLogService.error('[AriaNgSettingsController.importSettings] settings json is not object'); ariaNgCommonService.showError('Invalid settings data format!'); return; } if (settingsObj) { ariaNgCommonService.confirm('Confirm Import', 'Are you sure you want to import all settings?', 'warning', function () { ariaNgSettingService.importAllOptions(settingsObj); $window.location.reload(); }); } }; $scope.showExportSettingsModal = function () { $scope.context.exportSettings = $filter('json')(ariaNgSettingService.exportAllOptions()); $scope.context.exportSettingsCopied = false; angular.element('#export-settings-modal').modal(); }; $('#export-settings-modal').on('hide.bs.modal', function (e) { $scope.context.exportSettings = null; $scope.context.exportSettingsCopied = false; }); $scope.copyExportSettings = function () { clipboard.copyText($scope.context.exportSettings, { container: angular.element('#export-settings-modal')[0] }); $scope.context.exportSettingsCopied = true; }; $scope.addNewRpcSetting = function () { setNeedRefreshPage(); var newRpcSetting = ariaNgSettingService.addNewRpcSetting(); $scope.context.rpcSettings.push(newRpcSetting); $scope.changeRpcTab($scope.context.rpcSettings.length - 1); }; $scope.updateRpcSetting = function (setting, field) { setNeedRefreshPage(); ariaNgSettingService.updateRpcSetting(setting, field); }; $scope.removeRpcSetting = function (setting) { var rpcName = (setting.rpcAlias ? setting.rpcAlias : setting.rpcHost + ':' + setting.rpcPort); ariaNgCommonService.confirm('Confirm Remove', 'Are you sure you want to remove rpc setting "{rpcName}"?', 'warning', function () { setNeedRefreshPage(); var currentIndex = $scope.getCurrentRpcTabIndex(); var index = $scope.context.rpcSettings.indexOf(setting); ariaNgSettingService.removeRpcSetting(setting); $scope.context.rpcSettings.splice(index, 1); if (currentIndex >= $scope.context.rpcSettings.length) { $scope.changeRpcTab($scope.context.rpcSettings.length - 1); } else if (currentIndex <= 0 || currentIndex <= index) { ; // Do Nothing } else { // currentIndex > index $scope.changeRpcTab(currentIndex - 1); } }, false, { textParams: { rpcName: rpcName } }); }; $scope.showExportCommandAPIModal = function (setting) { $scope.context.exportCommandApiOptions = { type: 'setting', data: setting }; }; $scope.setDefaultRpcSetting = function (setting) { if (setting.isDefault) { return; } ariaNgSettingService.setDefaultRpcSetting(setting); $window.location.reload(); }; $scope.resetSettings = function () { ariaNgCommonService.confirm('Confirm Reset', 'Are you sure you want to reset all settings?', 'warning', function () { ariaNgSettingService.resetSettings(); $window.location.reload(); }); }; $scope.clearHistory = function () { ariaNgCommonService.confirm('Confirm Clear', 'Are you sure you want to clear all settings history?', 'warning', function () { aria2SettingService.clearSettingsHistorys(); $window.location.reload(); }); }; angular.element('[data-toggle="popover"]').popover(); $rootScope.loadPromise = $timeout(function () {}, 100); }]); }()); ================================================ FILE: src/scripts/controllers/status.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('Aria2StatusController', ['$rootScope', '$scope', '$timeout', 'ariaNgCommonService', 'ariaNgSettingService', 'aria2SettingService', function ($rootScope, $scope, $timeout, ariaNgCommonService, ariaNgSettingService, aria2SettingService) { $scope.context = { host: ariaNgSettingService.getCurrentRpcUrl(), serverStatus: null, isSupportReconnect: aria2SettingService.canReconnect() }; $scope.reconnect = function () { if (!$scope.context.isSupportReconnect || ($rootScope.taskContext.rpcStatus !== 'Disconnected' && $rootScope.taskContext.rpcStatus !== 'Waiting to reconnect')) { return; } aria2SettingService.reconnect(); }; $scope.saveSession = function () { return aria2SettingService.saveSession(function (response) { if (response.success && response.data === 'OK') { ariaNgCommonService.showOperationSucceeded('Session has been saved successfully.'); } }); }; $scope.shutdown = function () { ariaNgCommonService.confirm('Confirm Shutdown', 'Are you sure you want to shutdown aria2?', 'warning', function (status) { return aria2SettingService.shutdown(function (response) { if (response.success && response.data === 'OK') { ariaNgCommonService.showOperationSucceeded('Aria2 has been shutdown successfully.'); } }); }, true); }; $rootScope.$watch('taskContext.rpcStatus', function (value) { if (value === 'Connected') { aria2SettingService.getAria2Status(function (response) { if (response.success) { $scope.context.serverStatus = response.data; } }); } else { $scope.context.serverStatus = null; } }); $rootScope.loadPromise = $timeout(function () {}, 100); }]); }()); ================================================ FILE: src/scripts/controllers/task-detail.js ================================================ (function () { 'use strict'; angular.module('ariaNg').controller('TaskDetailController', ['$rootScope', '$scope', '$routeParams', '$interval', 'clipboard', 'aria2RpcErrors', 'ariaNgFileTypes', 'ariaNgCommonService', 'ariaNgSettingService', 'ariaNgMonitorService', 'aria2TaskService', 'aria2SettingService', function ($rootScope, $scope, $routeParams, $interval, clipboard, aria2RpcErrors, ariaNgFileTypes, ariaNgCommonService, ariaNgSettingService, ariaNgMonitorService, aria2TaskService, aria2SettingService) { var tabStatusItems = [ { name: 'overview', show: true }, { name: 'pieces', show: true }, { name: 'filelist', show: true }, { name: 'btpeers', show: true } ]; var downloadTaskRefreshPromise = null; var pauseDownloadTaskRefresh = false; var currentRowTriggeredMenu = null; var getVisibleTabOrders = function () { var items = []; for (var i = 0; i < tabStatusItems.length; i++) { if (tabStatusItems[i].show) { items.push(tabStatusItems[i].name); } } return items; }; var setTabItemShow = function (name, status) { for (var i = 0; i < tabStatusItems.length; i++) { if (tabStatusItems[i].name === name) { tabStatusItems[i].show = status; break; } } }; var getAvailableOptions = function (status, isBittorrent) { var keys = aria2SettingService.getAvailableTaskOptionKeys(status, isBittorrent); return aria2SettingService.getSpecifiedOptions(keys, { disableRequired: true }); }; var isShowPiecesInfo = function (task) { var showPiecesInfoSetting = ariaNgSettingService.getShowPiecesInfoInTaskDetailPage(); if (!task || showPiecesInfoSetting === 'never') { return false; } if (showPiecesInfoSetting === 'le102400') { return task.numPieces <= 102400; } else if (showPiecesInfoSetting === 'le10240') { return task.numPieces <= 10240; } else if (showPiecesInfoSetting === 'le1024') { return task.numPieces <= 1024; } return true; // showPiecesInfoSetting === 'always' }; var processTask = function (task) { if (!task) { return; } $scope.context.showPiecesInfo = isShowPiecesInfo(task); setTabItemShow('pieces', $scope.context.showPiecesInfo); setTabItemShow('btpeers', task.status === 'active' && task.bittorrent); if (!$scope.task || $scope.task.status !== task.status) { $scope.context.availableOptions = getAvailableOptions(task.status, !!task.bittorrent); } if ($scope.task) { delete $scope.task.verifiedLength; delete $scope.task.verifyIntegrityPending; } $scope.task = ariaNgCommonService.copyObjectTo(task, $scope.task); $rootScope.taskContext.list = [$scope.task]; $rootScope.taskContext.selected = {}; $rootScope.taskContext.selected[$scope.task.gid] = true; ariaNgMonitorService.recordStat(task.gid, task); }; var processPeers = function (peers) { if (!peers) { return; } if (!ariaNgCommonService.extendArray(peers, $scope.context.btPeers, 'peerId')) { $scope.context.btPeers = peers; } $scope.context.healthPercent = aria2TaskService.estimateHealthPercentFromPeers($scope.task, $scope.context.btPeers); }; var requireBtPeers = function (task) { return (task && task.bittorrent && task.status === 'active'); }; var refreshDownloadTask = function (silent) { if (pauseDownloadTaskRefresh) { return; } var processError = function (message) { $interval.cancel(downloadTaskRefreshPromise); }; var includeLocalPeer = true; var addVirtualFileNode = true; if (!$scope.task) { return aria2TaskService.getTaskStatus($routeParams.gid, function (response) { if (!response.success) { return processError(response.data.message); } var task = response.data; processTask(task); if (requireBtPeers(task)) { aria2TaskService.getBtTaskPeers(task, function (response) { if (response.success) { processPeers(response.data); } }, silent, includeLocalPeer); } }, silent, addVirtualFileNode); } else { return aria2TaskService.getTaskStatusAndBtPeers($routeParams.gid, function (response) { if (!response.success) { return processError(response.data.message); } processTask(response.task); processPeers(response.peers); }, silent, requireBtPeers($scope.task), includeLocalPeer, addVirtualFileNode); } }; var setSelectFiles = function (silent) { if (!$scope.task || !$scope.task.files) { return; } var gid = $scope.task.gid; var selectedFileIndex = []; for (var i = 0; i < $scope.task.files.length; i++) { var file = $scope.task.files[i]; if (file && file.selected && !file.isDir) { selectedFileIndex.push(file.index); } } pauseDownloadTaskRefresh = true; return aria2TaskService.selectTaskFile(gid, selectedFileIndex, function (response) { pauseDownloadTaskRefresh = false; if (response.success) { refreshDownloadTask(false); } }, silent); }; var setSelectedNode = function (node, value) { if (!node) { return; } if (node.files && node.files.length) { for (var i = 0; i < node.files.length; i++) { var fileNode = node.files[i]; fileNode.selected = value; } } if (node.subDirs && node.subDirs.length) { for (var i = 0; i < node.subDirs.length; i++) { var dirNode = node.subDirs[i]; setSelectedNode(dirNode, value); } } node.selected = value; node.partialSelected = false; }; var updateDirNodeSelectedStatus = function (node) { if (!node) { return; } var selectedSubNodesCount = 0; var partitalSelectedSubNodesCount = 0; if (node.files && node.files.length) { for (var i = 0; i < node.files.length; i++) { var fileNode = node.files[i]; selectedSubNodesCount += (fileNode.selected ? 1 : 0); } } if (node.subDirs && node.subDirs.length) { for (var i = 0; i < node.subDirs.length; i++) { var dirNode = node.subDirs[i]; updateDirNodeSelectedStatus(dirNode); selectedSubNodesCount += (dirNode.selected ? 1 : 0); partitalSelectedSubNodesCount += (dirNode.partialSelected ? 1 : 0); } } node.selected = (selectedSubNodesCount > 0 && selectedSubNodesCount === (node.subDirs.length + node.files.length)); node.partialSelected = ((selectedSubNodesCount > 0 && selectedSubNodesCount < (node.subDirs.length + node.files.length)) || partitalSelectedSubNodesCount > 0); }; var updateAllDirNodesSelectedStatus = function () { if (!$scope.task || !$scope.task.multiDir) { return; } for (var i = 0; i < $scope.task.files.length; i++) { var node = $scope.task.files[i]; if (!node.isDir) { continue; } updateDirNodeSelectedStatus(node); } }; $scope.context = { currentTab: 'overview', isEnableSpeedChart: ariaNgSettingService.getDownloadTaskRefreshInterval() > 0, showPiecesInfo: ariaNgSettingService.getShowPiecesInfoInTaskDetailPage() !== 'never', showChooseFilesToolbar: false, fileExtensions: [], collapsedDirs: {}, btPeers: [], healthPercent: 0, collapseTrackers: true, statusData: ariaNgMonitorService.getEmptyStatsData($routeParams.gid), availableOptions: [], options: [] }; $scope.changeTab = function (tabName) { if (tabName === 'settings') { $scope.loadTaskOption($scope.task); } $scope.context.currentTab = tabName; }; $rootScope.swipeActions.extendLeftSwipe = function () { var tabItems = getVisibleTabOrders(); var tabIndex = tabItems.indexOf($scope.context.currentTab); if (tabIndex < tabItems.length - 1) { $scope.changeTab(tabItems[tabIndex + 1]); return true; } else { return false; } }; $rootScope.swipeActions.extendRightSwipe = function () { var tabItems = getVisibleTabOrders(); var tabIndex = tabItems.indexOf($scope.context.currentTab); if (tabIndex > 0) { $scope.changeTab(tabItems[tabIndex - 1]); return true; } else { return false; } }; $scope.changeFileListDisplayOrder = function (type, autoSetReverse) { if ($scope.task && $scope.task.multiDir) { return; } var oldType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getFileListDisplayOrder()); var newType = ariaNgCommonService.parseOrderType(type); if (autoSetReverse && newType.type === oldType.type) { newType.reverse = !oldType.reverse; } ariaNgSettingService.setFileListDisplayOrder(newType.getValue()); }; $scope.isSetFileListDisplayOrder = function (type) { var orderType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getFileListDisplayOrder()); var targetType = ariaNgCommonService.parseOrderType(type); return orderType.equals(targetType); }; $scope.getFileListOrderType = function () { if ($scope.task && $scope.task.multiDir) { return null; } return ariaNgSettingService.getFileListDisplayOrder(); }; $scope.showChooseFilesToolbar = function () { if (!$scope.context.showChooseFilesToolbar) { pauseDownloadTaskRefresh = true; $scope.context.showChooseFilesToolbar = true; } else { $scope.cancelChooseFiles(); } }; $scope.isAnyFileSelected = function () { if (!$scope.task || !$scope.task.files) { return false; } for (var i = 0; i < $scope.task.files.length; i++) { var file = $scope.task.files[i]; if (!file.isDir && file.selected) { return true; } } return false; }; $scope.isAllFileSelected = function () { if (!$scope.task || !$scope.task.files) { return false; } for (var i = 0; i < $scope.task.files.length; i++) { var file = $scope.task.files[i]; if (!file.isDir && !file.selected) { return false; } } return true; }; $scope.selectFiles = function (type) { if (!$scope.task || !$scope.task.files) { return; } if (type === 'auto') { if ($scope.isAllFileSelected()) { type = 'none'; } else { type = 'all'; } } for (var i = 0; i < $scope.task.files.length; i++) { var file = $scope.task.files[i]; if (file.isDir) { continue; } if (type === 'all') { file.selected = true; } else if (type === 'none') { file.selected = false; } else if (type === 'reverse') { file.selected = !file.selected; } } updateAllDirNodesSelectedStatus(); }; $scope.chooseSpecifiedFiles = function (type) { if (!$scope.task || !$scope.task.files || !ariaNgFileTypes[type]) { return; } var files = $scope.task.files; var extensions = ariaNgFileTypes[type].extensions; var fileIndexes = []; var isAllSelected = true; for (var i = 0; i < files.length; i++) { var file = files[i]; if (file.isDir) { continue; } var extension = ariaNgCommonService.getFileExtension(file.fileName); if (extension) { extension = extension.toLowerCase(); } if (extensions.indexOf(extension) >= 0) { fileIndexes.push(i); if (!file.selected) { isAllSelected = false; } } } for (var i = 0; i < fileIndexes.length; i++) { var index = fileIndexes[i]; var file = files[index]; if (file && !file.isDir) { file.selected = !isAllSelected; } } updateAllDirNodesSelectedStatus(); }; $scope.saveChoosedFiles = function () { if ($scope.context.showChooseFilesToolbar) { $rootScope.loadPromise = setSelectFiles(false); $scope.context.showChooseFilesToolbar = false; } }; $scope.cancelChooseFiles = function () { if ($scope.context.showChooseFilesToolbar) { pauseDownloadTaskRefresh = false; refreshDownloadTask(true); $scope.context.showChooseFilesToolbar = false; } }; $scope.showCustomChooseFileModal = function () { if (!$scope.task || !$scope.task.files) { return; } var files = $scope.task.files; var extensionsMap = {}; for (var i = 0; i < files.length; i++) { var file = files[i]; if (file.isDir) { continue; } var extension = ariaNgCommonService.getFileExtension(file.fileName); if (extension) { extension = extension.toLowerCase(); } var extensionInfo = extensionsMap[extension]; if (!extensionInfo) { var extensionName = extension; if (extensionName.length > 0 && extensionName.charAt(0) === '.') { extensionName = extensionName.substring(1); } extensionInfo = { extension: extensionName, classified: false, selected: false, selectedCount: 0, unSelectedCount: 0 }; extensionsMap[extension] = extensionInfo; } if (file.selected) { extensionInfo.selected = true; extensionInfo.selectedCount++; } else { extensionInfo.unSelectedCount++; } } var allClassifiedExtensions = {}; for (var type in ariaNgFileTypes) { if (!ariaNgFileTypes.hasOwnProperty(type)) { continue; } var extensionTypeName = ariaNgFileTypes[type].name; var allExtensions = ariaNgFileTypes[type].extensions; var extensions = []; for (var i = 0; i < allExtensions.length; i++) { var extension = allExtensions[i]; var extensionInfo = extensionsMap[extension]; if (extensionInfo) { extensionInfo.classified = true; extensions.push(extensionInfo); } } if (extensions.length > 0) { allClassifiedExtensions[type] = { name: extensionTypeName, extensions: extensions }; } } var unClassifiedExtensions = []; for (var extension in extensionsMap) { if (!extensionsMap.hasOwnProperty(extension)) { continue; } var extensionInfo = extensionsMap[extension]; if (!extensionInfo.classified) { unClassifiedExtensions.push(extensionInfo); } } if (unClassifiedExtensions.length > 0) { allClassifiedExtensions.other = { name: 'Other', extensions: unClassifiedExtensions }; } $scope.context.fileExtensions = allClassifiedExtensions; angular.element('#custom-choose-file-modal').modal(); }; $scope.setSelectedExtension = function (selectedExtension, selected) { if (!$scope.task || !$scope.task.files) { return; } var files = $scope.task.files; for (var i = 0; i < files.length; i++) { var file = files[i]; if (file.isDir) { continue; } var extension = ariaNgCommonService.getFileExtension(file.fileName); if (extension) { extension = extension.toLowerCase(); } if (extension !== '.' + selectedExtension) { continue; } file.selected = selected; } updateAllDirNodesSelectedStatus(); }; $('#custom-choose-file-modal').on('hide.bs.modal', function (e) { $scope.context.fileExtensions = null; }); $scope.setSelectedFile = function (updateNodeSelectedStatus) { if (updateNodeSelectedStatus) { updateAllDirNodesSelectedStatus(); } if (!$scope.context.showChooseFilesToolbar) { setSelectFiles(true); } }; $scope.collapseDir = function (dirNode, newValue, forceRecurse) { var nodePath = dirNode.nodePath; if (angular.isUndefined(newValue)) { newValue = !$scope.context.collapsedDirs[nodePath]; } if (newValue || forceRecurse) { for (var i = 0; i < dirNode.subDirs.length; i++) { $scope.collapseDir(dirNode.subDirs[i], newValue); } } if (nodePath) { $scope.context.collapsedDirs[nodePath] = newValue; } }; $scope.collapseAllDirs = function (newValue) { if (!$scope.task || !$scope.task.files) { return; } for (var i = 0; i < $scope.task.files.length; i++) { var node = $scope.task.files[i]; if (!node.isDir) { continue; } $scope.collapseDir(node, newValue, true); } }; $scope.setSelectedNode = function (dirNode) { setSelectedNode(dirNode, dirNode.selected); updateAllDirNodesSelectedStatus(); if (!$scope.context.showChooseFilesToolbar) { $scope.setSelectedFile(false); } }; $scope.changePeerListDisplayOrder = function (type, autoSetReverse) { var oldType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getPeerListDisplayOrder()); var newType = ariaNgCommonService.parseOrderType(type); if (autoSetReverse && newType.type === oldType.type) { newType.reverse = !oldType.reverse; } ariaNgSettingService.setPeerListDisplayOrder(newType.getValue()); }; $scope.isSetPeerListDisplayOrder = function (type) { var orderType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getPeerListDisplayOrder()); var targetType = ariaNgCommonService.parseOrderType(type); return orderType.equals(targetType); }; $scope.getPeerListOrderType = function () { return ariaNgSettingService.getPeerListDisplayOrder(); }; $scope.loadTaskOption = function (task) { $rootScope.loadPromise = aria2TaskService.getTaskOptions(task.gid, function (response) { if (response.success) { $scope.context.options = response.data; } }); }; $scope.setOption = function (key, value, optionStatus) { return aria2TaskService.setTaskOption($scope.task.gid, key, value, function (response) { if (response.success && response.data === 'OK') { optionStatus.setSuccess(); } else { optionStatus.setFailed(response.data.message); } }, true); }; $scope.copySelectedRowText = function () { if (!currentRowTriggeredMenu) { return; } var name = currentRowTriggeredMenu.find('.setting-key > span').text().trim(); var value = ''; currentRowTriggeredMenu.find('.setting-value > span').each(function (i, element) { if (i > 0) { value += '\n'; } value += angular.element(element).text().trim(); }); if (ariaNgSettingService.getIncludePrefixWhenCopyingFromTaskDetails()) { var info = name + ': ' + value; clipboard.copyText(info); } else { clipboard.copyText(value); }; }; if (ariaNgSettingService.getDownloadTaskRefreshInterval() > 0) { downloadTaskRefreshPromise = $interval(function () { if ($scope.task && ($scope.task.status === 'complete' || $scope.task.status === 'error' || $scope.task.status === 'removed')) { $interval.cancel(downloadTaskRefreshPromise); return; } refreshDownloadTask(true); }, ariaNgSettingService.getDownloadTaskRefreshInterval()); } $scope.$on('$destroy', function () { if (downloadTaskRefreshPromise) { $interval.cancel(downloadTaskRefreshPromise); } }); $scope.onOverviewMouseDown = function () { angular.element('#overview-items .row[contextmenu-bind!="true"]').contextmenu({ target: '#task-overview-contextmenu', before: function (e, context) { currentRowTriggeredMenu = context; } }).attr('contextmenu-bind', 'true'); }; angular.element('#task-overview-contextmenu').on('hide.bs.context', function () { currentRowTriggeredMenu = null; }); $rootScope.loadPromise = refreshDownloadTask(false); }]); }()); ================================================ FILE: src/scripts/core/__core.js ================================================ /*! * AriaNg * https://github.com/mayswind/AriaNg */ (function () { 'use strict'; var ltIE10 = (function () { var browserName = navigator.appName; var browserVersions = navigator.appVersion.split(';'); var browserVersion = (browserVersions && browserVersions.length > 1 ? browserVersions[1].replace(/[ ]/g, '') : ''); if (browserName === 'Microsoft Internet Explorer' && (browserVersion === 'MSIE6.0' || browserVersion === 'MSIE7.0' || browserVersion === 'MSIE8.0' || browserVersion === 'MSIE9.0')) { return true; } return false; })(); if (ltIE10) { var tip = document.createElement('div'); tip.className = 'alert alert-danger'; tip.innerHTML = 'Sorry, AriaNg cannot support this browser, please upgrade your browser!'; document.getElementById('content-wrapper').appendChild(tip); } }()); ================================================ FILE: src/scripts/core/__fix.js ================================================ (function () { 'use strict'; //copy from AdminLTE app.js var fixContentWrapperHeight = function () { var windowHeight = $(window).height(); var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight(); $('.content-body').css('height', windowHeight - neg); }; $(window, '.wrapper').resize(function () { fixContentWrapperHeight(); setInterval(function(){ fixContentWrapperHeight(); }, 1); }); fixContentWrapperHeight(); }()); ================================================ FILE: src/scripts/core/app.js ================================================ (function () { 'use strict'; var ariaNg = angular.module('ariaNg', [ 'ngRoute', 'ngSanitize', 'ngTouch', 'ngMessages', 'ngCookies', 'ngAnimate', 'pascalprecht.translate', 'angularMoment', 'ngWebSocket', 'utf8-base64', 'LocalStorageModule', 'ui-notification', 'angularBittorrentPeerid', 'cgBusy', 'angularPromiseButtons', 'oitozero.ngSweetAlert', 'angular-clipboard', 'inputDropdown', angularDragula(angular) ]); }()); ================================================ FILE: src/scripts/core/root.js ================================================ (function () { 'use strict'; angular.module('ariaNg').run(['$window', '$rootScope', '$location', '$document', '$timeout', 'ariaNgCommonService', 'ariaNgKeyboardService', 'ariaNgNotificationService', 'ariaNgLogService', 'ariaNgSettingService', 'aria2TaskService', function ($window, $rootScope, $location, $document, $timeout, ariaNgCommonService, ariaNgKeyboardService, ariaNgNotificationService, ariaNgLogService, ariaNgSettingService, aria2TaskService) { var autoRefreshAfterPageLoad = false; var isAnyTextboxOrTextareaFocus = function () { return angular.element('input[type="text"],textarea').is(':focus'); }; var isUrlMatchUrl2 = function (url, url2) { if (url === url2) { return true; } var index = url2.indexOf(url); if (index !== 0) { return false; } var lastPart = url2.substring(url.length); if (lastPart.indexOf('/') === 0) { return true; } return false; }; var setLightTheme = function () { $rootScope.currentTheme = 'light'; angular.element('body').removeClass('theme-dark'); }; var setDarkTheme = function () { $rootScope.currentTheme = 'dark'; angular.element('body').addClass('theme-dark'); }; var setThemeBySystemSettings = function () { if (!ariaNgSettingService.isBrowserSupportDarkMode()) { setLightTheme(); return; } var matchPreferColorScheme = $window.matchMedia('(prefers-color-scheme: dark)'); ariaNgLogService.info('[root.setThemeBySystemSettings] system uses ' + (matchPreferColorScheme.matches ? 'dark' : 'light') + ' theme'); if (matchPreferColorScheme.matches) { setDarkTheme(); } else { setLightTheme(); } }; var initTheme = function () { if (ariaNgSettingService.getTheme() === 'system') { setThemeBySystemSettings(); } else if (ariaNgSettingService.getTheme() === 'dark') { setDarkTheme(); } else { setLightTheme(); } }; var initCheck = function () { var browserFeatures = ariaNgSettingService.getBrowserFeatures(); if (!browserFeatures.localStroage) { ariaNgLogService.warn('[root.initCheck] LocalStorage is not supported!'); } if (!browserFeatures.cookies) { ariaNgLogService.warn('[root.initCheck] Cookies is not supported!'); } if (!ariaNgSettingService.isBrowserSupportStorage()) { angular.element('body').prepend('
'); angular.element('.main-sidebar').addClass('blur'); angular.element('.navbar').addClass('blur'); angular.element('.content-body').addClass('blur'); ariaNgNotificationService.notifyInPage('', 'You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.', { type: 'error', delay: false }); throw new Error('You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.'); } }; var initNavbar = function () { angular.element('section.sidebar > ul > li[data-href-match] > a').click(function () { angular.element('section.sidebar > ul li').removeClass('active'); angular.element(this).parent().addClass('active'); }); angular.element('section.sidebar > ul > li.treeview > ul.treeview-menu > li[data-href-match] > a').click(function () { angular.element('section.sidebar > ul li').removeClass('active'); angular.element(this).parent().addClass('active').parent().parent().addClass('active'); }); }; var setNavbarSelected = function (location) { angular.element('section.sidebar > ul li').removeClass('active'); angular.element('section.sidebar > ul > li[data-href-match]').each(function (index, element) { var match = angular.element(element).attr('data-href-match'); if (isUrlMatchUrl2(match, location)) { angular.element(element).addClass('active'); } }); angular.element('section.sidebar > ul > li.treeview > ul.treeview-menu > li[data-href-match]').each(function (index, element) { var match = angular.element(element).attr('data-href-match'); if (isUrlMatchUrl2(match, location)) { angular.element(element).addClass('active').parent().parent().addClass('active'); } }); }; var showSidebar = function () { angular.element('body').removeClass('sidebar-collapse').addClass('sidebar-open'); }; var hideSidebar = function () { angular.element('body').addClass('sidebar-collapse').removeClass('sidebar-open'); }; var isSidebarShowInSmallScreen = function () { return angular.element('body').hasClass('sidebar-open'); }; $rootScope.currentTheme = 'light'; $rootScope.searchContext = { text: '', setSearchBoxFocused: function () { angular.element('#search-box').focus(); } }; $rootScope.taskContext = { rpcStatus: 'Connecting', list: [], selected: {}, enableSelectAll: false, getSelectedTaskIds: function () { var result = []; if (!this.list || !this.selected || this.list.length < 1) { return result; } for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (this.selected[task.gid]) { result.push(task.gid); } } return result; }, getSelectedTasks: function () { var result = []; if (!this.list || !this.selected || this.list.length < 1) { return result; } for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (this.selected[task.gid]) { result.push(task); } } return result; }, isAllSelected: function () { var isAllSelected = true; for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } if (!this.selected[task.gid]) { isAllSelected = false; break; } } return isAllSelected; }, hasRetryableTask: function () { for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } if ($rootScope.isTaskRetryable(task)) { return true; } } return false; }, hasCompletedTask: function () { for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } if (task.status === 'complete') { return true; } } return false; }, selectAll: function () { if (!this.list || !this.selected || this.list.length < 1) { return; } if (!this.enableSelectAll) { return; } var isAllSelected = this.isAllSelected(); for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } this.selected[task.gid] = !isAllSelected; } }, selectAllFailed: function () { if (!this.list || !this.selected || this.list.length < 1) { return; } if (!this.enableSelectAll) { return; } var isAllFailedSelected = true; for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } if (!$rootScope.isTaskRetryable(task)) { continue; } if (!this.selected[task.gid]) { isAllFailedSelected = false; } } for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } if (!$rootScope.isTaskRetryable(task)) { this.selected[task.gid] = false; continue; } this.selected[task.gid] = !isAllFailedSelected; } }, selectAllCompleted: function () { if (!this.list || !this.selected || this.list.length < 1) { return; } if (!this.enableSelectAll) { return; } var isAllFailedSelected = true; for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } if (task.status !== 'complete') { continue; } if (!this.selected[task.gid]) { isAllFailedSelected = false; } } for (var i = 0; i < this.list.length; i++) { var task = this.list[i]; if (!$rootScope.filterTask(task)) { continue; } if (task.status !== 'complete') { this.selected[task.gid] = false; continue; } this.selected[task.gid] = !isAllFailedSelected; } } }; $rootScope.filterTask = function (task) { if (!task || !angular.isString(task.taskName)) { return false; } if (!$rootScope.searchContext || !$rootScope.searchContext.text) { return true; } return (task.taskName.toLowerCase().indexOf($rootScope.searchContext.text.toLowerCase()) >= 0); }; $rootScope.isTaskRetryable = function (task) { return task && task.status === 'error' && task.errorDescription && !task.bittorrent; }; $rootScope.keydownActions = { find: function (event) { if (event.preventDefault) { event.preventDefault(); } $rootScope.searchContext.setSearchBoxFocused(); return false; } }; $rootScope.swipeActions = { leftSwipe: function () { if (!ariaNgSettingService.getSwipeGesture()) { return; } if (isSidebarShowInSmallScreen()) { hideSidebar(); return; } if (!this.extendLeftSwipe || (angular.isFunction(this.extendLeftSwipe) && !this.extendLeftSwipe())) { hideSidebar(); } }, rightSwipe: function () { if (!ariaNgSettingService.getSwipeGesture()) { return; } if (!this.extendRightSwipe || (angular.isFunction(this.extendRightSwipe) && !this.extendRightSwipe())) { showSidebar(); } } }; $rootScope.refreshPage = function () { $window.location.reload(); }; $rootScope.setAutoRefreshAfterPageLoad = function () { autoRefreshAfterPageLoad = true; }; $rootScope.setTheme = function (theme) { if (theme === 'system') { setThemeBySystemSettings(); } else if (theme === 'dark') { setDarkTheme(); } else { setLightTheme(); } }; $window.addEventListener('keydown', function (event) { if (!ariaNgSettingService.getKeyboardShortcuts()) { return; } var isTextboxOrTextareaFocus = isAnyTextboxOrTextareaFocus(); if (ariaNgKeyboardService.isCtrlAPressed(event) && !isTextboxOrTextareaFocus) { if (angular.isFunction($rootScope.keydownActions.selectAll)) { return $rootScope.keydownActions.selectAll(event); } } else if (ariaNgKeyboardService.isCtrlFPressed(event)) { if (angular.isFunction($rootScope.keydownActions.find)) { return $rootScope.keydownActions.find(event); } } else if (ariaNgKeyboardService.isDeletePressed(event) && !isTextboxOrTextareaFocus) { if (angular.isFunction($rootScope.keydownActions.delete)) { return $rootScope.keydownActions.delete(event); } } }, true); ariaNgSettingService.onFirstAccess(function () { ariaNgNotificationService.notifyInPage('', 'Tap to configure and get started with AriaNg.', { delay: false, onClose: function () { $location.path('/settings/ariang'); } }); }); aria2TaskService.onFirstSuccess(function (event) { ariaNgNotificationService.notifyInPage('', 'is connected', { type: 'success', contentPrefix: event.rpcName + ' ' }); }); aria2TaskService.onConnectionSuccess(function () { $timeout(function () { if ($rootScope.taskContext.rpcStatus !== 'Connected') { $rootScope.taskContext.rpcStatus = 'Connected'; } }); }); aria2TaskService.onConnectionFailed(function () { $timeout(function () { if ($rootScope.taskContext.rpcStatus !== 'Disconnected') { $rootScope.taskContext.rpcStatus = 'Disconnected'; } }); }); aria2TaskService.onConnectionReconnecting(function () { $timeout(function () { if ($rootScope.taskContext.rpcStatus !== 'Reconnecting') { $rootScope.taskContext.rpcStatus = 'Reconnecting'; } }); }); aria2TaskService.onConnectionWaitingToReconnect(function () { $timeout(function () { if ($rootScope.taskContext.rpcStatus !== 'Waiting to reconnect') { $rootScope.taskContext.rpcStatus = 'Waiting to reconnect'; } }); }); aria2TaskService.onTaskCompleted(function (event) { ariaNgNotificationService.notifyTaskComplete(event.task); }); aria2TaskService.onBtTaskCompleted(function (event) { ariaNgNotificationService.notifyBtTaskComplete(event.task); }); aria2TaskService.onTaskErrorOccur(function (event) { ariaNgNotificationService.notifyTaskError(event.task); }); $rootScope.$on('$locationChangeStart', function (event) { ariaNgCommonService.closeAllDialogs(); $rootScope.loadPromise = null; delete $rootScope.keydownActions.selectAll; delete $rootScope.keydownActions.delete; delete $rootScope.swipeActions.extendLeftSwipe; delete $rootScope.swipeActions.extendRightSwipe; if (angular.isArray($rootScope.taskContext.list) && $rootScope.taskContext.list.length > 0) { $rootScope.taskContext.list.length = 0; } if (angular.isObject($rootScope.taskContext.selected)) { $rootScope.taskContext.selected = {}; } $rootScope.taskContext.enableSelectAll = false; }); $rootScope.$on('$routeChangeStart', function (event, next, current) { var location = $location.path(); setNavbarSelected(location); $document.unbind('keypress'); }); if (ariaNgSettingService.isBrowserSupportDarkMode()) { var matchPreferColorScheme = $window.matchMedia('(prefers-color-scheme: dark)'); matchPreferColorScheme.addEventListener('change', function (e) { ariaNgLogService.info('[root] system switches to ' + (e.matches ? 'dark' : 'light') + ' theme'); if (ariaNgSettingService.getTheme() === 'system') { if (e.matches) { setDarkTheme(); } else { setLightTheme(); } } }); } $rootScope.$on('$locationChangeSuccess', function (event, newUrl) { if (autoRefreshAfterPageLoad) { $window.location.reload(); } }); initTheme(); initCheck(); initNavbar(); }]); }()); ================================================ FILE: src/scripts/core/router.js ================================================ (function () { 'use strict'; angular.module('ariaNg').config(['$routeProvider', function ($routeProvider) { $routeProvider .when('/downloading', { templateUrl: 'views/list.html', controller: 'DownloadListController' }) .when('/waiting', { templateUrl: 'views/list.html', controller: 'DownloadListController' }) .when('/stopped', { templateUrl: 'views/list.html', controller: 'DownloadListController' }) .when('/new', { templateUrl: 'views/new.html', controller: 'NewTaskController' }) .when('/new/:url', { template: '', controller: 'CommandController' }) .when('/task/detail/:gid', { templateUrl: 'views/task-detail.html', controller: 'TaskDetailController' }) .when('/settings/ariang', { templateUrl: 'views/settings-ariang.html', controller: 'AriaNgSettingsController' }) .when('/settings/ariang/:extendType', { templateUrl: 'views/settings-ariang.html', controller: 'AriaNgSettingsController' }) .when('/settings/aria2/basic', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/aria2/http-ftp-sftp', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/aria2/http', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/aria2/ftp-sftp', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/aria2/bt', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/aria2/metalink', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/aria2/rpc', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/aria2/advanced', { templateUrl: 'views/settings-aria2.html', controller: 'Aria2SettingsController' }) .when('/settings/rpc/set', { template: '', controller: 'CommandController' }) .when('/settings/rpc/set/:protocol/:host/:port/:interface/:secret?', { template: '', controller: 'CommandController' }) .when('/debug', { templateUrl: 'views/debug.html', controller: 'AriaNgDebugController' }) .when('/status', { templateUrl: 'views/status.html', controller: 'Aria2StatusController' }) .otherwise({ redirectTo: '/downloading' }); }]); }()); ================================================ FILE: src/scripts/directives/autoFocus.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngAutoFocus', ['$timeout', function ($timeout) { return { restrict: 'A', link: function (scope, element) { $timeout(function () { element[0].focus(); }); } }; }]); }()); ================================================ FILE: src/scripts/directives/blobDownload.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngBlobDownload', ['ariaNgFileService', function (ariaNgFileService) { return { restrict: 'A', scope: { ngBlobDownload: '=ngBlobDownload', ngFileName: '@', ngContentType: '@' }, link: function (scope, element) { scope.$watch('ngBlobDownload', function (value) { if (value) { ariaNgFileService.saveFileContent(value, element, { fileName: scope.ngFileName, contentType: scope.ngContentType }); } }); } }; }]); }()); ================================================ FILE: src/scripts/directives/chart.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngChart', ['$window', 'chartTheme', function ($window, chartTheme) { return { restrict: 'E', template: '
', scope: { options: '=ngData', theme: '=ngTheme' }, link: function (scope, element, attrs) { var options = {}; angular.extend(options, attrs); var wrapper = element.find('div'); var wrapperParent = element.parent(); var parentHeight = wrapperParent.height(); var height = parseInt(attrs.height) || parentHeight || 200; wrapper.css('height', height + 'px'); var chart = echarts.init(wrapper[0], chartTheme.get(scope.theme)); var setOptions = function (value) { chart.setOption(value); }; angular.element($window).on('resize', function () { chart.resize(); scope.$apply(); }); scope.$watch('options', function (value) { if (value) { setOptions(value); } }, true); scope.$on('$destroy', function() { if (chart && !chart.isDisposed()) { chart.dispose(); } }); } }; }]).directive('ngPopChart', ['$window', 'chartTheme', function ($window, chartTheme) { return { restrict: 'A', scope: { options: '=ngData', theme: '=ngTheme' }, link: function (scope, element, attrs) { var options = { ngPopoverClass: '', ngContainer: 'body', ngTrigger: 'click', ngPlacement: 'top' }; angular.extend(options, attrs); var chart = null; var loadingIcon = '
'; element.popover({ container: options.ngContainer, content: '
' + loadingIcon +'
', html: true, placement: options.ngPlacement, template: '', trigger: options.ngTrigger }).on('shown.bs.popover', function () { var wrapper = angular.element('.chart-pop'); var wrapperParent = wrapper.parent(); var parentHeight = wrapperParent.height(); wrapper.empty(); var height = parseInt(attrs.height) || parentHeight || 200; wrapper.css('height', height + 'px'); chart = echarts.init(wrapper[0], chartTheme.get(scope.theme)); }).on('hide.bs.popover', function () { if (chart && !chart.isDisposed()) { chart.dispose(); } }).on('hidden.bs.popover', function () { angular.element('.chart-pop').empty().append(loadingIcon); }); var setOptions = function (value) { if (chart && !chart.isDisposed()) { chart.setOption(value); } }; scope.$watch('options', function (value) { if (value) { setOptions(value); } }, true); } }; }]).factory('chartTheme', ['chartDefaultTheme', 'chartDarkTheme', function (chartDefaultTheme, chartDarkTheme) { var themes = { defaultTheme: chartDefaultTheme, darkTheme: chartDarkTheme, }; return { get: function (name) { if (name !== 'default' && themes[name + 'Theme']) { return angular.extend({}, themes.defaultTheme, themes[name + 'Theme']); } else { return themes.defaultTheme; } } }; }]).factory('chartDefaultTheme', function () { return { color: ['#74a329', '#3a89e9'], legend: { top: 'bottom' }, toolbox: { show: false }, tooltip: { show: true, trigger: 'axis', backgroundColor: 'rgba(0, 0, 0, 0.7)', axisPointer: { type: 'line', lineStyle: { color: '#233333', type: 'dashed', width: 1 }, crossStyle: { color: '#008acd', width: 1 }, shadowStyle: { color: 'rgba(200,200,200,0.2)' } } }, grid: { x: 40, y: 20, x2: 30, y2: 50 }, categoryAxis: { axisLine: { show: false }, axisTick: { show: false }, splitLine: { lineStyle: { color: '#f3f3f3' } } }, valueAxis: { axisLine: { show: false }, axisTick: { show: false }, splitLine: { lineStyle: { color: '#f3f3f3' } }, splitArea: { show: false } }, line: { itemStyle: { normal: { lineStyle: { width: 2, type: 'solid' } } }, smooth: true, symbolSize: 6 }, animationDuration: 500 }; }).factory('chartDarkTheme', function () { return { tooltip: { show: true, trigger: 'axis', backgroundColor: 'rgba(0, 0, 0, 0.7)', axisPointer: { type: 'line', lineStyle: { color: '#ddd', type: 'dashed', width: 1 }, crossStyle: { color: '#ddd', width: 1 }, shadowStyle: { color: 'rgba(200,200,200,0.2)' } } }, categoryAxis: { axisLine: { show: false }, axisTick: { show: false }, splitLine: { lineStyle: { color: '#333' } } }, valueAxis: { axisLine: { show: false }, axisTick: { show: false }, axisLabel: { show: true, textStyle: { color: '#eee', } }, splitLine: { lineStyle: { color: '#333' } }, splitArea: { show: false } } }; }); }()); ================================================ FILE: src/scripts/directives/exportCommandApiDialog.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngExportCommandApiDialog', ['clipboard', 'ariaNgCommonService', function (clipboard, ariaNgCommonService) { return { restrict: 'E', templateUrl: 'views/export-command-api-dialog.html', replace: true, scope: { options: '=' }, link: function (scope, element, attrs) { scope.context = { trueFalseOptions: [{name: 'Enabled', value: true}, {name: 'Disabled', value: false}], baseUrl: ariaNgCommonService.getFullPageUrl(), commandAPIUrl: null, pauseOnAdded: true, isCopied: false }; var getBaseUrl = function () { var baseUrl = scope.context.baseUrl; if (baseUrl.indexOf('#') >= 0) { baseUrl = baseUrl.substring(0, baseUrl.indexOf('#')); } return baseUrl; }; var getNewTaskCommandAPIUrl = function (task) { var commandAPIUrl = getBaseUrl() + '#!/new/task?' + 'url=' + ariaNgCommonService.base64UrlEncode(task.urls[0]); if (scope.context.pauseOnAdded) { commandAPIUrl += '&pause=true'; } if (task.options) { for (var key in task.options) { if (!task.options.hasOwnProperty(key)) { continue; } commandAPIUrl += '&' + key + '=' + task.options[key]; } } return commandAPIUrl; }; var getNewTasksCommandAPIUrl = function (tasks) { var commandAPIUrls = ''; for (var i = 0; i < tasks.length; i++) { if (i > 0) { commandAPIUrls += '\n'; } commandAPIUrls += getNewTaskCommandAPIUrl(tasks[i]); } return commandAPIUrls; }; var getSettingCommandAPIUrl = function (setting) { var commandAPIUrl = getBaseUrl() + '#!/settings/rpc/set?' + 'protocol=' + setting.protocol + '&host=' + setting.rpcHost + '&port=' + setting.rpcPort + '&interface=' + setting.rpcInterface; if (setting.secret) { commandAPIUrl += '&secret=' + ariaNgCommonService.base64UrlEncode(setting.secret); } return commandAPIUrl; }; scope.generateCommandAPIUrl = function () { if (!scope.options) { return; } if (scope.options.type === 'new-task') { scope.context.commandAPIUrl = getNewTasksCommandAPIUrl(scope.options.data); } else if (scope.options.type === 'setting') { scope.context.commandAPIUrl = getSettingCommandAPIUrl(scope.options.data); } scope.context.isCopied = false; }; scope.copyCommandAPI = function () { clipboard.copyText(scope.context.commandAPIUrl, { container: angular.element(element)[0] }); scope.context.isCopied = true; }; angular.element(element).on('hidden.bs.modal', function () { scope.$apply(function () { scope.options = null; scope.context.commandAPIUrl = null; scope.context.isCopied = false; }); }); scope.$watch('options', function (options) { if (options) { scope.generateCommandAPIUrl(); scope.context.isCopied = false; angular.element(element).modal('show'); } }, true); } }; }]); }()); ================================================ FILE: src/scripts/directives/indeterminate.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngIndeterminate', function () { return { restrict: 'A', scope: { indeterminate: '=ngIndeterminate' }, link: function (scope, element) { scope.$watch('indeterminate', function () { element[0].indeterminate = (scope.indeterminate === 'true' || scope.indeterminate === true); }); } }; }); }()); ================================================ FILE: src/scripts/directives/pieceBar.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngPieceBar', ['aria2TaskService', function (aria2TaskService) { return { restrict: 'E', template: '', replace: true, scope: { bitField: '=', pieceCount: '=', color: '@' }, link: function (scope, element) { var redraw = function () { var canvas = element[0]; var combinedPieces = aria2TaskService.getCombinedPieces(scope.bitField, scope.pieceCount); var context = canvas.getContext('2d'); context.fillStyle = scope.color || '#000'; context.clearRect(0, 0, canvas.width, canvas.height); var posX = 0; var width = canvas.width; var height = canvas.height; for (var i = 0; i < combinedPieces.length; i++) { var piece = combinedPieces[i]; var pieceWidth = piece.count / scope.pieceCount * width; if (piece.isCompleted) { context.fillRect(posX, 0, pieceWidth, height); } posX += pieceWidth; } }; scope.$watch('bitField', function () { redraw(); }); scope.$watch('pieceNumber', function () { redraw(); }); } }; }]); }()); ================================================ FILE: src/scripts/directives/pieceMap.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngPieceMap', ['aria2TaskService', function (aria2TaskService) { return { restrict: 'E', template: '
', replace: true, scope: { bitField: '=', pieceCount: '=' }, link: function (scope, element) { var pieces = []; var currentPieceStatus = []; var redraw = function () { currentPieceStatus = aria2TaskService.getPieceStatus(scope.bitField, scope.pieceCount); pieces.length = 0; element.empty(); var pieceCount = Math.max(1, currentPieceStatus.length); for (var i = 0; i < pieceCount; i++) { var piece = angular.element('
'); pieces.push(piece); element.append(piece); } }; var refresh = function () { var newPieceStatus = aria2TaskService.getPieceStatus(scope.bitField, scope.pieceCount); if (!currentPieceStatus || !newPieceStatus || currentPieceStatus.length !== newPieceStatus.length || newPieceStatus.length !== pieces.length) { redraw(); return; } for (var i = 0; i < pieces.length; i++) { if (currentPieceStatus[i] !== newPieceStatus[i]) { if (newPieceStatus[i]) { pieces[i].addClass('piece-completed'); } else { pieces[i].removeClass('piece-completed'); } } } currentPieceStatus = newPieceStatus; }; scope.$watch('bitField', function () { refresh(); }); scope.$watch('pieceCount', function () { redraw(); }); } }; }]); }()); ================================================ FILE: src/scripts/directives/placeholder.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngPlaceholder', function () { return { restrict: 'A', scope: { placeholder: '=ngPlaceholder' }, link: function (scope, element) { scope.$watch('placeholder', function () { element[0].placeholder = scope.placeholder; }); } }; }); }()); ================================================ FILE: src/scripts/directives/setting.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngSetting', ['$timeout', '$q', 'ariaNgConstants', 'ariaNgLocalizationService', 'ariaNgKeyboardService', 'aria2SettingService', function ($timeout, $q, ariaNgConstants, ariaNgLocalizationService, ariaNgKeyboardService, aria2SettingService) { return { restrict: 'E', templateUrl: 'views/setting.html', require: '?ngModel', replace: true, scope: { option: '=', ngModel: '=', defaultValue: '=?', fixedValue: '=?', onChangeValue: '&' }, link: function (scope, element, attrs, ngModel) { var pendingSaveRequest = null; var options = { showPlaceholderCount: false, deleteKeyAlwaysChangeValue: false, lazySaveTimeout: ariaNgConstants.lazySaveTimeout, errorTooltipPlacement: 'top', errorTooltipDelay: ariaNgConstants.errorTooltipDelay }; angular.extend(options, attrs); var loadHistory = function () { if (!scope.option || !scope.option.showHistory) { return; } scope.history = aria2SettingService.getSettingHistory(scope.option.key); }; var destroyTooltip = function () { angular.element(element).tooltip('destroy'); }; var showTooltip = function (cause, type, causeParams) { if (!cause) { return; } $timeout(function () { var currentValue = scope.optionStatus.getValue(); if (currentValue !== 'failed' && currentValue !== 'error') { return; } angular.element(element).tooltip({ animation: false, title: ariaNgLocalizationService.getLocalizedText(cause, causeParams), trigger: 'focus', placement: 'auto ' + options.errorTooltipPlacement, container: element, template: '' }).tooltip('show'); }, options.errorTooltipDelay); }; var getHumanReadableSize = function (size) { if (!size || parseInt(size).toString() != size) { return size; } var sizeUnits = ['', 'K', 'M', 'G']; var unitIndex = 0; for (var i = 0; i < sizeUnits.length; i++) { if ((size < 1024) || (size % 1024 !== 0)) { break; } size = size / 1024; unitIndex++; } return size + sizeUnits[unitIndex]; }; var getTotalCount = function (itemsText, separator, trim) { if (!itemsText || !separator || !angular.isString(itemsText)) { return 0; } var items = itemsText.split(separator); var totalCount = items.length; if (trim) { for (var i = 0; i < items.length; i++) { if (!items[i] || items[i] === '' || items[i].trim() === '') { totalCount--; } } } return totalCount; }; var getHumanReadableValue = function (value) { if (scope.option.suffix === 'Bytes') { return getHumanReadableSize(value); } return value; }; scope.optionStatus = (function () { var value = 'ready'; return { getValue: function () { return value; }, setReady: function () { destroyTooltip(); value = 'ready'; }, setPending: function () { destroyTooltip(); value = 'pending'; }, setSaving: function () { destroyTooltip(); value = 'pending'; }, setSuccess: function () { destroyTooltip(); value = 'success'; }, setFailed: function (cause) { destroyTooltip(); value = 'failed'; showTooltip(cause, 'warning'); }, setError: function (cause, causeParams) { destroyTooltip(); value = 'error'; showTooltip(cause, 'error', causeParams); }, getStatusFeedbackStyle: function () { if (value === 'success') { return 'has-success'; } else if (value === 'failed') { return 'has-warning'; } else if (value === 'error') { return 'has-error'; } else { return ''; } }, getStatusIcon: function () { if (value === 'pending') { return 'fa-hourglass-start'; } else if (value === 'saving') { return 'fa-spin fa-pulse fa-spinner'; } else if (value === 'success') { return 'fa-check'; } else if (value === 'failed') { return 'fa-exclamation'; } else if (value === 'error') { return 'fa-times'; } else { return ''; } }, isShowStatusIcon: function () { return this.getStatusIcon() !== ''; } }; })(); scope.getTotalCount = function () { var fixedValueCount = getTotalCount(scope.fixedValue, scope.option.separator, scope.option.trimCount); var inputValueCount = getTotalCount(scope.optionValue, scope.option.separator, scope.option.trimCount); if (!scope.optionValue && scope.showPlaceholderCount && scope.placeholderItemCount) { inputValueCount = scope.placeholderItemCount; } return fixedValueCount + inputValueCount; }; scope.changeValue = function (optionValue, lazySave) { if (pendingSaveRequest) { $timeout.cancel(pendingSaveRequest); } scope.optionValue = optionValue; scope.optionStatus.setReady(); if (!scope.option || !scope.option.key || scope.option.readonly) { return; } if (scope.option.required && optionValue === '') { scope.optionStatus.setError('Option value cannot be empty!'); return; } if (optionValue !== '' && scope.option.type === 'integer' && !/^-?\d+$/.test(optionValue)) { scope.optionStatus.setError('Input number is invalid!'); return; } if (optionValue !== '' && scope.option.type === 'float' && !/^-?(\d*\.)?\d+$/.test(optionValue)) { scope.optionStatus.setError('Input number is invalid!'); return; } if (optionValue !== '' && (scope.option.type === 'integer' || scope.option.type === 'float') && (angular.isDefined(scope.option.min) || angular.isDefined(scope.option.max))) { var number = optionValue; if (scope.option.type === 'integer') { number = parseInt(optionValue); } else if (scope.option.type === 'float') { number = parseFloat(optionValue); } if (angular.isDefined(scope.option.min) && number < scope.option.min) { scope.optionStatus.setError('Input number is below min value!', { value: scope.option.min }); return; } if (angular.isDefined(scope.option.max) && number > scope.option.max) { scope.optionStatus.setError('Input number is above max value!', { value: scope.option.max }); return; } } if (optionValue !== '' && angular.isDefined(scope.option.pattern) && !(new RegExp(scope.option.pattern).test(optionValue))) { scope.optionStatus.setError('Input value is invalid!'); return; } var data = { key: scope.option.key, value: optionValue, optionStatus: scope.optionStatus }; var invokeChange = function () { scope.optionStatus.setSaving(); scope.onChangeValue(data); }; if (scope.onChangeValue) { if (lazySave) { scope.optionStatus.setPending(); pendingSaveRequest = $timeout(function () { invokeChange(); }, options.lazySaveTimeout); } else { invokeChange(); } } }; scope.inputKeyUp = function (event, lazySave) { if (options.deleteKeyAlwaysChangeValue === true || options.deleteKeyAlwaysChangeValue === 'true') { if (ariaNgKeyboardService.isBackspacePressed(event) || ariaNgKeyboardService.isDeletePressed(event)) { if (scope.optionValue && scope.optionValue !== '') { return; // onChange event has been triggered } scope.changeValue('', lazySave); } } }; scope.filterHistory = function (userInput) { var result = []; if (scope.history && userInput) { for (var i = 0; i < scope.history.length; i++) { if (scope.history[i].indexOf(userInput) === 0) { result.push(scope.history[i]); } } } return $q.resolve(result); }; if (ngModel) { scope.$watch(function () { return ngModel.$viewValue; }, function (value) { scope.optionValue = getHumanReadableValue(value); }); } scope.$watch('option', function () { loadHistory(); element.find('[data-toggle="popover"]').popover(); }); scope.$watch('defaultValue', function (value) { var displayValue = value; if (scope.option && scope.option.options) { for (var i = 0; i < scope.option.options.length; i++) { var optionItem = scope.option.options[i]; if (optionItem.value === value) { displayValue = optionItem.name; break; } } } scope.placeholder = getHumanReadableValue(displayValue); if (scope.option) { scope.placeholderItemCount = getTotalCount(scope.placeholder, scope.option.separator, scope.option.trimCount); } else { scope.placeholderItemCount = 0; } }); scope.showPlaceholderCount = options.showPlaceholderCount === true || options.showPlaceholderCount === 'true'; loadHistory(); } }; }]); }()); ================================================ FILE: src/scripts/directives/settingDialog.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngSettingDialog', ['ariaNgCommonService', 'aria2SettingService', function (ariaNgCommonService, aria2SettingService) { return { restrict: 'E', templateUrl: 'views/setting-dialog.html', replace: true, scope: { setting: '=' }, link: function (scope, element, attrs) { scope.context = { isLoading: false, availableOptions: [], globalOptions: [] }; scope.setGlobalOption = function (key, value, optionStatus) { return aria2SettingService.setGlobalOption(key, value, function (response) { if (response.success && response.data === 'OK') { optionStatus.setSuccess(); } else { optionStatus.setFailed(response.data.message); } }, true); }; var loadOptions = function (type) { var keys = aria2SettingService.getAria2QuickSettingsAvailableOptions(type); if (!keys) { ariaNgCommonService.showError('Type is illegal!'); return; } scope.context.availableOptions = aria2SettingService.getSpecifiedOptions(keys); }; var loadAria2OptionsValue = function () { scope.context.isLoading = true; return aria2SettingService.getGlobalOption(function (response) { scope.context.isLoading = false; if (response.success) { scope.context.globalOptions = response.data; } }); }; angular.element(element).on('hidden.bs.modal', function () { scope.$apply(function () { scope.setting = null; scope.context.availableOptions = []; scope.context.globalOptions = []; }); }); scope.$watch('setting', function (setting) { if (setting) { loadOptions(setting.type); loadAria2OptionsValue(); angular.element(element).modal('show'); } }, true); } }; }]); }()); ================================================ FILE: src/scripts/directives/tooltip.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngTooltip', function () { return { restrict: 'A', scope: { title: '@ngTooltip' }, link: function (scope, element, attrs) { var options = { ngTooltipIf: true, ngTooltipPlacement: 'top', ngTooltipContainer: null, ngTooltipTrigger: 'hover' }; angular.extend(options, attrs); var showTooltip = options.ngTooltipIf === true || options.ngTooltipIf === 'true'; var addTooltip = function () { angular.element(element).tooltip({ title: scope.title, placement: options.ngTooltipPlacement, container: options.ngTooltipContainer, trigger: options.ngTooltipTrigger, delay: { show: 100, hide: 0 } }); }; var refreshTooltip = function () { angular.element(element).attr('title', scope.title).tooltip('fixTitle'); }; var removeTooltip = function () { angular.element(element).tooltip('destroy'); }; if (showTooltip) { addTooltip(); } scope.$watch('title', function () { if (showTooltip) { refreshTooltip(); } }); scope.$watch('ngTooltipIf', function (value) { if (angular.isUndefined(value)) { return; } value = (value === true || value === 'true'); if (showTooltip === value) { return; } if (value) { addTooltip(); } else { removeTooltip(); } showTooltip = value; }); } }; }); }()); ================================================ FILE: src/scripts/directives/validUrls.js ================================================ (function () { 'use strict'; angular.module('ariaNg').directive('ngValidUrls', ['ariaNgCommonService', function (ariaNgCommonService) { var DIRECTIVE_ID = 'invalidUrls'; return { restrict: 'A', require: '?ngModel', link: function (scope, element, attrs, ngModel) { var handleChange = function (value) { if (angular.isUndefined(value) || value === '') { return; } var urls = ariaNgCommonService.parseUrlsFromOriginInput(value); var valid = urls && urls.length > 0; ngModel.$setValidity(DIRECTIVE_ID, valid); }; scope.$watch(function () { return ngModel.$viewValue; }, handleChange); } }; }]); }()); ================================================ FILE: src/scripts/filters/dateDuration.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('dateDuration', ['moment', function (moment) { return function (duration, sourceUnit, format) { var timespan = moment.duration(duration, sourceUnit); var time = moment.utc(timespan.asMilliseconds()); return time.format(format); }; }]); }()); ================================================ FILE: src/scripts/filters/fileOrderBy.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('fileOrderBy', ['$filter', 'ariaNgCommonService', function ($filter, ariaNgCommonService) { return function (array, type) { if (!angular.isArray(array) || !type) { return array; } var orderType = ariaNgCommonService.parseOrderType(type); if (orderType === null) { return array; } if (orderType.type === 'index') { return $filter('orderBy')(array, ['index'], orderType.reverse); } else if (orderType.type === 'name') { return $filter('orderBy')(array, ['fileName'], orderType.reverse); } else if (orderType.type === 'size') { return $filter('orderBy')(array, ['length'], orderType.reverse); } else if (orderType.type === 'percent') { return $filter('orderBy')(array, ['completePercent'], orderType.reverse); } else if (orderType.type === 'selected') { return $filter('orderBy')(array, ['selected'], orderType.reverse); } else { return array; } }; }]); }()); ================================================ FILE: src/scripts/filters/logOrderBy.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('logOrderBy', ['$filter', 'ariaNgCommonService', function ($filter, ariaNgCommonService) { return function (array, type) { if (!angular.isArray(array) || !type) { return array; } var orderType = ariaNgCommonService.parseOrderType(type); if (orderType === null) { return array; } if (orderType.type === 'time') { return $filter('orderBy')(array, ['time'], orderType.reverse); } else { return array; } }; }]); }()); ================================================ FILE: src/scripts/filters/longDate.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('longDate', ['ariaNgCommonService', 'ariaNgLocalizationService', function (ariaNgCommonService, ariaNgLocalizationService) { return function (time) { var format = ariaNgLocalizationService.getLongDateFormat(); return ariaNgCommonService.formatDateTime(time, format); }; }]); }()); ================================================ FILE: src/scripts/filters/peerOrderBy.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('peerOrderBy', ['$filter', 'ariaNgCommonService', function ($filter, ariaNgCommonService) { return function (array, type) { if (!angular.isArray(array)) { return array; } var orderType = ariaNgCommonService.parseOrderType(type); if (orderType === null) { return array; } if (orderType.type === 'address') { return $filter('orderBy')(array, ['ip', 'port'], orderType.reverse); } else if (orderType.type === 'client') { return $filter('orderBy')(array, ['client.name', 'client.version'], orderType.reverse); } else if (orderType.type === 'percent') { return $filter('orderBy')(array, ['completePercent'], orderType.reverse); } else if (orderType.type === 'dspeed') { return $filter('orderBy')(array, ['downloadSpeed'], orderType.reverse); } else if (orderType.type === 'uspeed') { return $filter('orderBy')(array, ['uploadSpeed'], orderType.reverse); } else { return array; } }; }]); }()); ================================================ FILE: src/scripts/filters/percent.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('percent', ['$filter', function ($filter) { return function (value, precision) { var ratio = Math.pow(10, precision); var result = parseInt(value * ratio) / ratio; return $filter('number')(result, precision); }; }]); }()); ================================================ FILE: src/scripts/filters/reverse.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('reverse', function () { return function(array) { if (!array) { return array; } return array.slice().reverse(); }; }); }()); ================================================ FILE: src/scripts/filters/taskOrderBy.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('taskOrderBy', ['$filter', 'ariaNgCommonService', function ($filter, ariaNgCommonService) { return function (array, type) { if (!angular.isArray(array)) { return array; } var orderType = ariaNgCommonService.parseOrderType(type); if (orderType === null) { return array; } if (orderType.type === 'name') { return $filter('orderBy')(array, ['taskName'], orderType.reverse); } else if (orderType.type === 'size') { return $filter('orderBy')(array, ['totalLength'], orderType.reverse); } else if (orderType.type === 'percent') { return $filter('orderBy')(array, ['completePercent'], orderType.reverse); } else if (orderType.type === 'remain') { return $filter('orderBy')(array, ['idle', 'remainTime', 'remainLength'], orderType.reverse); } else if (orderType.type === 'dspeed') { return $filter('orderBy')(array, ['downloadSpeed'], orderType.reverse); } else if (orderType.type === 'uspeed') { return $filter('orderBy')(array, ['uploadSpeed'], orderType.reverse); } else { return array; } }; }]); }()); ================================================ FILE: src/scripts/filters/taskStatus.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('taskStatus', function () { return function (task, simplify) { if (!task) { return ''; } if (task.status === 'active') { if (task.verifyIntegrityPending) { return 'Pending Verification'; } else if (task.verifiedLength) { return (task.verifiedPercent ? 'format.task.verifying-percent' : 'Verifying'); } else if (task.seeder === true || task.seeder === 'true') { return 'Seeding'; } else { return 'Downloading'; } } else if (task.status === 'waiting') { return 'Waiting'; } else if (task.status === 'paused') { return 'Paused'; } else if (!simplify && task.status === 'complete') { return 'Completed'; } else if (!simplify && task.status === 'error') { return (task.errorCode ? 'format.task.error-occurred' : 'Error Occurred'); } else if (!simplify && task.status === 'removed') { return 'Removed'; } else { return ''; } }; }); }()); ================================================ FILE: src/scripts/filters/timeDisplayName.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('timeDisplayName', ['ariaNgCommonService', 'ariaNgLocalizationService', function (ariaNgCommonService, ariaNgLocalizationService) { return function (time, defaultName) { if (!time) { return ariaNgLocalizationService.getLocalizedText(defaultName); } var option = ariaNgCommonService.getTimeOption(time); return ariaNgLocalizationService.getLocalizedText(option.name, { value: option.value }); }; }]); }()); ================================================ FILE: src/scripts/filters/volume.js ================================================ (function () { 'use strict'; angular.module('ariaNg').filter('readableVolume', ['$filter', function ($filter) { var units = [ 'B', 'KB', 'MB', 'GB' ]; var defaultFractionSize = 2; var getAutoFractionSize = function (value) { if (value < 1) { return 2; } else if (value < 10) { return 1; } else { return 0; } }; return function (value, fractionSize) { var unit = units[0]; var actualFractionSize = defaultFractionSize; var autoFractionSize = false; if (angular.isNumber(fractionSize)) { actualFractionSize = fractionSize; } else if (fractionSize === 'auto') { autoFractionSize = true; } if (!value) { value = 0; } if (!angular.isNumber(value)) { value = parseInt(value); } for (var i = 1; i < units.length; i++) { if (value >= 1024) { value = value / 1024; unit = units[i]; } else { break; } } if (autoFractionSize) { actualFractionSize = getAutoFractionSize(value); } value = $filter('number')(value, actualFractionSize); return value + ' ' + unit; }; }]); }()); ================================================ FILE: src/scripts/services/aria2HttpRpcService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('aria2HttpRpcService', ['$http', 'ariaNgConstants', 'ariaNgCommonService', 'ariaNgSettingService', 'ariaNgLogService', function ($http, ariaNgConstants, ariaNgCommonService, ariaNgSettingService, ariaNgLogService) { var rpcUrl = ariaNgSettingService.getCurrentRpcUrl(); var method = ariaNgSettingService.getCurrentRpcHttpMethod(); var requestHeaders = ariaNgSettingService.getCurrentRpcRequestHeaders(); var getUrlWithQueryString = function (url, parameters) { if (!url || url.length < 1) { return url; } var queryString = ''; for (var key in parameters) { if (!parameters.hasOwnProperty(key)) { continue; } var value = parameters[key]; if (value === null || angular.isUndefined(value)) { continue; } if (queryString.length > 0) { queryString += '&'; } if (angular.isObject(value) || angular.isArray(value)) { value = angular.toJson(value); value = ariaNgCommonService.base64Encode(value); value = encodeURIComponent(value); } queryString += key + '=' + value; } if (queryString.length < 1) { return url; } if (url.indexOf('?') < 0) { queryString = '?' + queryString; } else { queryString = '&' + queryString; } return url + queryString; }; return { request: function (context) { if (!context) { return; } var requestContext = { url: rpcUrl, method: method, headers: {}, timeout: ariaNgConstants.httpRequestTimeout }; if (requestContext.method === 'POST') { requestContext.data = angular.toJson(context.requestBody); requestContext.headers['Content-Type'] = 'application/json'; } else if (requestContext.method === 'GET') { requestContext.url = getUrlWithQueryString(requestContext.url, context.requestBody); } if (requestHeaders) { var lines = requestHeaders.split('\n'); for (var i = 0; i < lines.length; i++) { var items = lines[i].split(':'); if (items.length !== 2) { continue; } var name = items[0].trim(); var value = items[1].trim(); requestContext.headers[name] = value; } } ariaNgLogService.debug('[aria2HttpRpcService.request] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'request start', requestContext); return $http(requestContext).then(function onSuccess(response) { var data = response.data; ariaNgLogService.debug('[aria2HttpRpcService.request] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'response success', response); if (!data) { return; } if (context.connectionSuccessCallback) { context.connectionSuccessCallback({ rpcUrl: rpcUrl, method: method }); } if (context.successCallback) { context.successCallback(data.id, data.result); } }).catch(function onError(response) { var data = response.data; ariaNgLogService.debug('[aria2HttpRpcService.request] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'response error', response); if (!data) { data = { id: '-1', error: { message: 'Cannot connect to aria2!' } }; if (context.connectionFailedCallback) { context.connectionFailedCallback({ rpcUrl: rpcUrl, method: method }); } } if (context.errorCallback) { context.errorCallback(data.id, data.error); } }); }, reconnect: function () { //Not implement }, on: function (eventName, callback) { //Not implement } }; }]); }()); ================================================ FILE: src/scripts/services/aria2RpcService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('aria2RpcService', ['$location', '$q', 'aria2RpcConstants', 'aria2RpcErrors', 'aria2AllOptions', 'ariaNgCommonService', 'ariaNgLogService', 'ariaNgSettingService', 'aria2HttpRpcService', 'aria2WebSocketRpcService', function ($location, $q, aria2RpcConstants, aria2RpcErrors, aria2AllOptions, ariaNgCommonService, ariaNgLogService, ariaNgSettingService, aria2HttpRpcService, aria2WebSocketRpcService) { var rpcImplementService = ariaNgSettingService.isCurrentRpcUseWebSocket() ? aria2WebSocketRpcService : aria2HttpRpcService; var isConnected = false; var secret = ariaNgSettingService.getCurrentRpcSecret(); var onFirstSuccessCallbacks = []; var onOperationSuccessCallbacks = []; var onOperationErrorCallbacks = []; var onConnectionSuccessCallbacks = []; var onConnectionFailedCallbacks = []; var onConnectionReconnectingCallbacks = []; var onConnectionWaitingToReconnectCallbacks = []; var onDownloadStartCallbacks = []; var onDownloadPauseCallbacks = []; var onDownloadStopCallbacks = []; var onDownloadCompleteCallbacks = []; var onDownloadErrorCallbacks = []; var onBtDownloadCompleteCallbacks = []; var checkIsSystemMethod = function (methodName) { return methodName.indexOf(aria2RpcConstants.rpcSystemServiceName + '.') === 0; }; var getAria2MethodFullName = function (methodName) { return aria2RpcConstants.rpcServiceName + '.' + methodName; }; var getAria2EventFullName = function (eventName) { return getAria2MethodFullName(eventName); }; var invoke = function (requestContext, returnContextOnly) { if (returnContextOnly) { return requestContext; } var uniqueId = ariaNgCommonService.generateUniqueId(); var requestBody = { jsonrpc: aria2RpcConstants.rpcServiceVersion, method: requestContext.methodName, id: uniqueId, params: requestContext.params }; var invokeContext = { uniqueId: uniqueId, requestBody: requestBody, connectionSuccessCallback: requestContext.connectionSuccessCallback, connectionFailedCallback: requestContext.connectionFailedCallback, connectionReconnectingCallback: requestContext.connectionReconnectingCallback, connectionWaitingToReconnectCallback: requestContext.connectionWaitingToReconnectCallback, successCallback: requestContext.successCallback, errorCallback: requestContext.errorCallback }; return rpcImplementService.request(invokeContext); }; var registerEvent = function (eventName, callbacks) { var fullEventName = getAria2EventFullName(eventName); rpcImplementService.on(fullEventName, function (context) { if (!angular.isArray(callbacks) || callbacks.length < 1) { return; } for (var i = 0; i < callbacks.length; i++) { var callback = callbacks[i]; callback(context); } }); }; var fireCustomEvent = function (callbacks, context) { if (!angular.isArray(callbacks) || callbacks.length < 1) { return; } for (var i = 0; i < callbacks.length; i++) { var callback = callbacks[i]; callback(context); } }; var invokeMulti = function (methodFunc, contexts, callback) { var promises = []; var hasSuccess = false; var hasError = false; var results = []; for (var i = 0; i < contexts.length; i++) { contexts[i].callback = function (response) { results.push(response); hasSuccess = hasSuccess || response.success; hasError = hasError || !response.success; }; promises.push(methodFunc(contexts[i])); } return $q.all(promises).finally(function () { if (callback) { callback({ hasSuccess: !!hasSuccess, hasError: !!hasError, results: results }); } }); }; var processError = function (error) { if (!error || !error.message) { return false; } ariaNgLogService.error('[aria2RpcService.processError] ' + error.message, error); if (aria2RpcErrors[error.message] && aria2RpcErrors[error.message].tipTextKey) { ariaNgCommonService.showError(aria2RpcErrors[error.message].tipTextKey); return true; } else { ariaNgCommonService.showError(error.message); return true; } }; var buildRequestContext = function () { var methodName = arguments[0]; var requestInPage = $location.path(); var isSystemMethod = checkIsSystemMethod(methodName); var finalParams = []; var context = { methodName: (!isSystemMethod ? getAria2MethodFullName(methodName) : methodName) }; context.connectionSuccessCallback = function () { fireCustomEvent(onConnectionSuccessCallbacks); }; context.connectionFailedCallback = function () { fireCustomEvent(onConnectionFailedCallbacks); }; context.connectionReconnectingCallback = function () { fireCustomEvent(onConnectionReconnectingCallbacks); }; context.connectionWaitingToReconnectCallback = function () { fireCustomEvent(onConnectionWaitingToReconnectCallbacks); }; if (secret && !isSystemMethod) { finalParams.push(aria2RpcConstants.rpcTokenPrefix + secret); } if (arguments.length > 1) { var innerContext = arguments[1]; context.successCallback = function (id, result) { if (innerContext.callback) { innerContext.callback({ id: id, success: true, data: result, context: innerContext }); } fireCustomEvent(onOperationSuccessCallbacks); if (!isConnected) { isConnected = true; var firstSuccessContext = { rpcName: ariaNgSettingService.getCurrentRpcDisplayName() }; fireCustomEvent(onFirstSuccessCallbacks, firstSuccessContext); } }; context.errorCallback = function (id, error) { var errorProcessed = false; var currentPage = $location.path(); if (!innerContext.silent && currentPage === requestInPage) { errorProcessed = processError(error); } if (innerContext.callback) { innerContext.callback({ id: id, success: false, data: error, errorProcessed: errorProcessed, context: innerContext }); } fireCustomEvent(onOperationErrorCallbacks); }; } if (arguments.length > 2) { for (var i = 2; i < arguments.length; i++) { if (arguments[i] !== null && angular.isDefined(arguments[i])) { finalParams.push(arguments[i]); } } } if (finalParams.length > 0) { context.params = finalParams; } return context; }; var buildRequestOptions = function (originalOptions, context) { var options = angular.copy(originalOptions); for (var optionName in options) { if (!options.hasOwnProperty(optionName)) { continue; } if (isOptionSubmitArray(options, optionName)) { options[optionName] = buildArrayOption(options[optionName], aria2AllOptions[optionName]); } } if (context && context.pauseOnAdded) { options.pause = 'true'; } return options; }; var isOptionSubmitArray = function (options, optionName) { if (!options[optionName] || !angular.isString(options[optionName])) { return false; } if (!aria2AllOptions[optionName] || aria2AllOptions[optionName].submitFormat !== 'array') { return false; } return true; }; var buildArrayOption = function (option, optionSetting) { var items = option.split(optionSetting.separator); var result = []; for (var i = 0; i < items.length; i++) { var item = items[i]; if (!item) { continue; } item = item.replace('\r', ''); result.push(item); } return result; }; (function () { registerEvent('onDownloadStart', onDownloadStartCallbacks); registerEvent('onDownloadPause', onDownloadPauseCallbacks); registerEvent('onDownloadStop', onDownloadStopCallbacks); registerEvent('onDownloadComplete', onDownloadCompleteCallbacks); registerEvent('onDownloadError', onDownloadErrorCallbacks); registerEvent('onBtDownloadComplete', onBtDownloadCompleteCallbacks); })(); return { getBasicTaskParams: function () { return [ 'gid', 'totalLength', 'completedLength', 'uploadSpeed', 'downloadSpeed', 'connections', 'numSeeders', 'seeder', 'status', 'errorCode', 'verifiedLength', 'verifyIntegrityPending' ]; }, getFullTaskParams: function () { var requestParams = this.getBasicTaskParams(); requestParams.push('files'); requestParams.push('bittorrent'); requestParams.push('infoHash'); return requestParams; }, canReconnect: function () { return ariaNgSettingService.isCurrentRpcUseWebSocket(); }, reconnect: function (context) { ariaNgLogService.info("[aria2RpcService.reconnect] reconnect now"); rpcImplementService.reconnect(buildRequestContext('', context)); }, addUri: function (context, returnContextOnly) { var urls = context.task ? context.task.urls : null; var options = buildRequestOptions(context.task ? context.task.options : {}, context); return invoke(buildRequestContext('addUri', context, urls, options), !!returnContextOnly); }, addUriMulti: function (context) { var contexts = []; for (var i = 0; i < context.tasks.length; i++) { var task = context.tasks[i]; contexts.push({ silent: !!context.silent, task: task, pauseOnAdded: context.pauseOnAdded }); } return invokeMulti(this.addUri, contexts, context.callback); }, addTorrent: function (context, returnContextOnly) { var content = context.task ? context.task.content : null; var options = buildRequestOptions(context.task ? context.task.options : {}, context); return invoke(buildRequestContext('addTorrent', context, content, [], options), !!returnContextOnly); }, addMetalink: function (context, returnContextOnly) { var content = context.task ? context.task.content : null; var options = buildRequestOptions(context.task ? context.task.options : {}, context); return invoke(buildRequestContext('addMetalink', context, content, options), !!returnContextOnly); }, remove: function (context, returnContextOnly) { return invoke(buildRequestContext('remove', context, context.gid), !!returnContextOnly); }, forceRemove: function (context, returnContextOnly) { return invoke(buildRequestContext('forceRemove', context, context.gid), !!returnContextOnly); }, forceRemoveMulti: function (context) { var contexts = []; for (var i = 0; i < context.gids.length; i++) { contexts.push({ silent: !!context.silent, gid: context.gids[i] }); } return invokeMulti(this.forceRemove, contexts, context.callback); }, pause: function (context, returnContextOnly) { return invoke(buildRequestContext('pause', context, context.gid), !!returnContextOnly); }, pauseAll: function (context, returnContextOnly) { return invoke(buildRequestContext('pauseAll', context), !!returnContextOnly); }, forcePause: function (context, returnContextOnly) { return invoke(buildRequestContext('forcePause', context, context.gid), !!returnContextOnly); }, forcePauseMulti: function (context) { var contexts = []; for (var i = 0; i < context.gids.length; i++) { contexts.push({ silent: !!context.silent, gid: context.gids[i] }); } return invokeMulti(this.forcePause, contexts, context.callback); }, forcePauseAll: function (context, returnContextOnly) { return invoke(buildRequestContext('forcePauseAll', context), !!returnContextOnly); }, unpause: function (context, returnContextOnly) { return invoke(buildRequestContext('unpause', context, context.gid), !!returnContextOnly); }, unpauseMulti: function (context) { var contexts = []; for (var i = 0; i < context.gids.length; i++) { contexts.push({ silent: !!context.silent, gid: context.gids[i] }); } return invokeMulti(this.unpause, contexts, context.callback); }, unpauseAll: function (context, returnContextOnly) { return invoke(buildRequestContext('unpauseAll', context), !!returnContextOnly); }, tellStatus: function (context, returnContextOnly) { return invoke(buildRequestContext('tellStatus', context, context.gid), !!returnContextOnly); }, getUris: function (context, returnContextOnly) { return invoke(buildRequestContext('getUris', context, context.gid), !!returnContextOnly); }, getFiles: function (context, returnContextOnly) { return invoke(buildRequestContext('getFiles', context, context.gid), !!returnContextOnly); }, getPeers: function (context, returnContextOnly) { return invoke(buildRequestContext('getPeers', context, context.gid), !!returnContextOnly); }, getServers: function (context, returnContextOnly) { return invoke(buildRequestContext('getServers', context, context.gid), !!returnContextOnly); }, tellActive: function (context, returnContextOnly) { return invoke(buildRequestContext('tellActive', context, angular.isDefined(context.requestParams) ? context.requestParams: null ), !!returnContextOnly); }, tellWaiting: function (context, returnContextOnly) { return invoke(buildRequestContext('tellWaiting', context, angular.isDefined(context.offset) ? context.offset : 0, angular.isDefined(context.num) ? context.num : 1000, angular.isDefined(context.requestParams) ? context.requestParams : null ), !!returnContextOnly); }, tellStopped: function (context, returnContextOnly) { return invoke(buildRequestContext('tellStopped', context, angular.isDefined(context.offset) ? context.offset : -1, angular.isDefined(context.num) ? context.num : 1000, angular.isDefined(context.requestParams) ? context.requestParams: null ), !!returnContextOnly); }, changePosition: function (context, returnContextOnly) { return invoke(buildRequestContext('changePosition', context, context.gid, context.pos, context.how), !!returnContextOnly); }, changeUri: function (context, returnContextOnly) { return invoke(buildRequestContext('changeUri', context, context.gid, context.fileIndex, context.delUris, context.addUris), !!returnContextOnly); }, getOption: function (context, returnContextOnly) { return invoke(buildRequestContext('getOption', context, context.gid), !!returnContextOnly); }, changeOption: function (context, returnContextOnly) { var options = buildRequestOptions(context.options, context); return invoke(buildRequestContext('changeOption', context, context.gid, options), !!returnContextOnly); }, getGlobalOption: function (context, returnContextOnly) { return invoke(buildRequestContext('getGlobalOption', context), !!returnContextOnly); }, changeGlobalOption: function (context, returnContextOnly) { var options = buildRequestOptions(context.options, context); return invoke(buildRequestContext('changeGlobalOption', context, options), !!returnContextOnly); }, getGlobalStat: function (context, returnContextOnly) { return invoke(buildRequestContext('getGlobalStat', context), !!returnContextOnly); }, purgeDownloadResult: function (context, returnContextOnly) { return invoke(buildRequestContext('purgeDownloadResult', context), !!returnContextOnly); }, removeDownloadResult: function (context, returnContextOnly) { return invoke(buildRequestContext('removeDownloadResult', context, context.gid), !!returnContextOnly); }, removeDownloadResultMulti: function (context) { var contexts = []; for (var i = 0; i < context.gids.length; i++) { contexts.push({ silent: !!context.silent, gid: context.gids[i] }); } return invokeMulti(this.removeDownloadResult, contexts, context.callback); }, getVersion: function (context, returnContextOnly) { return invoke(buildRequestContext('getVersion', context), !!returnContextOnly); }, getSessionInfo: function (context, returnContextOnly) { return invoke(buildRequestContext('getSessionInfo', context), !!returnContextOnly); }, shutdown: function (context, returnContextOnly) { return invoke(buildRequestContext('shutdown', context), !!returnContextOnly); }, forceShutdown: function (context, returnContextOnly) { return invoke(buildRequestContext('forceShutdown', context), !!returnContextOnly); }, saveSession: function (context, returnContextOnly) { return invoke(buildRequestContext('saveSession', context), !!returnContextOnly); }, multicall: function (context, returnContextOnly) { return invoke(buildRequestContext('system.multicall', context, context.methods), !!returnContextOnly); }, listMethods: function (context, returnContextOnly) { return invoke(buildRequestContext('system.listMethods', context), !!returnContextOnly); }, listNotifications: function (context, returnContextOnly) { return invoke(buildRequestContext('system.listNotifications', context), !!returnContextOnly); }, onFirstSuccess: function (context) { onFirstSuccessCallbacks.push(context.callback); }, onOperationSuccess: function (context) { onOperationSuccessCallbacks.push(context.callback); }, onOperationError: function (context) { onOperationErrorCallbacks.push(context.callback); }, onConnectionSuccess: function (context) { onConnectionSuccessCallbacks.push(context.callback); }, onConnectionFailed: function (context) { onConnectionFailedCallbacks.push(context.callback); }, onConnectionReconnecting: function (context) { onConnectionReconnectingCallbacks.push(context.callback); }, onConnectionWaitingToReconnect: function (context) { onConnectionWaitingToReconnectCallbacks.push(context.callback); }, onDownloadStart: function (context) { onDownloadStartCallbacks.push(context.callback); }, onDownloadPause: function (context) { onDownloadPauseCallbacks.push(context.callback); }, onDownloadStop: function (context) { onDownloadStopCallbacks.push(context.callback); }, onDownloadComplete: function (context) { onDownloadCompleteCallbacks.push(context.callback); }, onDownloadError: function (context) { onDownloadErrorCallbacks.push(context.callback); }, onBtDownloadComplete: function (context) { onBtDownloadCompleteCallbacks.push(context.callback); } }; }]); }()); ================================================ FILE: src/scripts/services/aria2SettingService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('aria2SettingService', ['ariaNgConstants', 'aria2AllOptions', 'aria2GlobalAvailableOptions', 'aria2QuickSettingsAvailableOptions', 'aria2TaskAvailableOptions', 'aria2RpcService', 'ariaNgLogService', 'ariaNgStorageService', function (ariaNgConstants, aria2AllOptions, aria2GlobalAvailableOptions, aria2QuickSettingsAvailableOptions, aria2TaskAvailableOptions, aria2RpcService, ariaNgLogService, ariaNgStorageService) { var processStatResult = function (stat) { if (!stat) { return stat; } var activeCount = parseInt(stat.numActive); var waitingCount = parseInt(stat.numWaiting); var totalRunningCount = activeCount + waitingCount; stat.totalRunningCount = totalRunningCount; return stat; }; var getSettingHistoryKey = function (key) { return ariaNgConstants.settingHistoryKeyPrefix + '.' + key; }; return { isOptionKeyValid: function (key) { var option = aria2AllOptions[key]; return !!option; }, isOptionKeyRequired: function (key) { var option = aria2AllOptions[key]; return option && option.required; }, getAvailableGlobalOptionsKeys: function (type) { if (type === 'basic') { return aria2GlobalAvailableOptions.basicOptions; } else if (type === 'http-ftp-sftp') { return aria2GlobalAvailableOptions.httpFtpSFtpOptions; } else if (type === 'http') { return aria2GlobalAvailableOptions.httpOptions; } else if (type === 'ftp-sftp') { return aria2GlobalAvailableOptions.ftpSFtpOptions; } else if (type === 'bt') { return aria2GlobalAvailableOptions.btOptions; } else if (type === 'metalink') { return aria2GlobalAvailableOptions.metalinkOptions; } else if (type === 'rpc') { return aria2GlobalAvailableOptions.rpcOptions; } else if (type === 'advanced') { return aria2GlobalAvailableOptions.advancedOptions; } else { return false; } }, getAria2QuickSettingsAvailableOptions: function (type) { if (type === 'globalSpeedLimit') { return aria2QuickSettingsAvailableOptions.globalSpeedLimitOptions; } else { return false; } }, getAvailableTaskOptionKeys: function (status, isBittorrent) { var allOptions = aria2TaskAvailableOptions.taskOptions; var availableOptions = []; for (var i = 0; i < allOptions.length; i++) { var option = allOptions[i]; var optionKey = { key: option.key, category: option.category }; if (option.canShow && option.canShow.indexOf(status) < 0) { continue; } if (option.category === 'http' && isBittorrent) { continue; } else if (option.category === 'bittorrent' && !isBittorrent) { continue; } if (option.canUpdate && option.canUpdate.indexOf(status) < 0) { optionKey.readonly = true; } availableOptions.push(optionKey); } return availableOptions; }, getNewTaskOptionKeys: function () { var allOptions = aria2TaskAvailableOptions.taskOptions; var availableOptions = []; for (var i = 0; i < allOptions.length; i++) { var option = allOptions[i]; var optionKey = { key: option.key, category: option.category, showHistory: option.showHistory }; if (option.canShow && option.canShow.indexOf('new') < 0) { continue; } if (option.canUpdate && option.canUpdate.indexOf('new') < 0) { optionKey.readonly = true; } availableOptions.push(optionKey); } return availableOptions; }, getSpecifiedOptions: function (keys, extendSettings) { var options = []; if (!keys) { return options; } for (var i = 0; i < keys.length; i++) { var key = keys[i]; var readonly = false; var category = null; var showHistory = false; if (angular.isObject(key)) { var optionKey = key; key = optionKey.key; readonly = !!optionKey.readonly; category = optionKey.category; showHistory = !!optionKey.showHistory; } var option = aria2AllOptions[key]; if (!option) { continue; } option = angular.extend({ key: key, nameKey: 'options.' + key + '.name', descriptionKey: 'options.' + key + '.description' }, option); if (category) { option.category = category; } if (option.type === 'boolean') { option.options = ['true', 'false']; } if (readonly) { option.readonly = true; } if (showHistory) { option.showHistory = true; } if (extendSettings && extendSettings.disableRequired) { option.required = false; } if (option.options) { var availableOptions = []; for (var j = 0; j < option.options.length; j++) { availableOptions.push({ name: 'option.' + option.options[j], value: option.options[j] }); } option.options = availableOptions; } options.push(option); } return options; }, getSettingHistory: function (key) { if (!this.isOptionKeyValid(key)) { return []; } var storageKey = getSettingHistoryKey(key); var history = ariaNgStorageService.get(storageKey) || []; var newHistory = []; for (var i = 0; i < Math.min(history.length, ariaNgConstants.historyMaxStoreCount); i++) { newHistory.push(history[i]); } return newHistory; }, addSettingHistory: function (key, value) { if (!this.isOptionKeyValid(key)) { return []; } var storageKey = getSettingHistoryKey(key); var history = ariaNgStorageService.get(storageKey) || []; var newHistory = []; newHistory.push(value); for (var i = 0; i < Math.min(history.length, ariaNgConstants.historyMaxStoreCount - 1); i++) { if (history[i] !== value) { newHistory.push(history[i]); } } ariaNgStorageService.set(storageKey, newHistory); return newHistory; }, clearSettingsHistorys: function () { var keys = ariaNgStorageService.keys(ariaNgConstants.settingHistoryKeyPrefix + '.'); for (var i = 0; i < keys.length; i++) { ariaNgStorageService.remove(keys[i]); } }, getGlobalOption: function (callback, silent) { return aria2RpcService.getGlobalOption({ silent: !!silent, callback: callback }); }, setGlobalOption: function (key, value, callback, silent) { var data = {}; data[key] = value; return aria2RpcService.changeGlobalOption({ options: data, silent: !!silent, callback: callback }); }, getAria2Status: function (callback, silent) { return aria2RpcService.getVersion({ silent: !!silent, callback: callback }); }, getGlobalStat: function (callback, silent) { return aria2RpcService.getGlobalStat({ silent: !!silent, callback: function (response) { if (!callback) { ariaNgLogService.warn('[aria2SettingService.getGlobalStat] callback is null'); return; } var stat = processStatResult(response); callback(stat); } }); }, canReconnect: function () { return aria2RpcService.canReconnect(); }, reconnect: function () { return aria2RpcService.reconnect({}); }, saveSession: function (callback, silent) { return aria2RpcService.saveSession({ silent: !!silent, callback: callback }); }, shutdown: function (callback, silent) { return aria2RpcService.shutdown({ silent: !!silent, callback: callback }); } }; }]); }()); ================================================ FILE: src/scripts/services/aria2TaskService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('aria2TaskService', ['$q', 'bittorrentPeeridService', 'ariaNgConstants', 'aria2Errors', 'aria2RpcService', 'ariaNgCommonService', 'ariaNgLocalizationService', 'ariaNgLogService', 'ariaNgSettingService', function ($q, bittorrentPeeridService, ariaNgConstants, aria2Errors, aria2RpcService, ariaNgCommonService, ariaNgLocalizationService, ariaNgLogService, ariaNgSettingService) { var getFileName = function (file) { if (!file) { ariaNgLogService.warn('[aria2TaskService.getFileName] file is null'); return ''; } var path = file.path; var needUrlDecode = false; if (!path && file.uris && file.uris.length > 0) { path = file.uris[0].uri; needUrlDecode = true; } var index = path.lastIndexOf('/'); if (index <= 0 || index === path.length) { return path; } var fileNameAndQueryString = path.substring(index + 1); var queryStringStartPos = fileNameAndQueryString.indexOf('?'); var fileName = fileNameAndQueryString; if (queryStringStartPos > 0) { fileName = fileNameAndQueryString.substring(0, queryStringStartPos); } if (needUrlDecode) { try { fileName = decodeURI(fileName); } catch (ex) { ariaNgLogService.warn('[aria2TaskService.getFileName] failed to url decode file name, original file name: ' + fileName, ex); } } return fileName; }; var calculateDownloadRemainTime = function (remainBytes, downloadSpeed) { if (downloadSpeed === 0) { return 0; } return remainBytes / downloadSpeed; }; var getTaskName = function (task) { var taskName = ''; var success = true; if (task.bittorrent && task.bittorrent.info) { taskName = task.bittorrent.info.name; } if (!taskName && task.files && task.files.length > 0) { taskName = getFileName(task.files[0]); } if (!taskName) { taskName = ariaNgLocalizationService.getLocalizedText('Unknown'); success = false; } return { name: taskName, success: success }; }; var getRelativePath = function (task, file) { var downloadPath = task.dir; var relativePath = file.path; if (downloadPath) { downloadPath = downloadPath.replace(/\\/g, ariaNgConstants.defaultPathSeparator); } if (relativePath) { relativePath = relativePath.replace(/\\/g, ariaNgConstants.defaultPathSeparator); } var trimStartPathSeparator = function () { if (relativePath.length > 1 && relativePath.charAt(0) === ariaNgConstants.defaultPathSeparator) { relativePath = relativePath.substr(1); } }; var trimEndPathSeparator = function () { if (relativePath.length > 1 && relativePath.charAt(relativePath.length - 1) === ariaNgConstants.defaultPathSeparator) { relativePath = relativePath.substr(0, relativePath.length - 1); } }; if (downloadPath && relativePath.indexOf(downloadPath) === 0) { relativePath = relativePath.substr(downloadPath.length); } trimStartPathSeparator(); if (task.bittorrent && task.bittorrent.mode === 'multi' && task.bittorrent.info && task.bittorrent.info.name) { var bittorrentName = task.bittorrent.info.name; if (relativePath.indexOf(bittorrentName) === 0) { relativePath = relativePath.substr(bittorrentName.length); } } trimStartPathSeparator(); if (file.fileName && ((relativePath.lastIndexOf(file.fileName) + file.fileName.length) === relativePath.length)) { relativePath = relativePath.substr(0, relativePath.length - file.fileName.length); } trimEndPathSeparator(); return relativePath; }; var getDirectoryNode = function (path, allDirectories, allDirectoryMap) { var node = allDirectoryMap[path]; if (node) { return node; } var parentNode = null; var nodeName = path; if (path.length) { var parentPath = ''; var lastSeparatorIndex = path.lastIndexOf(ariaNgConstants.defaultPathSeparator); if (lastSeparatorIndex > 0) { parentPath = path.substring(0, lastSeparatorIndex); nodeName = path.substring(lastSeparatorIndex + 1); } parentNode = getDirectoryNode(parentPath, allDirectories, allDirectoryMap); } node = { isDir: true, nodePath: path, nodeName: nodeName, relativePath: (parentNode && parentNode.nodePath) || '', level: (parentNode && parentNode.level + 1) || 0, length: 0, selected: true, partialSelected: false, files: [], subDirs: [] }; allDirectories.push(node); allDirectoryMap[path] = node; if (parentNode) { parentNode.subDirs.push(node); } return node; }; var pushFileToDirectoryNode = function (file, allDirectories, allDirectoryMap) { if (!file || !allDirectories || !allDirectoryMap) { return; } var nodePath = file.relativePath || ''; var directoryNode = getDirectoryNode(nodePath, allDirectories, allDirectoryMap); directoryNode.files.push(file); return directoryNode; }; var fillAllNodes = function (node, allDirectoryMap, allNodes) { if (!node) { return; } var allSubNodesLength = 0; var selectedSubNodesCount = 0; var partitalSelectedSubNodesCount = 0; if (node.subDirs && node.subDirs.length) { for (var i = 0; i < node.subDirs.length; i++) { var dirNode = node.subDirs[i]; allNodes.push(dirNode); fillAllNodes(dirNode, allDirectoryMap, allNodes); allSubNodesLength += dirNode.length; selectedSubNodesCount += (dirNode.selected ? 1 : 0); partitalSelectedSubNodesCount += (dirNode.partialSelected ? 1 : 0); } } if (node.files && node.files.length) { for (var i = 0; i < node.files.length; i++) { var fileNode = node.files[i]; allNodes.push(fileNode); allSubNodesLength += fileNode.length; selectedSubNodesCount += (fileNode.selected ? 1 : 0); } } node.length = allSubNodesLength; node.selected = (selectedSubNodesCount > 0 && selectedSubNodesCount === (node.subDirs.length + node.files.length)); node.partialSelected = ((selectedSubNodesCount > 0 && selectedSubNodesCount < (node.subDirs.length + node.files.length)) || partitalSelectedSubNodesCount > 0); }; var getTaskErrorDescription = function (task) { if (!task.errorCode) { return ''; } if (!aria2Errors[task.errorCode] || !aria2Errors[task.errorCode].descriptionKey) { return ''; } if (aria2Errors[task.errorCode].hide) { return ''; } return aria2Errors[task.errorCode].descriptionKey; }; var getPieceStatus = function (bitField, pieceCount) { var pieces = []; for (var i = 0; i < pieceCount; i++) { pieces.push(false); } if (!bitField) { return pieces; } var pieceIndex = 0; for (var i = 0; i < bitField.length; i++) { var bitSet = parseInt(bitField[i], 16); for (var j = 1; j <= 4; j++) { var bit = (1 << (4 - j)); var isCompleted = (bitSet & bit) === bit; pieces[pieceIndex++] = isCompleted; if (pieceIndex >= pieceCount) { return pieces; } } } return pieces; }; var getCombinedPieces = function (bitField, pieceCount) { var pieces = getPieceStatus(bitField, pieceCount); var combinedPieces = []; for (var i = 0; i < pieces.length; i++) { var isCompleted = pieces[i]; if (combinedPieces.length > 0 && combinedPieces[combinedPieces.length - 1].isCompleted === isCompleted) { combinedPieces[combinedPieces.length - 1].count++; } else { combinedPieces.push({ isCompleted: isCompleted, count: 1 }); } } return combinedPieces; }; var processDownloadTask = function (task, addVirtualFileNode) { if (!task) { ariaNgLogService.warn('[aria2TaskService.processDownloadTask] task is null'); return task; } addVirtualFileNode = addVirtualFileNode && task.bittorrent && task.bittorrent.mode === 'multi'; var pieceStatus = getPieceStatus(task.bitfield, task.numPieces); task.totalLength = parseInt(task.totalLength); task.completedLength = parseInt(task.completedLength); task.completePercent = (task.totalLength > 0 ? task.completedLength / task.totalLength * 100 : (task.status === 'complete' ? 100 : 0)); task.remainLength = task.totalLength - task.completedLength; task.remainPercent = 100 - task.completePercent; task.uploadLength = (task.uploadLength ? parseInt(task.uploadLength) : 0); task.shareRatio = (task.completedLength > 0 ? task.uploadLength / task.completedLength : 0); task.uploadSpeed = parseInt(task.uploadSpeed); task.downloadSpeed = parseInt(task.downloadSpeed); task.numPieces = parseInt(task.numPieces); task.completedPieces = ariaNgCommonService.countArray(pieceStatus, true); task.pieceLength = parseInt(task.pieceLength); task.idle = task.downloadSpeed === 0; task.remainTime = calculateDownloadRemainTime(task.remainLength, task.downloadSpeed); task.seeder = (task.seeder === true || task.seeder === 'true'); if (task.verifiedLength && task.totalLength) { task.verifiedPercent = parseInt(task.verifiedLength / task.totalLength * 100); } else { task.verifiedPercent = undefined; } var taskNameResult = getTaskName(task); task.taskName = taskNameResult.name; task.hasTaskName = taskNameResult.success; task.errorDescription = getTaskErrorDescription(task); if (task.files) { var selectedFileCount = 0; var allDirectories = []; var allDirectoryMap = {}; for (var i = 0; i < task.files.length; i++) { var file = task.files[i]; file.index = parseInt(file.index); file.fileName = getFileName(file); file.length = parseInt(file.length); file.selected = (file.selected === true || file.selected === 'true'); file.completedLength = parseInt(file.completedLength); file.completePercent = (file.length > 0 ? file.completedLength / file.length * 100 : (task.status === 'complete' ? 100 : 0)); if (addVirtualFileNode) { file.relativePath = getRelativePath(task, file); var dirNode = pushFileToDirectoryNode(file, allDirectories, allDirectoryMap); file.level = dirNode.level + 1; } selectedFileCount += file.selected ? 1 : 0; } if (addVirtualFileNode && allDirectories.length > 1) { var allNodes = []; var rootNode = allDirectoryMap['']; fillAllNodes(rootNode, allDirectoryMap, allNodes); task.files = allNodes; task.multiDir = true; } task.selectedFileCount = selectedFileCount; } if (task.files && task.files.length === 1 && task.files[0].uris && task.files[0].uris[0]) { var isSingleUrlTask = true; var firstUri = task.files[0].uris[0].uri; for (var i = 0; i < task.files[0].uris.length; i++) { var uri = task.files[0].uris[i].uri; if (uri !== firstUri) { isSingleUrlTask = false; break; } } if (isSingleUrlTask) { task.singleUrl = firstUri; } } ariaNgLogService.debug('[aria2TaskService.processDownloadTask] process success', task); return task; }; var processBtPeers = function (peers, task, includeLocalPeer) { if (!peers) { ariaNgLogService.warn('[aria2TaskService.processBtPeers] peers is null'); return peers; } var localTaskCompletedPieces = getPieceStatus(task.bitfield, task.numPieces); var localTaskCompletedPieceCount = ariaNgCommonService.countArray(localTaskCompletedPieces, true); var localTaskCompletedPercent = task.completePercent; for (var i = 0; i < peers.length; i++) { var peer = peers[i]; var upstreamToSpeed = parseInt(peer.uploadSpeed); var downstreamFromSpeed = parseInt(peer.downloadSpeed); var completedPieces = getPieceStatus(peer.bitfield, task.numPieces); var completedPieceCount = ariaNgCommonService.countArray(completedPieces, true); peer.name = peer.ip + ':' + peer.port; peer.completePercent = completedPieceCount / task.numPieces * 100; peer.downloadSpeed = upstreamToSpeed; peer.uploadSpeed = downstreamFromSpeed; peer.seeder = (peer.seeder === true || peer.seeder === 'true'); if (completedPieceCount === localTaskCompletedPieceCount && peer.completePercent !== localTaskCompletedPercent) { peer.completePercent = localTaskCompletedPercent; } if (peer.peerId) { var peerId = ariaNgCommonService.decodePercentEncodedString(peer.peerId); var clientInfo = (peerId ? bittorrentPeeridService.parseClient(peerId) : null); if (clientInfo && clientInfo.client !== 'unknown') { var client = { name: (clientInfo.client ? clientInfo.client.trim() : ''), version: (clientInfo.version ? clientInfo.version.trim() : '') }; client.info = client.name + (client.version ? ' ' + client.version : ''); peer.client = client; } } } if (includeLocalPeer) { peers.push(createLocalPeerFromTask(task)); } return peers; }; var createTaskEventCallback = function (getTaskStatusFunc, callback, type) { return function (event) { var context = { type: type, task: null }; if (event && event.gid) { getTaskStatusFunc(event.gid, function (response) { context.task = (response.success ? response.data : null); callback(context); }, true); } else { callback(context); } }; }; var createLocalPeerFromTask = function (task) { return { local: true, bitfield: task.bitfield, completePercent: task.completePercent, downloadSpeed: task.downloadSpeed, name: '(local)', seeder: task.seeder, uploadSpeed: task.uploadSpeed }; }; return { getTaskList: function (type, full, callback, silent) { var invokeMethod = null; if (type === 'downloading') { invokeMethod = aria2RpcService.tellActive; } else if (type === 'waiting') { invokeMethod = aria2RpcService.tellWaiting; } else if (type === 'stopped') { invokeMethod = aria2RpcService.tellStopped; } else { return; } return invokeMethod({ requestWholeInfo: full, requestParams: full ? aria2RpcService.getFullTaskParams() : aria2RpcService.getBasicTaskParams(), silent: !!silent, callback: function (response) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.getTaskList] callback is null'); return; } callback(response); } }); }, getTaskStatus: function (gid, callback, silent, addVirtualFileNode) { return aria2RpcService.tellStatus({ gid: gid, silent: !!silent, callback: function (response) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.getTaskStatus] callback is null'); return; } if (response.success) { processDownloadTask(response.data, addVirtualFileNode); } callback(response); } }); }, getTaskOptions: function (gid, callback, silent) { return aria2RpcService.getOption({ gid: gid, silent: !!silent, callback: callback }); }, setTaskOption: function (gid, key, value, callback, silent) { var data = {}; data[key] = value; return aria2RpcService.changeOption({ gid: gid, options: data, silent: !!silent, callback: callback }); }, selectTaskFile: function (gid, selectedFileIndexArr, callback, silent) { var selectedFileIndex = ''; for (var i = 0; i < selectedFileIndexArr.length; i++) { if (selectedFileIndex.length > 0) { selectedFileIndex += ','; } selectedFileIndex += selectedFileIndexArr[i]; } return this.setTaskOption(gid, 'select-file', selectedFileIndex, callback, silent); }, getBtTaskPeers: function (task, callback, silent, includeLocalPeer) { return aria2RpcService.getPeers({ gid: task.gid, silent: !!silent, callback: function (response) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.getBtTaskPeers] callback is null'); return; } if (response.success) { processBtPeers(response.data, task, includeLocalPeer); } callback(response); } }); }, getTaskStatusAndBtPeers: function (gid, callback, silent, requirePeers, includeLocalPeer, addVirtualFileNode) { var methods = [ aria2RpcService.tellStatus({ gid: gid }, true) ]; if (requirePeers) { methods.push(aria2RpcService.getPeers({ gid: gid }, true)); } return aria2RpcService.multicall({ methods: methods, silent: !!silent, callback: function (response) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.getTaskStatusAndBtPeers] callback is null'); return; } response.task = {}; if (response.success && response.data.length > 0) { response.task = response.data[0][0]; processDownloadTask(response.task, addVirtualFileNode); } if (response.success && response.task.bittorrent && response.data.length > 1) { response.peers = response.data[1][0]; processBtPeers(response.peers, response.task, includeLocalPeer); } callback(response); } }); }, newUriTask: function (task, pauseOnAdded, callback, silent) { return aria2RpcService.addUri({ task: task, pauseOnAdded: !!pauseOnAdded, silent: !!silent, callback: callback }); }, newUriTasks: function (tasks, pauseOnAdded, callback, silent) { return aria2RpcService.addUriMulti({ tasks: tasks, pauseOnAdded: !!pauseOnAdded, silent: !!silent, callback: callback }); }, newTorrentTask: function (task, pauseOnAdded, callback, silent) { return aria2RpcService.addTorrent({ task: task, pauseOnAdded: !!pauseOnAdded, silent: !!silent, callback: callback }); }, newMetalinkTask: function (task, pauseOnAdded, callback, silent) { return aria2RpcService.addMetalink({ task: task, pauseOnAdded: !!pauseOnAdded, silent: !!silent, callback: callback }); }, startTasks: function (gids, callback, silent) { return aria2RpcService.unpauseMulti({ gids: gids, silent: !!silent, callback: callback }); }, pauseTasks: function (gids, callback, silent) { return aria2RpcService.forcePauseMulti({ gids: gids, silent: !!silent, callback: callback }); }, retryTask: function (gid, callback, silent) { var deferred = $q.defer(); var methods = [ aria2RpcService.tellStatus({gid: gid}, true), aria2RpcService.getOption({gid: gid}, true) ]; var task = null, options = null; aria2RpcService.multicall({ methods: methods, silent: !!silent, callback: function (response) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.retryTask] callback is null'); return; } if (!response.success) { ariaNgLogService.warn('[aria2TaskService.retryTask] response is not success', response); deferred.reject(response); callback(response); return; } if (response.data.length > 0) { task = response.data[0][0]; } if (response.data.length > 1) { options = response.data[1][0]; } if (!task || !options || !task.files || task.files.length !== 1 || task.bittorrent) { if (!task) { ariaNgLogService.warn('[aria2TaskService.retryTask] task is null'); } if (!options) { ariaNgLogService.warn('[aria2TaskService.retryTask] options is null'); } if (!task.files) { ariaNgLogService.warn('[aria2TaskService.retryTask] task file is null'); } if (task.files.length !== 1) { ariaNgLogService.warn('[aria2TaskService.retryTask] task file length is not equal 1'); } if (task.bittorrent) { ariaNgLogService.warn('[aria2TaskService.retryTask] task is bittorrent'); } deferred.reject(gid); callback({ success: false }); return; } var file = task.files[0]; var urls = []; for (var i = 0; i < file.uris.length; i++) { var uriObj = file.uris[i]; urls.push(uriObj.uri); } aria2RpcService.addUri({ task: { urls: urls, options: options }, pauseOnAdded: false, silent: !!silent, callback: function (response) { if (!response.success) { ariaNgLogService.warn('[aria2TaskService.retryTask] addUri response is not success', response); deferred.reject(response); callback(response); return; } if (ariaNgSettingService.getRemoveOldTaskAfterRetrying()) { aria2RpcService.removeDownloadResult({ gid: gid, silent: true, callback: function (response) { if (!response.success) { ariaNgLogService.warn('[aria2TaskService.retryTask] removeDownloadResult response is not success', response); } } }); } deferred.resolve(response); callback(response); } }); } }); return deferred.promise; }, retryTasks: function (tasks, callback, silent) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.retryTasks] callback is null'); return; } var retryTaskFunc = this.retryTask; var deferred = $q.defer(); var lastPromise = null; var successCount = 0; var failedCount = 0; var doRetryFunc = function (task, index) { ariaNgLogService.debug('[aria2TaskService.retryTasks] task#' + index + ', gid=' + task.gid + ' start retrying', task); return retryTaskFunc(task.gid, function (response) { ariaNgLogService.debug('[aria2TaskService.retryTasks] task#' + index + ', gid=' + task.gid + ', result=' + response.success, task); if (response.success) { successCount++; } else { failedCount++; } if ((successCount + failedCount) === tasks.length) { var finalResponse = { successCount: successCount, failedCount: failedCount, hasSuccess: successCount > 0, hasError: failedCount > 0 }; deferred.resolve(finalResponse); callback(finalResponse); } }, silent); }; for (var i = 0; i < tasks.length; i++) { var task = tasks[i]; var currentPromise = null; if (!lastPromise) { currentPromise = doRetryFunc(task, i); } else { currentPromise = (function (task, index) { return lastPromise.then(function onSuccess() { return doRetryFunc(task, index); }).catch(function onError() { return doRetryFunc(task, index); }); })(task, i); } lastPromise = currentPromise; } return deferred.promise; }, removeTasks: function (tasks, callback, silent) { var runningTaskGids = []; var stoppedTaskGids = []; for (var i = 0; i < tasks.length; i++) { if (tasks[i].status === 'complete' || tasks[i].status === 'error' || tasks[i].status === 'removed') { stoppedTaskGids.push(tasks[i].gid); } else { runningTaskGids.push(tasks[i].gid); } } var promises = []; var hasSuccess = false; var hasError = false; var results = []; if (runningTaskGids.length > 0) { promises.push(aria2RpcService.forceRemoveMulti({ gids: runningTaskGids, silent: !!silent, callback: function (response) { ariaNgCommonService.pushArrayTo(results, response.results); hasSuccess = hasSuccess || response.hasSuccess; hasError = hasError || response.hasError; } })); } if (stoppedTaskGids.length > 0) { promises.push(aria2RpcService.removeDownloadResultMulti({ gids: stoppedTaskGids, silent: !!silent, callback: function (response) { ariaNgCommonService.pushArrayTo(results, response.results); hasSuccess = hasSuccess || response.hasSuccess; hasError = hasError || response.hasError; } })); } return $q.all(promises).then(function onSuccess() { if (callback) { callback({ hasSuccess: !!hasSuccess, hasError: !!hasError, results: results }); } }); }, changeTaskPosition: function (gid, position, callback, silent) { return aria2RpcService.changePosition({ gid: gid, pos: position, how: 'POS_SET', silent: !!silent, callback: callback }); }, clearStoppedTasks: function (callback, silent) { return aria2RpcService.purgeDownloadResult({ silent: !!silent, callback: callback }); }, onConnectionSuccess: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onConnectionSuccess] callback is null'); return; } aria2RpcService.onConnectionSuccess({ callback: callback }); }, onConnectionFailed: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onConnectionFailed] callback is null'); return; } aria2RpcService.onConnectionFailed({ callback: callback }); }, onConnectionReconnecting: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onConnectionReconnecting] callback is null'); return; } aria2RpcService.onConnectionReconnecting({ callback: callback }); }, onConnectionWaitingToReconnect: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onConnectionWaitingToReconnect] callback is null'); return; } aria2RpcService.onConnectionWaitingToReconnect({ callback: callback }); }, onFirstSuccess: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onFirstSuccess] callback is null'); return; } aria2RpcService.onFirstSuccess({ callback: callback }); }, onOperationSuccess: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onOperationSuccess] callback is null'); return; } aria2RpcService.onOperationSuccess({ callback: callback }); }, onOperationError: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onOperationError] callback is null'); return; } aria2RpcService.onOperationError({ callback: callback }); }, onTaskCompleted: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onTaskCompleted] callback is null'); return; } aria2RpcService.onDownloadComplete({ callback: createTaskEventCallback(this.getTaskStatus, callback, 'completed') }); }, onBtTaskCompleted: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onBtTaskCompleted] callback is null'); return; } aria2RpcService.onBtDownloadComplete({ callback: createTaskEventCallback(this.getTaskStatus, callback, 'btcompleted') }); }, onTaskErrorOccur: function (callback) { if (!callback) { ariaNgLogService.warn('[aria2TaskService.onTaskErrorOccur] callback is null'); return; } aria2RpcService.onDownloadError({ callback: createTaskEventCallback(this.getTaskStatus, callback, 'error') }); }, processDownloadTasks: function (tasks, addVirtualFileNode) { if (!angular.isArray(tasks)) { ariaNgLogService.warn('[aria2TaskService.processDownloadTasks] tasks is not array', tasks); return; } for (var i = 0; i < tasks.length; i++) { processDownloadTask(tasks[i], addVirtualFileNode); } }, getPieceStatus: function (bitField, pieceCount) { return getPieceStatus(bitField, pieceCount); }, getCombinedPieces: function (bitField, pieceCount) { return getCombinedPieces(bitField, pieceCount); }, estimateHealthPercentFromPeers: function (task, peers) { if (!task || task.numPieces < 1 || peers.length < 1) { ariaNgLogService.warn('[aria2TaskService.estimateHealthPercentFromPeers] tasks is null or numPieces < 1 or peers < 1', task); return task.completePercent; } var totalPieces = []; var maxCompletedPieceCount = 0; var maxCompletedPercent = task.completePercent; for (var i = 0; i < task.numPieces; i++) { totalPieces.push(0); } for (var i = 0; i < peers.length; i++) { var peer = peers[i]; var peerPieces = getPieceStatus(peer.bitfield, task.numPieces); var completedPieceCount = 0; for (var j = 0; j < peerPieces.length; j++) { var count = (peerPieces[j] ? 1 : 0); totalPieces[j] += count; completedPieceCount += count; } if (completedPieceCount > maxCompletedPieceCount) { maxCompletedPieceCount = completedPieceCount; maxCompletedPercent = peer.completePercent; } else if (completedPieceCount === maxCompletedPieceCount && peer.completePercent > maxCompletedPercent) { maxCompletedPercent = peer.completePercent; } } var totalCompletedPieceCount = 0; if (totalPieces.length > 0) { while (true) { var completed = true; for (var i = 0; i < totalPieces.length; i++) { if (totalPieces[i] > 0) { totalCompletedPieceCount++; totalPieces[i]--; } else { completed = false; } } if (!completed) { break; } } } if (totalCompletedPieceCount <= maxCompletedPieceCount) { return maxCompletedPercent; } var healthPercent = totalCompletedPieceCount / task.numPieces * 100; if (healthPercent <= maxCompletedPercent) { return maxCompletedPercent; } return healthPercent; } }; }]); }()); ================================================ FILE: src/scripts/services/aria2WebSocketRpcService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('aria2WebSocketRpcService', ['$q', '$websocket', '$timeout', 'ariaNgConstants', 'ariaNgSettingService', 'ariaNgLogService', function ($q, $websocket, $timeout, ariaNgConstants, ariaNgSettingService, ariaNgLogService) { var websocketStatusConnecting = 0; var websocketStatusOpen = 1; var rpcUrl = ariaNgSettingService.getCurrentRpcUrl(); var socketClient = null; var pendingReconnect = null; var sendIdStates = {}; var eventCallbacks = {}; var processRequestFailed = function (request) { var content = angular.fromJson(request); if (!content) { return; } var uniqueId = content.id; if (!uniqueId) { return; } var state = sendIdStates[uniqueId]; if (!state) { return; } var context = state.context; state.deferred.reject({ success: false, context: context }); if (context.errorCallback) { ariaNgLogService.debug('[aria2WebSocketRpcService.processRequestFailed] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'request failed'); context.errorCallback(context.id, { message: 'Cannot connect to aria2!' }); } delete sendIdStates[uniqueId]; }; var processMethodCallback = function (content) { var uniqueId = content.id; if (!uniqueId) { return; } var state = sendIdStates[uniqueId]; if (!state) { return; } var context = state.context; state.deferred.resolve({ success: true, context: context }); if (content.result && context.connectionSuccessCallback) { context.connectionSuccessCallback({ rpcUrl: rpcUrl }); } if (content.result && context.successCallback) { ariaNgLogService.debug('[aria2WebSocketRpcService.processMethodCallback] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'response success', content); context.successCallback(context.id, content.result); } if (content.error && context.errorCallback) { ariaNgLogService.debug('[aria2WebSocketRpcService.processMethodCallback] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'response error', content); context.errorCallback(context.id, content.error); } delete sendIdStates[uniqueId]; }; var processEventCallback = function (content) { var method = content.method; if (!method) { return; } var callbacks = eventCallbacks[method]; if (!angular.isArray(callbacks) || callbacks.length < 1) { return; } for (var i = 0; i < callbacks.length; i++) { var callback = callbacks[i]; var context = (angular.isArray(content.params) && content.params.length > 0 ? content.params[0] : null); callback(context); } }; var getSocketClient = function (context) { if (socketClient === null) { try { socketClient = $websocket(rpcUrl, { maxTimeout: 1, // ms reconnectInterval: ariaNgSettingService.getWebSocketReconnectInterval() }); socketClient.onMessage(function (message) { if (!message || !message.data) { if (message.request) { processRequestFailed(message.request); } return; } var content = angular.fromJson(message.data); if (!content) { return; } if (content.id) { processMethodCallback(content); } else if (content.method) { processEventCallback(content); } }); socketClient.onOpen(function (e) { ariaNgLogService.debug('[aria2WebSocketRpcService.onOpen] websocket is opened', e); if (context && context.connectionSuccessCallback) { context.connectionSuccessCallback({ rpcUrl: rpcUrl }); } }); socketClient.onClose(function (e) { ariaNgLogService.warn('[aria2WebSocketRpcService.onClose] websocket is closed', e); var enableAutoReconnect = ariaNgSettingService.getWebSocketReconnectInterval() > 0; if (enableAutoReconnect) { planToReconnect(context); } if (enableAutoReconnect && context && context.connectionWaitingToReconnectCallback) { context.connectionWaitingToReconnectCallback({ rpcUrl: rpcUrl }); } else if (context && context.connectionFailedCallback) { context.connectionFailedCallback({ rpcUrl: rpcUrl }); } }); } catch (ex) { return { success: false, error: 'Cannot initialize WebSocket!', exception: ex } } } return { success: true, instance: socketClient }; }; var reconnect = function (context) { if (!context || !socketClient) { return; } for (var uniqueId in sendIdStates) { if (!sendIdStates.hasOwnProperty(uniqueId)) { continue; } var state = sendIdStates[uniqueId]; if (!state) { delete sendIdStates[uniqueId]; continue; } state.deferred.reject({ success: false, context: state.context }); ariaNgLogService.debug('[aria2WebSocketRpcService.reconnect] reject old request', state.context); state.context.errorCallback(state.context.id, { message: 'Cannot connect to aria2!' }); delete sendIdStates[uniqueId]; } if (context.connectionReconnectingCallback) { context.connectionReconnectingCallback({ rpcUrl: rpcUrl }); } socketClient.reconnect(); }; var planToReconnect = function (context) { if (pendingReconnect) { ariaNgLogService.warn('[aria2WebSocketRpcService.planToReconnect] another reconnection is pending'); return; } pendingReconnect = $timeout(function () { if (socketClient == null) { ariaNgLogService.warn('[aria2WebSocketRpcService.planToReconnect] websocket is null'); pendingReconnect = null; return; } if (socketClient.readyState === websocketStatusConnecting || socketClient.readyState === websocketStatusOpen) { ariaNgLogService.warn('[aria2WebSocketRpcService.planToReconnect] websocket current state is already ' + socketClient.readyState); pendingReconnect = null; return; } reconnect(context); pendingReconnect = null; }, ariaNgSettingService.getWebSocketReconnectInterval()); ariaNgLogService.debug('[aria2WebSocketRpcService.planToReconnect] next reconnection is pending in ' + ariaNgSettingService.getWebSocketReconnectInterval() + "ms"); } return { request: function (context) { if (!context) { return; } var client = getSocketClient({ connectionSuccessCallback: context.connectionSuccessCallback, connectionFailedCallback: context.connectionFailedCallback, connectionReconnectingCallback: context.connectionReconnectingCallback, connectionWaitingToReconnectCallback: context.connectionWaitingToReconnectCallback }); var uniqueId = context.uniqueId; var requestBody = angular.toJson(context.requestBody); ariaNgLogService.debug('[aria2WebSocketRpcService.request] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'request start', context); var deferred = $q.defer(); if (client.instance) { sendIdStates[uniqueId] = { context: context, deferred: deferred }; client.instance.send(requestBody); } else { deferred.reject({ success: false, context: context }); ariaNgLogService.debug('[aria2WebSocketRpcService.request] client error', client); context.errorCallback(context.id, { message: client.error }); } return deferred.promise; }, reconnect: function (context) { reconnect(context); }, on: function (eventName, callback) { var callbacks = eventCallbacks[eventName]; if (!angular.isArray(callbacks)) { callbacks = eventCallbacks[eventName] = []; } callbacks.push(callback); } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgAssetsCacheService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').provider('ariaNgAssetsCacheService', [function () { var assetsRoot = {}; var languageAssetsPrefix = 'languages.'; var getAsset = function (path) { var parts = path.split('.'), result = assetsRoot; for (var i = 0; i < parts.length; i++) { if (angular.isUndefined(result[parts[i]])) { return null; } result = result[parts[i]]; } return result; }; var setAsset = function (path, value) { var parts = path.split('.'), result = assetsRoot; for (var i = 0; i < parts.length - 1; i++) { if (angular.isUndefined(result[parts[i]])) { result[parts[i]] = {}; } result = result[parts[i]]; } result[parts[parts.length - 1]] = value; }; this.getLanguageAsset = function (languageName) { return getAsset(languageAssetsPrefix + languageName); }; this.setLanguageAsset = function (languageName, languageContent) { setAsset(languageAssetsPrefix + languageName, languageContent); }; this.$get = function () { var that = this; return { getLanguageAsset: function (languageName) { return that.getLanguageAsset(languageName); } } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgCommonService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgCommonService', ['$window', '$location', '$timeout', 'base64', 'moment', 'SweetAlert', 'ariaNgConstants', 'ariaNgLocalizationService', function ($window, $location, $timeout, base64, moment, SweetAlert, ariaNgConstants, ariaNgLocalizationService) { var getTimeOption = function (time) { var name = ''; var value = time; if (time < 1000) { value = time; name = (value === 1 ? 'format.time.millisecond' : 'format.time.milliseconds'); } else if (time < 1000 * 60) { value = time / 1000; name = (value === 1 ? 'format.time.second' : 'format.time.seconds'); } else if (time < 1000 * 60 * 24) { value = time / 1000 / 60; name = (value === 1 ? 'format.time.minute' : 'format.time.minutes'); } else { value = time / 1000 / 60 / 24; name = (value === 1 ? 'format.time.hour' : 'format.time.hours'); } return { name: name, value: value, optionValue: time }; }; var showDialog = function (title, text, type, callback, options) { $timeout(function () { SweetAlert.swal({ title: title, text: text, type: type, confirmButtonText: options && options.confirmButtonText || null }, function () { if (callback) { callback(); } }); }, 100); }; var showConfirmDialog = function (title, text, type, callback, notClose, extendSettings) { var options = { title: title, text: text, type: type, showCancelButton: true, showLoaderOnConfirm: !!notClose, closeOnConfirm: !notClose, confirmButtonText: extendSettings && extendSettings.confirmButtonText || null, cancelButtonText: extendSettings && extendSettings.cancelButtonText || null }; if (type === 'warning') { options.confirmButtonColor = '#F39C12'; } SweetAlert.swal(options, function (isConfirm) { if (!isConfirm) { return; } if (callback) { callback(); } }); } return { getFullPageUrl: function () { return $window.location.protocol + '//' + $window.location.host + $window.location.pathname + ($window.location.search ? $window.location.search : ''); }, base64Encode: function (value) { return base64.encode(value); }, base64Decode: function (value) { return base64.decode(value); }, base64UrlEncode: function (value) { return base64.urlencode(value); }, base64UrlDecode: function (value) { return base64.urldecode(value); }, generateUniqueId: function () { var sourceId = ariaNgConstants.appPrefix + '_' + Math.round(new Date().getTime() / 1000) + '_' + Math.random(); var hashedId = this.base64Encode(sourceId); return hashedId; }, showDialog: function (title, text, type, callback, extendSettings) { if (!extendSettings) { extendSettings = {}; } if (title) { title = ariaNgLocalizationService.getLocalizedText(title); } if (text) { text = ariaNgLocalizationService.getLocalizedText(text, extendSettings.textParams); } extendSettings.confirmButtonText = ariaNgLocalizationService.getLocalizedText('OK'); showDialog(title, text, type, callback, extendSettings); }, showInfo: function (title, text, callback, extendSettings) { this.showDialog(title, text, 'info', callback, extendSettings); }, showError: function (text, callback, extendSettings) { this.showDialog('Error', text, 'error', callback, extendSettings); }, showOperationSucceeded: function (text, callback) { this.showDialog('Operation Succeeded', text, 'success', callback); }, confirm: function (title, text, type, callback, notClose, extendSettings) { if (!extendSettings) { extendSettings = {}; } if (title) { title = ariaNgLocalizationService.getLocalizedText(title); } if (text) { text = ariaNgLocalizationService.getLocalizedText(text, extendSettings.textParams); } extendSettings.confirmButtonText = ariaNgLocalizationService.getLocalizedText('OK'); extendSettings.cancelButtonText = ariaNgLocalizationService.getLocalizedText('Cancel'); showConfirmDialog(title, text, type, callback, notClose, extendSettings); }, closeAllDialogs: function () { SweetAlert.close(); }, getFileExtension: function (filePath) { if (!filePath || filePath.lastIndexOf('.') < 0) { return filePath; } return filePath.substring(filePath.lastIndexOf('.')); }, parseUrlsFromOriginInput: function (s) { if (!s) { return []; } var lines = s.split('\n'); var result = []; for (var i = 0; i < lines.length; i++) { var line = lines[i]; if (line.match(/^(http|https|ftp|sftp):\/\/.+$/)) { result.push(line); } else if (line.match(/^magnet:\?.+$/)) { result.push(line); } } return result; }, decodePercentEncodedString: function (s) { if (!s) { return s; } var ret = ''; for (var i = 0; i < s.length; i++) { var ch = s.charAt(i); if (ch === '%' && i < s.length - 2) { var code = s.substring(i + 1, i + 3); ret += String.fromCharCode(parseInt(code, 16)); i += 2; } else { ret += ch; } } return ret; }, extendArray: function (sourceArray, targetArray, keyProperty) { if (!targetArray || !sourceArray || sourceArray.length !== targetArray.length) { return false; } for (var i = 0; i < targetArray.length; i++) { if (targetArray[i][keyProperty] === sourceArray[i][keyProperty]) { angular.extend(targetArray[i], sourceArray[i]); } else { return false; } } return true; }, copyObjectTo: function (from, to) { if (!to) { return from; } for (var name in from) { if (!from.hasOwnProperty(name)) { continue; } var fromValue = from[name]; var toValue = to[name]; if (angular.isObject(fromValue) || angular.isArray(fromValue)) { to[name] = this.copyObjectTo(from[name], to[name]); } else { if (fromValue !== toValue) { to[name] = fromValue; } } } return to; }, pushArrayTo: function (array, items) { if (!angular.isArray(array)) { array = []; } if (!angular.isArray(items) || items.length < 1) { return array; } for (var i = 0; i < items.length; i++) { array.push(items[i]); } return array; }, combineArray: function () { var result = []; for (var i = 0; i < arguments.length; i++) { if (angular.isArray(arguments[i])) { this.pushArrayTo(result, arguments[i]); } else { result.push(arguments[i]); } } return result; }, countArray: function (array, value) { if (!angular.isArray(array) || array.length < 1) { return 0; } var count = 0; for (var i = 0; i < array.length; i++) { count += (array[i] === value ? 1 : 0); } return count; }, parseOrderType: function (value) { var values = value.split(':'); var obj = { type: values[0], order: values[1], equals: function (obj) { if (angular.isUndefined(obj.order)) { return this.type === obj.type; } else { return this.type === obj.type && this.order === obj.order; } }, getValue: function () { return this.type + ':' + this.order; } }; Object.defineProperty(obj, 'reverse', { get: function () { return this.order === 'desc'; }, set: function (value) { this.order = (value ? 'desc' : 'asc'); } }); return obj; }, getCurrentUnixTime: function () { return moment().format('X'); }, getLongTimeFromUnixTime: function (unixTime) { return moment(unixTime, 'X').format('HH:mm:ss'); }, isUnixTimeAfter: function (datetime, duration, unit) { return moment(datetime, 'X').isAfter(moment().add(duration, unit)); }, formatDateTime: function (datetime, format) { return moment(datetime).format(format); }, getTimeOption: function (time) { return getTimeOption(time); }, getTimeOptions: function (timeList, withDisabled) { var options = []; if (withDisabled) { options.push({ name: 'Disabled', value: 0, optionValue: 0 }); } if (!angular.isArray(timeList) || timeList.length < 1) { return options; } for (var i = 0; i < timeList.length; i++) { var time = timeList[i]; var option = getTimeOption(time); options.push(option); } return options; } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgFileService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgFileService', ['$window', function ($window) { var isSupportFileReader = !!$window.FileReader; var isSupportBlob = !!$window.Blob; var getAllowedExtensions = function (fileFilter) { var extensions = []; if (!fileFilter || fileFilter.length < 1) { extensions.push(/.+$/); return extensions; } var fileFilters = fileFilter.split(','); for (var i = 0; i < fileFilters.length; i++) { var extension = fileFilters[i]; if (extension === '*.*') { extensions.push(/.+$/); continue; } extension = extension.replace('.', '\\.'); extension = extension + '$'; extensions.push(new RegExp(extension)); } return extensions; }; var checkFileExtension = function (fileName, extensions) { if (!extensions || extensions.length < 1) { return true; } for (var i = 0; i < extensions.length; i++) { if (extensions[i].test(fileName)) { return true; } } return false; }; return { isSupportFileReader: function () { return isSupportFileReader; }, isSupportBlob: function () { return isSupportBlob; }, openFileContent: function (options, successCallback, errorCallback, element) { if (!isSupportFileReader) { if (errorCallback) { errorCallback('Your browser does not support loading file!'); } return; } options = angular.extend({ scope: null, fileFilter: null, fileType: 'binary', // or 'text' successCallback: successCallback, errorCallback: errorCallback }, options); if (!element || !element.change) { element = angular.element(''); } element.data('options', options); if (options.fileFilter) { element.attr('accept', options.fileFilter); } element.val(''); if (element.attr('data-ariang-file-initialized') !== 'true') { element.change(function () { if (!this.files || this.files.length < 1) { return; } var thisOptions = element.data('options'); var allowedExtensions = getAllowedExtensions(thisOptions.fileFilter); var file = this.files[0]; var fileName = file.name; if (!checkFileExtension(fileName, allowedExtensions)) { if (thisOptions.errorCallback) { if (thisOptions.scope) { thisOptions.scope.$apply(function () { thisOptions.errorCallback('The selected file type is invalid!'); }); } else { thisOptions.errorCallback('The selected file type is invalid!'); } } return; } var reader = new FileReader(); reader.onload = function () { var result = { fileName: fileName }; switch (thisOptions.fileType) { case 'text': result.content = this.result; break; case 'binary': default: result.base64Content = this.result.replace(/.*?base64,/, ''); break; } if (thisOptions.successCallback) { if (thisOptions.scope) { thisOptions.scope.$apply(function () { thisOptions.successCallback(result); }); } else { thisOptions.successCallback(result); } } }; reader.onerror = function () { if (thisOptions.errorCallback) { if (thisOptions.scope) { thisOptions.scope.$apply(function () { thisOptions.errorCallback('Failed to load file!'); }); } else { thisOptions.errorCallback('Failed to load file!'); } } }; switch (thisOptions.fileType) { case 'text': reader.readAsText(file); break; case 'binary': default: reader.readAsDataURL(file); break; } }).attr('data-ariang-file-initialized', 'true'); } element.trigger('click'); }, saveFileContent: function (content, element, options) { if (!isSupportBlob) { return; } options = angular.extend({ fileName: null, contentType: 'application/octet-stream', autoTrigger: false, autoRevoke: false }, options); var blob = new Blob([content], { type: options.contentType }); var objectUrl = URL.createObjectURL(blob); if (!element) { element = angular.element(''); } element.attr('href', objectUrl); if (options.fileName) { element.attr('download', options.fileName); } if (options.autoTrigger) { element.trigger('click'); } if (options.autoRevoke) { URL.revokeObjectURL(objectUrl); } } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgKeyboardService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgKeyboardService', ['$window', function ($window) { var platform = ''; if ($window.navigator && $window.navigator.userAgentData && $window.navigator.userAgentData.platform) { platform = $window.navigator.userAgentData.platform; } else if ($window.navigator && $window.navigator.platform) { platform = $window.navigator.platform; } var isMacLike = /(Mac|iPhone|iPod|iPad)/i.test(platform); var isModifierKeyPressed = function (event) { if (isMacLike) { return event.metaKey; } else { return event.ctrlKey; } }; var getKeyCode = function (event) { return event.keyCode || event.which || event.charCode; }; return { isMacKeyboardLike: function () { return isMacLike; }, isCtrlAPressed: function (event) { return (isModifierKeyPressed(event) && (event.code === 'KeyA' || getKeyCode(event) === 65)); // Ctrl+A / Command+A }, isCtrlFPressed: function (event) { return (isModifierKeyPressed(event) && (event.code === 'KeyF' || getKeyCode(event) === 70)); // Ctrl+F / Command+F }, isCtrlEnterPressed: function (event) { return (isModifierKeyPressed(event) && (event.code === 'Enter' || getKeyCode(event) === 13)); // Ctrl+Enter / Command+Return }, isBackspacePressed: function (event) { return (event.code === 'Backspace' || getKeyCode(event) === 8); // Backspace }, isDeletePressed: function (event) { return (event.code === 'Delete' || getKeyCode(event) === 46); // Delete } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgLanguageLoader.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgLanguageLoader', ['$http', '$q', 'ariaNgConstants', 'ariaNgLanguages', 'ariaNgAssetsCacheService', 'ariaNgNotificationService', 'ariaNgLogService', 'ariaNgStorageService', function ($http, $q, ariaNgConstants, ariaNgLanguages, ariaNgAssetsCacheService, ariaNgNotificationService, ariaNgLogService, ariaNgStorageService) { var getKeyValuePair = function (line) { for (var i = 0; i < line.length; i++) { if (i > 0 && line.charAt(i - 1) !== '\\' && line.charAt(i) === '=') { return { key: line.substring(0, i).replace('\\=', '='), value: line.substring(i + 1, line.length).replace('\\=', '=') }; } } return { value: line }; }; var getCategory = function (langObj, category) { var currentCategory = langObj; if (!category) { return currentCategory; } if (category[0] === '[' && category[category.length - 1] === ']') { category = category.substring(1, category.length - 1); } if (category === 'global') { return currentCategory; } var categoryNames = category.split('.'); for (var i = 0; i < categoryNames.length; i++) { var categoryName = categoryNames[i]; if (!currentCategory[categoryName]) { currentCategory[categoryName] = {}; } currentCategory = currentCategory[categoryName]; } return currentCategory; }; var getLanguageObject = function (languageContent) { var langObj = {}; if (!languageContent) { return langObj; } var lines = languageContent.split('\n'); var currentCatagory = langObj; for (var i = 0; i < lines.length; i++) { var line = lines[i]; if (!line) { continue; } line = line.replace('\r', ''); if (/^\[.+\]$/.test(line)) { currentCatagory = getCategory(langObj, line); continue; } var pair = getKeyValuePair(line); if (pair && pair.key && pair.value && pair.value !== '') { currentCatagory[pair.key] = pair.value; } } return langObj; }; var isLanguageResourceEquals = function (langObj1, langObj2) { if (!angular.isObject(langObj1) || !angular.isObject(langObj2)) { return false; } for (var key in langObj2) { if (!langObj2.hasOwnProperty(key)) { continue; } var value = langObj2[key]; if (angular.isObject(value)) { var result = isLanguageResourceEquals(langObj1[key], value); if (!result) { return false; } } else { if (value !== langObj1[key]) { return false; } } } return true; }; return function (options) { var deferred = $q.defer(); if (!ariaNgLanguages[options.key]) { deferred.reject(options.key); return deferred.promise; } var languageKey = ariaNgConstants.languageStorageKeyPrefix + '.' + options.key; var languageResource = ariaNgStorageService.get(languageKey); if (languageResource) { deferred.resolve(languageResource); } if (ariaNgAssetsCacheService.getLanguageAsset(options.key)) { var languageObject = getLanguageObject(ariaNgAssetsCacheService.getLanguageAsset(options.key)); ariaNgStorageService.set(languageKey, languageObject); deferred.resolve(languageObject); return deferred.promise; } var languagePath = ariaNgConstants.languagePath + '/' + options.key + ariaNgConstants.languageFileExtension; $http({ url: languagePath, method: 'GET' }).then(function onSuccess(response) { var languageObject = getLanguageObject(response.data); var languageUpdated = false; if (languageResource) { languageUpdated = !isLanguageResourceEquals(languageResource, languageObject); } ariaNgStorageService.set(languageKey, languageObject); if (languageUpdated) { ariaNgLogService.info('[ariaNgLanguageLoader] load language resource successfully, and resource is updated'); ariaNgNotificationService.notifyInPage('', 'Language resource has been updated, please reload the page for the changes to take effect.', { delay: false, type: 'info', templateUrl: 'views/notification-reloadable.html' }); } else { ariaNgLogService.info('[ariaNgLanguageLoader] load language resource successfully, but resource is not updated'); } return deferred.resolve(languageObject); }).catch(function onError(response) { ariaNgLogService.warn('[ariaNgLanguageLoader] cannot get language resource'); if (!languageResource) { ariaNgNotificationService.notifyInPage('', 'AriaNg cannot get language resources, and will display in default language.', { type: 'error', delay: false }); } return deferred.reject(options.key); }); return deferred.promise; }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgLocalizationService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgLocalizationService', ['$translate', 'amMoment', function ($translate, amMoment) { return { applyLanguage: function (lang) { $translate.use(lang); amMoment.changeLocale(lang); return true; }, getLocalizedText: function (text, params) { return $translate.instant(text, params); }, getLongDateFormat: function () { return this.getLocalizedText('format.longdate'); } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgLogService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgLogService', ['$log', 'ariaNgConstants', function ($log, ariaNgConstants) { var logLevels = { DEBUG: 1, INFO: 2, WARN: 3, ERROR: 4 }; var logIndex = 0; var enableDebugLog = false; var cachedDebugLogs = []; var createNewCacheLogItem = function (msg, level, obj) { return { id: ++logIndex, time: new Date(), level: level, content: msg, attachment: obj }; }; var pushLogToCache = function (msg, level, obj) { if (!enableDebugLog) { return; } if (cachedDebugLogs.length >= ariaNgConstants.cachedDebugLogsLimit) { cachedDebugLogs.shift(); } cachedDebugLogs.push(createNewCacheLogItem(msg, level, obj)); }; return { setEnableDebugLog: function (value) { enableDebugLog = value; }, compareLogLevel: function (level1, level2) { var level1Val = logLevels[level1]; var level2Val = logLevels[level2]; if (!level1Val) { level1Val = 0; } if (!level2Val) { level2Val = 0; } if (level1Val > level2Val) { return 1; } else if (level1Val < level2Val) { return -1; } else { return 0; } }, debug: function (msg, obj) { if (enableDebugLog) { if (obj) { $log.debug('[AriaNg Debug]' + msg, obj); } else { $log.debug('[AriaNg Debug]' + msg); } pushLogToCache(msg, 'DEBUG', obj); } }, info: function (msg, obj) { if (obj) { $log.info('[AriaNg Info]' + msg, obj); } else { $log.info('[AriaNg Info]' + msg); } pushLogToCache(msg, 'INFO', obj); }, warn: function (msg, obj) { if (obj) { $log.warn('[AriaNg Warn]' + msg, obj); } else { $log.warn('[AriaNg Warn]' + msg); } pushLogToCache(msg, 'WARN', obj); }, error: function (msg, obj) { if (obj) { $log.error('[AriaNg Error]' + msg, obj); } else { $log.error('[AriaNg Error]' + msg); } pushLogToCache(msg, 'ERROR', obj); }, getDebugLogs: function () { if (enableDebugLog) { return cachedDebugLogs; } else { return []; } }, clearDebugLogs: function () { logIndex = 0; cachedDebugLogs.length = 0; } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgMonitorService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgMonitorService', ['$filter', 'ariaNgConstants', 'ariaNgCommonService', 'ariaNgLocalizationService', function ($filter, ariaNgConstants, ariaNgCommonService, ariaNgLocalizationService) { var currentGlobalStat = {}; var storagesInMemory = {}; var globalStorageKey = 'global'; var getStorageCapacity = function (key) { if (key === globalStorageKey) { return ariaNgConstants.globalStatStorageCapacity; } else { return ariaNgConstants.taskStatStorageCapacity; } }; var initStorage = function (key) { var data = { legend: { show: false }, grid: { x: 50, y: 10, x2: 10, y2: 10 }, tooltip: { show: true, formatter: function (params) { if (params[0].name === '') { return '
' + ariaNgLocalizationService.getLocalizedText('No Data') + '
'; } var time = ariaNgCommonService.getLongTimeFromUnixTime(params[0].name); var uploadSpeed = $filter('readableVolume')(params[0].value) + '/s'; var downloadSpeed = $filter('readableVolume')(params[1].value) + '/s'; return '
' + time + '
' + '
' + downloadSpeed +'
' + '
' + uploadSpeed + '
'; } }, xAxis: { data: [], type: 'category', boundaryGap: false, axisLabel: { show: false } }, yAxis: { type: 'value', axisLabel: { formatter: function (value) { return $filter('readableVolume')(value, 'auto'); } } }, series: [{ type: 'line', areaStyle: { normal: { opacity: 0.1 } }, smooth: true, symbolSize: 6, showAllSymbol: false, data: [] }, { type: 'line', areaStyle: { normal: { opacity: 0.1 } }, smooth: true, symbolSize: 6, showAllSymbol: false, data: [] }] }; var timeData = data.xAxis.data; var uploadData = data.series[0].data; var downloadData = data.series[1].data; for (var i = 0; i < getStorageCapacity(key); i++) { timeData.push(''); uploadData.push(''); downloadData.push(''); } storagesInMemory[key] = data; return data; }; var isStorageExist = function (key) { return angular.isDefined(storagesInMemory[key]); }; var pushToStorage = function (key, stat) { var storage = storagesInMemory[key]; var timeData = storage.xAxis.data; var uploadData = storage.series[0].data; var downloadData = storage.series[1].data; if (timeData.length >= getStorageCapacity(key)) { timeData.shift(); uploadData.shift(); downloadData.shift(); } timeData.push(stat.time); uploadData.push(stat.uploadSpeed); downloadData.push(stat.downloadSpeed); }; var getStorage = function (key) { return storagesInMemory[key]; }; var removeStorage = function (key) { delete storagesInMemory[key]; }; return { recordStat: function (key, stat) { if (!isStorageExist(key)) { initStorage(key); } stat.time = ariaNgCommonService.getCurrentUnixTime(); pushToStorage(key, stat); }, getStatsData: function (key) { if (!isStorageExist(key)) { initStorage(key); } return getStorage(key); }, getEmptyStatsData: function (key) { if (isStorageExist(key)) { removeStorage(key); } return this.getStatsData(key); }, recordGlobalStat: function (stat) { this.recordStat(globalStorageKey, stat); currentGlobalStat = stat; }, getGlobalStatsData: function () { return this.getStatsData(globalStorageKey); }, getCurrentGlobalStat: function () { return currentGlobalStat; } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgNotificationService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgNotificationService', ['$window', 'Notification', 'ariaNgConstants', 'ariaNgCommonService', 'ariaNgStorageService', 'ariaNgLocalizationService', 'ariaNgLogService', 'ariaNgSettingService', function ($window, Notification, ariaNgConstants, ariaNgCommonService, ariaNgStorageService, ariaNgLocalizationService, ariaNgLogService, ariaNgSettingService) { var isSupportBrowserNotification = !!$window.Notification; var isBrowserNotifactionGranted = function (permission) { return permission === 'granted'; }; var getBrowserNotifactionPermission = function () { if (!$window.Notification) { return null; } return $window.Notification.permission; }; var requestBrowserNotifactionPermission = function (callback) { if (!$window.Notification) { return; } $window.Notification.requestPermission(function (permission) { if (callback) { callback({ granted: isBrowserNotifactionGranted(permission), permission: permission }); } }); }; var isReachBrowserNotificationFrequencyLimit = function () { if (!ariaNgSettingService.getBrowserNotificationFrequency() || ariaNgSettingService.getBrowserNotificationFrequency() === 'unlimited') { return false; } var lastNotifications = ariaNgStorageService.get(ariaNgConstants.browserNotificationHistoryStorageKey) || []; if (!angular.isArray(lastNotifications)) { return false; } if (lastNotifications.length < 1) { return false; } var oldestTime = null; var isReachLimit = false; if (ariaNgSettingService.getBrowserNotificationFrequency() === 'high') { if (lastNotifications.length < 10) { return false; } oldestTime = lastNotifications[lastNotifications.length - 10].time; isReachLimit = ariaNgCommonService.isUnixTimeAfter(oldestTime, '-1', 'minute'); } else if (ariaNgSettingService.getBrowserNotificationFrequency() === 'middle') { oldestTime = lastNotifications[lastNotifications.length - 1].time; isReachLimit = ariaNgCommonService.isUnixTimeAfter(oldestTime, '-1', 'minute'); } else if (ariaNgSettingService.getBrowserNotificationFrequency() === 'low') { oldestTime = lastNotifications[lastNotifications.length - 1].time; isReachLimit = ariaNgCommonService.isUnixTimeAfter(oldestTime, '-5', 'minute'); } if (isReachLimit) { ariaNgLogService.debug('[ariaNgNotificationService.isReachBrowserNotificationFrequencyLimit] reach frequency limit' + (oldestTime ? ', the oldest time is ' + oldestTime : '')); } return isReachLimit; }; var recordBrowserNotificationHistory = function () { if (!ariaNgSettingService.getBrowserNotificationFrequency() || ariaNgSettingService.getBrowserNotificationFrequency() === 'unlimited') { return; } var lastNotifications = ariaNgStorageService.get(ariaNgConstants.browserNotificationHistoryStorageKey) || []; if (!angular.isArray(lastNotifications)) { lastNotifications = []; } lastNotifications.push({ time: ariaNgCommonService.getCurrentUnixTime() }); if (lastNotifications.length > 10) { lastNotifications.splice(0, lastNotifications.length - 10); } ariaNgStorageService.set(ariaNgConstants.browserNotificationHistoryStorageKey, lastNotifications); }; var showBrowserNotifaction = function (title, options) { if (!$window.Notification) { return; } if (!isBrowserNotifactionGranted(getBrowserNotifactionPermission())) { return; } if (isReachBrowserNotificationFrequencyLimit()) { return; } options = angular.extend({ icon: 'tileicon.png' }, options); recordBrowserNotificationHistory(); new $window.Notification(title, options); }; var notifyViaBrowser = function (title, content, options) { if (!options) { options = {}; } options.body = content; if (!ariaNgSettingService.getBrowserNotificationSound()) { options.silent = true; } if (isSupportBrowserNotification && ariaNgSettingService.getBrowserNotification()) { showBrowserNotifaction(title, options); } }; var notifyInPage = function (title, content, options) { if (!options) { options = {}; } if (!content) { options.message = title; } else { options.title = title; options.message = content; } if (!options.type || !Notification[options.type]) { options.type = 'primary'; } if (!options.positionY) { options.positionY = 'top'; } return Notification[options.type](options); }; return { isSupportBrowserNotification: function () { return isSupportBrowserNotification; }, hasBrowserPermission: function () { if (!isSupportBrowserNotification) { return false; } return isBrowserNotifactionGranted(getBrowserNotifactionPermission()); }, requestBrowserPermission: function (callback) { if (!isSupportBrowserNotification) { return; } requestBrowserNotifactionPermission(function (result) { if (!result.granted) { ariaNgSettingService.setBrowserNotification(false); } if (callback) { callback(result); } }); }, notifyViaBrowser: function (title, content, options) { if (!options) { options = {}; } if (title) { title = ariaNgLocalizationService.getLocalizedText(title, options.titleParams); } if (content) { content = ariaNgLocalizationService.getLocalizedText(content, options.contentParams); } return notifyViaBrowser(title, content, options); }, notifyTaskComplete: function (task) { this.notifyViaBrowser('Download Completed', (task && task.taskName ? task.taskName : '')); }, notifyBtTaskComplete: function (task) { this.notifyViaBrowser('BT Download Completed', (task && task.taskName ? task.taskName : '')); }, notifyTaskError: function (task) { this.notifyViaBrowser('Download Error', (task && task.taskName ? task.taskName : '')); }, notifyInPage: function (title, content, options) { if (!options) { options = {}; } if (title) { title = ariaNgLocalizationService.getLocalizedText(title, options.titleParams); } if (content) { content = ariaNgLocalizationService.getLocalizedText(content, options.contentParams); if (options.contentPrefix) { content = options.contentPrefix + content; } } return notifyInPage(title, content, options); }, clearNotificationInPage: function () { Notification.clearAll(); } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgSettingService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgSettingService', ['$window', '$location', '$filter', 'ariaNgConstants', 'ariaNgDefaultOptions', 'ariaNgLanguages', 'ariaNgCommonService', 'ariaNgLogService', 'ariaNgStorageService', function ($window, $location, $filter, ariaNgConstants, ariaNgDefaultOptions, ariaNgLanguages, ariaNgCommonService, ariaNgLogService, ariaNgStorageService) { var browserFeatures = (function () { var supportLocalStroage = ariaNgStorageService.isLocalStorageSupported(); var supportCookies = ariaNgStorageService.isCookiesSupported(); return { localStroage: supportLocalStroage, cookies: supportCookies }; })(); var browserSupportStorage = browserFeatures.localStroage || browserFeatures.cookies; var browserSupportMatchMedia = !!$window.matchMedia; var browserSupportDarkMode = browserSupportMatchMedia && $window.matchMedia('(prefers-color-scheme: dark)') && $window.matchMedia('(prefers-color-scheme: dark)').media !== 'not all' && angular.isFunction($window.matchMedia('(prefers-color-scheme: dark)').addEventListener); var onFirstVisitCallbacks = []; var firstVisitCallbackFired = false; var sessionSettings = { debugMode: false }; var fireFirstVisitEvent = function () { if (!browserSupportStorage) { return; } if (firstVisitCallbackFired || !angular.isArray(onFirstVisitCallbacks) || onFirstVisitCallbacks.length < 1) { return; } for (var i = 0; i < onFirstVisitCallbacks.length; i++) { var callback = onFirstVisitCallbacks[i]; callback(); } firstVisitCallbackFired = true; }; var isInsecureProtocolDisabled = function () { var protocol = $location.protocol(); return protocol === 'https'; }; var getLanguageNameFromAlias = function (alias) { for (var langName in ariaNgLanguages) { if (!ariaNgLanguages.hasOwnProperty(langName)) { continue; } if (langName.toLowerCase() === alias.toLowerCase()) { return langName; } var language = ariaNgLanguages[langName]; var aliases = language.aliases; if (!angular.isArray(aliases) || aliases.length < 1) { continue; } for (var i = 0; i < aliases.length; i++) { if (aliases[i].toLowerCase() === alias.toLowerCase()) { return langName; } } } return null; }; var getDefaultLanguage = function () { var browserLang = $window.navigator.browserLanguage ? $window.navigator.browserLanguage : $window.navigator.language; if (!browserLang) { ariaNgLogService.info('[ariaNgSettingService] cannot get browser language, use default language'); return ariaNgDefaultOptions.language; } browserLang = browserLang.replace(/\-/g, '_'); if (!ariaNgLanguages[browserLang]) { var languageName = getLanguageNameFromAlias(browserLang); if (languageName) { browserLang = languageName; } } if (!ariaNgLanguages[browserLang] && browserLang.split('_').length > 1) { // maybe language-script-region var langParts = browserLang.split('_'); browserLang = langParts[0] + '_' + langParts[1]; if (!ariaNgLanguages[browserLang]) { var languageName = getLanguageNameFromAlias(browserLang); if (languageName) { browserLang = languageName; } } if (!ariaNgLanguages[browserLang]) { browserLang = langParts[0]; var languageName = getLanguageNameFromAlias(browserLang); if (languageName) { browserLang = languageName; } } } if (!ariaNgLanguages[browserLang]) { ariaNgLogService.info('[ariaNgSettingService] browser language \"' + browserLang + '\" not support, use default language'); return ariaNgDefaultOptions.language; } ariaNgLogService.info('[ariaNgSettingService] use browser language \"' + browserLang + '\" as current language'); return browserLang; }; var getLanguageNameFromAliasOrDefaultLanguage = function (lang) { var languageName = getLanguageNameFromAlias(lang); if (languageName) { return languageName; } return getDefaultLanguage(); }; var getDefaultRpcHost = function () { var currentHost = $location.host(); if (currentHost) { return currentHost; } return ariaNgConstants.defaultHost; }; var setOptions = function (options) { return ariaNgStorageService.set(ariaNgConstants.optionStorageKey, options); }; var getOptions = function () { var options = ariaNgStorageService.get(ariaNgConstants.optionStorageKey); if (options && !ariaNgLanguages[options.language]) { options.language = getLanguageNameFromAliasOrDefaultLanguage(options.language); } if (!options) { options = angular.extend({}, ariaNgDefaultOptions); options.language = getDefaultLanguage(); if (!options.rpcHost) { initRpcSettingWithDefaultHostAndProtocol(options); } if (angular.isArray(options.extendRpcServers)) { for (var i = 0; i < options.extendRpcServers.length; i++) { var rpcSetting = options.extendRpcServers[i]; if (!rpcSetting.rpcHost) { initRpcSettingWithDefaultHostAndProtocol(rpcSetting); } } } setOptions(options); fireFirstVisitEvent(); } return options; }; var clearAll = function () { return ariaNgStorageService.clearAll(); }; var getOption = function (key) { var options = getOptions(); if (angular.isUndefined(options[key]) && angular.isDefined(ariaNgDefaultOptions[key])) { options[key] = ariaNgDefaultOptions[key]; setOptions(options); } return options[key]; }; var setOption = function (key, value) { var options = getOptions(); options[key] = value; setOptions(options); }; var initRpcSettingWithDefaultHostAndProtocol = function (setting) { setting.rpcHost = getDefaultRpcHost(); if (isInsecureProtocolDisabled()) { setting.protocol = ariaNgConstants.defaultSecureProtocol; } }; var cloneRpcSetting = function (setting) { return { rpcAlias: setting.rpcAlias, rpcHost: setting.rpcHost, rpcPort: setting.rpcPort, rpcInterface: setting.rpcInterface, protocol: setting.protocol, httpMethod: setting.httpMethod, rpcRequestHeaders: setting.rpcRequestHeaders, secret: setting.secret }; }; var createNewRpcSetting = function () { var setting = cloneRpcSetting(ariaNgDefaultOptions); setting.rpcId = ariaNgCommonService.generateUniqueId(); initRpcSettingWithDefaultHostAndProtocol(setting); return setting; }; return { isBrowserSupportStorage: function () { return browserSupportStorage; }, isBrowserSupportDarkMode: function () { return browserSupportDarkMode; }, getBrowserFeatures: function () { return browserFeatures; }, getAllOptions: function () { var options = angular.extend({}, ariaNgDefaultOptions, getOptions()); if (options.secret) { options.secret = ariaNgCommonService.base64Decode(options.secret); } if (angular.isArray(options.extendRpcServers)) { for (var i = 0; i < options.extendRpcServers.length; i++) { var rpcSetting = options.extendRpcServers[i]; if (rpcSetting.secret) { rpcSetting.secret = ariaNgCommonService.base64Decode(rpcSetting.secret); } } } return options; }, getAllRpcSettings: function () { var result = []; var options = this.getAllOptions(); var defaultRpcSetting = cloneRpcSetting(options); defaultRpcSetting.isDefault = true; result.push(defaultRpcSetting); if (angular.isArray(options.extendRpcServers)) { for (var i = 0; i < options.extendRpcServers.length; i++) { var rpcSetting = cloneRpcSetting(options.extendRpcServers[i]); rpcSetting.rpcId = options.extendRpcServers[i].rpcId; rpcSetting.isDefault = false; result.push(rpcSetting); } } var displayOrder = this.getRPCListDisplayOrder(); if (displayOrder === 'recentlyUsed') { // Do Nothing } else if (displayOrder === 'rpcAlias') { result.sort(function (rpc1, rpc2) { return String.naturalCompare(rpc1.rpcAlias, rpc2.rpcAlias); }); } return result; }, importAllOptions: function (options) { var finalOptions = angular.copy(ariaNgDefaultOptions); for (var key in options) { if (!options.hasOwnProperty(key) || !finalOptions.hasOwnProperty(key)) { continue; } if (angular.isObject(options[key]) || angular.isArray(options[key])) { continue; } finalOptions[key] = options[key]; } if (angular.isArray(options.extendRpcServers)) { for (var i = 0; i < options.extendRpcServers.length; i++) { var rpcSetting = options.extendRpcServers[i]; var finalRpcSetting = createNewRpcSetting(); for (var key in rpcSetting) { if (!rpcSetting.hasOwnProperty(key) || !finalRpcSetting.hasOwnProperty(key)) { continue; } if (angular.isObject(rpcSetting[key]) || angular.isArray(rpcSetting[key])) { continue; } finalRpcSetting[key] = rpcSetting[key]; } finalOptions.extendRpcServers.push(finalRpcSetting); } } setOptions(finalOptions); }, exportAllOptions: function () { var options = angular.extend({}, ariaNgDefaultOptions, getOptions()); return options; }, getAllSessionOptions: function () { return angular.copy(sessionSettings); }, isInsecureProtocolDisabled: function () { return isInsecureProtocolDisabled(); }, getLanguage: function () { return getOption('language'); }, setLanguage: function (value) { if (!ariaNgLanguages[value]) { return false; } setOption('language', value); return true; }, getTheme: function () { return getOption('theme'); }, setTheme: function (value) { setOption('theme', value); return true; }, isEnableDebugMode: function () { return sessionSettings.debugMode; }, setDebugMode: function (value) { sessionSettings.debugMode = value; ariaNgLogService.setEnableDebugLog(value); }, getTitle: function () { return getOption('title'); }, setTitle: function (value) { setOption('title', value); }, getBrowserNotification: function () { return getOption('browserNotification'); }, setBrowserNotification: function (value) { setOption('browserNotification', value); }, getBrowserNotificationSound: function () { return getOption('browserNotificationSound'); }, setBrowserNotificationSound: function (value) { setOption('browserNotificationSound', value); }, getBrowserNotificationFrequency: function () { return getOption('browserNotificationFrequency'); }, setBrowserNotificationFrequency: function (value) { setOption('browserNotificationFrequency', value); }, getWebSocketReconnectInterval: function () { return getOption('webSocketReconnectInterval'); }, setWebSocketReconnectInterval: function (value) { setOption('webSocketReconnectInterval', value); }, getTitleRefreshInterval: function () { return getOption('titleRefreshInterval'); }, setTitleRefreshInterval: function (value) { setOption('titleRefreshInterval', Math.max(parseInt(value), 0)); }, getGlobalStatRefreshInterval: function () { return getOption('globalStatRefreshInterval'); }, setGlobalStatRefreshInterval: function (value) { setOption('globalStatRefreshInterval', Math.max(parseInt(value), 0)); }, getDownloadTaskRefreshInterval: function () { return getOption('downloadTaskRefreshInterval'); }, setDownloadTaskRefreshInterval: function (value) { setOption('downloadTaskRefreshInterval', Math.max(parseInt(value), 0)); }, getKeyboardShortcuts: function () { return getOption('keyboardShortcuts'); }, setKeyboardShortcuts: function (value) { setOption('keyboardShortcuts', value); }, getSwipeGesture: function () { return getOption('swipeGesture'); }, setSwipeGesture: function (value) { setOption('swipeGesture', value); }, getDragAndDropTasks: function () { return getOption('dragAndDropTasks'); }, setDragAndDropTasks: function (value) { setOption('dragAndDropTasks', value); }, getRPCListDisplayOrder: function () { return getOption('rpcListDisplayOrder'); }, setRPCListDisplayOrder: function (value) { setOption('rpcListDisplayOrder', value); }, getAfterCreatingNewTask: function () { return getOption('afterCreatingNewTask'); }, setAfterCreatingNewTask: function (value) { setOption('afterCreatingNewTask', value); }, getRemoveOldTaskAfterRetrying: function () { return getOption('removeOldTaskAfterRetrying'); }, setRemoveOldTaskAfterRetrying: function (value) { setOption('removeOldTaskAfterRetrying', value); }, getConfirmTaskRemoval: function () { return getOption('confirmTaskRemoval'); }, setConfirmTaskRemoval: function (value) { setOption('confirmTaskRemoval', value); }, getIncludePrefixWhenCopyingFromTaskDetails: function () { return getOption('includePrefixWhenCopyingFromTaskDetails'); }, setIncludePrefixWhenCopyingFromTaskDetails: function (value) { setOption('includePrefixWhenCopyingFromTaskDetails', value); }, getShowPiecesInfoInTaskDetailPage: function () { return getOption('showPiecesInfoInTaskDetailPage'); }, setShowPiecesInfoInTaskDetailPage: function (value) { setOption('showPiecesInfoInTaskDetailPage', value); }, getAfterRetryingTask: function () { return getOption('afterRetryingTask'); }, setAfterRetryingTask: function (value) { setOption('afterRetryingTask', value); }, getCurrentRpcDisplayName: function () { var options = getOptions(); if (options.rpcAlias) { return options.rpcAlias; } return options.rpcHost + ':' + options.rpcPort; }, getCurrentRpcUrl: function () { var options = getOptions(); var protocol = options.protocol; var rpcHost = options.rpcHost; var rpcPort = options.rpcPort; var rpcInterface = options.rpcInterface; return protocol + '://' + rpcHost + ':' + rpcPort + '/' + rpcInterface; }, getCurrentRpcHttpMethod: function () { return getOption('httpMethod'); }, getCurrentRpcRequestHeaders: function () { return getOption('rpcRequestHeaders'); }, isCurrentRpcUseWebSocket: function (protocol) { if (!protocol) { var options = getOptions(); protocol = options.protocol; } return protocol === 'ws' || protocol === 'wss'; }, getCurrentRpcSecret: function () { var value = getOption('secret'); return (value ? ariaNgCommonService.base64Decode(value) : value); }, addNewRpcSetting: function () { var options = getOptions(); if (!angular.isArray(options.extendRpcServers)) { options.extendRpcServers = []; } var newRpcSetting = createNewRpcSetting(); options.extendRpcServers.push(newRpcSetting); setOptions(options); return newRpcSetting; }, updateRpcSetting: function (setting, field) { if (!setting) { return setting; } var updatedSetting = cloneRpcSetting(setting); if (angular.isUndefined(updatedSetting[field])) { return setting; } var value = updatedSetting[field]; if (field === 'rpcPort') { value = Math.max(parseInt(value), 0); } else if (field === 'secret') { if (value) { value = ariaNgCommonService.base64Encode(value); } } if (setting.isDefault) { setOption(field, value); return setting; } else { var options = getOptions(); if (!angular.isArray(options.extendRpcServers)) { return setting; } for (var i = 0; i < options.extendRpcServers.length; i++) { if (options.extendRpcServers[i].rpcId === setting.rpcId) { options.extendRpcServers[i][field] = value; break; } } setOptions(options); return setting; } }, removeRpcSetting: function (setting) { var options = getOptions(); if (!angular.isArray(options.extendRpcServers)) { return setting; } for (var i = 0; i < options.extendRpcServers.length; i++) { if (options.extendRpcServers[i].rpcId === setting.rpcId) { options.extendRpcServers.splice(i, 1); break; } } setOptions(options); return setting; }, setDefaultRpcSetting: function (setting, params) { params = angular.extend({ keepCurrent: true, forceSet: false }, params); var options = getOptions(); var currentSetting = cloneRpcSetting(options); currentSetting.rpcId = ariaNgCommonService.generateUniqueId(); if (!angular.isArray(options.extendRpcServers)) { options.extendRpcServers = []; } var newDefaultSetting = null; for (var i = 0; i < options.extendRpcServers.length; i++) { if (options.extendRpcServers[i].rpcId === setting.rpcId) { newDefaultSetting = cloneRpcSetting(options.extendRpcServers[i]); options.extendRpcServers.splice(i, 1); break; } } if (params.forceSet) { newDefaultSetting = cloneRpcSetting(setting); if (newDefaultSetting.secret) { newDefaultSetting.secret = ariaNgCommonService.base64Encode(newDefaultSetting.secret); } } if (newDefaultSetting) { if (params.keepCurrent) { options.extendRpcServers.splice(0, 0, currentSetting); } options = angular.extend(options, newDefaultSetting); } setOptions(options); return setting; }, isRpcSettingEqualsDefault: function (setting) { if (!setting) { return false; } var options = this.getAllOptions(); if (options.rpcHost !== setting.rpcHost) { return false; } if (options.rpcPort !== setting.rpcPort) { return false; } if (options.rpcInterface !== setting.rpcInterface) { return false; } if (options.protocol !== setting.protocol) { return false; } if (options.httpMethod !== setting.httpMethod) { return false; } if (options.rpcRequestHeaders !== setting.rpcRequestHeaders) { return false; } if (options.secret !== setting.secret) { return false; } return true; }, getTaskListIndependentDisplayOrder: function () { return getOption('taskListIndependentDisplayOrder'); }, setTaskListIndependentDisplayOrder: function (value) { setOption('taskListIndependentDisplayOrder', value); }, getTaskListDisplayOrderKey: function (taskListPageType) { var optionKey = 'displayOrder'; if (this.getTaskListIndependentDisplayOrder()) { if (taskListPageType === 'waiting') { optionKey = 'waitingTaskListPageDisplayOrder'; } else if (taskListPageType === 'stopped') { optionKey = 'stoppedTaskListPageDisplayOrder'; } } return optionKey; }, getDisplayOrder: function (taskListPageType) { var optionKey = this.getTaskListDisplayOrderKey(taskListPageType); var value = getOption(optionKey); if (!value) { value = 'default:asc'; } return value; }, setDisplayOrder: function (value, taskListPageType) { var optionKey = this.getTaskListDisplayOrderKey(taskListPageType); setOption(optionKey, value); }, getFileListDisplayOrder: function () { var value = getOption('fileListDisplayOrder'); if (!value) { value = 'default:asc'; } return value; }, setFileListDisplayOrder: function (value) { setOption('fileListDisplayOrder', value); }, getPeerListDisplayOrder: function () { var value = getOption('peerListDisplayOrder'); if (!value) { value = 'default:asc'; } return value; }, setPeerListDisplayOrder: function (value) { setOption('peerListDisplayOrder', value); }, resetSettings: function () { clearAll(); }, onFirstAccess: function (callback) { if (!callback) { return; } onFirstVisitCallbacks.push(callback); } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgStorageService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgStorageService', ['$window', 'localStorageService', function ($window, localStorageService) { return { isLocalStorageSupported: function () { return localStorageService.isSupported; }, isCookiesSupported: function () { return localStorageService.cookie.isSupported; }, get: function (key) { return localStorageService.get(key); }, set: function (key, value) { return localStorageService.set(key, value); }, remove: function (key) { return localStorageService.remove(key); }, clearAll: function () { return localStorageService.clearAll(); }, keys: function (prefix) { var allKeys = localStorageService.keys(); if (!allKeys || !allKeys.length || !prefix) { return allKeys; } var result = []; for (var i = 0; i < allKeys.length; i++) { if (allKeys[i].indexOf(prefix) >= 0) { result.push(allKeys[i]); } } return result; } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgTitleService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgTitleService', ['$filter', 'ariaNgConstants', 'ariaNgLocalizationService', 'ariaNgSettingService', function ($filter, ariaNgConstants, ariaNgLocalizationService, ariaNgSettingService) { var parseSettings = function (placeholder) { if (!placeholder) { return {}; } var innerText = placeholder.substring(2, placeholder.length - 1); // remove ${ and } var items = innerText.split(':'); var settings = { oldValue: placeholder }; for (var i = 1; i < items.length; i++) { var pairs = items[i].split('='); if (pairs.length === 1) { settings[pairs[0]] = true; } else if (pairs.length === 2) { settings[pairs[0]] = pairs[1]; } } return settings; }; var replacePlaceholder = function (title, context) { var value = context.value; if (context.type === 'volume') { value = $filter('readableVolume')(value, context.scale); } if (context.prefix && !context.noprefix) { value = context.prefix + value; } if (context.suffix && !context.nosuffix) { value = value + context.suffix; } return title.replace(context.oldValue, value); }; var replacePlaceholders = function (title, condition, context) { var regex = new RegExp('\\$\\{' + condition + '(:[a-zA-Z0-9]+(=[a-zA-Z0-9]+)?)*\\}', 'g'); var results = title.match(regex); if (results && results.length > 0) { for (var i = 0; i < results.length; i++) { var innerContext = parseSettings(results[i]); angular.extend(innerContext, context); title = replacePlaceholder(title, innerContext); } } return title; }; var replaceCurrentRPCAlias = function (title, value) { return replacePlaceholders(title, 'rpcprofile', { value: value }); }; var replaceDownloadingCount = function (title, value) { return replacePlaceholders(title, 'downloading', { prefix: ariaNgLocalizationService.getLocalizedText('Downloading') + ': ', value: value }); }; var replaceWaitingCount = function (title, value) { return replacePlaceholders(title, 'waiting', { prefix: ariaNgLocalizationService.getLocalizedText('Waiting') + ': ', value: value }); }; var replaceStoppedCount = function (title, value) { return replacePlaceholders(title, 'stopped', { prefix: ariaNgLocalizationService.getLocalizedText('Finished / Stopped') + ': ', value: value }); }; var replaceDownloadSpeed = function (title, value) { return replacePlaceholders(title, 'downspeed', { prefix: ariaNgLocalizationService.getLocalizedText('Download') + ': ', value: value, type: 'volume', suffix: '/s' }); }; var replaceUploadSpeed = function (title, value) { return replacePlaceholders(title, 'upspeed', { prefix: ariaNgLocalizationService.getLocalizedText('Upload') + ': ', value: value, type: 'volume', suffix: '/s' }); }; var replaceAgiaNgTitle = function (title) { return replacePlaceholders(title, 'title', { value: ariaNgConstants.title }); }; return { getFinalTitle: function (context) { var title = ariaNgSettingService.getTitle(); if (!title) { return ariaNgConstants.title; } context = angular.extend({ downloadingCount: 0, waitingCount: 0, stoppedCount: 0, downloadSpeed: 0, uploadSpeed: 0 }, context); title = replaceCurrentRPCAlias(title, context.currentRPCAlias); title = replaceDownloadingCount(title, context.downloadingCount); title = replaceWaitingCount(title, context.waitingCount); title = replaceStoppedCount(title, context.stoppedCount); title = replaceDownloadSpeed(title, context.downloadSpeed); title = replaceUploadSpeed(title, context.uploadSpeed); title = replaceAgiaNgTitle(title); return title; }, getFinalTitleByGlobalStat: function (params) { var context = { currentRPCAlias: (params && params.currentRpcProfile ? (params.currentRpcProfile.rpcAlias || (params.currentRpcProfile.rpcHost + ':' + params.currentRpcProfile.rpcPort)) : ''), downloadingCount: (params && params.globalStat ? params.globalStat.numActive : 0), waitingCount: (params && params.globalStat ? params.globalStat.numWaiting : 0), stoppedCount: (params && params.globalStat ? params.globalStat.numStopped : 0), downloadSpeed: (params && params.globalStat ? params.globalStat.downloadSpeed : 0), uploadSpeed: (params && params.globalStat ? params.globalStat.uploadSpeed : 0) }; return this.getFinalTitle(context); } }; }]); }()); ================================================ FILE: src/scripts/services/ariaNgVersionService.js ================================================ (function () { 'use strict'; angular.module('ariaNg').factory('ariaNgVersionService', ['ariaNgBuildConfiguration', function (ariaNgBuildConfiguration) { return { getBuildVersion: function () { return ariaNgBuildConfiguration.buildVersion; }, getBuildCommit: function () { return ariaNgBuildConfiguration.buildCommit; } }; }]); }()); ================================================ FILE: src/styles/controls/angular-promise-buttons.css ================================================ /* angular-promise-buttons */ @-webkit-keyframes three-quarters { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } @-moz-keyframes three-quarters { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } @-o-keyframes three-quarters { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes three-quarters { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } .btn-spinner { font-family: sans-serif; font-weight: 100; } .btn-spinner:not(:required) { -webkit-animation: three-quarters 1250ms infinite linear; -moz-animation: three-quarters 1250ms infinite linear; -ms-animation: three-quarters 1250ms infinite linear; -o-animation: three-quarters 1250ms infinite linear; animation: three-quarters 1250ms infinite linear; border: 3px solid #8c8c8c; border-right-color: transparent; border-radius: 100%; box-sizing: border-box; display: inline-block; position: relative; vertical-align: middle; overflow: hidden; text-indent: -9999px; width: 18px; height: 18px; } .btn-primary .btn-spinner:not(:required), .btn-danger .btn-spinner:not(:required) { border: 3px solid #efefef; border-right-color: transparent; } .btn-spinner:not(:required) { margin-left: -17px; opacity: 0; transition: 0.4s margin ease-out, 0.2s opacity ease-out; } .is-loading .btn-spinner { transition: 0.2s margin ease-in, 0.4s opacity ease-in; margin-left: 5px; opacity: 1; } ================================================ FILE: src/styles/controls/chart.css ================================================ /* chart */ .chart-popover { max-width: 320px; } .chart-popover .popover-content { padding: 0; } .chart-pop-wrapper { padding-left: 4px; padding-right: 4px; overflow-x: hidden; } .chart-pop { display: table; } .chart-pop .loading { width: 100%; height: 100%; display: table-cell; text-align: center; vertical-align: middle; } .global-status-chart { width: 312px; height: 200px; } .task-status-chart-wrapper { overflow-x: hidden; } ================================================ FILE: src/styles/controls/global-status.css ================================================ /* global-status */ .global-status { cursor: pointer; } .global-status > .realtime-speed { padding: 0 15px 0 15px; } .global-status > .realtime-speed:first-child { padding-left: 5px; } .global-status > .realtime-speed:last-child { padding-right: 5px; } .global-status span.realtime-speed > i { padding-right: 2px; } ================================================ FILE: src/styles/controls/new-task-table.css ================================================ /* new-task-table */ .new-task-table { margin-left: 15px; margin-right: 15px; } @media screen and (orientation: landscape) { .content > .new-task-table, .tab-pane > .new-task-table { margin-right: calc(15px + env(safe-area-inset-right)); } } .new-task-table > div.row { padding-top: 8px; padding-bottom: 8px; } @media screen and (orientation: landscape) { .content > .new-task-table > div.row, .tab-pane > .new-task-table > div.row { margin-right: calc(-1 * calc(15px + env(safe-area-inset-right))); padding-right: env(safe-area-inset-right); } } .new-task-table > div.row:first-child { border-top: inherit; } .new-task-table .new-task-toollink > a { margin-right: 20px; } @media (max-width: 767px) { .new-task-table .new-task-toollink > a { display: block; } } .settings-table .new-task-filter-title { padding-top: 6px; } ================================================ FILE: src/styles/controls/piece-bar-map.css ================================================ /* piece-bar / piece-map */ .piece-bar-wrapper { height: 20px; } .piece-bar { width: 100%; } .piece-map { padding-left: 6px; padding-right: 2px; line-height: 11px; } @media screen and (orientation: landscape) { .tab-pane > .piece-map { padding-right: calc(2px + env(safe-area-inset-right)); } } .piece-legends { text-align: center; margin-top: 4px; margin-bottom: 4px; } @media screen and (orientation: landscape) { .tab-pane > .piece-legends { padding-right: env(safe-area-inset-right); } } .piece-legend { display: inline-block; margin-right: 4px; } .piece-map .piece, .piece-legend > .piece { width: 10px; height: 10px; background-color: #eef2f4; border: #dee2e5 solid 1px; display: inline-block; margin-right: 1px; } .piece-map .piece.piece-completed, .piece-legend > .piece.piece-completed { background-color: #b8dd69; border-color: #b8dd69; } .piece-legend > .piece { margin-right: 4px; } ================================================ FILE: src/styles/controls/settings-table.css ================================================ /* settings-table */ .settings-table { margin-left: 15px; margin-right: 15px; } @media screen and (orientation: landscape) { .content > .settings-table, .tab-pane > .settings-table { margin-right: calc(15px + env(safe-area-inset-right)); } } .settings-table .settings-table-title { font-size: 12px; padding-top: 4px; padding-bottom: 4px; } .settings-table .settings-table-title a { color: #000; cursor: pointer; } .settings-table .settings-table-title .settings-table-title-toolbar { display: inline-block; margin-left: 10px; } .settings-table > div.row { padding-top: 8px; padding-bottom: 8px; border-top: 1px solid #ddd; } @media screen and (orientation: landscape) { .content > .settings-table > div.row, .tab-pane > .settings-table > div.row { margin-right: calc(-1 * calc(15px + env(safe-area-inset-right))); padding-right: env(safe-area-inset-right); } } .settings-table > div.row:first-child { border-top: inherit; } .settings-table + .settings-table > div.row:first-child { border-top: 1px solid #ddd; } .settings-table .input-group-addon { background-color: #eee; } .settings-table .asterisk { color: red; } .settings-table .description, .settings-table .description-inline { color: #888; font-size: 12px; font-weight: normal; font-style: normal; } .settings-table .description { display: block; } .settings-table .description-inline { display: inline-block; } .settings-table em { color: #888; font-size: 12px; font-weight: normal; } .settings-table .setting-value .form-group { margin-bottom: 0; } .settings-table .setting-value .form-group .form-control-icon { color: #3c8dbc; } .settings-table .setting-value .form-group select.form-control + .form-control-icon > .form-control-feedback { right: 10px; } .settings-table .setting-value .input-group .form-group .form-control:focus { z-index: inherit; } .settings-table .setting-value .input-group .form-control-rpcport { min-width: 70px; } .settings-table .setting-value .input-group .form-control-rpcinterface { min-width: 100px; } @media (max-width: 991px) { .settings-table .setting-value .input-group .form-control-rpcport { min-width: 60px; } .settings-table .setting-value .input-group .form-control-rpcinterface { min-width: 60px; } } .settings-table .tip { font-size: 12px; padding: 4px 8px 4px 8px; } .settings-table .multi-line { display: block; } @media (max-width: 767px) { .settings-table .setting-key { font-weight: bold; } .settings-table .description { display: inline-block; } } @media (min-width: 768px) { .settings-table .setting-key-without-desc { padding-top: 6px; } } ================================================ FILE: src/styles/controls/task-table.css ================================================ /* task-table */ .task-table { margin-left: 15px; margin-right: 15px; } @media screen and (orientation: landscape) { .content > .task-table, .tab-pane > .task-table { margin-right: calc(15px + env(safe-area-inset-right)); } } .task-table .task-table-title { font-size: 12px; padding-top: 4px; padding-bottom: 4px; } .task-table .task-table-title a { color: #000; cursor: pointer; } .task-table > .task-table-body.draggable { cursor: move; cursor: grab; cursor: -moz-grab; cursor: -webkit-grab; } @media screen and (orientation: landscape) { .content > .task-table div.row, .tab-pane > .task-table div.row { margin-right: calc(-1 * calc(15px + env(safe-area-inset-right))); padding-right: env(safe-area-inset-right); } } .task-table > .task-table-body > div.row { padding-top: 8px; padding-bottom: 8px; border-top: 1px solid #ddd; } .task-table > div.row:first-child { border-top: inherit; } @media (max-width: 767px) { .task-table > .task-table-title { display: none !important; } .task-table > .task-table-body > div.row:first-child { border-top: inherit; } } .task-table .task-name { font-size: 14px; display: block; } .task-table .peer-name-wrapper { display: inline-block; width: 100%; } .task-table .task-files, .task-table .task-size { font-size: 12px; display: block; } .task-table .progress { margin-bottom: 0; } .task-table .task-last-time, .task-table .task-seeders, .task-table .task-last-time + .task-download-speed { color: #888; font-size: 12px; } .task-table .task-seeders, .task-table .task-last-time + .task-download-speed { margin-top: 1px; } .task-table .task-last-time + .task-download-speed { padding-left: 20px; } .task-table .task-download-speed, .task-table .task-peer-download-speed { font-size: 12px; } .task-table .checkbox, .task-table .radio { margin-top: 0; margin-bottom: 0; } .task-table .progress { position: relative; } .task-table .progress span { position: absolute; display: block; width: 100%; } .task-table .progress span.progress-lower { color: #000; } @media (max-width: 767px) { .task-table .task-peer-download-speed { float: right; } } .task-table .task-right-arrow { visibility: hidden; position: absolute; right: 14px; margin-top: -12px; } .task-table .row:hover .task-right-arrow, .task-table .row[data-selected=true] .task-right-arrow { visibility: visible; } .task-table .task-right-arrow i { color: #c8c8c8; font-size: 60px; } .task-table .task-right-arrow i:hover { color: #d8d8d8; } ================================================ FILE: src/styles/core/core.css ================================================ /*! * AriaNg * https://github.com/mayswind/AriaNg */ /* basic */ html { margin: 0; padding: 0; } body { margin: 0; padding: 0; -ms-user-select: none; -webkit-user-select: none; -moz-user-select: none; user-select: none; } select { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E') !important; background-repeat: no-repeat, repeat !important; background-position: right 0.7em top 50%, 0 0 !important; background-size: 0.65em auto, 100% !important; border: none; border-radius: 0; padding: 0 0 0 0.35em; } select::-ms-expand { display: none; } td { vertical-align: middle !important; } .modal textarea { resize: none; } .blur { -webkit-filter: blur(5px); -moz-filter: blur(5px); -ms-filter: blur(5px); filter: blur(5px); filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=5, MakeShadow=false); } .disable-overlay { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 9999; cursor: not-allowed; } .main-header .logo { overflow: visible; } .main-header .logo .dropdown-menu { z-index: 2000; } .main-header .navbar .nav > li { display: inline-block; } .main-header .navbar .nav > li > a { padding-left: 10px; padding-right: 10px; } .main-header .navbar .nav > li.disabled > a { pointer-events: none !important; } .main-header .navbar .navbar-nav { margin-left: 5px; } .main-header .navbar .navbar-searchbar { padding-top: 8px; padding-right: 20px; float: right; } .main-header .logo .logo-mini { font-size: 14px !important; } .main-header .logo .logo-lg { cursor: pointer; } .main-header .rpcselect-dropdown { max-height: 200px; overflow-x: hidden; } @media (min-height: 360px) { .main-header .rpcselect-dropdown { max-height: 260px; } } @media (min-height: 480px) { .main-header .rpcselect-dropdown { max-height: 360px; } } @media (min-height: 600px) { .main-header .rpcselect-dropdown { max-height: 480px; } } @media (min-height: 720px) { .main-header .rpcselect-dropdown { max-height: 600px; } } .main-sidebar { z-index: 1010; } .main-sidebar .sidebar-menu > li.treeview > ul.treeview-menu > li > a { padding: 6px 5px 6px 41px; } @supports (padding-left: max(15px, 0px)) { @media screen and (orientation: landscape) { .main-sidebar ul.sidebar-menu > li.header { padding-left: max(15px, env(safe-area-inset-left)); } .main-sidebar ul.sidebar-menu > li > a { padding-left: max(15px, env(safe-area-inset-left)); } .main-sidebar ul.sidebar-menu > li.treeview > ul.treeview-menu > li > a { padding-left: max(41px, calc(26px + env(safe-area-inset-left))); } } } .content-wrapper { min-height: calc(100vh - 48px); } .content-wrapper, .right-side { background-color: #fff; } .content-wrapper > .content-body { overflow-y: scroll; } @media screen and (orientation: portrait) { .main-footer { padding-bottom: calc(15px + env(safe-area-inset-bottom)); } } .main-footer > .navbar { margin-bottom: 0; min-height: inherit; } .main-footer > .navbar > .navbar-toolbar > .nav { float: left; margin: 0; } .main-footer > .navbar > .navbar-toolbar > .nav > li { display: inline-block; float: left; } .main-footer > .navbar > .navbar-toolbar > .nav > li > a { padding: 0 10px 0 10px; } .main-footer > .navbar > .navbar-toolbar > .nav > li:first-child > a { padding-left: 0; } .dropdown-menu.right-align { left: inherit; right: 0; } .default-cursor { cursor: default !important; } .pointer-cursor { cursor: pointer !important; } .text-cursor { cursor: text !important; } .allow-word-break { word-wrap: break-word; word-break: break-all; } .auto-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } @media (max-width: 767px) { .navbar-nav .open .dropdown-menu { position: absolute; border: 1px solid #eee; background-color: #fff; } .main-footer > .navbar > .navbar-toolbar > .nav > li > a { padding-left: 8px; padding-right: 8px; } } /* toolbar */ .toolbar { cursor: pointer; } .toolbar:active { -webkit-box-shadow: inset 0 2px 6px rgba(0, 0, 0, .125); -moz-box-shadow: inset 0 2px 6px rgba(0, 0, 0, .125); box-shadow: inset 0 2px 6px rgba(0, 0, 0, .125); } /* dropdown-submenu */ .dropdown-menu small { color: #999; } .dropdown-submenu { position: relative; } .dropdown-submenu > .dropdown-menu { top: 0; left: 100%; margin-top: -6px; margin-left: -1px; -webkit-border-radius: 0 6px 6px 6px; -moz-border-radius: 0 6px 6px; border-radius: 0 6px 6px 6px; } .dropdown-submenu:hover > .dropdown-menu { display: block; } .dropdown-submenu > a:after { display: block; content: " "; float: right; width: 0; height: 0; border-color: transparent; border-style: solid; border-width: 5px 0 5px 5px; border-left-color: #ccc; margin-top: 5px; margin-right: -10px; } .dropdown-menu > li.dropdown-submenu:hover { background-color: #e1e3e9; } .dropdown-submenu:hover > a:after { border-left-color: #fff; } .dropdown-submenu.pull-left { float: none; } .dropdown-submenu.pull-left > .dropdown-menu { left: -100%; margin-left: 10px; -webkit-border-radius: 6px 0 6px 6px; -moz-border-radius: 6px 0 6px 6px; border-radius: 6px 0 6px 6px; } /* scrollbar */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-thumb { background-clip: padding-box; background-color: #c4d2db; min-height: 28px; } ::-webkit-scrollbar-track { background-color: #fff; } ::-webkit-scrollbar-thumb:hover, ::-webkit-scrollbar-thumb:active { background-color: #d4dfe7; } @media (max-width: 767px) { ::-webkit-scrollbar { width: 6px; } } /* animation */ .fade-in.ng-enter { transition:0.3s linear all; opacity:0; } .fade-in.ng-enter.ng-enter-active { opacity:1; } /* misc */ .keyboard-key { font-size: 0.85em; padding: 1px 3px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; } ================================================ FILE: src/styles/core/extend.css ================================================ /* bootstrap */ .btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus { outline: none !important; } .btn-group + .btn { margin-left: 4px; } .btn-sm.promise-btn-style { padding-top: 6px; padding-bottom: 6px; } .btn.btn-xs:not(.is-loading) .btn-spinner:not(:required) { margin-left: -21px; } .progress-bar { -webkit-transition: initial !important; -moz-transition: initial !important; -ms-transition: initial !important; -o-transition: initial !important; transition: initial !important; } .input-group-addon-compact { padding: 0 4px 0 4px; } .nav-tabs-custom .nav-tabs > li > a { display: inline-block; } .nav-tabs-custom .nav-tabs > li > a.nav-tab-close { padding-left: 0; margin-left: -12px; } .nav-tabs-custom .nav-tabs > li.nav-tab-title-rpcname > a { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; } @media (max-width: 991px) { .nav-tabs-custom .nav-tabs > li.nav-tab-title-rpcname > a { max-width: 150px; } } @media (max-width: 767px) { .nav-tabs-custom .nav-tabs > li.nav-tab-title-rpcname > a { max-width: 120px; } } .input-group.input-group-multiple > .input-group-addon { border-left: 0; border-right: 0; } .input-group.input-group-multiple > .input-group-addon:first-child, .input-group.input-group-multiple > .input-group-addon-container:first-child { border-left: 1px solid #d2d6de; } .input-group .input-group-addon-container { width: 1%; display: table-cell; } .label { font-size: 85%; } /* font-awesome extend */ .fa-half { font-size: 0.5em; } .fa-1_1x { font-size: 1.1em; } .fa-rotate-45 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); filter: none; } .fa-right-bottom { position: relative; right: 0; bottom: -6px; } .fa-display-order { margin-left: 3px; } .fa-order-asc, .fa-order-desc { position: relative; } .fa-order-asc { bottom: -2px; } .fa-order-desc { bottom: 2px; } /* awesome-bootstrap-checkbox extend */ .checkbox input[type="checkbox"]:focus + label::before, .checkbox input[type="radio"]:focus + label::before { outline: none !important; } .checkbox input[type="checkbox"], .checkbox input[type="radio"] { cursor: pointer; } .checkbox input.disable-clickable { pointer-events: none !important; } .checkbox.checkbox-hide { padding-left: 0; } .checkbox.checkbox-hide > input, .checkbox.checkbox-hide > input + label::before, .checkbox.checkbox-hide > input + label::after { display: none !important; } .checkbox.checkbox-hide > label { padding-left: 0; } .checkbox-compact { margin-top: 2px; margin-bottom: 2px; } .checkbox-inline { display: inline-block; } .icon-dir-expand + .checkbox { margin-left: 6px; } /* angular-input-dropdown */ input-dropdown[input-class-name="form-control"] > .input-dropdown { width: 100% } .input-dropdown ul { border: 1px solid #888; } .input-dropdown ul > li.active { background-color: #e1e3e9; } .input-dropdown ul > li { padding: 2px 14px 2px 14px; } /* angular-dragula extend */ .gu-mirror { cursor: grabbing; cursor: -moz-grabbing; cursor: -webkit-grabbing; } ================================================ FILE: src/styles/theme/default-dark.css ================================================ /* skin-aria-ng core */ .theme-dark.skin-aria-ng { color: #eee; background-color: #1a1a1a; } .theme-dark.skin-aria-ng select { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23cccccc%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E') !important; } .theme-dark.skin-aria-ng .cg-busy-backdrop { background-color: #1a1a1a; } .theme-dark.skin-aria-ng .btn-default { color: #eee; border-color: #3f3f3f; background-color: #333; } .theme-dark.skin-aria-ng .btn-default:hover, .theme-dark.skin-aria-ng .btn-default:active, .theme-dark.skin-aria-ng .btn-default.hover { color: #fff; background-color: #444; } .theme-dark.skin-aria-ng .close { color: #eee; } .theme-dark.skin-aria-ng pre { background-color: #121212; border-color: #666; color: #eee; } .theme-dark.skin-aria-ng .form-control { background-color: #121212; border-color: #666; color: #eee; } .theme-dark.skin-aria-ng .form-control:focus { border-color: #5399e8; } .theme-dark.skin-aria-ng .form-control[disabled], .theme-dark.skin-aria-ng .form-control[readonly], .theme-dark.skin-aria-ng fieldset[disabled] .form-control { background-color: #333; } .theme-dark.skin-aria-ng .input-group-addon { color: #eee; border-color: #666; background-color: #333; } .theme-dark.skin-aria-ng .input-group.input-group-multiple > .input-group-addon:first-child, .theme-dark.skin-aria-ng .input-group.input-group-multiple > .input-group-addon-container:first-child { border-color: #666; } .theme-dark.skin-aria-ng .progress { background-color: #444; } .theme-dark.skin-aria-ng .nav-tabs-custom { background-color: #1a1a1a; } .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs { border-color: #333; } .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a { color: #ddd; } .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs > li.active > a, .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs > li.active:hover > a { background-color: #1a1a1a; } .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a:hover, .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a:active, .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs > li.active > a { color: #208fe5; } .theme-dark.skin-aria-ng .nav-tabs-custom > .nav-tabs > li.divider { border-color: #666; } .theme-dark.skin-aria-ng .nav-tabs-custom>.tab-content { background-color: #1a1a1a; } .theme-dark.skin-aria-ng .popover { background-color: #1a1a1a; border-color: rgba(0, 0, 0, 0.6); } .theme-dark.skin-aria-ng .popover.top .arrow:after { border-top-color: #1a1a1a; } .theme-dark.skin-aria-ng .popover.right .arrow:after { border-right-color: #1a1a1a; } .theme-dark.skin-aria-ng .popover.bottom .arrow:after { border-bottom-color: #1a1a1a; } .theme-dark.skin-aria-ng .popover.left .arrow:after { border-left-color: #1a1a1a; } .theme-dark.skin-aria-ng .modal-header { border-color: #333; } .theme-dark.skin-aria-ng .modal-content { background-color: #1a1a1a; border-color: rgba(0, 0, 0, 0.6); } .theme-dark.skin-aria-ng .modal-footer { border-color: #333; } .theme-dark.skin-aria-ng .dropdown-menu { background-color: #1a1a1a; border-color: #333; } .theme-dark.skin-aria-ng .dropdown-menu > li > a { color: #eee; } .theme-dark.skin-aria-ng .dropdown-menu > li > a:hover { color: #fff; background-color: #333; } .theme-dark.skin-aria-ng .dropdown-menu > li.dropdown-submenu:hover { background-color: #333; } .theme-dark.skin-aria-ng .dropdown-menu > .divider { background-color: #666; } .theme-dark.skin-aria-ng .sweet-overlay { background-color: rgba(0, 0, 0, 0.6); } .theme-dark.skin-aria-ng .sweet-alert { background-color: #222; } .theme-dark.skin-aria-ng .sweet-alert h2, .theme-dark.skin-aria-ng .sweet-alert p { color: #ddd; } .theme-dark.skin-aria-ng .sweet-alert .sa-icon.sa-success::before, .theme-dark.skin-aria-ng .sweet-alert .sa-icon.sa-success::after, .theme-dark.skin-aria-ng .sweet-alert .sa-icon.sa-success .sa-fix { background-color: #222; } .theme-dark.skin-aria-ng .main-header .navbar { background-color: #121212; border-color: #333; } .theme-dark.skin-aria-ng .main-header .navbar .nav > li > a { color: #eee; } .theme-dark.skin-aria-ng .main-header .navbar .nav > li > a:hover, .theme-dark.skin-aria-ng .main-header .navbar .nav > li > a:active, .theme-dark.skin-aria-ng .main-header .navbar .nav > li > a:focus, .theme-dark.skin-aria-ng .main-header .navbar .nav .open > a, .theme-dark.skin-aria-ng .main-header .navbar .nav .open > a:hover, .theme-dark.skin-aria-ng .main-header .navbar .nav .open > a:focus, .theme-dark.skin-aria-ng .main-header .navbar .nav > .active > a { color: #0080ff; background-color: transparent; } .theme-dark.skin-aria-ng .main-header .navbar .nav > li > a:active, .theme-dark.skin-aria-ng .main-header .navbar .nav .open > a, .theme-dark.skin-aria-ng .main-header .navbar .nav .open > a:hover, .theme-dark.skin-aria-ng .main-header .navbar .nav .open > a:focus { background-color: #444; } .theme-dark.skin-aria-ng .main-header .navbar .nav > li.disabled > a { color: #8f8f8f !important; } .theme-dark.skin-aria-ng .main-header .navbar .nav > li.divider { border-color: #666; } .theme-dark.skin-aria-ng .main-header .logo { background-color: #282828; border-color: #222; } .theme-dark.skin-aria-ng .main-header .logo .dropdown-menu > li.active > a { color: #eee; background-color: #1a1a1a; } .theme-dark.skin-aria-ng .main-header .logo .dropdown-menu > li.active:hover > a { color: #fff; background-color: #333; } .theme-dark.skin-aria-ng .wrapper, .theme-dark.skin-aria-ng .main-sidebar, .theme-dark.skin-aria-ng .left-side { background-color: #282828; } .theme-dark.skin-aria-ng .sidebar-menu > li.header { color: #ccc; background-color: #3c3c3c; } .theme-dark.skin-aria-ng .sidebar-menu > li:hover > a { color: #fff; background-color: #444; } .theme-dark.skin-aria-ng .sidebar-menu > li.active > a { color: #5399e8; background-color: #333; } .theme-dark.skin-aria-ng .sidebar-menu > li.treeview:hover > a { color: #fff; background-color: #282828; } .theme-dark.skin-aria-ng .sidebar-menu > li.treeview.active > a, .theme-dark.skin-aria-ng .sidebar-menu > li.treeview.active:hover > a { color: #5399e8; background-color: #282828; } .theme-dark.skin-aria-ng .sidebar-menu > li.treeview > a:hover { color: #fff; background-color: #444; } .theme-dark.skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu { background-color: #282828; } .theme-dark.skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu > li > a { color: #eee; } .theme-dark.skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu > li > a:hover { color: #fff; background-color: #444; } .theme-dark.skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu > li.active > a { color: #5399e8; background-color: #333; } .theme-dark.skin-aria-ng .sidebar a { color: #eee; } .theme-dark.skin-aria-ng .content-wrapper, .theme-dark.right-side { background-color: #1a1a1a; } .theme-dark.skin-aria-ng .main-footer { background-color: #1a1a1a; border-color: #383838; } .theme-dark.skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a { color: #eee; } .theme-dark.skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a:hover, .theme-dark.skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a:active, .theme-dark.skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a:focus, .theme-dark.skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li.open > a { color: #0080ff; background: none; } .theme-dark.skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li.divider { border-color: #666; } .theme-dark.skin-aria-ng .global-status { color: #eee; } .theme-dark.skin-aria-ng input::-webkit-input-placeholder, .theme-dark.skin-aria-ng input:-moz-placeholder, .theme-dark.skin-aria-ng input::-moz-placeholder, .theme-dark.skin-aria-ng input:-ms-input-placeholder { color: #aaa; } .theme-dark.skin-aria-ng select.placeholder { color: #aaa; } /* angular-input-dropdown */ .theme-dark.skin-aria-ng .input-dropdown ul > li { background-color: #121212; } .theme-dark.skin-aria-ng .input-dropdown ul > li.active { background-color: #333; } /* cg-busy */ .theme-dark.skin-aria-ng .cg-busy-default-sign { color: #eee; border-color: #666; background-color: #444; text-shadow: 0 1px 1px #000; } .theme-dark.skin-aria-ng .cg-busy-default-text { color: #eee; } .theme-dark.skin-aria-ng .cg-busy-default-spinner div { background-color: #eee; } /* scrollbar */ .theme-dark.skin-aria-ng ::-webkit-scrollbar-track { background-color: #1a1a1a; } .theme-dark.skin-aria-ng ::-webkit-scrollbar-thumb { background-color: #3c4144; } /* piece-bar / piece-map */ .theme-dark.skin-aria-ng .piece-map .piece, .theme-dark.skin-aria-ng .piece-legend > .piece { background-color: #242424; border-color: #3c3d3e; } .theme-dark.skin-aria-ng .piece-map .piece.piece-completed, .theme-dark.skin-aria-ng .piece-legend > .piece.piece-completed { background-color: #b8dd69; border-color: #b8dd69; } /* task-table */ .theme-dark.skin-aria-ng .task-table { background-color: #1a1a1a; } .theme-dark.skin-aria-ng .task-table .task-table-title a { color: #eee; } .theme-dark.skin-aria-ng .task-table > .task-table-body > div.row { border-color: #333; } .theme-dark.skin-aria-ng .task-table > .task-table-body > div.row:nth-of-type(odd) { background-color: #262626; } .theme-dark.skin-aria-ng .task-table > .task-table-body > div.row:hover { background-color: #2a2a2a; } .theme-dark.skin-aria-ng .task-table .progress span.progress-lower { color: #eee; } /* settings-table */ .theme-dark.skin-aria-ng .settings-table { background-color: #1a1a1a; } .theme-dark.skin-aria-ng .settings-table .settings-table-title a { color: #eee; } .theme-dark.skin-aria-ng .settings-table > div.row { border-color: #333; } .theme-dark.skin-aria-ng .settings-table.striped > div.row:nth-of-type(odd) { background-color: #202020; } .theme-dark.skin-aria-ng .settings-table.hoverable > div.row:hover { background-color: #242424; } .theme-dark.skin-aria-ng .settings-table.hoverable > div.row:nth-of-type(odd).no-hover:hover { background-color: #202020; } /* new-task-table */ .theme-dark.skin-aria-ng .new-task-table { background-color: #1a1a1a; } /* misc */ .theme-dark.skin-aria-ng .keyboard-key { border: 1px solid #666; background-color: #282828; box-shadow: 1px 2px 2px #333; } ================================================ FILE: src/styles/theme/default.css ================================================ /* skin-aria-ng core */ .skin-aria-ng { overflow-y: hidden; } .skin-aria-ng, .skin-aria-ng h1, .skin-aria-ng h2, .skin-aria-ng h3, .skin-aria-ng h4, .skin-aria-ng h5, .skin-aria-ng h6, .skin-aria-ng .h1, .skin-aria-ng .h2, .skin-aria-ng .h3, .skin-aria-ng .h4, .skin-aria-ng .h5, .skin-aria-ng .h6, .skin-aria-ng .main-header .logo, .skin-aria-ng .sweet-alert, .skin-aria-ng .popover, .skin-aria-ng .tooltip { font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; } .skin-aria-ng .main-header .navbar { background-color: #f6f6f6; border-bottom: 1px solid #ddd; } .skin-aria-ng .main-header .navbar .nav > li > a { color: #707070; font-size: 16px; } .skin-aria-ng .main-header .navbar .nav > li > a:hover, .skin-aria-ng .main-header .navbar .nav > li > a:active, .skin-aria-ng .main-header .navbar .nav > li > a:focus, .skin-aria-ng .main-header .navbar .nav .open > a, .skin-aria-ng .main-header .navbar .nav .open > a:hover, .skin-aria-ng .main-header .navbar .nav .open > a:focus, .skin-aria-ng .main-header .navbar .nav > .active > a { color: #0080ff; } .skin-aria-ng .main-header .navbar .nav > li.disabled > a { color: #ccc !important; } .skin-aria-ng .main-header .navbar .nav > li.divider { padding: 10px 0 10px 0; margin-left: 4px; margin-right: 4px; border-right: 1px solid #ccc; position: relative; top: 15px; } .skin-aria-ng .main-header .navbar .navbar-searchbar .form-control-icon { color: #999999; } @media (max-width: 767px) { .skin-aria-ng .main-header .navbar { padding-left: 20px; } .skin-aria-ng .main-header .navbar .navbar-nav { margin-left: -10px; } .skin-aria-ng .main-header .navbar .nav > li.divider { margin-left: 0; margin-right: 0; top: 5px; } } .skin-aria-ng .main-header .logo { background-color: #3c4852; color: #ffffff; border-bottom: 1px solid #59636b; } .skin-aria-ng .main-header .logo .logo-lg:hover { color: #cccccc; } .skin-aria-ng .main-header .logo .logo-lg .logo-lg-title { margin-right: 6px; } .skin-aria-ng .main-header .logo .dropdown-menu { margin-top: -1px; border-top-left-radius: 0; border-top-right-radius: 0; } .skin-aria-ng .main-header .logo .dropdown-menu > li.active > a { color: #777; background-color: #fff; } .skin-aria-ng .main-header .logo .dropdown-menu > li.active:hover > a { color: #333; background-color: #e1e3e9; } .skin-aria-ng .content-header { background: transparent; } .skin-aria-ng .wrapper, .skin-aria-ng .main-sidebar, .skin-aria-ng .left-side { background-color: #3c4852; } .skin-aria-ng .sidebar-menu > li.header { color: #707070; background-color: #2e343c; padding-top: 3px; padding-bottom: 3px; } .skin-aria-ng .sidebar-menu > li > a { border-left: 3px solid transparent; padding-top: 9px; padding-bottom: 9px; } .skin-aria-ng .sidebar-menu > li:hover > a { color: #dfdfdf; background-color: #313a42; } .skin-aria-ng .sidebar-menu > li.active > a { color: #5399e8; background-color: #252c30; } .skin-aria-ng .sidebar-menu > li.treeview:hover > a { color: #a2b5b9; background-color: #3c4852; } .skin-aria-ng .sidebar-menu > li.treeview.active > a, .skin-aria-ng .sidebar-menu > li.treeview.active:hover > a { color: #5399e8; background-color: #3c4852; } .skin-aria-ng .sidebar-menu > li.treeview > a:hover { color: #dfdfdf; background-color: #313a42; } .skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu { margin: 0; padding: 0; background-color: #3c4852; } .skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu > li > a { color: #8aa4af; } .skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu > li > a:hover { color: #dfdfdf; background-color: #313a42; } .skin-aria-ng .sidebar-menu > li.treeview > ul.treeview-menu > li.active > a { color: #5399e8; background-color: #252c30; } .skin-aria-ng .sidebar-menu i.fa { font-size: 18px; margin-right: 2px; } .skin-aria-ng .sidebar a { color: #a2b5b9; } .skin-aria-ng .sidebar a:hover { text-decoration: none; } @media (max-width: 767px) { .skin-aria-ng .main-sidebar { margin-top: 5px; } } .skin-aria-ng .sidebar .status-label { max-width: 95px; } .skin-aria-ng .content-wrapper, .right-side { background-color: #fff; } .skin-aria-ng .content-wrapper .form-control[type='text'] { padding-left: 14px; } @media screen and (max-width: 767px) { .skin-aria-ng .content-wrapper .content { margin-top: 5px; } } .skin-aria-ng .main-footer { font-size: 12px; } .skin-aria-ng .main-footer > .navbar { border: 0; } .skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li.divider { padding-top: 16px; margin-left: 4px; margin-right: 4px; border-right: 1px solid #ccc; position: relative; top: 0; } .skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a { color: #707070; line-height: 17px; } .skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a:hover, .skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a:active, .skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li > a:focus, .skin-aria-ng .main-footer > .navbar > .navbar-toolbar > .nav > li.open > a { color: #0080ff; background: none; } .skin-aria-ng .global-status { margin-right: 10px; color: inherit; } .skin-aria-ng .global-status:hover { border: 1px solid #ccc; margin-right: 9px; margin-top: -1px } .skin-aria-ng .progress-bar-primary { background-color: #208fe5; } .skin-aria-ng .progress-bar-warning { background-color: #f39c12; } .skin-aria-ng .icon-primary { color: #3c8dbc; } .skin-aria-ng .icon-download { color: #3a89e9; } .skin-aria-ng .icon-upload { color: #74a329; } .skin-aria-ng .icon-seeder { margin-left: 4px; color: #74a329; } .skin-aria-ng .icon-error { margin-left: 4px; color: #dd4b39; } .skin-aria-ng .icon-expand { color: #5399e8; } .skin-aria-ng .icon-dir-expand { color: #999; } .skin-aria-ng .nav-tabs-custom { -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; margin-bottom: 0; } .skin-aria-ng .nav-tabs-custom > .nav-tabs { border-bottom: 1px dotted #ddd; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li { border-top: 0; margin-top: 1px; margin-right: 2px; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.active { border-bottom: 2px solid #208fe5; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.slim > a { padding-left: 5px; padding-right: 5px; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.slim.active { margin-bottom: -1px; border-bottom: inherit; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.divider { padding: 10px 0 10px 0; margin-left: 4px; margin-right: 4px; margin-top: 11px; border-right: 1px solid #ccc; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.nav-toolbar { margin-left: 15px; margin-right: 5px; } @media (max-width: 767px) { .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.nav-toolbar { float: right; } } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.nav-toolbar > .btn-group { margin-right: 4px; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a { color: #aaa; border: 0; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a:hover, .skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a:active, .skin-aria-ng .nav-tabs-custom > .nav-tabs > li.active > a { color: #208fe5; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a.nav-tab-close:hover { color: #dd4b39 !important; margin-left: -14px; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li > a.nav-tab-close:hover > .fa-times:before { content:"\f057"; /* The same as .fa-times-circle:before */ font-size: 1.1em; } .skin-aria-ng .nav-tabs-custom > .nav-tabs > li > div.btn-group { padding-top: 5px; padding-bottom: 5px; } .skin-aria-ng .tooltip.tooltip-success.in, .skin-aria-ng .tooltip.tooltip-warning.in, .skin-aria-ng .tooltip.tooltip-error.in { filter: alpha(opacity=95); opacity: 0.95 } .skin-aria-ng .tooltip.tooltip-success.top .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-success.top-left .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-success.top-right .tooltip-arrow { border-top-color: #00a65a; } .skin-aria-ng .tooltip.tooltip-warning.top .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-warning.top-left .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-warning.top-right .tooltip-arrow { border-top-color: #f39c12; } .skin-aria-ng .tooltip.tooltip-error.top .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-error.top-left .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-error.top-right .tooltip-arrow { border-top-color: #dd4b39; } .skin-aria-ng .tooltip.tooltip-success.left .tooltip-arrow { border-left-color: #00a65a; } .skin-aria-ng .tooltip.tooltip-warning.left .tooltip-arrow { border-left-color: #f39c12; } .skin-aria-ng .tooltip.tooltip-error.left .tooltip-arrow { border-left-color: #dd4b39; } .skin-aria-ng .tooltip.tooltip-success.right .tooltip-arrow { border-right-color: #00a65a; } .skin-aria-ng .tooltip.tooltip-warning.right .tooltip-arrow { border-right-color: #f39c12; } .skin-aria-ng .tooltip.tooltip-error.right .tooltip-arrow { border-right-color: #dd4b39; } .skin-aria-ng .tooltip.tooltip-success.bottom .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-success.bottom-left .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-success.bottom-right .tooltip-arrow { border-bottom-color: #00a65a; } .skin-aria-ng .tooltip.tooltip-warning.bottom .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-warning.bottom-left .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-warning.bottom-right .tooltip-arrow { border-bottom-color: #f39c12; } .skin-aria-ng .tooltip.tooltip-error.bottom .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-error.bottom-left .tooltip-arrow, .skin-aria-ng .tooltip.tooltip-error.bottom-right .tooltip-arrow { border-bottom-color: #dd4b39; } .skin-aria-ng .tooltip.tooltip-success .tooltip-inner { background-color: #00a65a; } .skin-aria-ng .tooltip.tooltip-warning .tooltip-inner { background-color: #f39c12; } .skin-aria-ng .tooltip.tooltip-error .tooltip-inner { background-color: #dd4b39; } .skin-aria-ng .input-group .form-group.has-success + .input-group-addon { border-color: #00a65a; background-color: #00a65a; color: #ffffff; } .skin-aria-ng .input-group .form-group.has-warning + .input-group-addon { border-color: #f39c12; background-color: #f39c12; color: #ffffff; } .skin-aria-ng .input-group .form-group.has-error + .input-group-addon { border-color: #dd4b39; background-color: #dd4b39; color: #ffffff; } .skin-aria-ng input::-webkit-input-placeholder, .skin-aria-ng input:-moz-placeholder, .skin-aria-ng input::-moz-placeholder, .skin-aria-ng input:-ms-input-placeholder { color: #999; } .skin-aria-ng select.placeholder { color: #999; } /* awesome-bootstrap-checkbox extend */ .skin-aria-ng .checkbox-primary input[type="checkbox"]:checked + label::before, .skin-aria-ng .checkbox-primary input[type="radio"]:checked + label::before, .skin-aria-ng .checkbox-primary input[type="checkbox"]:indeterminate + label::before, .skin-aria-ng .checkbox-primary input[type="radio"]:indeterminate + label::before { background-color: #208fe5; border-color: #208fe5; } /* task-table */ .skin-aria-ng .task-table { background-color: #fff; } .skin-aria-ng .task-table > .task-table-body > div.row:nth-of-type(odd) { background-color: #f9f9f9; } .skin-aria-ng .task-table > .task-table-body > div.row:hover { background-color: #f5f5f5; } .skin-aria-ng .task-table .peer-client { color: #888; font-size: 12px; } /* settings-table */ .skin-aria-ng .settings-table { background-color: #fff; } .skin-aria-ng .settings-table.striped > div.row:nth-of-type(odd) { background-color: #f9f9f9; } .skin-aria-ng .settings-table.striped > div.row.no-background { background-color: inherit; } .skin-aria-ng .settings-table.hoverable > div.row:hover { background-color: #f5f5f5; } .skin-aria-ng .settings-table.hoverable > div.row.no-hover:hover { background-color: inherit; } .skin-aria-ng .settings-table.hoverable > div.row:nth-of-type(odd).no-hover:hover { background-color: #f9f9f9; } /* new-task-table */ .skin-aria-ng .new-task-table { background-color: #fff; } /* misc */ .skin-aria-ng .keyboard-key { border: 1px solid #aaa; background-color: #f8f8f8; box-shadow: 1px 2px 2px #ddd; } ================================================ FILE: src/views/debug.html ================================================
================================================ FILE: src/views/export-command-api-dialog.html ================================================ ================================================ FILE: src/views/list.html ================================================
================================================ FILE: src/views/new.html ================================================
================================================ FILE: src/views/notification-reloadable.html ================================================
================================================ FILE: src/views/setting-dialog.html ================================================ ================================================ FILE: src/views/setting.html ================================================

                
                
                
                
                
================================================ FILE: src/views/settings-aria2.html ================================================
================================================ FILE: src/views/settings-ariang.html ================================================
================================================ FILE: src/views/status.html ================================================
Aria2 RPC Address
Aria2 Status
Aria2 Version
-
Enabled Features
-
Operations
================================================ FILE: src/views/task-detail.html ================================================