From 4a8a45b6e72b2336a21311df99ddcd08601ec8e3 Mon Sep 17 00:00:00 2001 From: Alex Hua Date: Tue, 17 Dec 2024 12:24:12 +0800 Subject: [PATCH] i18n: Fully support fr/it/ja/ko/ru langs close #181 --- README.cn.md | 2 +- README.md | 2 +- _locales/fr/messages.json | 315 ++++++++++ _locales/it/messages.json | 315 ++++++++++ _locales/ru/messages.json | 315 ++++++++++ ui/ariang/LICENSE | 2 +- ui/ariang/index.html | 2 +- ui/ariang/js/aria-ng-123387d4f2.min.js | 5 + ui/ariang/js/aria-ng-3aaabaa96c.min.js | 5 - ui/ariang/langs/fr_FR.txt | 776 +++++++++++++++++++++++++ ui/ariang/langs/it_IT.txt | 7 +- ui/ariang/langs/ja_JA.txt | 774 ++++++++++++++++++++++++ ui/ariang/langs/ko_KO.txt | 774 ++++++++++++++++++++++++ ui/ariang/langs/ru_RU.txt | 776 +++++++++++++++++++++++++ ui/ariang/langs/uk_UK.txt | 774 ++++++++++++++++++++++++ ui/ariang/langs/zh_Hans.txt | 7 +- ui/ariang/langs/zh_Hant.txt | 7 +- 17 files changed, 4846 insertions(+), 12 deletions(-) create mode 100644 _locales/fr/messages.json create mode 100644 _locales/it/messages.json create mode 100644 _locales/ru/messages.json create mode 100644 ui/ariang/js/aria-ng-123387d4f2.min.js delete mode 100644 ui/ariang/js/aria-ng-3aaabaa96c.min.js create mode 100644 ui/ariang/langs/fr_FR.txt create mode 100644 ui/ariang/langs/ja_JA.txt create mode 100644 ui/ariang/langs/ko_KO.txt create mode 100644 ui/ariang/langs/ru_RU.txt create mode 100644 ui/ariang/langs/uk_UK.txt diff --git a/README.cn.md b/README.cn.md index bafd506..1dea2c5 100644 --- a/README.cn.md +++ b/README.cn.md @@ -28,7 +28,7 @@ 4. 所有配置(扩展和AriaNG)云端同步 -5. 中英双语支持 +5. 中/日/韩/英/法/意/俄/乌多语言支持 6. Aria2下载状态监测和任务状态通知 diff --git a/README.md b/README.md index 13ad304..007e124 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ After completing these steps, the extension will take over the download process, 4. Synchronize and store all the settings (extension and AriaNG) on the cloud -5. Support for zh-CN/zh-TW/en languages +5. Support for zh-CN/zh-TW/en/fr/ja/ko/ru/uk languages 6. Monitor Aria2 download status via extension badge icon diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json new file mode 100644 index 0000000..935b7f2 --- /dev/null +++ b/_locales/fr/messages.json @@ -0,0 +1,315 @@ +{ + "appName": { + "message":"Aria2 Explorer" + }, + "description": { + "message": "Accélérez vos téléchargements avec Aria2, gérez facilement vos tâches de téléchargement." + }, + "contextmenuTitle":{ + "message":"Exporter vers " + }, + "configPageTitle":{ + "message":"Paramètres de l'extension" + }, + "contextmenuStr":{ + "message":"Menu contextuel" + }, + "contextmenuDes":{ + "message":"Exporter la tâche depuis le menu contextuel" + }, + "exportAllDes":{ + "message":"Exporter tous les liens" + }, + "exportAllFailedDes":{ + "message":"Aucun lien de téléchargement valide trouvé." + }, + "askBeforeExportDes":{ + "message":"Demander les paramètres détaillés avant l'exportation" + }, + "downloadCaptureStr":{ + "message":"Capture de téléchargement" + }, + "downloadCaptureDes":{ + "message":"Activer la capture automatique lors du téléchargement de la taille du fichier" + }, + "askBeforeDownloadDes":{ + "message":"Demander les paramètres détaillés avant le téléchargement automatique" + }, + "allowExternalRequestDes":{ + "message":"Recevoir les demandes de téléchargement Aria2 d'autres extensions" + }, + "monitorAria2Str":{ + "message":"Surveiller l'état d'Aria2" + }, + "monitorAria2Des":{ + "message":"Surveiller l'état du téléchargement Aria2" + }, + "monitorAllDes":{ + "message":"Surveiller tous les serveurs Aria2" + }, + "monitorAllTip":{ + "message":"Lorsque plusieurs serveurs Aria2 sont configurés, surveillez tous leurs états et affichez les résultats agrégés." + }, + "keepAwakeDes":{ + "message":"Garder le système éveillé pendant le téléchargement" + }, + "allowNotificationDes":{ + "message":"Notifications sur l'état des tâches" + }, + "keepSilentDes":{ + "message":"Garder les notifications silencieuses" + }, + "captureMagnetDes":{ + "message":"Capturer le lien magnet" + }, + "captureMagnetWarn":{ + "message":"Capture au niveau du système d'exploitation, assurez-vous de la désactiver avant la désinstallation." + }, + "captureMagnetTip":{ + "message":"Cliquez sur 'Non' dans la fenêtre de confirmation UAC de Windows si vous ne voulez pas la capture au niveau du système." + }, + "websiteStr":{ + "message":"Site web" + }, + "websiteFilterStr":{ + "message":"Filtre de site web" + }, + "selectDefaultRpcStr":{ + "message":"Aria2 par défaut" + }, + "fileExtStr":{ + "message":"Extension de fichier" + }, + "whiteListStr":{ + "message":"Liste autorisée" + }, + "BlackListStr":{ + "message":"Liste noire" + }, + "addToWhiteListStr":{ + "message":"URL actuelle -> Liste autorisée" + }, + "addToBlackListStr":{ + "message":"URL actuelle -> Liste noire" + }, + "removeFromWhiteListStr":{ + "message":"Retirer de la liste autorisée" + }, + "removeFromBlackListStr":{ + "message":"Retirer de la liste noire" + }, + "exportFailedStr":{ + "message":"Échec de l'exportation" + }, + "exportFailedDes":{ + "message":"$rpcName$ n'a pas pu démarrer la tâche !", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Nom RPC d'Aria2." + } + } + }, + "exportSucceedStr":{ + "message":"Exportation réussie" + }, + "exportSucceedDes":{ + "message":"$rpcName$ a commencé le téléchargement.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Nom RPC d'Aria2." + } + } + }, + "taskNotification":{ + "message":"Notification de tâche" + }, + "downloadStart":{ + "message":"Le téléchargement de $rpcName$ a commencé.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "downloadComplete":{ + "message":"Le téléchargement de $rpcName$ est terminé.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "seedingOver":{ + "message":"Le seeding de $rpcName$ est terminé.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "downloadError":{ + "message":"Une erreur est survenue lors du téléchargement de $rpcName$.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "allowedSitesPlaceholderDes":{ + "message":"Définissez les domaines que vous souhaitez capturer, un par ligne, prend en charge les expressions régulières. (La liste autorisée a une priorité plus élevée)" + }, + "blockedSitesPlaceholderDes":{ + "message":"Définissez les domaines que vous ne souhaitez pas capturer, un par ligne, prend en charge les expressions régulières." + }, + "allowedExtsPlaceholderDes":{ + "message":"Définissez les types de fichiers que vous souhaitez capturer ou exporter, un par ligne, * signifie tous. (La liste autorisée a une priorité plus élevée)" + }, + "blockedExtsPlaceholderDes":{ + "message":"Définissez les types de fichiers que vous ne souhaitez pas capturer ou exporter, un par ligne, * signifie tous." + }, + "WebUIOpenStyleStr":{ + "message":"Ouvrir AriaNG dans" + }, + "WebUIOpenStyle1":{ + "message":"Popup" + }, + "WebUIOpenStyle2":{ + "message":"Nouvel onglet" + }, + "WebUIOpenStyle3":{ + "message":"Nouvelle fenêtre" + }, + "WebUIOpenStyle4":{ + "message":"Panneau latéral" + }, + "openWebUIStr":{ + "message":"Ouvrir AriaNG" + }, + "startAria2Str":{ + "message":"Démarrer Aria2" + }, + "toggleCapture":{ + "message":"Activer/désactiver la capture de téléchargement" + }, + "configCloudSync":{ + "message":"Synchronisation cloud" + }, + "configCloudSyncDes":{ + "message":"Synchroniser les configurations d'AriaNg et de l'extension avec le compte navigateur actuellement connecté" + }, + "uploadConfigWarn":{ + "message":"Données de configuration locales invalides ou vides, continuer ?" + }, + "uploadConfigSucceed":{ + "message":"Téléchargement de la configuration réussi" + }, + "uploadConfigFailed":{ + "message":"Échec du téléchargement de la configuration : " + }, + "downloadConfigSucceed":{ + "message":"Téléchargement de la configuration réussi" + }, + "downloadConfigFailed":{ + "message":"Échec du téléchargement de la configuration : Données invalides ou réseau déconnecté." + }, + "download":{ + "message":"Télécharger" + }, + "upload":{ + "message":"Téléverser" + }, + "wait":{ + "message":"Attendre" + }, + "finish":{ + "message":"Terminer" + }, + "connected":{ + "message":"Connecté" + }, + "disconnected":{ + "message":"Déconnecté" + }, + "review":{ + "message":"Avis" + }, + "reviewDes":{ + "message":"Évaluez-nous !" + }, + "Save":{ + "message":"Sauvegarder" + }, + "Reset":{ + "message":"Réinitialiser" + }, + "Acknowledgment":{ + "message":"Reconnaissance" + }, + "OverwriteAriaNgRpcWarn":{ + "message":"Les paramètres RPC ont changé. Synchroniser ces changements avec AriaNG et les écraser ?" + }, + "RpcUrlTooltipWarnDes":{ + "message":"Créer une tâche de téléchargement via un protocole HTTP/WebSocket non sécurisé pourrait exposer la clé secrète et les cookies associés sur le réseau public." + }, + "AutoDownloadCookiesTooltipDes":{ + "message": "Pour les RPC non sécurisés, les cookies associés au site ne seront pas joints lors du téléchargement automatique ou de l'exportation directe." + }, + "ManualDownloadCookiesTooltipDes":{ + "message": "Vous devez décider si vous souhaitez supprimer les cookies associés au site lors de la demande des paramètres de téléchargement." + }, + "Aria2ManagerPromotionDes":{ + "message": "Il semble qu'Aria2 Manager ne soit pas installé, souhaitez-vous accéder au canal \"Alex Recommends\" pour plus d'informations ?" + }, + "ClearSettingsDes":{ + "message": "Confirmer pour effacer tous les paramètres ?" + }, + "ColorMode":{ + "message": "Mode couleur" + }, + "LightMode":{ + "message": "Mode clair" + }, + "DarkMode":{ + "message": "Mode sombre" + }, + "FollowSystem":{ + "message": "Suivre le système" + }, + "Name":{ + "message": "Nom" + }, + "SecretKey":{ + "message": "Clé secrète" + }, + "downloadLocation":{ + "message": "Emplacement de téléchargement" + }, + "RemindCaptureTip":{ + "message": "Téléchargement capturé par une autre extension" + }, + "RemindCaptureTipDes":{ + "message": "Si le nom du fichier est anormal, désactivez la capture automatique." + }, + "Dismiss":{ + "message": "Ignorer" + }, + "NeverRemind":{ + "message": "Ne plus rappeler" + }, + "Mark":{ + "message": "Marquer" + }, + "MarkAsSecureTip":{ + "message": "Marquer comme RPC sécurisé" + }, + "MarkAsInsecureTip":{ + "message": "Marquer comme protocole RPC non sécurisé" + } + } + \ No newline at end of file diff --git a/_locales/it/messages.json b/_locales/it/messages.json new file mode 100644 index 0000000..1885b6a --- /dev/null +++ b/_locales/it/messages.json @@ -0,0 +1,315 @@ +{ + "appName": { + "message":"Aria2 Explorer" + }, + "description": { + "message": "Accelera i tuoi download con Aria2, gestisci facilmente le tue attività di download." + }, + "contextmenuTitle":{ + "message":"Esporta in " + }, + "configPageTitle":{ + "message":"Impostazioni dell'estensione" + }, + "contextmenuStr":{ + "message":"Menu contestuale" + }, + "contextmenuDes":{ + "message":"Esporta attività dal menu contestuale" + }, + "exportAllDes":{ + "message":"Esporta tutti i link" + }, + "exportAllFailedDes":{ + "message":"Nessun link di download valido trovato." + }, + "askBeforeExportDes":{ + "message":"Chiedi le impostazioni dettagliate prima di esportare" + }, + "downloadCaptureStr":{ + "message":"Cattura download" + }, + "downloadCaptureDes":{ + "message":"Abilita cattura automatica quando si scarica la dimensione del file" + }, + "askBeforeDownloadDes":{ + "message":"Chiedi le impostazioni dettagliate prima del download automatico" + }, + "allowExternalRequestDes":{ + "message":"Ricevi richieste di download Aria2 da altri componenti aggiuntivi" + }, + "monitorAria2Str":{ + "message":"Monitora lo stato di Aria2" + }, + "monitorAria2Des":{ + "message":"Monitora lo stato del download di Aria2" + }, + "monitorAllDes":{ + "message":"Monitora tutti i server Aria2" + }, + "monitorAllTip":{ + "message":"Quando sono configurati più server Aria2, monitora tutti i loro stati e visualizza i risultati aggregati." + }, + "keepAwakeDes":{ + "message":"Mantieni il sistema attivo durante il download" + }, + "allowNotificationDes":{ + "message":"Notifiche sullo stato delle attività" + }, + "keepSilentDes":{ + "message":"Mantieni silenziose le notifiche" + }, + "captureMagnetDes":{ + "message":"Cattura il link magnete" + }, + "captureMagnetWarn":{ + "message":"Cattura a livello di OS, assicurati di disabilitarlo prima della disinstallazione." + }, + "captureMagnetTip":{ + "message":"Fai clic su 'No' nella finestra di conferma UAC di Windows, se non vuoi la cattura a livello di sistema." + }, + "websiteStr":{ + "message":"Sito web" + }, + "websiteFilterStr":{ + "message":"Filtro sito web" + }, + "selectDefaultRpcStr":{ + "message":"Aria2 predefinito" + }, + "fileExtStr":{ + "message":"Estensione file" + }, + "whiteListStr":{ + "message":"Lista consentita" + }, + "BlackListStr":{ + "message":"Lista nera" + }, + "addToWhiteListStr":{ + "message":"URL corrente -> Lista consentita" + }, + "addToBlackListStr":{ + "message":"URL corrente -> Lista nera" + }, + "removeFromWhiteListStr":{ + "message":"Rimuovi dalla lista consentita" + }, + "removeFromBlackListStr":{ + "message":"Rimuovi dalla lista nera" + }, + "exportFailedStr":{ + "message":"Esportazione fallita" + }, + "exportFailedDes":{ + "message":"$rpcName$ non è riuscito a avviare l'attività!", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Nome RPC di Aria2." + } + } + }, + "exportSucceedStr":{ + "message":"Esportazione riuscita" + }, + "exportSucceedDes":{ + "message":"$rpcName$ ha iniziato il download.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Nome RPC di Aria2." + } + } + }, + "taskNotification":{ + "message":"Notifica attività" + }, + "downloadStart":{ + "message":"Il download di $rpcName$ è iniziato.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "downloadComplete":{ + "message":"Il download di $rpcName$ è completo.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "seedingOver":{ + "message":"Il seeding di $rpcName$ è terminato.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "downloadError":{ + "message":"Si è verificato un errore nel download di $rpcName$.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "allowedSitesPlaceholderDes":{ + "message":"Imposta i domini che vuoi catturare, uno per riga, supporta le espressioni regolari. (La lista consentita ha priorità più alta)" + }, + "blockedSitesPlaceholderDes":{ + "message":"Imposta i domini che non vuoi catturare, uno per riga, supporta le espressioni regolari." + }, + "allowedExtsPlaceholderDes":{ + "message":"Imposta i tipi di file che vuoi catturare o esportare, uno per riga, * significa tutti. (La lista consentita ha priorità più alta)" + }, + "blockedExtsPlaceholderDes":{ + "message":"Imposta i tipi di file che non vuoi catturare o esportare, uno per riga, * significa tutti." + }, + "WebUIOpenStyleStr":{ + "message":"Apri AriaNG in" + }, + "WebUIOpenStyle1":{ + "message":"Popup" + }, + "WebUIOpenStyle2":{ + "message":"Nuova scheda" + }, + "WebUIOpenStyle3":{ + "message":"Nuova finestra" + }, + "WebUIOpenStyle4":{ + "message":"Pannello laterale" + }, + "openWebUIStr":{ + "message":"Apri AriaNG" + }, + "startAria2Str":{ + "message":"Avvia Aria2" + }, + "toggleCapture":{ + "message":"Attiva/disattiva cattura download" + }, + "configCloudSync":{ + "message":"Sincronizzazione cloud" + }, + "configCloudSyncDes":{ + "message":"Sincronizza le configurazioni di AriaNg e dell'estensione con l'account browser attualmente connesso" + }, + "uploadConfigWarn":{ + "message":"Dati di configurazione locali non validi o vuoti, continuare?" + }, + "uploadConfigSucceed":{ + "message":"Caricamento configurazione riuscito" + }, + "uploadConfigFailed":{ + "message":"Caricamento configurazione fallito: " + }, + "downloadConfigSucceed":{ + "message":"Download configurazione riuscito" + }, + "downloadConfigFailed":{ + "message":"Download configurazione fallito: Dati non validi o rete disconnessa." + }, + "download":{ + "message":"Scarica" + }, + "upload":{ + "message":"Carica" + }, + "wait":{ + "message":"Aspetta" + }, + "finish":{ + "message":"Termina" + }, + "connected":{ + "message":"Connesso" + }, + "disconnected":{ + "message":"Disconnesso" + }, + "review":{ + "message":"Recensione" + }, + "reviewDes":{ + "message":"Votaci!" + }, + "Save":{ + "message":"Salva" + }, + "Reset":{ + "message":"Ripristina" + }, + "Acknowledgment":{ + "message":"Riconoscimenti" + }, + "OverwriteAriaNgRpcWarn":{ + "message":"Le impostazioni RPC sono cambiate. Sincronizzare queste modifiche con AriaNG e sovrascrivere?" + }, + "RpcUrlTooltipWarnDes":{ + "message":"Creare un'attività di download su protocollo HTTP/WebSocket non sicuro potrebbe esporre la chiave segreta e i relativi cookie del sito sulla rete pubblica." + }, + "AutoDownloadCookiesTooltipDes":{ + "message": "Per RPC non sicuro, i cookie relativi al sito non verranno allegati durante il download automatico o l'esportazione diretta." + }, + "ManualDownloadCookiesTooltipDes":{ + "message": "Devi decidere se eliminare i cookie relativi al sito quando chiedi le impostazioni di download." + }, + "Aria2ManagerPromotionDes":{ + "message": "Sembra che Aria2 Manager non sia installato, vuoi accedere al canale 'Alex Recommends' per maggiori informazioni?" + }, + "ClearSettingsDes":{ + "message": "Confermi di voler cancellare tutte le impostazioni?" + }, + "ColorMode":{ + "message": "Modalità colore" + }, + "LightMode":{ + "message": "Modalità chiara" + }, + "DarkMode":{ + "message": "Modalità scura" + }, + "FollowSystem":{ + "message": "Segui il sistema" + }, + "Name":{ + "message": "Nome" + }, + "SecretKey":{ + "message": "Chiave segreta" + }, + "downloadLocation":{ + "message": "Posizione di download" + }, + "RemindCaptureTip":{ + "message": "Catturato download di un altro componente aggiuntivo" + }, + "RemindCaptureTipDes":{ + "message": "Se il nome del file è anomalo, disabilita la cattura automatica." + }, + "Dismiss":{ + "message": "Annulla" + }, + "NeverRemind":{ + "message": "Non ricordare più" + }, + "Mark":{ + "message": "Segna" + }, + "MarkAsSecureTip":{ + "message": "Segna come RPC sicuro" + }, + "MarkAsInsecureTip":{ + "message": "Segna come protocollo RPC non sicuro" + } + } + \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json new file mode 100644 index 0000000..eedf2be --- /dev/null +++ b/_locales/ru/messages.json @@ -0,0 +1,315 @@ +{ + "appName": { + "message":"Aria2 Explorer" + }, + "description": { + "message": "Ускорьте загрузки с помощью Aria2, легко управляйте задачами загрузки." + }, + "contextmenuTitle":{ + "message":"Экспортировать в " + }, + "configPageTitle":{ + "message":"Настройки расширения" + }, + "contextmenuStr":{ + "message":"Контекстное меню" + }, + "contextmenuDes":{ + "message":"Экспорт задачи из контекстного меню" + }, + "exportAllDes":{ + "message":"Экспортировать все ссылки" + }, + "exportAllFailedDes":{ + "message":"Не найдена действительная ссылка для загрузки." + }, + "askBeforeExportDes":{ + "message":"Запрашивать настройки перед экспортом" + }, + "downloadCaptureStr":{ + "message":"Захват загрузки" + }, + "downloadCaptureDes":{ + "message":"Включить автоматический захват при загрузке файла" + }, + "askBeforeDownloadDes":{ + "message":"Запрашивать настройки перед автоматической загрузкой" + }, + "allowExternalRequestDes":{ + "message":"Получать запросы на загрузку Aria2 от других расширений" + }, + "monitorAria2Str":{ + "message":"Мониторинг состояния Aria2" + }, + "monitorAria2Des":{ + "message":"Мониторить состояние загрузки Aria2" + }, + "monitorAllDes":{ + "message":"Мониторить все серверы Aria2" + }, + "monitorAllTip":{ + "message":"Когда настроено несколько серверов Aria2, мониторьте все их статусы и отображайте агрегированные результаты." + }, + "keepAwakeDes":{ + "message":"Не отключать систему во время загрузки" + }, + "allowNotificationDes":{ + "message":"Уведомления о статусе задач" + }, + "keepSilentDes":{ + "message":"Отключить уведомления" + }, + "captureMagnetDes":{ + "message":"Захватить магнитную ссылку" + }, + "captureMagnetWarn":{ + "message":"Захват на уровне ОС, убедитесь, что он отключен перед удалением." + }, + "captureMagnetTip":{ + "message":"Нажмите 'Нет' в окне подтверждения UAC Windows, если не хотите захват на системном уровне." + }, + "websiteStr":{ + "message":"Веб-сайт" + }, + "websiteFilterStr":{ + "message":"Фильтр веб-сайтов" + }, + "selectDefaultRpcStr":{ + "message":"По умолчанию Aria2" + }, + "fileExtStr":{ + "message":"Расширение файла" + }, + "whiteListStr":{ + "message":"Список разрешённых" + }, + "BlackListStr":{ + "message":"Чёрный список" + }, + "addToWhiteListStr":{ + "message":"Текущий URL -> Список разрешённых" + }, + "addToBlackListStr":{ + "message":"Текущий URL -> Чёрный список" + }, + "removeFromWhiteListStr":{ + "message":"Удалить из списка разрешённых" + }, + "removeFromBlackListStr":{ + "message":"Удалить из чёрного списка" + }, + "exportFailedStr":{ + "message":"Экспорт не удался" + }, + "exportFailedDes":{ + "message":"$rpcName$ не удалось начать задачу!", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Имя RPC Aria2." + } + } + }, + "exportSucceedStr":{ + "message":"Экспорт успешен" + }, + "exportSucceedDes":{ + "message":"$rpcName$ начал загрузку.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Имя RPC Aria2." + } + } + }, + "taskNotification":{ + "message":"Уведомление о задаче" + }, + "downloadStart":{ + "message":"Загрузка $rpcName$ началась.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "downloadComplete":{ + "message":"Загрузка $rpcName$ завершена.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "seedingOver":{ + "message":"Сидирование $rpcName$ завершено.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "downloadError":{ + "message":"Произошла ошибка при загрузке $rpcName$.", + "placeholders": { + "rpcName": { + "content": "$1", + "example": "Aria2" + } + } + }, + "allowedSitesPlaceholderDes":{ + "message":"Укажите домены, которые вы хотите захватывать, по одному на строку, поддерживается регулярное выражение. (Список разрешённых имеет более высокий приоритет)" + }, + "blockedSitesPlaceholderDes":{ + "message":"Укажите домены, которые не хотите захватывать, по одному на строку, поддерживается регулярное выражение." + }, + "allowedExtsPlaceholderDes":{ + "message":"Укажите типы файлов, которые вы хотите захватывать или экспортировать, по одному расширению на строку, * означает все. (Список разрешённых имеет более высокий приоритет)" + }, + "blockedExtsPlaceholderDes":{ + "message":"Укажите типы файлов, которые не хотите захватывать или экспортировать, по одному расширению на строку, * означает все." + }, + "WebUIOpenStyleStr":{ + "message":"Открыть AriaNG в" + }, + "WebUIOpenStyle1":{ + "message":"Всплывающее окно" + }, + "WebUIOpenStyle2":{ + "message":"Новая вкладка" + }, + "WebUIOpenStyle3":{ + "message":"Новое окно" + }, + "WebUIOpenStyle4":{ + "message":"Боковая панель" + }, + "openWebUIStr":{ + "message":"Открыть AriaNG" + }, + "startAria2Str":{ + "message":"Запустить Aria2" + }, + "toggleCapture":{ + "message":"Переключить захват загрузки" + }, + "configCloudSync":{ + "message":"Облачная синхронизация" + }, + "configCloudSyncDes":{ + "message":"Синхронизировать конфигурации AriaNg и расширения с текущей учетной записью браузера" + }, + "uploadConfigWarn":{ + "message":"Некорректные или пустые данные локальной конфигурации, продолжить?" + }, + "uploadConfigSucceed":{ + "message":"Конфигурация успешно загружена" + }, + "uploadConfigFailed":{ + "message":"Ошибка загрузки конфигурации: " + }, + "downloadConfigSucceed":{ + "message":"Конфигурация успешно загружена" + }, + "downloadConfigFailed":{ + "message":"Ошибка загрузки конфигурации: Недействительные данные или ошибка сети." + }, + "download":{ + "message":"Загрузить" + }, + "upload":{ + "message":"Загрузить" + }, + "wait":{ + "message":"Подождите" + }, + "finish":{ + "message":"Завершить" + }, + "connected":{ + "message":"Подключено" + }, + "disconnected":{ + "message":"Отключено" + }, + "review":{ + "message":"Оценить" + }, + "reviewDes":{ + "message":"Оцените нас!" + }, + "Save":{ + "message":"Сохранить" + }, + "Reset":{ + "message":"Сбросить" + }, + "Acknowledgment":{ + "message":"Признание" + }, + "OverwriteAriaNgRpcWarn":{ + "message":"Настройки RPC изменены. Синхронизировать эти изменения с AriaNG и перезаписать?" + }, + "RpcUrlTooltipWarnDes":{ + "message":"Создание задачи на загрузку через небезопасный HTTP/WebSocket протокол может потенциально раскрыть секретный ключ и связанные с ним Cookies в открытой сети." + }, + "AutoDownloadCookiesTooltipDes":{ + "message": "Для небезопасного RPC, связанные Cookies веб-сайта не будут прикрепляться при автоматической загрузке или прямом экспорте." + }, + "ManualDownloadCookiesTooltipDes":{ + "message": "Вы должны решить, удалять ли связанные Cookies веб-сайта при запросе настроек загрузки." + }, + "Aria2ManagerPromotionDes":{ + "message": "Похоже, Aria2 Manager не установлен, хотите перейти в канал 'Alex Recommends' для получения дополнительной информации?" + }, + "ClearSettingsDes":{ + "message": "Подтвердите, что хотите очистить все настройки?" + }, + "ColorMode":{ + "message": "Режим цвета" + }, + "LightMode":{ + "message": "Светлый режим" + }, + "DarkMode":{ + "message": "Тёмный режим" + }, + "FollowSystem":{ + "message": "Следовать за системой" + }, + "Name":{ + "message": "Имя" + }, + "SecretKey":{ + "message": "Секретный ключ" + }, + "downloadLocation":{ + "message": "Место для загрузки" + }, + "RemindCaptureTip":{ + "message": "Захвачена загрузка другого расширения" + }, + "RemindCaptureTipDes":{ + "message": "Если имя файла аномально, отключите авто-захват." + }, + "Dismiss":{ + "message": "Отклонить" + }, + "NeverRemind":{ + "message": "Больше не напоминать" + }, + "Mark":{ + "message": "Отметить" + }, + "MarkAsSecureTip":{ + "message": "Отметить как безопасный RPC" + }, + "MarkAsInsecureTip":{ + "message": "Отметить как небезопасный RPC протокол" + } + } + \ No newline at end of file diff --git a/ui/ariang/LICENSE b/ui/ariang/LICENSE index 19dc6f7..f9831ef 100644 --- a/ui/ariang/LICENSE +++ b/ui/ariang/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016-2023 MaysWind (i@mayswind.net) +Copyright (c) 2016-2024 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 diff --git a/ui/ariang/index.html b/ui/ariang/index.html index e79739c..2f1ef82 100644 --- a/ui/ariang/index.html +++ b/ui/ariang/index.html @@ -12,4 +12,4 @@ - -->
\ No newline at end of file + -->
\ No newline at end of file diff --git a/ui/ariang/js/aria-ng-123387d4f2.min.js b/ui/ariang/js/aria-ng-123387d4f2.min.js new file mode 100644 index 0000000..4de46af --- /dev/null +++ b/ui/ariang/js/aria-ng-123387d4f2.min.js @@ -0,0 +1,5 @@ +/*! + * AriaNg + * https://github.com/mayswind/AriaNg + */ +!function(){"use strict";var e,t,a;if(e=navigator.appName,t=navigator.appVersion.split(";"),a=t&&t.length>1?t[1].replace(/[ ]/g,""):"","Microsoft Internet Explorer"===e&&("MSIE6.0"===a||"MSIE7.0"===a||"MSIE8.0"===a||"MSIE9.0"===a)){var n=document.createElement("div");n.className="alert alert-danger",n.innerHTML="Sorry, AriaNg cannot support this browser, please upgrade your browser!",document.getElementById("content-wrapper").appendChild(n)}document.addEventListener("contextmenu",(function(e){const t=e.target.tagName;"TEXTAREA"!==t&&"INPUT"!==t&&e.preventDefault()}))}(),function(){"use strict";var e=function(){var e=$(window).height(),t=$(".main-header").outerHeight()+$(".main-footer").outerHeight();$(".content-body").css("height",e-t)};$(window,".wrapper").resize((function(){e()})),e()}(),function(){"use strict";angular.module("ariaNg",["ngRoute","ngSanitize","ngTouch","ngMessages","ngCookies","ngAnimate","pascalprecht.translate","angularMoment","ngWebSocket","utf8-base64","LocalStorageModule","ui-notification","angularBittorrentPeerid","cgBusy","angularPromiseButtons","angular-clipboard","inputDropdown",angularDragula(angular)])}(),function(){"use strict";angular.module("ariaNg").config(["$routeProvider",function(e){var t="/"+JSON.parse(localStorage["AriaNg.Options"]||'{"defaultTaskPage":"all"}').defaultTaskPage||"all";e.when("/all",{templateUrl:"views/list.html",controller:"DownloadListController"}).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",reloadOnSearch:!1}).when("/settings/ariang",{templateUrl:"views/settings-ariang.html",controller:"AriaNgSettingsController",reloadOnSearch:!1}).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"}).when("/recommend",{templateUrl:"views/recommend.html"}).otherwise({redirectTo:t})}])}(),function(){"use strict";angular.module("ariaNg").run(["$window","$rootScope","$location","$document","$timeout","ariaNgCommonService","ariaNgKeyboardService","ariaNgNotificationService","ariaNgLogService","ariaNgSettingService","aria2TaskService","aria2SettingService","aria2AllOptions",function(e,t,a,n,i,s,o,r,l,c,d,u,p){var f=!1,g=function(e,t){return e===t||0===t.indexOf(e)&&0===t.substring(e.length).indexOf("/")},m=function(){t.currentTheme="light",angular.element("body").removeClass("theme-dark")},h=function(){t.currentTheme="dark",angular.element("body").addClass("theme-dark")},v=function(){if(c.isBrowserSupportDarkMode()){var t=e.matchMedia("(prefers-color-scheme: dark)");l.info("[root.setThemeBySystemSettings] system uses "+(t.matches?"dark":"light")+" theme"),t.matches?h():m()}else m()},b=function(){angular.element('[data-widget="pushmenu"]').PushMenu("collapse")},k=function(e){if(!e||parseInt(e).toString()!=e)return e;for(var t=["","k","m","g"],a=0,n=0;n=0)},t.isTaskRetryable=function(e){return e&&"error"===e.status&&e.errorDescription&&!e.bittorrent},t.keydownActions={find:function(e){return e.preventDefault&&e.preventDefault(),t.searchContext.setSearchBoxFocused(),!1}},t.swipeActions={leftSwipe:function(){c.getSwipeGesture()&&(angular.element("body").hasClass("sidebar-collapse")?(!this.extendLeftSwipe||angular.isFunction(this.extendLeftSwipe)&&!this.extendLeftSwipe())&&b():b())},rightSwipe:function(){c.getSwipeGesture()&&(!this.extendRightSwipe||angular.isFunction(this.extendRightSwipe)&&!this.extendRightSwipe())&&angular.element('[data-widget="pushmenu"]').PushMenu("expand")}},t.refreshPage=function(){e.location.reload()},t.setAutoRefreshAfterPageLoad=function(){f=!0},t.setTheme=function(e){"system"===e?v():"dark"===e?h():m()},e.addEventListener("keydown",(function(e){if(c.getKeyboardShortcuts()){var a=angular.element('input[type="text"],textarea').is(":focus");if(o.isCtrlAPressed(e)&&!a){if(angular.isFunction(t.keydownActions.selectAll))return t.keydownActions.selectAll(e)}else if(o.isCtrlFPressed(e)){if(angular.isFunction(t.keydownActions.find))return t.keydownActions.find(e)}else if(o.isDeletePressed(e)&&!a&&angular.isFunction(t.keydownActions.delete))return t.keydownActions.delete(e)}}),!0),c.onFirstAccess((function(){r.notifyInPage("","Tap to configure and get started with AriaNg.",{delay:!1,onClose:function(){a.path("/settings/ariang")}})})),d.onFirstSuccess((function(e){r.notifyInPage("","is connected",{type:"success",contentPrefix:e.rpcName+" "})})),d.onConnectionSuccess((function(){i((function(){"Connected"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Connected"),t.taskContext.isRpcOptionsSet||(!function(){const e=c.getRpcOptions(),a=c.getCurrentRpcDisplayName();u.getGlobalOption((function(n){if(n.success)try{let i=n.data;for(const t of Object.keys(e)){let n=e[t]||"",s=i[t]||"";if("Bytes"===p[t].suffix&&(s=k(s)),s.toLowerCase()!==n.toLowerCase()){u.setGlobalOptions(e,(function(){r.notifyInPage("","settings have taken effect",{type:"success",contentPrefix:a+" "})}));break}}t.enhanced="true"===i["enable-extension"]}catch(e){l.warn("[root.initAria2Options] ",e)}}))}(),t.taskContext.isRpcOptionsSet=!0)}))})),d.onConnectionFailed((function(){i((function(){"Disconnected"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Disconnected"),t.taskContext.isRpcOptionsSet&&(t.taskContext.isRpcOptionsSet=!1)}))})),d.onConnectionReconnecting((function(){i((function(){"Reconnecting"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Reconnecting"),t.taskContext.isRpcOptionsSet&&(t.taskContext.isRpcOptionsSet=!1)}))})),d.onConnectionWaitingToReconnect((function(){i((function(){"Waiting to reconnect"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Waiting to reconnect"),t.taskContext.isRpcOptionsSet&&(t.taskContext.isRpcOptionsSet=!1)}))})),d.onTaskCompleted((function(e){r.notifyTaskComplete(e.task)})),d.onBtTaskCompleted((function(e){r.notifyBtTaskComplete(e.task)})),d.onTaskErrorOccur((function(e){r.notifyTaskError(e.task)})),t.$on("$locationChangeStart",(function(e){t.skipLocationChange?t.skipLocationChange=!1:(s.closeAllDialogs(),t.loadPromise=null,delete t.keydownActions.selectAll,delete t.keydownActions.delete,delete t.swipeActions.extendLeftSwipe,delete t.swipeActions.extendRightSwipe,angular.isArray(t.taskContext.list)&&t.taskContext.list.length>0&&(t.taskContext.list.length=0),angular.isObject(t.taskContext.selected)&&(t.taskContext.selected={}),t.taskContext.enableSelectAll=!1)})),t.$on("$routeChangeStart",(function(e,t,i){!function(e){angular.element("section.sidebar > ul li a").removeClass("active"),angular.element("ul.nav-sidebar a").each((function(t,a){var n=angular.element(a).attr("href").substring(2);g(n,e)&&angular.element(a).addClass("active")})),angular.element("ul.nav-treeview a").each((function(t,a){var n=angular.element(a).attr("href").substring(2);g(n,e)&&angular.element(a).parentsUntil(".nav-sidebar > .nav-treeview").prev("a").addClass("active").parent().addClass("menu-open")}))}(a.path()),n.unbind("keypress")})),c.isBrowserSupportDarkMode())&&e.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",(function(e){l.info("[root] system switches to "+(e.matches?"dark":"light")+" theme"),"system"===c.getTheme()&&(e.matches?h():m())}));t.$on("$locationChangeSuccess",(function(a,n,i){f&&e.location.reload(),i.includes("settings/aria2")&&n.includes("settings/aria2")||(t.searchContext.text=""),t.searchContext.enabledInPage=!1})),"system"===c.getTheme()?v():"dark"===c.getTheme()?h():m(),function(){var e=c.getBrowserFeatures();if(e.localStorage||l.warn("[root.initCheck] LocalStorage is not supported!"),e.cookies||l.warn("[root.initCheck] Cookies is not supported!"),!c.isBrowserSupportStorage())throw angular.element("body").prepend('
'),angular.element(".main-sidebar").addClass("blur"),angular.element(".navbar").addClass("blur"),angular.element(".content-body").addClass("blur"),r.notifyInPage("","You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.",{type:"error",delay:!1}),new Error("You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.")}(),angular.element("section.sidebar > ul > li[data-href-match] > a").on("click",(function(){angular.element("section.sidebar > ul li a").removeClass("active"),angular.element(this).addClass("active")})),angular.element("section.sidebar > ul > li > ul.nav-treeview > li[data-href-match] > a").on("click",(function(){angular.element("section.sidebar > ul li a").removeClass("active"),angular.element(this).addClass("active").parent().parent().siblings("a").addClass("active")}))}])}(),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:2e4,globalStatStorageCapacity:120,taskStatStorageCapacity:300,lazySaveTimeout:500,errorTooltipDelay:500,notificationInPageTimeout:2e3,historyMaxStoreCount:10,cachedDebugLogsLimit:100}).constant("ariaNgDefaultOptions",{language:"en",theme:"light",title:"${downspeed}, ${upspeed} - ${title}",titleRefreshInterval:5e3,browserNotification:!1,browserNotificationSound:!0,browserNotificationFrequency:"unlimited",rpcAlias:"",rpcHost:"",rpcPort:"6800",rpcInterface:"jsonrpc",protocol:"http",httpMethod:"POST",rpcRequestHeaders:"",rpcOptions:{},secret:"",extendRpcServers:[],webSocketReconnectInterval:5e3,globalStatRefreshInterval:1e3,downloadTaskRefreshInterval:1e3,keyboardShortcuts:!0,swipeGesture:!0,dragAndDropTasks:!0,rpcListDisplayOrder:"recentlyUsed",afterCreatingNewTask:"task-list",removeOldTaskAfterRetrying:!1,confirmTaskRemoval:!0,includePrefixWhenCopyingFromTaskDetails:!0,showPiecesInfoInTaskDetailPage:"le10240",afterRetryingTask:"task-list-default",pauseAfterRetry:!1,taskListIndependentDisplayOrder:!0,displayOrder:"default:asc",downloadingTaskListPageDisplayOrder:"default:asc",waitingTaskListPageDisplayOrder:"default:asc",stoppedTaskListPageDisplayOrder:"default:asc",fileListDisplayOrder:"default:asc",peerListDisplayOrder:"default:asc",defaultTaskPage:"all",recCount:0,compactMode:!1}).constant("aria2eConstants",{recommendOrigin:"https://rec.aria2e.com",recManifestUrl:"https://rec.aria2e.com/manifest.json"})}(),function(){"use strict";angular.module("ariaNg").constant("ariaNgBuildConfiguration",{buildVersion:"v1.3.9e",buildCommit:"3b83db8"})}(),function(){"use strict";angular.module("ariaNg").config(["$qProvider","$translateProvider","localStorageServiceProvider","NotificationProvider","ariaNgConstants","ariaNgLanguages",function(e,t,a,n,i,s){e.errorOnUnhandledRejections(!1),a.setPrefix(i.appPrefix).setStorageType("localStorage").setStorageCookie(365,"/");var o=[],r={};for(var l in s)if(s.hasOwnProperty(l)){var c=s[l].aliases;if(o.push(l),angular.isArray(c)&&!(c.length<1))for(var d=0;d= 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.',"enable-pmap.name":"Enable UPnP Port Mapping","enable-pmap.description":"Enables UPnP automatic port mapping for BT and DHT protocols, and automatically sets the external IP address (bt-external-ip) to improve BT connectivity and node discovery. (The LAN gateway needs to enable UPnP function)","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."}})}])}(),function(){"use strict";angular.module("ariaNg").constant("aria2AllOptions",{gid:{type:"string",readonly:!0,required:!0},dir:{type:"string",required:!0,lazySaveTimeout:1500,showHistory:!0},log:{type:"string",lazySaveTimeout:2e3,required:!0},"max-concurrent-downloads":{type:"integer",defaultValue:"5",required:!0,min:1},"check-integrity":{type:"boolean",defaultValue:"false",required:!0},continue:{type:"boolean",required:!0},"all-proxy":{type:"string",lazySaveTimeout:1e3,showHistory:!0},"all-proxy-user":{type:"string"},"all-proxy-passwd":{type:"string"},checksum:{type:"string",required:!0,pattern:"^(md5|sha-(1|224|256|384|512))=[a-zA-Z0-9]+$"},"connect-timeout":{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"dry-run":{type:"boolean",defaultValue:"false",required:!0},"lowest-speed-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-connection-per-server":{type:"integer",defaultValue:"1",required:!0,min:1},"max-file-not-found":{type:"integer",defaultValue:"0",required:!0,min:0},"max-tries":{type:"integer",defaultValue:"5",required:!0,min:0},"min-split-size":{type:"string",suffix:"Bytes",defaultValue:"20M",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"netrc-path":{type:"string",readonly:!0,defaultValue:"$(HOME)/.netrc"},"no-netrc":{type:"boolean",required:!0},"no-proxy":{type:"text",separator:",",showCount:!0},out:{type:"string"},"proxy-method":{type:"option",options:["get","tunnel"],defaultValue:"get",required:!0},"remote-time":{type:"boolean",defaultValue:"false",required:!0},"reuse-uri":{type:"boolean",defaultValue:"true",required:!0},"retry-wait":{type:"integer",suffix:"Seconds",defaultValue:"0",required:!0,min:0,max:600},"server-stat-of":{type:"string"},"server-stat-timeout":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"86400"},split:{type:"integer",defaultValue:"5",required:!0,min:1},"stream-piece-selector":{type:"option",options:["default","inorder","random","geom"],defaultValue:"default",required:!0},timeout:{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"uri-selector":{type:"option",options:["inorder","feedback","adaptive"],defaultValue:"feedback",required:!0},"check-certificate":{type:"boolean",readonly:!0,defaultValue:"true"},"http-accept-gzip":{type:"boolean",defaultValue:"false",required:!0},"http-auth-challenge":{type:"boolean",defaultValue:"false",required:!0},"http-no-cache":{type:"boolean",defaultValue:"false",required:!0},"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:!0},"enable-http-pipelining":{type:"boolean",defaultValue:"false",required:!0},header:{type:"text",separator:"\n",overrideMode:"append",submitFormat:"array",showCount:!0,trimCount:!0},"save-cookies":{type:"string"},"use-head":{type:"boolean",defaultValue:"false",required:!0},"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:!0},"ftp-proxy":{type:"string"},"ftp-proxy-user":{type:"string"},"ftp-proxy-passwd":{type:"string"},"ftp-type":{type:"option",options:["binary","ascii"],defaultValue:"binary",required:!0},"ftp-reuse-connection":{type:"boolean",defaultValue:"true",required:!0},"ssh-host-key-md":{type:"string"},"show-files":{type:"boolean",readonly:!0},"bt-detach-seed-only":{type:"boolean",readonly:!0,defaultValue:"false"},"bt-enable-hook-after-hash-check":{since:"1.19.3",type:"boolean",defaultValue:"true",required:!0},"bt-enable-lpd":{type:"boolean",defaultValue:"false",required:!0},"bt-exclude-tracker":{type:"text",separator:",",showCount:!0},"bt-external-ip":{type:"string"},"bt-force-encryption":{type:"boolean",defaultValue:"false",required:!0},"bt-hash-check-seed":{type:"boolean",defaultValue:"true",required:!0},"bt-load-saved-metadata":{since:"1.33.0",type:"boolean",defaultValue:"false",required:!0},"bt-max-open-files":{type:"integer",defaultValue:"100",required:!0,min:1},"bt-max-peers":{type:"integer",defaultValue:"55",required:!0,min:0},"bt-metadata-only":{type:"boolean",defaultValue:"false",required:!0},"bt-min-crypto-level":{type:"option",options:["plain","arc4"],defaultValue:"plain",required:!0},"bt-prioritize-piece":{type:"string"},"bt-remove-unselected-file":{type:"boolean",defaultValue:"false",required:!0},"bt-require-crypto":{type:"boolean",defaultValue:"false",required:!0},"bt-request-peer-speed-limit":{type:"string",suffix:"Bytes",defaultValue:"50K",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"bt-save-metadata":{type:"boolean",defaultValue:"false",required:!0},"bt-seed-unverified":{type:"boolean",defaultValue:"false",required:!0},"bt-stop-timeout":{type:"integer",suffix:"Seconds",defaultValue:"0",required:!0,min:0},"bt-tracker":{type:"text",separator:",",showCount:!0},"bt-tracker-connect-timeout":{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"bt-tracker-interval":{type:"integer",suffix:"Seconds",defaultValue:"0",required:!0,min:0},"bt-tracker-timeout":{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"dht-file-path":{type:"string",readonly:!0,defaultValue:"$HOME/.aria2/dht.dat"},"dht-file-path6":{type:"string",readonly:!0,defaultValue:"$HOME/.aria2/dht6.dat"},"dht-listen-port":{type:"string",readonly:!0,defaultValue:"6881-6999"},"dht-message-timeout":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"10"},"enable-dht":{type:"boolean",readonly:!0,defaultValue:"true"},"enable-dht6":{type:"boolean",readonly:!0},"enable-peer-exchange":{type:"boolean",defaultValue:"true",required:!0},"follow-torrent":{type:"option",options:["true","false","mem"],defaultValue:"true",required:!0},"listen-port":{type:"integer",readonly:!0,defaultValue:"6881-6999"},"enable-pmap":{since:"enhanced",type:"boolean",defaultValue:"false",required:!0},"max-overall-upload-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-upload-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"peer-id-prefix":{type:"string",readonly:!0,defaultValue:"A2-$MAJOR-$MINOR-$PATCH-"},"peer-agent":{since:"1.33.0",type:"string",defaultValue:"aria2/$MAJOR.$MINOR.$PATCH",readonly:!0},"seed-ratio":{type:"float",defaultValue:"1.0",required:!0,min:0},"seed-time":{type:"float",suffix:"Minutes",required:!0,min:0},"follow-metalink":{type:"option",options:["true","false","mem"],defaultValue:"true",required:!0},"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:!0},"metalink-enable-unique-protocol":{type:"boolean",defaultValue:"true",required:!0},"enable-rpc":{type:"boolean",readonly:!0,defaultValue:"false"},"pause-metadata":{type:"boolean",defaultValue:"false",required:!0},"rpc-allow-origin-all":{type:"boolean",readonly:!0,defaultValue:"false"},"rpc-listen-all":{type:"boolean",readonly:!0,defaultValue:"false"},"rpc-listen-port":{type:"integer",readonly:!0,defaultValue:"6800"},"rpc-max-request-size":{type:"string",suffix:"Bytes",readonly:!0,defaultValue:"2M"},"rpc-save-upload-metadata":{type:"boolean",defaultValue:"true",required:!0},"rpc-secure":{type:"boolean",readonly:!0},"allow-overwrite":{type:"boolean",defaultValue:"false",required:!0},"allow-piece-length-change":{type:"boolean",defaultValue:"false",required:!0},"always-resume":{type:"boolean",defaultValue:"true",required:!0},"async-dns":{type:"boolean",defaultValue:"true",required:!0},"auto-file-renaming":{type:"boolean",defaultValue:"true",required:!0},"auto-save-interval":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"60"},"conditional-get":{type:"boolean",defaultValue:"false",required:!0},"conf-path":{type:"string",readonly:!0,defaultValue:"$HOME/.aria2/aria2.conf"},"console-log-level":{type:"option",options:["debug","info","notice","warn","error"],readonly:!0,defaultValue:"notice"},"content-disposition-default-utf8":{since:"1.31.0",type:"boolean",defaultValue:"false"},daemon:{type:"boolean",readonly:!0,defaultValue:"false"},"deferred-input":{type:"boolean",readonly:!0,defaultValue:"false"},"disable-ipv6":{type:"boolean",readonly:!0,defaultValue:"false"},"disk-cache":{type:"string",suffix:"Bytes",readonly:!0,defaultValue:"16M"},"download-result":{type:"option",options:["default","full","hide"],defaultValue:"default",required:!0},dscp:{type:"string",readonly:!0},"rlimit-nofile":{type:"string",readonly:!0},"enable-color":{type:"boolean",readonly:!0,defaultValue:"true"},"enable-mmap":{type:"boolean",defaultValue:"false",required:!0},"event-poll":{type:"option",options:["epoll","kqueue","port","poll","select"],readonly:!0},"file-allocation":{type:"option",options:["none","prealloc","trunc","falloc"],defaultValue:"prealloc",required:!0},"force-save":{type:"boolean",defaultValue:"false",required:!0},"save-not-found":{since:"1.27.0",type:"boolean",defaultValue:"true",required:!0},"hash-check-only":{type:"boolean",defaultValue:"false",required:!0},"human-readable":{type:"boolean",readonly:!0,defaultValue:"true"},"keep-unfinished-download-result":{type:"boolean",defaultValue:"true",required:!0},"max-download-result":{type:"integer",defaultValue:"1000",required:!0,min:0},"max-mmap-limit":{since:"1.20.0",type:"string",suffix:"Bytes",defaultValue:"9223372036854775807",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-resume-failure-tries":{type:"integer",defaultValue:"0",required:!0,min:0},"min-tls-version":{type:"option",options:["SSLv3","TLSv1","TLSv1.1","TLSv1.2"],readonly:!0,defaultValue:"TLSv1"},"log-level":{type:"option",options:["debug","info","notice","warn","error"],defaultValue:"debug",required:!0},"optimize-concurrent-downloads":{since:"1.22.0",type:"string",defaultValue:"false"},"piece-length":{type:"string",suffix:"Bytes",defaultValue:"1M",required:!0,pattern:"^(0|[1-9]\\d*(M|m)?)$"},"show-console-readout":{type:"boolean",readonly:!0,defaultValue:"true"},"summary-interval":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"60"},"max-overall-download-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-download-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"no-conf":{type:"boolean",readonly:!0},"no-file-allocation-limit":{type:"string",suffix:"Bytes",defaultValue:"5M",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"parameterized-uri":{type:"boolean",defaultValue:"false",required:!0},quiet:{type:"boolean",readonly:!0,defaultValue:"false"},"realtime-chunk-checksum":{type:"boolean",defaultValue:"true",required:!0},"remove-control-file":{type:"boolean",required:!0},"save-session":{type:"string"},"save-session-interval":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"0"},"socket-recv-buffer-size":{since:"1.19.3",type:"string",suffix:"Bytes",readonly:!0,defaultValue:"0"},stop:{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"0"},"truncate-console-readout":{type:"boolean",readonly:!0,defaultValue:"true"}}).constant("aria2GlobalAvailableOptions",{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","enable-pmap","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",{taskOptions:[{key:"dir",category:"global",canUpdate:"new",showHistory:!0},{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",showHistory:!0},{key:"all-proxy-user",category:"http",canUpdate:"new|waiting|paused",showHistory:!0},{key:"all-proxy-passwd",category:"http",canUpdate:"new|waiting|paused"},{key:"checksum",category:"http"},{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:"bt-exclude-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:"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"}]})}(),function(){"use strict";angular.module("ariaNg").constant("aria2Errors",{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"},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"},32:{descriptionKey:"error.checksum.failed"}})}(),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"}})}(),function(){"use strict";angular.module("ariaNg").controller("CommandController",["$rootScope","$window","$location","$routeParams","ariaNgDefaultOptions","ariaNgCommonService","ariaNgLogService","ariaNgSettingService","aria2TaskService","aria2SettingService",function(e,t,a,n,i,s,o,r,l,c){var d=a.path();(function(n,d){return 0===n.indexOf("/new")?function(t,n){try{t=s.base64UrlDecode(t)}catch(e){return s.showError("URL is not base64 encoded!"),!1}var i={},r=!1;if(n){for(var d in n)n.hasOwnProperty(d)&&c.isOptionKeyValid(d)&&(i[d]=n[d]);"true"===n.pause&&(r=!0)}return e.loadPromise=l.newUriTask({urls:[t],options:i},r,(function(e){if(!e.success)return!1;r?a.path("/waiting"):a.path("/downloading")})),o.info("[CommandController] new download: "+t),!0}(d.url,d):0===n.indexOf("/settings/rpc/set")?function(e,n,l,c,d){if(l=l||i.rpcPort,c=c||i.rpcInterface,d=d||i.secret,o.info("[CommandController] set rpc: "+e+"://"+n+":"+l+"/"+c+", secret: "+d),!e||"http"!==e&&"https"!==e&&"ws"!==e&&"wss"!==e)return s.showError("Protocol is invalid!"),!1;if(!n)return s.showError("RPC host cannot be empty!"),!1;if(d)try{d=s.base64UrlDecode(d)}catch(e){return s.showError("RPC secret is not base64 encoded!"),!1}var u={rpcAlias:"",rpcHost:n,rpcPort:l,rpcInterface:c,protocol:e,httpMethod:i.httpMethod,rpcRequestHeaders:"",secret:d};return r.isRpcSettingEqualsDefault(u)?a.path("/downloading"):(r.setDefaultRpcSetting(u,{keepCurrent:!1,forceSet:!0}),a.path("/downloading"),t.location.reload()),!0}(d.protocol,d.host,d.port,d.interface,d.secret):(s.showError("Parameter is invalid!"),!1)})(d,angular.extend({},n,a.search()))||a.path("/downloading")}])}(),function(){"use strict";angular.module("ariaNg").controller("AriaNgDebugController",["$rootScope","$scope","$location","$interval","$timeout","$filter","ariaNgConstants","ariaNgCommonService","ariaNgLocalizationService","ariaNgLogService","ariaNgKeyboardService","ariaNgSettingService","aria2RpcService",function(e,t,a,n,i,s,o,r,l,c,d,u,p){var f=[{name:"logs",show:!0},{name:"rpc",show:!0}],g=null,m=function(){for(var e=[],t=0;t=0)},t.setLogLevelFilter=function(e){t.context.logLevelFilter=e},t.isSetLogLevelFilter=function(e){return t.context.logLevelFilter===e},t.getLogLevelFilter=function(){return t.context.logLevelFilter},t.setAutoRefreshInterval=function(e){t.context.logAutoRefreshInterval=e,g&&n.cancel(g),e>0&&(t.reloadLogs(),g=n((function(){t.reloadLogs()}),t.context.logAutoRefreshInterval))},t.reloadLogs=function(){t.context.logs=c.getDebugLogs().slice()},t.clearDebugLogs=function(){r.confirm("Confirm Clear","Are you sure you want to clear debug logs?","warning",(function(){c.clearDebugLogs(),t.reloadLogs()}),!1)},t.showLogDetail=function(e){t.context.currentLog=e,angular.element("#log-detail-modal").modal()},$("#log-detail-modal").on("hide.bs.modal",(function(e){t.context.currentLog=null})),t.executeAria2Method=function(){if(!t.context.rpcRequestMethod||t.context.rpcRequestMethod.indexOf(".")<0)r.showError("RPC method is illegal!");else{var e=t.context.rpcRequestMethod.split(".");if(2===e.length){var a=e[1];if(angular.isFunction(p[a])){var n={silent:!1,callback:function(e){t.context.rpcResponse=e?s("json")(e.data):s("json")(e)}},i={};try{i=angular.fromJson(t.context.rpcRequestParameters)}catch(e){return c.error("[AriaNgDebugController.executeAria2Method] failed to parse request parameters: "+t.context.rpcRequestParameters,e),void r.showError("RPC request parameters are invalid!")}for(var o in i)i.hasOwnProperty(o)&&"silent"!==o&&"callback"!==o&&(n[o]=i[o]);return p[a](n)}r.showError("AriaNg does not support this RPC method!")}else r.showError("RPC method is illegal!")}},t.requestParametersTextboxKeyDown=function(e){if(u.getKeyboardShortcuts())return d.isCtrlEnterPressed(e)&&t.executeMethodForm.$valid?(e.preventDefault&&e.preventDefault(),t.executeAria2Method(),!1):void 0},t.$on("$destroy",(function(){g&&n.cancel(g)})),e.swipeActions.extendLeftSwipe=function(){var e=m(),a=e.indexOf(t.context.currentTab);return a0&&(t.changeTab(e[a-1]),!0)},e.loadPromise=i((function(){u.isEnableDebugMode()?t.setAutoRefreshInterval(t.context.logAutoRefreshInterval):r.showError("Access Denied!",(function(){u.isEnableDebugMode()||a.path("/settings/ariang")}))}),100)}])}(),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","ariaNgKeyboardService","aria2eRecService",function(e,t,a,n,i,s,o,r,l,c,d,u,p,f,g,m,h,v,b){var k=null,y=null;e.defaultTaskPage=p.getDefaultTaskPage();var w="/"+e.defaultTaskPage,S=function(){var e=i.path().substring(1);return"all"===e||"downloading"===e||"waiting"===e||"stopped"===e?e:""},x=function(){var e=g.getFinalTitleByGlobalStat({globalStat:t.globalStat,currentRpcProfile:C()});s[0].title=e},T=function(e,a){return h.getGlobalStat((function(e){if(e.success||e.data.message!==l.Unauthorized.message){if(e.success){let a=e.data;t.globalStat=a,t.globalStat.numTotal=Number(a.numActive)+Number(a.numWaiting)+Number(a.numStopped),f.recordGlobalStat(e.data)}a&&a(e)}else o.cancel(y)}),e)},C=function(){if(!t.rpcSettings||t.rpcSettings.length<1)return null;for(var e=0;e0,data:f.getGlobalStatsData()},t.enableDebugMode=function(){return p.isEnableDebugMode()},t.quickSettingContext=null,t.rpcSettings=p.getAllRpcSettings(),t.currentRpcProfile=C(),t.currentRpcAlias=p.getCurrentRpcDisplayName(),t.isCurrentRpcUseWebSocket=p.isCurrentRpcUseWebSocket(),t.isTaskSelected=function(){return e.taskContext.getSelectedTaskIds().length>0},t.isSelectedTasksAllHaveUrl=function(){var t=e.taskContext.getSelectedTasks();if(t.length<1)return!1;for(var a=0;a1&&c.showError("Failed to change some tasks state."),!e.hasSuccess)return;let s=t.globalStat;T(!0,(function(o){let r=t.globalStat;e.hasError||"start"!==n||("/waiting"===i.path()&&o.success&&r.numActive>s.numActive?i.path("/downloading"):a.reload())})),e.hasError||"pause"!==n||("/downloading"===i.path()?i.path("/waiting"):a.reload())}),r.length>1))},t.retryTask=function(t){c.confirm("Confirm Retry","Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.","info",(function(){e.loadPromise=m.retryTask(t.gid,(function(e){if(e.success){T(!0);var t=p.getAfterRetryingTask();e.success&&e.data&&("task-list-default"===t?i.path()!==w?i.path(w):a.reload():"task-list-downloading"===t?"/downloading"!==i.path()?i.path("/downloading"):a.reload():"task-detail"===t?i.path("/task/detail/"+e.data):a.reload())}else c.showError("Failed to retry this task.")}),!1)}))},t.hasPausedTask=function(){return e.taskContext.hasPausedTask()},t.hasRetryableTask=function(){return e.taskContext.hasRetryableTask()},t.hasCompletedTask=function(){return e.taskContext.hasCompletedTask()},t.isSelectedTaskRetryable=function(){var t=e.taskContext.getSelectedTasks();if(t.length<1)return!1;for(var a=0;a1&&c.showError("Failed to remove some task(s)."),e.hasSuccess&&(T(!0),e.hasError||("/downloading"==i.path()?i.path("/stopped"):i.path().startsWith("/task/detail")?i.path(w):a.reload()))}),n.length>1,!!t)};const o=v.isShiftKeyPressed(t);if(p.getConfirmTaskRemoval()||o){let t=null;e.enhanced&&(t={input:"checkbox",inputValue:o,inputPlaceholder:"Remove downloaded file(s) simultaneously"}),c.confirm("Confirm Remove","Are you sure you want to remove the selected task?","warning",s,!1,t)}else s()},t.clearStoppedTasks=function(){c.confirm("Confirm Clear","Are you sure you want to clear stopped tasks?","warning",(function(){e.loadPromise=m.clearStoppedTasks((function(e){e.success&&(T(!0),"/stopped"!==i.path()?i.path(w):a.reload())}))}))},t.isAllTasksSelected=function(){return e.taskContext.isAllSelected()},t.selectAllTasks=function(){e.taskContext.selectAll()},t.selectAllPausedTasks=function(){e.taskContext.selectAllPaused()},t.selectAllFailedTasks=function(){e.taskContext.selectAllFailed()},t.selectAllCompletedTasks=function(){e.taskContext.selectAllCompleted()},t.copySelectedTasksDownloadLink=function(){for(var t=e.taskContext.getSelectedTasks(),a="",n=0;n0&&(a+="\n"),a+=t[n].singleUrl;a.length>0&&r.copyText(a)},t.copySelectedTasksMagnetLink=function(){for(var t=e.taskContext.getSelectedTasks(),a="",n=0;n0&&(a+="\n"),a+="magnet:?xt=urn:btih:"+t[n].infoHash;a.length>0&&r.copyText(a)},t.changeDisplayOrder=function(e,t){var a=S(),n=c.parseOrderType(p.getDisplayOrder(a)),i=c.parseOrderType(e);t&&i.type===n.type&&(i.reverse=!n.reverse),p.setDisplayOrder(i.getValue(),a)},t.isSetDisplayOrder=function(e){var t=S(),a=c.parseOrderType(p.getDisplayOrder(t)),n=c.parseOrderType(e);return a.equals(n)},t.showQuickSettingDialog=function(e,a){t.quickSettingContext={type:e,title:a}},t.switchRpcSetting=function(t){t.isDefault||(p.setDefaultRpcSetting(t),0===i.path().indexOf("/task/detail/")||0===i.path().indexOf("/settings/aria2/")?(e.setAutoRefreshAfterPageLoad(),i.path(w)):n.location.reload())},t.getOpenHandlerUrl=function(e,a){if(!t.currentRpcProfile||!t.currentRpcProfile.openHandlerUrl)return"";let n=t.currentRpcProfile.openHandlerUrl;if("string"!=typeof e||"string"!=typeof n)return"";let i="";const s=n.match(/\${relativepath:(\d+)}/);if(s){const t=parseInt(s[1]);i=t?c.getRelativeDir(e,t):""}return n.replace("${taskdir}",e).replace(/\${relativepath:(\d+)}/,i).replace("${taskname}",a)},p.getTitleRefreshInterval()>0&&(k=o((function(){x()}),p.getTitleRefreshInterval())),p.getGlobalStatRefreshInterval()>0&&(y=o((function(){T(!0)}),p.getGlobalStatRefreshInterval())),b.getRecManifestPromise().then((function(t){if(t){try{var a=n.navigator.language,s=p.getRecCount(),o=t.contents[0].regions||[],r=t.total>s,l=o.includes("all")||o.includes(a);e.hasNewRec=r&&l,e.recTotal=t.total}catch(t){e.hasNewRec=!1,e.recTotal=s}0===i.path().indexOf("/recommend")&&p.setRecCount(e.recTotal)}else e.hasNewRec=!1})).catch((function(t){e.hasNewRec=!1,e.recTotal=p.getRecCount()})),t.updateRecCount=function(){p.setRecCount(e.recCount),e.hasNewRec=!1},t.compactMode=p.getCompactMode(),t.$watch("compactMode",(function(e,t){p.setCompactMode(e)})),t.$on("$destroy",(function(){k&&o.cancel(k),y&&o.cancel(y)})),T(!0,(function(){x()}))}])}(),function(){"use strict";angular.module("ariaNg").controller("NewTaskController",["$rootScope","$scope","$location","$q","$timeout","ariaNgCommonService","ariaNgLogService","ariaNgKeyboardService","ariaNgFileService","ariaNgFileTypes","ariaNgSettingService","aria2TaskService","aria2SettingService","ariaNgNotificationService",function(e,t,a,n,i,s,o,r,l,c,d,u,p,f){var g,m=[{name:"links",show:!0},{name:"options",show:!0}],h=a.search(),v=function(){for(var e=[],t=0;t{e.isDir||t.pendingTasks.push(e)}))}};t.context={currentTab:"links",taskType:"urls",urls:"",uploadFiles:[],showUrlFilter:!1,lastChecked:-1,collapsedDirs:[],torrentTask:{},availableOptions:(g=p.getNewTaskOptionKeys(),p.getSpecifiedOptions(g,{disableRequired:!0})),globalOptions:null,options:{},optionFilter:{global:!0,http:!1,bittorrent:!1},exportCommandApiOptions:null,hasDownloadsPermission:s.hasDownloadsPermission()};const S=angular.copy(t.context);if(t.resetContext=function(){t.context=angular.copy(S),t.pendingTasks=[]},t.changeTab=function(e){"options"===e&&t.loadDefaultOption(),t.context.currentTab=e},e.swipeActions.extendLeftSwipe=function(){var e=v(),a=e.indexOf(t.context.currentTab);return a0&&(t.changeTab(e[a-1]),!0)},t.loadDefaultOption=function(){t.context.globalOptions||(e.loadPromise=p.getGlobalOption((function(e){e.success&&(t.context.globalOptions=e.data)})))},h.url){try{t.context.urls=decodeURI(s.base64UrlDecode(h.url))}catch(e){o.error("[NewTaskController] base64 decode error, url="+h.url,e)}t.context.urls?.startsWith("http")&&(t.context.optionFilter.http=!0,t.context.urls.includes("\n")||i((function(){"Connected"==e.taskContext.rpcStatus&&t.changeTab("options")}),1440,!1)),h.referer&&(t.context.options.referer=h.referer),h.header&&(t.context.options.header=h.header),h.filename&&(t.context.options.out=decodeURIComponent(h.filename)),h.dir&&(t.context.options.dir=decodeURIComponent(h.dir))}t.openTorrent=function(){l.openFileContent({scope:t,fileFilter:".torrent",fileType:"binary"},(function(e){t.context.uploadFiles.push(e),t.context.taskType="torrent",w(e.base64Content)}),(function(e){s.showError(e)}),angular.element("#file-holder"))},t.openMetalink=function(){l.openFileContent({scope:t,fileFilter:".meta4,.metalink",fileType:"binary"},(function(e){t.context.uploadFiles.push(e),t.context.taskType="metalink",t.changeTab("options")}),(function(e){s.showError(e)}),angular.element("#file-holder"))},t.dragEnterHandler=function(e,t){e.preventDefault(),t.focus(),t.addClass("has-warning");let a=e.originalEvent.dataTransfer.items;(a.length>1||"file"!=a[0].kind)&&t.removeClass("has-warning").addClass("has-error")},t.dragLeaveHandler=function(e,t){e.preventDefault(),t.blur(),t.removeClass("has-warning has-error")},t.dropHandler=function(e,a){e.preventDefault(),a.removeClass("has-warning has-error");const n=e.originalEvent.dataTransfer.files,o=e.originalEvent.dataTransfer.items;for(const e of o)"string"==e.kind&&"text/uri-list"==e.type&&(t.context.urls&&!t.context.urls.endsWith("\n")?t.context.urls+="\n":angular.isUndefined(t.context.urls)&&(t.context.urls=""),e.getAsString((function(e){t.$apply((function(){t.context.urls+=e+"\n"}))})));for(const e of n){if(t.context.taskType&&"urls"!==t.context.taskType){if(!e.name.toLowerCase().endsWith(t.context.taskType))continue}else if(e.name.toLowerCase().endsWith(".torrent"))t.context.taskType="torrent";else{if(!e.name.toLowerCase().endsWith(".meta4")&&!e.name.toLowerCase().endsWith(".metalink"))continue;t.context.taskType="metalink"}const a={fileName:e.name},n=new FileReader;n.onload=function(){a.base64Content=n.result.replace(/.*?base64,/,""),t.context.uploadFiles.push(a),"torrent"===t.context.taskType?(t.context.optionFilter.bittorrent=!0,i((function(){w(a.base64Content)}))):t.changeTab("options")},n.onerror=function(){s.showError("Failed to load file!")},n.readAsDataURL(e)}},t.isNewTaskValid=function(){return t.context.uploadFiles.length?"torrent"!==t.context.taskType||t.isAnyFileSelected():t.newTaskForm.$valid},t.startDownload=function(i,s){var o=function(e){if(e.hasSuccess||e.success){var t=null;e.results&&e.results.length>0?t=e.results[0]:e&&(t=e),"task-detail"===d.getAfterCreatingNewTask()&&t&&t.data?a.path("/task/detail/"+t.data):"all"===d.getDefaultTaskPage()?a.path("/all"):i?a.path("/waiting"):a.path("/downloading")}};"urls"===t.context.taskType?t.context.hasDownloadsPermission&&"Connected"!==e.taskContext.rpcStatus?(f.notifyInPage("","Aria2 is disconnected, All tasks will be downloaded via Browser. Invalid URL will be ignored.",{type:"info",delay:6e3}),e.loadPromise=t.invokeBrowserDownload(s)):e.loadPromise=y(i,o):"torrent"===t.context.taskType?e.loadPromise=function(e,a){var i=[],s=angular.copy(t.context.options);b(s);for(const n of t.context.uploadFiles){x(),t.context.torrentTask.selectedFileIndex&&(s["select-file"]=t.context.torrentTask.selectedFileIndex);var o={content:n.base64Content,options:s};i.push(u.newTorrentTask(o,e,a))}return n.all(i)}(i,o):"metalink"===t.context.taskType&&(e.loadPromise=function(e,a){var i=[],s=angular.copy(t.context.options);b(s);for(const n of t.context.uploadFiles){var o={content:n.base64Content,options:s};i.push(u.newMetalinkTask(o,e,a))}return n.all(i)}(i,o))},t.invokeBrowserDownload=function(e){let n=function(){"all"===d.getDefaultTaskPage()?a.path("/all"):a.path("/downloading")};if(t.context.hasDownloadsPermission){let a=s.parseUrlsFromOriginInput(t.context.urls,"^(https?|ftp)://.+$");if(a.length>1)s.confirm("Download via Browser","Confirm to download multiple URLs from Browser simultaneously?","warning",(function(){let e={url:t.context.urls};chrome.runtime.sendMessage({type:"DOWNLOAD_VIA_BROWSER",data:e}).then(n)}),!1,null,(function(){e&&e.preventDefault()}));else if(1===a.length){let e={url:t.context.urls,filename:t.context.options.out};return chrome.runtime.sendMessage({type:"DOWNLOAD_VIA_BROWSER",data:e}).then(n)}}e&&e.preventDefault()},t.showExportCommandAPIModal=function(){t.context.exportCommandApiOptions={type:"new-task",data:k()}},t.setOption=function(e,a,n){""===a&&p.isOptionKeyRequired(e)?delete t.context.options[e]:t.context.options[e]=a,n.setReady()},t.urlTextboxKeyDown=function(e){if(d.getKeyboardShortcuts())return r.isCtrlEnterPressed(e)&&t.newTaskForm.$valid?(e.preventDefault&&e.preventDefault(),t.startDownload(),!1):void 0},t.getValidUrlsCount=function(){let e=0;if(t.context.showUrlFilter)for(const a of t.pendingTasks)t.filterTask(a)&&a.selected&&e++;else{var a=s.parseUrlsFromOriginInput(t.context.urls);e=a?a.length:0}return e},t.showUrlFilter=function(){t.context.showUrlFilter?(t.cancelUrlFilter(),e.searchContext.enabledInPage=!1):((!t.pendingTasks||"urls"===t.context.taskType&&t.newTaskForm.urls.$dirty)&&(t.pendingTasks=k()),e.searchContext.enabledInPage=!0,t.context.showUrlFilter=!0)},t.cancelUrlFilter=function(){t.context.showUrlFilter&&(t.context.showUrlFilter=!1,e.searchContext.enabledInPage=!1)},t.isAnyFileSelected=function(){if(!t.pendingTasks||!t.pendingTasks.length)return!1;for(var e=0;e=0&&(i.push(r),l.selected||(o=!1))}}for(r=0;r0&&"."===i.charAt(0)&&(i=i.substring(1)),g={extension:i,classified:!1,selected:!1,selectedCount:0,unSelectedCount:0},a[n]=g}o.selected?(g.selected=!0,g.selectedCount++):g.unSelectedCount++}var o={};for(var r in c)if(c.hasOwnProperty(r)){for(var l=c[r].name,d=c[r].extensions,u=[],p=0;p0&&(o[r]={name:l,extensions:u})}var f=[];for(var n in a){var g;if(a.hasOwnProperty(n))(g=a[n]).classified||f.push(g)}f.length>0&&(o.other={name:"Other",extensions:f}),t.context.fileExtensions=o,angular.element("#custom-choose-file-modal").modal()}},t.setSelectedExtension=function(e,a){if(t.pendingTasks&&t.pendingTasks.length){var n=t.pendingTasks;for(const o of n){var i="";"urls"===t.context.taskType?i=s.getFileExtensionFromUrl(o.urls[0]):"torrent"===t.context.taskType&&(i=s.getFileExtension(o.path)),i&&(i=i.toLowerCase()),i==="."+e&&(o.selected=a)}}},t.onTaskClick=function(e,a){let n=t.context.lastChecked,i=t.pendingTasks;if(e<0||!Array.isArray(i)||i.length<1)return;let s=i[e].selected=!i[e].selected;if(a.shiftKey&&-1!==n){let t=n=0)},e.keydownActions.selectAll=function(e){return e.preventDefault&&e.preventDefault(),t.$apply((function(){t.selectFiles("auto")})),!1},$("#custom-choose-file-modal").on("hide.bs.modal",(function(e){t.context.fileExtensions=null}));var x=function(){if(!t.context.torrentTask||!t.context.torrentTask.files)return;let e=[];for(const a of t.context.torrentTask.files)a&&a.selected&&!a.isDir&&e.push(a.index);e.length&&(t.context.torrentTask.selectedFileIndex=e.join(","))},T=function(e){if(e){var t=0,a=0;if(e.files&&e.files.length)for(var n=0;n0&&t===e.subDirs.length+e.files.length,e.partialSelected=t>0&&t0}},C=function(){if(t.context.torrentTask&&t.context.torrentTask.multiDir)for(var e=0;e0)for(var i=0;i0&&(d.processDownloadTasks(e.taskContext.list),!a)){var o=!1;for(i=0;i0}else t.data.message===r.Unauthorized.message&&s.cancel(f)}),t)};t.getOrderType=function(){return c.getDisplayOrder(p)},t.openDownloadFolder=function(e,i){if(e.stopPropagation(),0!==e.button||!i.files||i.files.length<1)return;let s="aria2://browse/path="+(i.files.length>1?i.dir+i.taskName:i.files[0].path);t.currentRpcProfile&&t.currentRpcProfile.openHandlerUrl&&(s=t.getOpenHandlerUrl(i.dir,i.taskName)),a.location.href=s,setTimeout((()=>{v||l.confirm("Install Aria2 Manager","Aria2 Manager is not installed, go to Alex Recommends channel for more information?","info",(function(){n.path("recommend").search("path","/posts/3").hash("usage")}))}),1200)},t.onTaskClick=function(t,a,n){if(t<0||!Array.isArray(n)||n.length<1)return;let i=n[t].gid,s=c.getKeyboardShortcuts(),o=a.originalEvent?.sourceCapabilities?.firesTouchEvents||!1;if(2==a.button&&e.taskContext.selected[i])return;if(!(o||0==a.button&&(!s&&!u.isModifierKeyPressed(a)||s&&u.isModifierKeyPressed(a)||a.shiftKey)))for(const t in e.taskContext.selected)t!==i&&(e.taskContext.selected[t]=!1);let r=e.taskContext.selected[i]=!e.taskContext.selected[i];if(a.shiftKey&&0==a.button&&-1!==h){let a=h0&&(f=s((function(){b(!0)}),c.getDownloadTaskRefreshInterval())),o.options(t,"task-list",{revertOnSpill:!0,moves:function(){return t.isSupportDragTask()}}),t.$on("task-list.drop-model",(function(e,t,a){var n=angular.element(t),i=n.attr("data-gid"),s=n.index();g=!0,d.changeTaskPosition(i,s,(function(){g=!1}),!0)})),angular.element(a).on("blur",(function(){v=!0})),t.$on("$destroy",(function(){g=!0,f&&s.cancel(f)})),e.keydownActions.selectAll=function(e){return e.preventDefault&&e.preventDefault(),t.$apply((function(){t.selectAllTasks()})),!1},e.keydownActions.delete=function(e){return e.preventDefault&&e.preventDefault(),t.$apply((function(){t.removeTasks(e)})),!1},e.loadPromise=b(!1),t.isWindows="Windows"==navigator?.userAgentData?.platform||"Win32"==navigator?.platform,t.isRpcLocalhost=c.isCurrentRpcLocalhost(),t.location=p}])}(),function(){"use strict";angular.module("ariaNg").controller("TaskDetailController",["$rootScope","$scope","$routeParams","$location","$interval","clipboard","aria2RpcErrors","ariaNgFileTypes","ariaNgCommonService","ariaNgSettingService","ariaNgMonitorService","aria2TaskService","aria2SettingService",function(e,t,a,n,i,s,o,r,l,c,d,u,p){var f=[{name:"overview",show:!0},{name:"pieces",show:!0},{name:"filelist",show:!0},{name:"btpeers",show:!0}],g=null,m=!1,h=null,v=!0,b=!1,k=function(){for(var e=[],t=0;t0&&t===e.subDirs.length+e.files.length,e.partialSelected=t>0&&t0}},R=function(){if(t.task&&t.task.multiDir)for(var e=0;e0,showPiecesInfo:"never"!==c.getShowPiecesInfoInTaskDetailPage(),showChooseFilesToolbar:!1,fileExtensions:[],collapsedDirs:{},btPeers:[],healthPercent:0,collapseTrackers:!0,statusData:d.getEmptyStatsData(a.gid),availableOptions:[],options:[]},t.changeTab=function(a){"settings"===a&&t.loadTaskOption(t.task),t.context.currentTab=a,e.skipLocationChange=!0,n.search("tab",a).replace()},e.swipeActions.extendLeftSwipe=function(){var e=k(),a=e.indexOf(t.context.currentTab);return a0&&(t.changeTab(e[a-1]),!0)},t.changeFileListDisplayOrder=function(e,a){if(!t.task||!t.task.multiDir){var n=l.parseOrderType(c.getFileListDisplayOrder()),i=l.parseOrderType(e);a&&i.type===n.type&&(i.reverse=!n.reverse),c.setFileListDisplayOrder(i.getValue())}},t.isSetFileListDisplayOrder=function(e){var t=l.parseOrderType(c.getFileListDisplayOrder()),a=l.parseOrderType(e);return t.equals(a)},t.getFileListOrderType=function(){return t.task&&t.task.multiDir?null:c.getFileListDisplayOrder()},t.showChooseFilesToolbar=function(){t.context.showChooseFilesToolbar?t.cancelChooseFiles():(m=!0,t.context.showChooseFilesToolbar=!0)},t.isAnyFileSelected=function(){if(!t.task||!t.task.files)return!1;for(var e=0;e=0&&(i.push(o),d.selected||(s=!1))}}for(o=0;o0&&"."===s.charAt(0)&&(s=s.substring(1)),m={extension:s,classified:!1,selected:!1,selectedCount:0,unSelectedCount:0},a[g]=m}i.selected?(m.selected=!0,m.selectedCount++):m.unSelectedCount++}}var o={};for(var c in r)if(r.hasOwnProperty(c)){var d=r[c].name,u=r[c].extensions,p=[];for(n=0;n0&&(o[c]={name:d,extensions:p})}var f=[];for(var g in a){var m;if(a.hasOwnProperty(g))(m=a[g]).classified||f.push(m)}f.length>0&&(o.other={name:"Other",extensions:f}),t.context.fileExtensions=o,angular.element("#custom-choose-file-modal").modal()}},t.setSelectedExtension=function(e,a){if(t.task&&t.task.files){for(var n=t.task.files,i=0;i span").text().trim(),t="";if(h.find(".setting-value > span").each((function(e,a){e>0&&(t+="\n"),t+=angular.element(a).text().trim()})),c.getIncludePrefixWhenCopyingFromTaskDetails()){var a=e+": "+t;s.copyText(a)}else s.copyText(t)}},b="settings"===t.context.currentTab&&!t.context.options.length,c.getDownloadTaskRefreshInterval()>0&&(g=i((function(){!t.task||"complete"!==t.task.status&&"error"!==t.task.status&&"removed"!==t.task.status?T(!0):i.cancel(g)}),c.getDownloadTaskRefreshInterval())),t.$on("$destroy",(function(){g&&i.cancel(g)})),t.onOverviewMouseDown=function(){angular.element('#overview-items .row[contextmenu-bind!="true"]').contextmenu({target:"#task-overview-contextmenu",before:function(e,t){h=t}}).attr("contextmenu-bind","true")},angular.element("#task-overview-contextmenu").on("hide.bs.context",(function(){h=null})),e.loadPromise=T(!1),t.isWindows="Windows"==navigator?.userAgentData?.platform||"Win32"==navigator?.platform,t.isRpcLocalhost=c.isCurrentRpcLocalhost(),t.backHome=function(){window.history.length>1?window.history.back():n.path("")}}])}(),function(){"use strict";angular.module("ariaNg").controller("AriaNgSettingsController",["$rootScope","$scope","$routeParams","$location","$window","$interval","$timeout","$filter","clipboard","ariaNgLanguages","ariaNgCommonService","ariaNgVersionService","ariaNgKeyboardService","ariaNgNotificationService","ariaNgLocalizationService","ariaNgLogService","ariaNgFileService","ariaNgSettingService","ariaNgMonitorService","ariaNgTitleService","aria2SettingService",function(e,t,a,n,i,s,o,r,l,c,d,u,p,f,g,m,h,v,b,k,y){var w=a.extendType,S=null,x=function(){return k.getFinalTitleByGlobalStat({globalStat:b.getCurrentGlobalStat(),currentRpcProfile:T()})},T=function(){if(!t.context||!t.context.rpcSettings||t.context.rpcSettings.length<1)return null;for(var e=0;e0?(t.changeRpcTab(e-1),!0):0===e&&(t.changeGlobalTab(),!0)},t.isSupportNotification=function(){return f.isSupportBrowserNotification()&&v.isCurrentRpcUseWebSocket(t.context.settings.protocol)},t.setLanguage=function(e){v.setLanguage(e)&&g.applyLanguage(e),t.updateTitlePreview()},t.setTheme=function(t){v.setTheme(t),e.setTheme(t)},t.setDebugMode=function(e){v.setDebugMode(e)},t.setTitle=function(e){v.setTitle(e)},t.setEnableBrowserNotification=function(e){v.setBrowserNotification(e),e&&!f.hasBrowserPermission()&&f.requestBrowserPermission((function(e){e.granted||(t.context.settings.browserNotification=!1,d.showError("You have disabled notification in your browser. You should change your browser's settings before you enable this function."))}))},t.setBrowserNotificationSound=function(e){v.setBrowserNotificationSound(e)},t.setBrowserNotificationFrequency=function(e){v.setBrowserNotificationFrequency(e)},t.setWebSocketReconnectInterval=function(e){C(),v.setWebSocketReconnectInterval(e)},t.setTitleRefreshInterval=function(e){C(),v.setTitleRefreshInterval(e)},t.setGlobalStatRefreshInterval=function(e){C(),v.setGlobalStatRefreshInterval(e)},t.setDownloadTaskRefreshInterval=function(e){C(),v.setDownloadTaskRefreshInterval(e)},t.setRPCListDisplayOrder=function(e){C(),v.setRPCListDisplayOrder(e)},t.setDefaultTaskPage=function(t){e.defaultTaskPage=t,v.setDefaultTaskPage(t)},t.setTaskListIndependentDisplayOrder=function(e){v.setTaskListIndependentDisplayOrder(e)},t.setKeyboardShortcuts=function(e){v.setKeyboardShortcuts(e)},t.setSwipeGesture=function(e){v.setSwipeGesture(e)},t.setDragAndDropTasks=function(e){v.setDragAndDropTasks(e)},t.setAfterCreatingNewTask=function(e){v.setAfterCreatingNewTask(e)},t.setRemoveOldTaskAfterRetrying=function(e){v.setRemoveOldTaskAfterRetrying(e)},t.setPauseAfterRetry=function(e){v.setPauseAfterRetry(e)},t.setConfirmTaskRemoval=function(e){v.setConfirmTaskRemoval(e)},t.setIncludePrefixWhenCopyingFromTaskDetails=function(e){v.setIncludePrefixWhenCopyingFromTaskDetails(e)},t.setShowPiecesInfoInTaskDetailPage=function(e){v.setShowPiecesInfoInTaskDetailPage(e)},t.setAfterRetryingTask=function(e){v.setAfterRetryingTask(e)},t.showImportSettingsModal=function(){t.context.importSettings=null,angular.element("#import-settings-modal").modal()},$("#import-settings-modal").on("hide.bs.modal",(function(e){t.context.importSettings=null})),t.openAriaNgConfigFile=function(){h.openFileContent({scope:t,fileFilter:".json",fileType:"text"},(function(e){t.context.importSettings=e.content}),(function(e){d.showError(e)}),angular.element("#import-file-holder"))},t.importSettings=function(e){var t=null;try{t=JSON.parse(e)}catch(e){return m.error("[AriaNgSettingsController.importSettings] parse settings json error",e),void d.showError("Invalid settings data format!")}if(!angular.isObject(t)||angular.isArray(t))return m.error("[AriaNgSettingsController.importSettings] settings json is not object"),void d.showError("Invalid settings data format!");t&&d.confirm("Confirm Import","Are you sure you want to import all settings?","warning",(function(){v.importAllOptions(t),i.location.reload()}))},t.showExportSettingsModal=function(){t.context.exportSettings=r("json")(v.exportAllOptions()),t.context.exportSettingsCopied=!1,angular.element("#export-settings-modal").modal()},$("#export-settings-modal").on("hide.bs.modal",(function(e){t.context.exportSettings=null,t.context.exportSettingsCopied=!1})),t.copyExportSettings=function(){l.copyText(t.context.exportSettings,{container:angular.element("#export-settings-modal")[0]}),t.context.exportSettingsCopied=!0},t.addNewRpcSetting=function(){C();var e=v.addNewRpcSetting();t.context.rpcSettings.push(e),t.changeRpcTab(t.context.rpcSettings.length-1)},t.updateRpcSetting=function(e,t){C(),"protocol"!==t||e[t]||(e[t]="http"),v.updateRpcSetting(e,t)},t.removeRpcSetting=function(e){var a=e.rpcAlias?e.rpcAlias:e.rpcHost+":"+e.rpcPort;d.confirm("Confirm Remove",'Are you sure you want to remove rpc setting "{rpcName}"?',"warning",(function(){C();var a=t.getCurrentRpcTabIndex(),n=t.context.rpcSettings.indexOf(e);v.removeRpcSetting(e),t.context.rpcSettings.splice(n,1),a>=t.context.rpcSettings.length?t.changeRpcTab(t.context.rpcSettings.length-1):a<=0||a<=n||t.changeRpcTab(a-1)}),!1,{textParams:{rpcName:a}})},t.showExportCommandAPIModal=function(e){t.context.exportCommandApiOptions={type:"setting",data:e}},t.setDefaultRpcSetting=function(e){e.isDefault||(v.setDefaultRpcSetting(e),i.location.reload())},t.resetSettings=function(){d.confirm("Confirm Reset","Are you sure you want to reset all settings?","warning",(function(){v.resetSettings(),i.location.reload()}))},t.clearHistory=function(){d.confirm("Confirm Clear","Are you sure you want to clear all settings history?","warning",(function(){y.clearSettingsHistorys(),i.location.reload()}))},t.resetAria2Settings=function(){d.confirm("Confirm Reset","Reset the current Aria2 settings (Will take effect after Aria2 restarts)?","warning",(function(){const e=v.getRpcOptions(),t=y.getDefaultOptions(Object.keys(e));y.setGlobalOptions(t,(function(){const e=v.getCurrentRpcDisplayName();f.notifyInPage("","settings are reset",{type:"success",contentPrefix:e+" "})})),v.resetRpcOptions()}))},e.loadPromise=o((function(){angular.element('[data-toggle="popover"]').popover()}),100)}])}(),function(){"use strict";angular.module("ariaNg").controller("Aria2SettingsController",["$rootScope","$scope","$location","ariaNgConstants","ariaNgCommonService","aria2SettingService","ariaNgSettingService","ariaNgLocalizationService",function(e,t,a,n,i,s,o,r){var l=a.path().substring(a.path().lastIndexOf("/")+1);t.context={availableOptions:function(e){var t=s.getAvailableGlobalOptionsKeys(e);if(t)return s.getSpecifiedOptions(t);i.showError("Type is illegal!")}(l),globalOptions:[]},t.setGlobalOption=function(e,t,a){return s.setGlobalOption(e,t,(function(n){n.success&&"OK"===n.data?(a.setSuccess(),o.setRpcOption(e,t)):a.setFailed(n.data.message)}),!0)},e.searchContext.enabledInPage=!0,t.filterOption=function(t){if(!(t&&angular.isObject(t)&&angular.isString(t.key)&&angular.isString(t.nameKey)))return!1;if(!e.searchContext||!e.searchContext.text)return!0;let a=!1;const n=e.searchContext.text.toLowerCase();return a|=t.key.toLowerCase().includes(n),a|=r.getLocalizedText(t.nameKey).includes(n),a},e.loadPromise=s.getGlobalOption((function(e){e.success&&(t.context.globalOptions=e.data)}))}])}(),function(){"use strict";angular.module("ariaNg").controller("Aria2StatusController",["$rootScope","$scope","$timeout","ariaNgCommonService","ariaNgSettingService","aria2SettingService",function(e,t,a,n,i,s){t.context={host:i.getCurrentRpcUrl(),serverStatus:null,isSupportReconnect:s.canReconnect()},t.reconnect=function(){!t.context.isSupportReconnect||"Disconnected"!==e.taskContext.rpcStatus&&"Waiting to reconnect"!==e.taskContext.rpcStatus||s.reconnect()},t.saveSession=function(){return s.saveSession((function(e){e.success&&"OK"===e.data&&n.showOperationSucceeded("Session has been saved successfully.")}))},t.shutdown=function(){n.confirm("Confirm Shutdown","Are you sure you want to shutdown aria2?","warning",(function(e){e&&e.success&&"OK"===e.data&&n.showOperationSucceeded("Aria2 has been shutdown successfully.")}),!0,null,null,(function(e){s.shutdown((function(t){e(t)}))}))},e.$watch("taskContext.rpcStatus",(function(e){"Connected"===e?(s.getAria2Status((function(e){e.success&&(t.context.serverStatus=e.data)})),s.getSessionInfo((function(e){e.success&&(t.context.sessionInfo=e.data)}))):(t.context.serverStatus=null,t.context.sessionInfo=null)})),e.loadPromise=a((function(){}),100)}])}(),function(){"use strict";angular.module("ariaNg").controller("RecommendController",["$rootScope","$scope","$location","$sce","aria2eConstants","ariaNgSettingService",function(e,t,a,n,i,s){let o=a.search().path||"",r=a.hash()?"#"+a.hash():"",l=s.getLanguage()||"en";l="zh_Hans"==l?"":"zh_Hant"==l?"/zh-tw":"/en",t.recommendUrl=n.trustAsResourceUrl(i.recommendOrigin+l+o+r);var c=s.getRecCount();e.recTotal>c&&s.setRecCount(e.recTotal),e.hasNewRec=!1}])}(),function(){"use strict";angular.module("ariaNg").directive("ngAutoFocus",["$timeout",function(e){return{restrict:"A",link:function(t,a){e((function(){a[0].focus()}))}}}])}(),function(){"use strict";angular.module("ariaNg").directive("ngPieceBar",["aria2TaskService",function(e){return{restrict:"E",template:'',replace:!0,scope:{bitField:"=",pieceCount:"=",color:"@"},link:function(t,a){var n=function(){var n=a[0],i=e.getCombinedPieces(t.bitField,t.pieceCount),s=n.getContext("2d");s.fillStyle=t.color||"#000",s.clearRect(0,0,n.width,n.height);for(var o=0,r=n.width,l=n.height,c=0;c',replace:!0,scope:{bitField:"=",pieceCount:"="},link:function(t,a){var n=[],i=[],s=function(){i=e.getPieceStatus(t.bitField,t.pieceCount),n.length=0,a.empty();for(var s=Math.max(1,i.length),o=0;o');n.push(r),a.append(r)}};t.$watch("bitField",(function(){!function(){var a=e.getPieceStatus(t.bitField,t.pieceCount);if(i&&a&&i.length===a.length&&a.length===n.length){for(var o=0;o",scope:{options:"=ngData",theme:"=ngTheme"},link:function(a,n,i){angular.extend({},i);var s=n.find("div"),o=n.parent().height(),r=parseInt(i.height)||o||200;s.css("height",r+"px");var l=echarts.init(s[0],t.get(a.theme)),c=function(){l.resize(),a.$apply()};angular.element(e).on("resize",c),a.$watch("options",(function(e){e&&function(e){l.setOption(e)}(e)}),!0),a.$on("$destroy",(function(){l&&!l.isDisposed()&&l.dispose(),angular.element(e).off("resize",c)}))}}}]).directive("ngPopChart",["$window","chartTheme",function(e,t){return{restrict:"A",scope:{options:"=ngData",theme:"=ngTheme"},link:function(e,a,n){var i={ngPopoverClass:"",ngContainer:"body",ngTrigger:"click",ngPlacement:"top"};angular.extend(i,n);var s=null,o='
';a.popover({container:i.ngContainer,content:'
'+o+"
",html:!0,placement:i.ngPlacement,template:'',trigger:i.ngTrigger}).on("shown.bs.popover",(function(){var a=angular.element(".chart-pop"),i=a.parent().height();a.empty();var o=parseInt(n.height)||i||200;a.css("height",o+"px"),s=echarts.init(a[0],t.get(e.theme))})).on("hide.bs.popover",(function(){s&&!s.isDisposed()&&s.dispose()})).on("hidden.bs.popover",(function(){angular.element(".chart-pop").empty().append(o)}));e.$watch("options",(function(e){e&&function(e){s&&!s.isDisposed()&&s.setOption(e)}(e)}),!0)}}}]).factory("chartTheme",["chartDefaultTheme","chartDarkTheme",function(e,t){var a={defaultTheme:e,darkTheme:t};return{get:function(e){return"default"!==e&&a[e+"Theme"]?angular.extend({},a.defaultTheme,a[e+"Theme"]):a.defaultTheme}}}]).factory("chartDefaultTheme",(function(){return{color:["#74a329","#3a89e9"],legend:{top:"bottom"},toolbox:{show:!1},tooltip:{show:!0,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:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"#f3f3f3"}}},valueAxis:{axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"#f3f3f3"}},splitArea:{show:!1}},line:{itemStyle:{normal:{lineStyle:{width:2,type:"solid"}}},smooth:!0,symbolSize:6},textStyle:{fontFamily:"Hiragino Sans GB, Microsoft YaHei, STHeiti, Helvetica Neue, Helvetica, Arial, sans-serif"},animationDuration:500}})).factory("chartDarkTheme",(function(){return{tooltip:{show:!0,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:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"#333"}}},valueAxis:{axisLine:{show:!1},axisTick:{show:!1},axisLabel:{show:!0,textStyle:{color:"#eee"}},splitLine:{lineStyle:{color:"#333"}},splitArea:{show:!1}}}}))}(),function(){"use strict";angular.module("ariaNg").directive("ngDragenter",(function(){return{restrict:"A",link:function(e,t,a){t.on("dragenter",(function(n){e.$eval(a.ngDragenter,{$event:n,element:t})}))}}})),angular.module("ariaNg").directive("ngDragover",(function(){return{restrict:"A",link:function(e,t,a){t.on("dragover",(function(n){e.$eval(a.ngDragover,{$event:n,element:t})}))}}})),angular.module("ariaNg").directive("ngDragleave",(function(){return{restrict:"A",link:function(e,t,a){t.on("dragleave",(function(n){e.$eval(a.ngDragleave,{$event:n,element:t})}))}}})),angular.module("ariaNg").directive("ngDrop",(function(){return{restrict:"A",link:function(e,t,a){t.on("drop",(function(n){e.$eval(a.ngDrop,{$event:n,element:t})}))}}}))}(),function(){"use strict";angular.module("ariaNg").directive("ngExportCommandApiDialog",["clipboard","ariaNgCommonService",function(e,t){return{restrict:"E",templateUrl:"views/export-command-api-dialog.html",replace:!0,scope:{options:"="},link:function(a,n,i){a.context={trueFalseOptions:[{name:"Enabled",value:!0},{name:"Disabled",value:!1}],baseUrl:t.getFullPageUrl(),commandAPIUrl:null,pauseOnAdded:!0,isCopied:!1};var s=function(){var e=a.context.baseUrl;return e.indexOf("#")>=0&&(e=e.substring(0,e.indexOf("#"))),e},o=function(e){var n=s()+"#!/new/task?url="+t.base64UrlEncode(e.urls[0]);if(a.context.pauseOnAdded&&(n+="&pause=true"),e.options)for(var i in e.options)e.options.hasOwnProperty(i)&&(n+="&"+i+"="+e.options[i]);return n};a.generateCommandAPIUrl=function(){var e,n;a.options&&("new-task"===a.options.type?a.context.commandAPIUrl=function(e){for(var t="",a=0;a0&&(t+="\n"),t+=o(e[a]);return t}(a.options.data):"setting"===a.options.type&&(a.context.commandAPIUrl=(e=a.options.data,n=s()+"#!/settings/rpc/set?protocol="+e.protocol+"&host="+e.rpcHost+"&port="+e.rpcPort+"&interface="+e.rpcInterface,e.secret&&(n+="&secret="+t.base64UrlEncode(e.secret)),n)),a.context.isCopied=!1)},a.copyCommandAPI=function(){e.copyText(a.context.commandAPIUrl,{container:angular.element(n)[0]}),a.context.isCopied=!0},angular.element(n).on("hidden.bs.modal",(function(){a.$apply((function(){a.options=null,a.context.commandAPIUrl=null,a.context.isCopied=!1}))})),a.$watch("options",(function(e){e&&(a.generateCommandAPIUrl(),a.context.isCopied=!1,angular.element(n).modal("show"))}),!0)}}}])}(),function(){"use strict";angular.module("ariaNg").directive("ngIndeterminate",(function(){return{restrict:"A",scope:{indeterminate:"=ngIndeterminate"},link:function(e,t){e.$watch("indeterminate",(function(){t[0].indeterminate="true"===e.indeterminate||!0===e.indeterminate}))}}}))}(),angular.module("inputDropdown",[]).directive("inputDropdown",[function(){return{restrict:"E",require:"?ngModel",scope:{defaultDropdownItems:"=",selectedItem:"=",allowCustomInput:"=",inputRequired:"=",disabled:"=",inputName:"@",inputClassName:"@",inputPlaceholder:"@",onlyShowNonEmptyDropdown:"@",filterListMethod:"&",valueChangedMethod:"&",itemSelectedMethod:"&",removeItemMethod:"&"},template:'
  • {{item.readableName}}{{item}}
',controller:["$scope",function(e){this.getSelectedItem=function(){return e.selectedItem},this.isRequired=function(){return e.inputRequired},this.customInputAllowed=function(){return e.allowCustomInput},this.getInput=function(){return e.inputValue}}],link:function(e,t,a,n){var i=!1,s=t.find("input").isolateScope();e.activeItemIndex=0,e.inputValue="",e.dropdownVisible=!1,e.dropdownItems=e.defaultDropdownItems||[],n&&e.$watch((function(){return n.$viewValue}),(function(t){e.inputValue=t})),e.$watch("dropdownItems",(function(t,a){angular.equals(t,a)||(e.allowCustomInput?e.setInputActive():e.setActive(0))})),e.$watch("selectedItem",(function(t,a){s.updateInputValidity(),angular.equals(t,a)||t&&(e.inputValue="string"==typeof t?t:t.readableName)})),e.setInputActive=function(){e.setActive(-1)},e.setActive=function(t){e.activeItemIndex=t},e.inputChange=function(){if(e.selectedItem=null,o(),u(e.inputValue,"input"),e.inputValue){if(e.allowCustomInput&&s.updateInputValidity(),e.filterListMethod){var t=e.filterListMethod({userInput:e.inputValue});t&&t.then((function(t){e.dropdownItems=t}))}}else e.dropdownItems=e.defaultDropdownItems||[]},e.inputFocus=function(){e.allowCustomInput?e.setInputActive():e.setActive(0),o()},e.inputBlur=function(e){i?i=!1:r()},e.dropdownPressed=function(){i=!0},e.selectItem=function(t){e.selectedItem=t,r(),u(t,"select"),e.itemSelectedMethod&&e.itemSelectedMethod({item:t})},e.removeItem=function(t,a){if(e.removeItemMethod&&e.dropdownItems.length>0){let n=e.dropdownItems.indexOf(a);e.dropdownItems.splice(n,1),e.removeItemMethod({$event:t,item:a})}};var o=function(){(!e.onlyShowNonEmptyDropdown||e.dropdownItems&&e.dropdownItems.length)&&(e.dropdownVisible=!0)},r=function(){e.dropdownVisible=!1},l=function(){var t=e.activeItemIndex-1;t>=0?e.setActive(t):e.allowCustomInput&&e.setInputActive()},c=function(){var t=e.activeItemIndex+1;t=0&&e.activeItemIndex0&&-1!==e.activeItemIndex&&(t.preventDefault(),e.$apply(d));break;case 9:e.dropdownVisible&&e.dropdownItems&&e.dropdownItems.length>0&&-1!==e.activeItemIndex&&e.$apply(d)}}))}}}]),angular.module("inputDropdown").directive("inputDropdownValidator",(function(){return{require:["^inputDropdown","ngModel"],restrict:"A",scope:{},link:function(e,t,a,n){var i=n[0],s=n[1];e.updateInputValidity=function(){var e=i.getSelectedItem(),t=!1;i.isRequired()?(i.customInputAllowed()&&i.getInput()||e)&&(t=!0):t=!0,s.$setValidity("itemSelectedValid",t)}}}})),function(){"use strict";angular.module("ariaNg").directive("ngPlaceholder",(function(){return{restrict:"A",scope:{placeholder:"=ngPlaceholder"},link:function(e,t){e.$watch("placeholder",(function(){t[0].placeholder=e.placeholder}))}}}))}(),function(){"use strict";angular.module("ariaNg").directive("ngSetting",["$timeout","$q","ariaNgConstants","ariaNgLocalizationService","ariaNgKeyboardService","aria2SettingService",function(e,t,a,n,i,s){return{restrict:"E",templateUrl:"views/setting.html",require:"?ngModel",replace:!0,scope:{option:"=",ngModel:"=",enhanced:"<",defaultValue:"=?",fixedValue:"=?",onChangeValue:"&"},link:function(o,r,l,c){var d=null,u={showPlaceholderCount:!1,deleteKeyAlwaysChangeValue:!1,lazySaveTimeout:o.option.lazySaveTimeout||a.lazySaveTimeout,errorTooltipPlacement:"top",errorTooltipDelay:a.errorTooltipDelay};angular.extend(u,l);var p,f=function(){o.option&&o.option.showHistory&&(o.history=s.getSettingHistory(o.option.key))},g=function(){angular.element(r).tooltip("dispose")},m=function(t,a,i){t&&e((function(){var e=o.optionStatus.getValue();"failed"!==e&&"error"!==e||angular.element(r).tooltip({animation:!1,title:n.getLocalizedText(t,i),trigger:"focus",placement:u.errorTooltipPlacement,container:r,template:''}).tooltip("show")}),u.errorTooltipDelay)},h=function(e,t,a){if(!e||!t||!angular.isString(e))return 0;var n=e.split(t),i=n.length;if(a)for(var s=0;so.option.max)return void o.optionStatus.setError("Input number is above max value!",{value:o.option.max})}if(""===t||!angular.isDefined(o.option.pattern)||new RegExp(o.option.pattern).test(t)){var i={key:o.option.key,value:t,optionStatus:o.optionStatus},s=function(){o.optionStatus.setSaving(),o.onChangeValue(i)};o.onChangeValue&&(a?(o.optionStatus.setPending(),d=e((function(){s()}),u.lazySaveTimeout)):s())}else o.optionStatus.setError("Input value is invalid!")}else o.optionStatus.setError("Input number is invalid!");else o.optionStatus.setError("Input number is invalid!")},o.inputKeyUp=function(e,t){if((!0===u.deleteKeyAlwaysChangeValue||"true"===u.deleteKeyAlwaysChangeValue)&&(i.isBackspacePressed(e)||i.isDeletePressed(e))){if(o.optionValue&&""!==o.optionValue)return;o.changeValue("",t)}},o.filterHistory=function(e){var a=[];if(o.history&&e)for(var n=0;n0;i.$setValidity("invalidUrls",s)}}))}}}])}(),function(){"use strict";angular.module("ariaNg").directive("ngBlobDownload",["ariaNgFileService",function(e){return{restrict:"A",scope:{ngBlobDownload:"=ngBlobDownload",ngFileName:"@",ngContentType:"@"},link:function(t,a){t.$watch("ngBlobDownload",(function(n){n&&e.saveFileContent(n,a,{fileName:t.ngFileName,contentType:t.ngContentType})}))}}}])}(),function(){"use strict";angular.module("ariaNg").filter("dateDuration",["moment",function(e){return function(t,a,n){var i=e.duration(t,a);return e.utc(i.asMilliseconds()).format(n)}}])}(),function(){"use strict";angular.module("ariaNg").filter("fileOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a)||!n)return a;var i=t.parseOrderType(n);return null===i?a:"index"===i.type?e("orderBy")(a,["index"],i.reverse):"name"===i.type?e("orderBy")(a,["fileName"],i.reverse):"size"===i.type?e("orderBy")(a,["length"],i.reverse):"percent"===i.type?e("orderBy")(a,["completePercent"],i.reverse):"selected"===i.type?e("orderBy")(a,["selected"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("logOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a)||!n)return a;var i=t.parseOrderType(n);return null===i?a:"time"===i.type?e("orderBy")(a,["time"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("longDate",["ariaNgCommonService","ariaNgLocalizationService",function(e,t){return function(a){var n=t.getLongDateFormat();return e.formatDateTime(a,n)}}])}(),function(){"use strict";angular.module("ariaNg").filter("peerOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a))return a;var i=t.parseOrderType(n);return null===i?a:"address"===i.type?e("orderBy")(a,["ip","port"],i.reverse):"client"===i.type?e("orderBy")(a,["client.name","client.version"],i.reverse):"percent"===i.type?e("orderBy")(a,["completePercent"],i.reverse):"dspeed"===i.type?e("orderBy")(a,["downloadSpeed"],i.reverse):"uspeed"===i.type?e("orderBy")(a,["uploadSpeed"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("percent",["$filter",function(e){return function(t,a){var n=Math.pow(10,a),i=parseInt(t*n)/n;return e("number")(i,a)}}])}(),function(){"use strict";angular.module("ariaNg").filter("reverse",(function(){return function(e){return e?e.slice().reverse():e}}))}(),function(){"use strict";angular.module("ariaNg").filter("taskOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a))return a;var i=t.parseOrderType(n);return null===i?a:"name"===i.type?e("orderBy")(a,["taskName"],i.reverse):"size"===i.type?e("orderBy")(a,["totalLength"],i.reverse):"percent"===i.type?e("orderBy")(a,["completePercent"],i.reverse):"remain"===i.type?e("orderBy")(a,["idle","remainTime","remainLength"],i.reverse):"dspeed"===i.type?e("orderBy")(a,["downloadSpeed"],i.reverse):"uspeed"===i.type?e("orderBy")(a,["uploadSpeed"],i.reverse):"default"===i.type?e("orderBy")(a,["groupIndex"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("taskStatus",(function(){return function(e,t){return e?"active"===e.status?e.verifyIntegrityPending?"Pending Verification":e.verifiedLength?e.verifiedPercent?"format.task.verifying-percent":"Verifying":!0===e.seeder||"true"===e.seeder?"Seeding":"Downloading":t||"waiting"!==e.status?t||"paused"!==e.status?t||"complete"!==e.status?t||"error"!==e.status?t||"removed"!==e.status?"":"Removed":e.errorCode?"format.task.error-occurred":"Error Occurred":"Completed":"Paused":"Waiting":""}}))}(),function(){"use strict";angular.module("ariaNg").filter("groupTask",(function(){return function(e){if(!angular.isArray(e))return e;let t=-1;for(const a in e){switch(e[a].status){case"active":t=1;break;case"waiting":t=2;break;case"paused":t=3;break;case"error":t=4;break;case"complete":t=5;break;case"removed":t=6;break;default:t=10}e[a].groupIndex=t}return e}}))}(),function(){"use strict";angular.module("ariaNg").filter("timeDisplayName",["ariaNgCommonService","ariaNgLocalizationService",function(e,t){return function(a,n){if(!a)return t.getLocalizedText(n);var i=e.getTimeOption(a);return t.getLocalizedText(i.name,{value:i.value})}}])}(),function(){"use strict";angular.module("ariaNg").filter("readableVolume",["$filter",function(e){var t=["B","KB","MB","GB"];return function(a,n){var i=t[0],s=2,o=!1;angular.isNumber(n)?s=n:"auto"===n&&(o=!0),a||(a=0),angular.isNumber(a)||(a=parseInt(a));for(var r=1;r=1024;r++)a/=1024,i=t[r];return o&&(s=function(e){return e<1?2:e<10?1:0}(a)),(a=e("number")(a,s))+" "+i}}])}(),function(){"use strict";angular.module("ariaNg").factory("SweetAlert",(function(){return{swal:function(e,t){Swal.fire(e).then((e=>t(e)))},close:function(){Swal.close()}}}))}(),function(){"use strict";angular.module("ariaNg").provider("ariaNgAssetsCacheService",[function(){var e={},t="languages.";this.getLanguageAsset=function(a){return function(t){for(var a=t.split("."),n=e,i=0;i0&&"\\"!==e.charAt(t-1)&&"="===e.charAt(t))return{key:e.substring(0,t).replace("\\=","="),value:e.substring(t+1,e.length).replace("\\=","=")};return{value:e}},c=function(e,t){var a=e;if(!t)return a;if("["===t[0]&&"]"===t[t.length-1]&&(t=t.substring(1,t.length-1)),"global"===t)return a;for(var n=t.split("."),i=0;ie.toString(16).padStart(2,"0"))).join(""),length:s-t+o}}};return{getFullPageUrl:function(){return e.location.protocol+"//"+e.location.host+e.location.pathname+(e.location.search?e.location.search:"")},base64Encode:function(e){return n.encode(e)},base64Decode:function(e){return n.decode(e)},base64UrlEncode:function(e){return n.urlencode(e)},base64UrlDecode:function(e){return n.urldecode(e)},generateUniqueId:function(){var e=o.appPrefix+"_"+Math.round((new Date).getTime()/1e3)+"_"+Math.random();return this.base64Encode(e)},showDialog:function(e,t,n,i,o){o||(o={}),e&&(e=r.getLocalizedText(e)),t&&(t=r.getLocalizedText(t,o.textParams)),o.confirmButtonText=r.getLocalizedText("OK"),function(e,t,n,i,o){a((function(){s.swal({title:e,text:t,icon:n,reverseButtons:!0,inputAutoFocus:!1,confirmButtonText:o&&o.confirmButtonText||null},(function(){i&&i()}))}),100)}(e,t,n,i,o)},showInfo:function(e,t,a,n){this.showDialog(e,t,"info",a,n)},showError:function(e,t,a){this.showDialog("Error",e,"error",t,a)},showOperationSucceeded:function(e,t){this.showDialog("Operation Succeeded",e,"success",t)},confirm:function(e,t,a,n,i,o,l,c){o||(o={}),e&&(e=r.getLocalizedText(e)),t&&(t=r.getLocalizedText(t,o.textParams)),o.inputPlaceholder&&(o.inputPlaceholder=r.getLocalizedText(o.inputPlaceholder)),o.confirmButtonText=r.getLocalizedText("OK"),o.cancelButtonText=r.getLocalizedText("Cancel"),function(e,t,a,n,i,o,r,l){var c={title:e,text:t,icon:a,showCancelButton:!0,reverseButtons:!0,showLoaderOnConfirm:!!i,preConfirm:l?function(){return new Promise(l)}:null,inputAutoFocus:!1,input:o&&o.input||null,inputValue:o&&o.inputValue||null,inputPlaceholder:o&&o.inputPlaceholder||null,confirmButtonText:o&&o.confirmButtonText||null,cancelButtonText:o&&o.cancelButtonText||null};"warning"===a&&(c.confirmButtonColor="#F39C12"),s.swal(c,(function(e){e.isConfirmed?n&&n(e.value):r&&r(e.value)}))}(e,t,a,n,i,o,l,c)},closeAllDialogs:function(){s.close()},getFileExtension:function(e){return!e||e.lastIndexOf(".")<0?e:e.substring(e.lastIndexOf("."))},getFileExtensionFromUrl:function(e){let t=".";try{let a=new URL(e).pathname.split("/").pop();t+=a.includes(".")?a.split(".").pop():""}catch(e){t="."}return t},parseUrlsFromOriginInput:function(e,t){if(!e)return[];for(var a=e.split("\n"),n=[],i=0;i2?a.slice(-t-1,-1).join("/")+"/":""},parseTorrentInfo:function(e){return c(new Uint8Array(e))},base64ToArrayBuffer:function(e){return function(e){if(!angular.isString(e))return null;const t=e.split(",")[1]||e,a=atob(t),n=a.length,i=new ArrayBuffer(n),s=new Uint8Array(i);for(let e=0;e10&&e.splice(0,e.length-10),i.set(a.browserNotificationHistoryStorageKey,e)}},p=function(t,s){e.Notification&&c(d())&&(function(){if(!r.getBrowserNotificationFrequency()||"unlimited"===r.getBrowserNotificationFrequency())return!1;var e=i.get(a.browserNotificationHistoryStorageKey)||[];if(!angular.isArray(e))return!1;if(e.length<1)return!1;var t=null,s=!1;if("high"===r.getBrowserNotificationFrequency()){if(e.length<10)return!1;t=e[e.length-10].time,s=n.isUnixTimeAfter(t,"-1","minute")}else"middle"===r.getBrowserNotificationFrequency()?(t=e[e.length-1].time,s=n.isUnixTimeAfter(t,"-1","minute")):"low"===r.getBrowserNotificationFrequency()&&(t=e[e.length-1].time,s=n.isUnixTimeAfter(t,"-5","minute"));return s&&o.debug("[ariaNgNotificationService.isReachBrowserNotificationFrequencyLimit] reach frequency limit"+(t?", the oldest time is "+t:"")),s}()||(chrome?.runtime?.id?(s={type:"basic",iconUrl:"tileicon.png",title:t,silent:s.silent??!1,message:s.body},u(),chrome.notifications.create(s)):(s=angular.extend({icon:"tileicon.png"},s),u(),new e.Notification(t,s))))};return{isSupportBrowserNotification:function(){return l},hasBrowserPermission:function(){return!!l&&c(d())},requestBrowserPermission:function(t){l&&function(t){e.Notification&&e.Notification.requestPermission((function(e){t&&t({granted:c(e),permission:e})}))}((function(e){e.granted||r.setBrowserNotification(!1),t&&t(e)}))},notifyViaBrowser:function(e,t,a){return a||(a={}),e&&(e=s.getLocalizedText(e,a.titleParams)),t&&(t=s.getLocalizedText(t,a.contentParams)),function(e,t,a){a||(a={}),a.body=t,r.getBrowserNotificationSound()||(a.silent=!0),l&&r.getBrowserNotification()&&p(e,a)}(e,t,a)},notifyTaskComplete:function(e){this.notifyViaBrowser("Download Completed",e&&e.taskName?e.taskName:"")},notifyBtTaskComplete:function(e){this.notifyViaBrowser("BT Download Completed",e&&e.taskName?e.taskName:"")},notifyTaskError:function(e){this.notifyViaBrowser("Download Error",e&&e.taskName?e.taskName:"")},notifyInPage:function(e,a,n){return n||(n={}),e&&(e=s.getLocalizedText(e,n.titleParams)),a&&(a=s.getLocalizedText(a,n.contentParams),n.contentPrefix&&(a=n.contentPrefix+a)),function(e,a,n){return n||(n={}),a?(n.title=e,n.message=a):n.message=e,n.type&&t[n.type]||(n.type="primary"),n.positionY||(n.positionY="top"),t[n.type](n)}(e,a,n)},clearNotificationInPage:function(){t.clearAll()}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgLocalizationService",["$translate","amMoment",function(e,t){return{applyLanguage:function(a){return e.use(a),t.changeLocale(a),!0},getLocalizedText:function(t,a){return e.instant(t,a)},getLongDateFormat:function(){return this.getLocalizedText("format.longdate")}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgLogService",["$log","ariaNgConstants",function(e,t){var a={DEBUG:1,INFO:2,WARN:3,ERROR:4},n=0,i=!1,s=[],o=function(e,a,o){i&&(s.length>=t.cachedDebugLogsLimit&&s.shift(),s.push(function(e,t,a){return{id:++n,time:new Date,level:t,content:e,attachment:a}}(e,a,o)))};return{setEnableDebugLog:function(e){i=e},compareLogLevel:function(e,t){var n=a[e],i=a[t];return n||(n=0),i||(i=0),n>i?1:n=0&&n.push(a[i]);return n}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgFileService",["$window",function(e){var t=!!e.FileReader,a=!!e.Blob;return{isSupportFileReader:function(){return t},isSupportBlob:function(){return a},openFileContent:function(e,a,n,i){t?(e=angular.extend({scope:null,fileFilter:null,fileType:"binary",successCallback:a,errorCallback:n},e),i&&i.change||(i=angular.element('')),i.data("options",e),e.fileFilter&&i.attr("accept",e.fileFilter),i.val(""),"true"!==i.attr("data-ariang-file-initialized")&&i.change((function(){if(this.files&&!(this.files.length<1)){var e=i.data("options"),t=function(e){var t=[];if(!e||e.length<1)return t.push(/.+$/),t;for(var a=e.split(","),n=0;n')),t.attr("href",s),n.fileName&&t.attr("download",n.fileName),n.autoTrigger&&t.trigger("click"),n.autoRevoke&&URL.revokeObjectURL(s)}}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgSettingService",["$window","$location","$filter","ariaNgConstants","ariaNgDefaultOptions","ariaNgLanguages","ariaNgCommonService","ariaNgLogService","ariaNgStorageService",function(e,t,a,n,i,s,o,r,l){var c={localStorage:l.isLocalStorageSupported(),cookies:l.isCookiesSupported()},d=c.localStorage||c.cookies,u=!!e.matchMedia&&e.matchMedia("(prefers-color-scheme: dark)")&&"not all"!==e.matchMedia("(prefers-color-scheme: dark)").media&&angular.isFunction(e.matchMedia("(prefers-color-scheme: dark)").addEventListener),p=[],f=!1,g={debugMode:!1},m=function(e){for(var t in s)if(s.hasOwnProperty(t)){if(t.toLowerCase()===e.toLowerCase())return t;var a=s[t].aliases;if(angular.isArray(a)&&!(a.length<1))for(var n=0;n1){var a,n=t.split("-");if(t=n[0]+"-"+n[1],!s[t])(a=m(t))&&(t=a)}return s[t]?(r.info('[ariaNgSettingService] use browser language "'+t+'" as current language'),t):(r.info('[ariaNgSettingService] browser language "'+t+'" not support, use default language'),i.language)},v=function(e){return l.set(n.optionStorageKey,e)},b=function(){var e,t=l.get(n.optionStorageKey);if(t&&!s[t.language]&&(t.language=(e=t.language,m(e)||h())),!t){if((t=angular.extend({},i)).language=h(),t.rpcHost||w(t),angular.isArray(t.extendRpcServers))for(var a=0;a"+n.getLocalizedText("No Data")+"";var i=a.getLongTimeFromUnixTime(t[0].name),s=e("readableVolume")(t[0].value)+"/s";return'
'+i+'
'+(e("readableVolume")(t[1].value)+"/s")+'
'+s+"
"}},xAxis:{data:[],type:"category",boundaryGap:!1,axisLabel:{show:!1}},yAxis:{type:"value",axisLabel:{formatter:function(t){return e("readableVolume")(t,"auto")}}},series:[{type:"line",areaStyle:{normal:{opacity:.1}},smooth:!0,symbolSize:6,showAllSymbol:!1,data:[]},{type:"line",areaStyle:{normal:{opacity:.1}},smooth:!0,symbolSize:6,showAllSymbol:!1,data:[]}]},o=i.xAxis.data,l=i.series[0].data,c=i.series[1].data,d=0;d=r(e)&&(n.shift(),i.shift(),o.shift()),n.push(t.time),i.push(t.uploadSpeed),o.push(t.downloadSpeed)}(e,t)},getStatsData:function(e){return c(e)||l(e),function(e){return s[e]}(e)},getEmptyStatsData:function(e){return c(e)&&function(e){delete s[e]}(e),this.getStatsData(e)},recordGlobalStat:function(e){this.recordStat(o,e),i=e},getGlobalStatsData:function(){return this.getStatsData(o)},getCurrentGlobalStat:function(){return i}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgTitleService",["$filter","ariaNgConstants","ariaNgLocalizationService","ariaNgSettingService",function(e,t,a,n){var i=function(e){if(!e)return{};for(var t=e.substring(2,e.length-1).split(":"),a={oldValue:e},n=1;n0)for(var r=0;r0&&(n+="&"),(angular.isObject(s)||angular.isArray(s))&&(s=angular.toJson(s),s=a.base64Encode(s),s=encodeURIComponent(s)),n+=i+"="+s)}return n.length<1?e:(n=e.indexOf("?")<0?"?"+n:"&"+n,e+n)}(l.url,n.requestBody)),r)for(var c=r.split("\n"),d=0;d0?e.params[0]:null)}}(t))}else e.request&&function(e){var t=angular.fromJson(e);if(t){var a=t.id;if(a){var n=c[a];if(n){var i=n.context;n.deferred.reject({success:!1,context:i}),i.errorCallback&&(s.debug("[aria2WebSocketRpcService.processRequestFailed] "+(i&&i.requestBody&&i.requestBody.method?i.requestBody.method+" ":"")+"request failed"),i.errorCallback(i.id,{message:"Cannot connect to aria2!"})),delete c[a]}}}}(e.request)})),r.onOpen((function(t){s.debug("[aria2WebSocketRpcService.onOpen] websocket is opened",t),e&&e.connectionSuccessCallback&&e.connectionSuccessCallback({rpcUrl:o})})),r.onClose((function(t){for(var a in s.warn("[aria2WebSocketRpcService.onClose] websocket is closed",t),c)if(c.hasOwnProperty(a)){var n=c[a];n?(n.deferred.reject({success:!1,context:n.context}),s.debug("[aria2WebSocketRpcService.socketClient.onClose] reject old request",n.context),n.context.errorCallback(n.context.id,{message:"Cannot connect to aria2!"}),delete c[a]):delete c[a]}var r=i.getWebSocketReconnectInterval()>0;r&&f(e),r&&e&&e.connectionWaitingToReconnectCallback?e.connectionWaitingToReconnectCallback({rpcUrl:o}):e&&e.connectionFailedCallback&&e.connectionFailedCallback({rpcUrl:o})}))}catch(e){return{success:!1,error:"Cannot initialize WebSocket!",exception:e}}return{success:!0,instance:r}},p=function(e){e&&r&&(e.connectionReconnectingCallback&&e.connectionReconnectingCallback({rpcUrl:o}),r.reconnect())},f=function(e){l?s.warn("[aria2WebSocketRpcService.planToReconnect] another reconnection is pending"):(l=a((function(){return null==r?(s.warn("[aria2WebSocketRpcService.planToReconnect] websocket is null"),void(l=null)):0===r.readyState||1===r.readyState?(s.warn("[aria2WebSocketRpcService.planToReconnect] websocket current state is already "+r.readyState),void(l=null)):(p(e),void(l=null))}),i.getWebSocketReconnectInterval()),s.debug("[aria2WebSocketRpcService.planToReconnect] next reconnection is pending in "+i.getWebSocketReconnectInterval()+"ms"))};return{request:function(t){if(t){var a=u({connectionSuccessCallback:t.connectionSuccessCallback,connectionFailedCallback:t.connectionFailedCallback,connectionReconnectingCallback:t.connectionReconnectingCallback,connectionWaitingToReconnectCallback:t.connectionWaitingToReconnectCallback}),n=t.uniqueId,i=angular.toJson(t.requestBody);s.debug("[aria2WebSocketRpcService.request] "+(t&&t.requestBody&&t.requestBody.method?t.requestBody.method+" ":"")+"request start",t);var o=e.defer();return a.instance?(c[n]={context:t,deferred:o},a.instance.send(i)):(o.reject({success:!1,context:t}),s.debug("[aria2WebSocketRpcService.request] client error",a),t.errorCallback(t.id,{message:a.error})),o.promise}},reconnect:function(e){p(e)},on:function(e,t){var a=d[e];angular.isArray(a)||(a=d[e]=[]),a.push(t)}}}])}(),function(){"use strict";angular.module("ariaNg").factory("aria2RpcService",["$location","$q","aria2RpcConstants","aria2RpcErrors","aria2AllOptions","ariaNgCommonService","ariaNgLogService","ariaNgSettingService","ariaNgNotificationService","aria2HttpRpcService","aria2WebSocketRpcService",function(e,t,a,n,i,s,o,r,l,c,d){var u=r.isCurrentRpcUseWebSocket()?d:c,p=!1,f=r.getCurrentRpcSecret(),g=[],m=[],h=[],v=[],b=[],k=[],y=[],w=[],S=[],x=[],T=[],C=[],P=[],D=function(e){return 0===e.indexOf(a.rpcSystemServiceName+".")},R=function(e){return a.rpcServiceName+"."+e},A=function(e,t){if(t)return e;var n=s.generateUniqueId(),i={uniqueId:n,requestBody:{jsonrpc:a.rpcServiceVersion,method:e.methodName,id:n,params:e.params},connectionSuccessCallback:e.connectionSuccessCallback,connectionFailedCallback:e.connectionFailedCallback,connectionReconnectingCallback:e.connectionReconnectingCallback,connectionWaitingToReconnectCallback:e.connectionWaitingToReconnectCallback,successCallback:e.successCallback,errorCallback:e.errorCallback};return u.request(i)},I=function(e,t){var a=function(e){return R(e)}(e);u.on(a,(function(e){if(angular.isArray(t)&&!(t.length<1))for(var a=0;a1){var l=arguments[1];o.successCallback=function(e,t){if(l.callback&&l.callback({id:e,success:!0,data:t,context:l}),O(m),!p){p=!0;var a={rpcName:r.getCurrentRpcDisplayName()};O(g,a)}},o.errorCallback=function(t,a){var i=!1,s=e.path();l.silent||s!==n||(i=L(a)),l.callback&&l.callback({id:t,success:!1,data:a,errorProcessed:i,context:l}),O(h)}}if(arguments.length>2)for(var c=2;c0&&(o.params=s),o},U=function(e,t){var a=angular.copy(e);for(var n in a)a.hasOwnProperty(n)&&M(a,n)&&(a[n]=q(a[n],i[n]));return t&&t.pauseOnAdded&&(a.pause="true"),a},M=function(e,t){return!(!e[t]||!angular.isString(e[t]))&&!(!i[t]||"array"!==i[t].submitFormat)},q=function(e,t){for(var a=e.split(t.separator),n=[],i=0;i0&&(t=e.uris[0].uri,a=!0);var n=t.lastIndexOf("/");if(n<0&&(n=t.lastIndexOf("\\")),n<=0||n===t.length)return t;var i=t.substring(n+1),s=i.indexOf("?"),o=i;if(s>0&&(o=i.substring(0,s)),a)try{o=decodeURI(o)}catch(e){r.warn("[aria2TaskService.getFileName] failed to url decode file name, original file name: "+o,e)}return o},d=function(e,t){var n=e.dir,i=t.path;n&&(n=n.replace(/\\/g,a.defaultPathSeparator)),i&&(i=i.replace(/\\/g,a.defaultPathSeparator));var s=function(){i.length>1&&i.charAt(0)===a.defaultPathSeparator&&(i=i.substr(1))};if(n&&0===i.indexOf(n)&&(i=i.substr(n.length)),s(),e.bittorrent&&"multi"===e.bittorrent.mode&&e.bittorrent.info&&e.bittorrent.info.name){var o=e.bittorrent.info.name;0===i.indexOf(o)&&(i=i.substr(o.length))}return s(),t.fileName&&i.lastIndexOf(t.fileName)+t.fileName.length===i.length&&(i=i.substr(0,i.length-t.fileName.length)),i.length>1&&i.charAt(i.length-1)===a.defaultPathSeparator&&(i=i.substr(0,i.length-1)),i},u=function(e,t,n){var i=n[e];if(i)return i;var s=null,o=e;if(e.length){var r="",l=e.lastIndexOf(a.defaultPathSeparator);l>0&&(r=e.substring(0,l),o=e.substring(l+1)),s=u(r,t,n)}return i={isDir:!0,nodePath:e,nodeName:o,relativePath:s&&s.nodePath||"",level:s&&s.level+1||0,length:0,selected:!0,partialSelected:!1,files:[],subDirs:[]},t.push(i),n[e]=i,s&&s.subDirs.push(i),i},p=function(e,t,a){if(e&&t&&a){var n=e.relativePath||"",i=u(n,t,a);return i.files.push(e),i}},f=function(e,t,a){if(e){var n=0,i=0,s=0;if(e.subDirs&&e.subDirs.length)for(var o=0;o0&&i===e.subDirs.length+e.files.length,e.partialSelected=i>0&&i0}},g=function(e,t){for(var a=[],n=0;n=t)return a}return a},m=function(e,t){if(!e)return r.warn("[aria2TaskService.processDownloadTask] task is null"),e;t=t&&e.bittorrent&&"multi"===e.bittorrent.mode;var a,i,l=g(e.bitfield,e.numPieces);if(e.totalLength=parseInt(e.totalLength),e.completedLength=parseInt(e.completedLength),e.completePercent=e.totalLength>0?e.completedLength/e.totalLength*100:0,e.remainLength=e.totalLength-e.completedLength,e.remainPercent=100-e.completePercent,e.uploadLength=e.uploadLength?parseInt(e.uploadLength):0,e.shareRatio=e.completedLength>0?e.uploadLength/e.completedLength:0,e.uploadSpeed=parseInt(e.uploadSpeed),e.downloadSpeed=parseInt(e.downloadSpeed),e.numPieces=parseInt(e.numPieces),e.completedPieces=s.countArray(l,!0),e.pieceLength=parseInt(e.pieceLength),e.idle=0===e.downloadSpeed,e.remainTime=(a=e.remainLength,0===(i=e.downloadSpeed)?0:a/i),e.seeder=!0===e.seeder||"true"===e.seeder,e.verifiedLength&&e.files){let t=0;e.files.forEach((e=>{t+=e.length})),e.verifiedPercent=t>0?parseInt(e.verifiedLength/t*100):void 0}else e.verifiedPercent=void 0;e.dir=s.formatFilePath(e.dir);var u=function(e){var t="",a=!0;return e.bittorrent&&e.bittorrent.info&&(t=e.bittorrent.info.name),e.bittorrent&&e.files.length>0&&e.files[0].path.includes("[METADATA]")&&(e.files[0].path=e.dir+e.files[0].path.replace("[METADATA]","")+".torrent"),!t&&e.files&&e.files.length>0&&(t=c(e.files[0])),t||(t=o.getLocalizedText("Unknown"),a=!1),{name:t,success:a}}(e);if(e.taskName=u.name,e.hasTaskName=u.success,e.errorDescription=function(e){return e.errorCode&&n[e.errorCode]&&n[e.errorCode].descriptionKey?n[e.errorCode].hide?"":n[e.errorCode].descriptionKey:""}(e),e.files){for(var m=0,h=[],v={},b=0;b0?k.completedLength/k.length*100:0,t){k.relativePath=d(e,k);var y=p(k,h,v);k.level=y.level+1}m+=k.selected?1:0}if(t&&h.length>1){var w=[];f(v[""],v,w),e.files=w,e.multiDir=!0}e.selectedFileCount=m}if(e.files&&1===e.files.length&&e.files[0].uris&&e.files[0].uris[0]){var S=!0,x=e.files[0].uris[0].uri;for(b=0;b0&&(i+=","),i+=t[s];return this.setTaskOption(e,"select-file",i,a,n)},getBtTaskPeers:function(e,t,a,n){return i.getPeers({gid:e.gid,silent:!!a,callback:function(a){t?(a.success&&h(a.data,e,n),t(a)):r.warn("[aria2TaskService.getBtTaskPeers] callback is null")}})},getTaskStatusAndBtPeers:function(e,t,a,n,s,o){var l=[i.tellStatus({gid:e},!0)];return n&&l.push(i.getPeers({gid:e},!0)),i.multicall({methods:l,silent:!!a,callback:function(e){t?(e.task={},e.success&&e.data.length>0&&(e.task=e.data[0][0],m(e.task,o)),e.success&&e.task.bittorrent&&e.data.length>1&&(e.peers=e.data[1][0],h(e.peers,e.task,s)),t(e)):r.warn("[aria2TaskService.getTaskStatusAndBtPeers] callback is null")}})},newUriTask:function(e,t,a,n){return i.addUri({task:e,pauseOnAdded:!!t,silent:!!n,callback:a})},newUriTasks:function(e,t,a,n){return i.addUriMulti({tasks:e,pauseOnAdded:!!t,silent:!!n,callback:a})},newTorrentTask:function(e,t,a,n){return i.addTorrent({task:e,pauseOnAdded:!!t,silent:!!n,callback:a})},newMetalinkTask:function(e,t,a,n){return i.addMetalink({task:e,pauseOnAdded:!!t,silent:!!n,callback:a})},startTasks:function(e,t,a){return i.unpauseMulti({gids:e,silent:!!a,callback:t})},pauseTasks:function(e,t,a){return i.forcePauseMulti({gids:e,silent:!!a,callback:t})},retryTask:function(t,a,n){var s=e.defer(),o=[i.tellStatus({gid:t},!0),i.getOption({gid:t},!0)],c=null,d=null;return i.multicall({methods:o,silent:!!n,callback:function(e){if(!a)return void r.warn("[aria2TaskService.retryTask] callback is null");if(!e.success)return r.warn("[aria2TaskService.retryTask] response is not success",e),s.reject(e),void a(e);if(e.data.length>0&&(c=e.data[0][0]),e.data.length>1&&(d=e.data[1][0]),!c||!d||!c.files||1!==c.files.length||c.bittorrent)return c||r.warn("[aria2TaskService.retryTask] task is null"),d||r.warn("[aria2TaskService.retryTask] options is null"),c.files||r.warn("[aria2TaskService.retryTask] task file is null"),1!==c.files.length&&r.warn("[aria2TaskService.retryTask] task file length is not equal 1"),c.bittorrent&&r.warn("[aria2TaskService.retryTask] task is bittorrent"),s.reject(t),void a({success:!1});for(var o=c.files[0],u=[],p=0;p0&&u.push(i.forceRemoveMulti({gids:r,removeFile:o,silent:!!n,callback:function(e){s.pushArrayTo(g,e.results),p=p||e.hasSuccess,f=f||e.hasError}})),l.length>0&&u.push(i.removeDownloadResultMulti({gids:l,removeFile:o,silent:!!n,callback:function(e){s.pushArrayTo(g,e.results),p=p||e.hasSuccess,f=f||e.hasError}})),e.all(u).then((function(){a&&a({hasSuccess:!!p,hasError:!!f,remainsStoppedTask:!!c,results:g})}))},changeTaskPosition:function(e,t,a,n){return i.changePosition({gid:e,pos:t,how:"POS_SET",silent:!!n,callback:a})},clearStoppedTasks:function(e,t){return i.purgeDownloadResult({silent:!!t,callback:e})},onConnectionSuccess:function(e){e?i.onConnectionSuccess({callback:e}):r.warn("[aria2TaskService.onConnectionSuccess] callback is null")},onConnectionFailed:function(e){e?i.onConnectionFailed({callback:e}):r.warn("[aria2TaskService.onConnectionFailed] callback is null")},onConnectionReconnecting:function(e){e?i.onConnectionReconnecting({callback:e}):r.warn("[aria2TaskService.onConnectionReconnecting] callback is null")},onConnectionWaitingToReconnect:function(e){e?i.onConnectionWaitingToReconnect({callback:e}):r.warn("[aria2TaskService.onConnectionWaitingToReconnect] callback is null")},onFirstSuccess:function(e){e?i.onFirstSuccess({callback:e}):r.warn("[aria2TaskService.onFirstSuccess] callback is null")},onOperationSuccess:function(e){e?i.onOperationSuccess({callback:e}):r.warn("[aria2TaskService.onOperationSuccess] callback is null")},onOperationError:function(e){e?i.onOperationError({callback:e}):r.warn("[aria2TaskService.onOperationError] callback is null")},onTaskCompleted:function(e){e?i.onDownloadComplete({callback:v(this.getTaskStatus,e,"completed")}):r.warn("[aria2TaskService.onTaskCompleted] callback is null")},onBtTaskCompleted:function(e){e?i.onBtDownloadComplete({callback:v(this.getTaskStatus,e,"btcompleted")}):r.warn("[aria2TaskService.onBtTaskCompleted] callback is null")},onTaskErrorOccur:function(e){e?i.onDownloadError({callback:v(this.getTaskStatus,e,"error")}):r.warn("[aria2TaskService.onTaskErrorOccur] callback is null")},processDownloadTasks:function(e,t){if(angular.isArray(e))for(var a=0;a0&&n[n.length-1].isCompleted===s?n[n.length-1].count++:n.push({isCompleted:s,count:1})}return n}(e,t)},estimateHealthPercentFromPeers:function(e,t){if(!e||e.numPieces<1||t.length<1)return r.warn("[aria2TaskService.estimateHealthPercentFromPeers] tasks is null or numPieces < 1 or peers < 1",e),e.completePercent;for(var a=[],n=0,i=e.completePercent,s=0;sn?(n=c,i=o.completePercent):c===n&&o.completePercent>i&&(i=o.completePercent)}var p=0;if(a.length>0)for(;;){var f=!0;for(s=0;s0?(p++,a[s]--):f=!1;if(!f)break}if(p<=n)return i;var m=p/e.numPieces*100;return m<=i?i:m}}}])}(),function(){"use strict";angular.module("ariaNg").factory("aria2SettingService",["ariaNgConstants","aria2AllOptions","aria2GlobalAvailableOptions","aria2QuickSettingsAvailableOptions","aria2TaskAvailableOptions","aria2RpcService","ariaNgLogService","ariaNgStorageService",function(e,t,a,n,i,s,o,r){var l=function(t){return e.settingHistoryKeyPrefix+"."+t};return{isOptionKeyValid:function(e){return!!t[e]},isOptionKeyRequired:function(e){var a=t[e];return a&&a.required},getAvailableGlobalOptionsKeys:function(e){return"basic"===e?a.basicOptions:"http-ftp-sftp"===e?a.httpFtpSFtpOptions:"http"===e?a.httpOptions:"ftp-sftp"===e?a.ftpSFtpOptions:"bt"===e?a.btOptions:"metalink"===e?a.metalinkOptions:"rpc"===e?a.rpcOptions:"advanced"===e&&a.advancedOptions},getAria2QuickSettingsAvailableOptions:function(e){return"globalSpeedLimit"===e&&n.globalSpeedLimitOptions},getAvailableTaskOptionKeys:function(e,t){for(var a=i.taskOptions,n=[],s=0;s-1&&(n.splice(i,1),r.set(a,n)),n},clearSettingsHistorys:function(){for(var t=r.keys(e.settingHistoryKeyPrefix+"."),a=0;a{let n=e.recManifestUrl;fetch(n).then((e=>{t(e.json())})).catch((e=>{a(e)}))}))}}}])}(),angular.module("ariaNg").run(["$templateCache",function(e){e.put("views/debug.html",'
'),e.put("views/export-command-api-dialog.html",''),e.put("views/list.html",'
'),e.put("views/new.html",'
'),e.put("views/notification-reloadable.html",''),e.put("views/recommend.html",''),e.put("views/setting-dialog.html",'\x3c!-- /.modal --\x3e'),e.put("views/setting.html",'
 
'),e.put("views/settings-aria2.html",'
'),e.put("views/settings-ariang.html",'
'),e.put("views/status.html",'
Aria2 RPC Address
Aria2 Status
Session ID
-
Aria2 Version
- Enhanced Edition
Enabled Features
-
Operations
'),e.put("views/task-detail.html",'
\x3c!-- /.nav-tabs-custom --\x3e
')}]); \ No newline at end of file diff --git a/ui/ariang/js/aria-ng-3aaabaa96c.min.js b/ui/ariang/js/aria-ng-3aaabaa96c.min.js deleted file mode 100644 index 0e22f6f..0000000 --- a/ui/ariang/js/aria-ng-3aaabaa96c.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * AriaNg - * https://github.com/mayswind/AriaNg - */ -!function(){"use strict";var e,t,a;if(e=navigator.appName,t=navigator.appVersion.split(";"),a=t&&t.length>1?t[1].replace(/[ ]/g,""):"","Microsoft Internet Explorer"===e&&("MSIE6.0"===a||"MSIE7.0"===a||"MSIE8.0"===a||"MSIE9.0"===a)){var n=document.createElement("div");n.className="alert alert-danger",n.innerHTML="Sorry, AriaNg cannot support this browser, please upgrade your browser!",document.getElementById("content-wrapper").appendChild(n)}document.addEventListener("contextmenu",(function(e){const t=e.target.tagName;"TEXTAREA"!==t&&"INPUT"!==t&&e.preventDefault()}))}(),function(){"use strict";var e=function(){var e=$(window).height(),t=$(".main-header").outerHeight()+$(".main-footer").outerHeight();$(".content-body").css("height",e-t)};$(window,".wrapper").resize((function(){e()})),e()}(),function(){"use strict";angular.module("ariaNg",["ngRoute","ngSanitize","ngTouch","ngMessages","ngCookies","ngAnimate","pascalprecht.translate","angularMoment","ngWebSocket","utf8-base64","LocalStorageModule","ui-notification","angularBittorrentPeerid","cgBusy","angularPromiseButtons","angular-clipboard","inputDropdown",angularDragula(angular)])}(),function(){"use strict";angular.module("ariaNg").config(["$routeProvider",function(e){var t="/"+JSON.parse(localStorage["AriaNg.Options"]||'{"defaultTaskPage":"all"}').defaultTaskPage||"all";e.when("/all",{templateUrl:"views/list.html",controller:"DownloadListController"}).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",reloadOnSearch:!1}).when("/settings/ariang",{templateUrl:"views/settings-ariang.html",controller:"AriaNgSettingsController",reloadOnSearch:!1}).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"}).when("/recommend",{templateUrl:"views/recommend.html"}).otherwise({redirectTo:t})}])}(),function(){"use strict";angular.module("ariaNg").run(["$window","$rootScope","$location","$document","$timeout","ariaNgCommonService","ariaNgKeyboardService","ariaNgNotificationService","ariaNgLogService","ariaNgSettingService","aria2TaskService","aria2SettingService","aria2AllOptions",function(e,t,a,n,i,s,o,r,l,c,d,u,p){var f=!1,g=function(e,t){return e===t||0===t.indexOf(e)&&0===t.substring(e.length).indexOf("/")},m=function(){t.currentTheme="light",angular.element("body").removeClass("theme-dark")},h=function(){t.currentTheme="dark",angular.element("body").addClass("theme-dark")},v=function(){if(c.isBrowserSupportDarkMode()){var t=e.matchMedia("(prefers-color-scheme: dark)");l.info("[root.setThemeBySystemSettings] system uses "+(t.matches?"dark":"light")+" theme"),t.matches?h():m()}else m()},b=function(){angular.element('[data-widget="pushmenu"]').PushMenu("collapse")},k=function(e){if(!e||parseInt(e).toString()!=e)return e;for(var t=["","k","m","g"],a=0,n=0;n=0)},t.isTaskRetryable=function(e){return e&&"error"===e.status&&e.errorDescription&&!e.bittorrent},t.keydownActions={find:function(e){return e.preventDefault&&e.preventDefault(),t.searchContext.setSearchBoxFocused(),!1}},t.swipeActions={leftSwipe:function(){c.getSwipeGesture()&&(angular.element("body").hasClass("sidebar-collapse")?(!this.extendLeftSwipe||angular.isFunction(this.extendLeftSwipe)&&!this.extendLeftSwipe())&&b():b())},rightSwipe:function(){c.getSwipeGesture()&&(!this.extendRightSwipe||angular.isFunction(this.extendRightSwipe)&&!this.extendRightSwipe())&&angular.element('[data-widget="pushmenu"]').PushMenu("expand")}},t.refreshPage=function(){e.location.reload()},t.setAutoRefreshAfterPageLoad=function(){f=!0},t.setTheme=function(e){"system"===e?v():"dark"===e?h():m()},e.addEventListener("keydown",(function(e){if(c.getKeyboardShortcuts()){var a=angular.element('input[type="text"],textarea').is(":focus");if(o.isCtrlAPressed(e)&&!a){if(angular.isFunction(t.keydownActions.selectAll))return t.keydownActions.selectAll(e)}else if(o.isCtrlFPressed(e)){if(angular.isFunction(t.keydownActions.find))return t.keydownActions.find(e)}else if(o.isDeletePressed(e)&&!a&&angular.isFunction(t.keydownActions.delete))return t.keydownActions.delete(e)}}),!0),c.onFirstAccess((function(){r.notifyInPage("","Tap to configure and get started with AriaNg.",{delay:!1,onClose:function(){a.path("/settings/ariang")}})})),d.onFirstSuccess((function(e){r.notifyInPage("","is connected",{type:"success",contentPrefix:e.rpcName+" "})})),d.onConnectionSuccess((function(){i((function(){"Connected"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Connected"),t.taskContext.isRpcOptionsSet||(!function(){const e=c.getRpcOptions(),a=c.getCurrentRpcDisplayName();u.getGlobalOption((function(n){if(n.success)try{let i=n.data;for(const t of Object.keys(e)){let n=e[t]||"",s=i[t]||"";if("Bytes"===p[t].suffix&&(s=k(s)),s.toLowerCase()!==n.toLowerCase()){u.setGlobalOptions(e,(function(){r.notifyInPage("","settings have taken effect",{type:"success",contentPrefix:a+" "})}));break}}t.enhanced="true"===i["enable-extension"]}catch(e){l.warn("[root.initAria2Options] ",e)}}))}(),t.taskContext.isRpcOptionsSet=!0)}))})),d.onConnectionFailed((function(){i((function(){"Disconnected"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Disconnected"),t.taskContext.isRpcOptionsSet&&(t.taskContext.isRpcOptionsSet=!1)}))})),d.onConnectionReconnecting((function(){i((function(){"Reconnecting"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Reconnecting"),t.taskContext.isRpcOptionsSet&&(t.taskContext.isRpcOptionsSet=!1)}))})),d.onConnectionWaitingToReconnect((function(){i((function(){"Waiting to reconnect"!==t.taskContext.rpcStatus&&(t.taskContext.rpcStatus="Waiting to reconnect"),t.taskContext.isRpcOptionsSet&&(t.taskContext.isRpcOptionsSet=!1)}))})),d.onTaskCompleted((function(e){r.notifyTaskComplete(e.task)})),d.onBtTaskCompleted((function(e){r.notifyBtTaskComplete(e.task)})),d.onTaskErrorOccur((function(e){r.notifyTaskError(e.task)})),t.$on("$locationChangeStart",(function(e){t.skipLocationChange?t.skipLocationChange=!1:(s.closeAllDialogs(),t.loadPromise=null,delete t.keydownActions.selectAll,delete t.keydownActions.delete,delete t.swipeActions.extendLeftSwipe,delete t.swipeActions.extendRightSwipe,angular.isArray(t.taskContext.list)&&t.taskContext.list.length>0&&(t.taskContext.list.length=0),angular.isObject(t.taskContext.selected)&&(t.taskContext.selected={}),t.taskContext.enableSelectAll=!1)})),t.$on("$routeChangeStart",(function(e,t,i){!function(e){angular.element("section.sidebar > ul li a").removeClass("active"),angular.element("ul.nav-sidebar a").each((function(t,a){var n=angular.element(a).attr("href").substring(2);g(n,e)&&angular.element(a).addClass("active")})),angular.element("ul.nav-treeview a").each((function(t,a){var n=angular.element(a).attr("href").substring(2);g(n,e)&&angular.element(a).parentsUntil(".nav-sidebar > .nav-treeview").prev("a").addClass("active").parent().addClass("menu-open")}))}(a.path()),n.unbind("keypress")})),c.isBrowserSupportDarkMode())&&e.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",(function(e){l.info("[root] system switches to "+(e.matches?"dark":"light")+" theme"),"system"===c.getTheme()&&(e.matches?h():m())}));t.$on("$locationChangeSuccess",(function(a,n,i){f&&e.location.reload(),i.includes("settings/aria2")&&n.includes("settings/aria2")||(t.searchContext.text=""),t.searchContext.enabledInPage=!1})),"system"===c.getTheme()?v():"dark"===c.getTheme()?h():m(),function(){var e=c.getBrowserFeatures();if(e.localStorage||l.warn("[root.initCheck] LocalStorage is not supported!"),e.cookies||l.warn("[root.initCheck] Cookies is not supported!"),!c.isBrowserSupportStorage())throw angular.element("body").prepend('
'),angular.element(".main-sidebar").addClass("blur"),angular.element(".navbar").addClass("blur"),angular.element(".content-body").addClass("blur"),r.notifyInPage("","You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.",{type:"error",delay:!1}),new Error("You cannot use AriaNg because this browser does not meet the minimum requirements for data storage.")}(),angular.element("section.sidebar > ul > li[data-href-match] > a").on("click",(function(){angular.element("section.sidebar > ul li a").removeClass("active"),angular.element(this).addClass("active")})),angular.element("section.sidebar > ul > li > ul.nav-treeview > li[data-href-match] > a").on("click",(function(){angular.element("section.sidebar > ul li a").removeClass("active"),angular.element(this).addClass("active").parent().parent().siblings("a").addClass("active")}))}])}(),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:2e4,globalStatStorageCapacity:120,taskStatStorageCapacity:300,lazySaveTimeout:500,errorTooltipDelay:500,notificationInPageTimeout:2e3,historyMaxStoreCount:10,cachedDebugLogsLimit:100}).constant("ariaNgDefaultOptions",{language:"en",theme:"light",title:"${downspeed}, ${upspeed} - ${title}",titleRefreshInterval:5e3,browserNotification:!1,browserNotificationSound:!0,browserNotificationFrequency:"unlimited",rpcAlias:"",rpcHost:"",rpcPort:"6800",rpcInterface:"jsonrpc",protocol:"http",httpMethod:"POST",rpcRequestHeaders:"",rpcOptions:{},secret:"",extendRpcServers:[],webSocketReconnectInterval:5e3,globalStatRefreshInterval:1e3,downloadTaskRefreshInterval:1e3,keyboardShortcuts:!0,swipeGesture:!0,dragAndDropTasks:!0,rpcListDisplayOrder:"recentlyUsed",afterCreatingNewTask:"task-list",removeOldTaskAfterRetrying:!1,confirmTaskRemoval:!0,includePrefixWhenCopyingFromTaskDetails:!0,showPiecesInfoInTaskDetailPage:"le10240",afterRetryingTask:"task-list-default",pauseAfterRetry:!1,taskListIndependentDisplayOrder:!0,displayOrder:"default:asc",downloadingTaskListPageDisplayOrder:"default:asc",waitingTaskListPageDisplayOrder:"default:asc",stoppedTaskListPageDisplayOrder:"default:asc",fileListDisplayOrder:"default:asc",peerListDisplayOrder:"default:asc",defaultTaskPage:"all",recCount:0,compactMode:!1}).constant("aria2eConstants",{recommendOrigin:"https://rec.aria2e.com",recManifestUrl:"https://rec.aria2e.com/manifest.json"})}(),function(){"use strict";angular.module("ariaNg").constant("ariaNgBuildConfiguration",{buildVersion:"v1.3.8e",buildCommit:"861dedb"})}(),function(){"use strict";angular.module("ariaNg").config(["$qProvider","$translateProvider","localStorageServiceProvider","NotificationProvider","ariaNgConstants","ariaNgLanguages",function(e,t,a,n,i,s){e.errorOnUnhandledRejections(!1),a.setPrefix(i.appPrefix).setStorageType("localStorage").setStorageCookie(365,"/");var o=[],r={};for(var l in s)if(s.hasOwnProperty(l)){var c=s[l].aliases;if(o.push(l),angular.isArray(c)&&!(c.length<1))for(var d=0;d= 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.',"enable-pmap.name":"Enable UPnP Port Mapping","enable-pmap.description":"Enables UPnP automatic port mapping for BT and DHT protocols, and automatically sets the external IP address (bt-external-ip) to improve BT connectivity and node discovery. (The LAN gateway needs to enable UPnP function)","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."}})}])}(),function(){"use strict";angular.module("ariaNg").constant("aria2AllOptions",{gid:{type:"string",readonly:!0,required:!0},dir:{type:"string",required:!0,lazySaveTimeout:1500,showHistory:!0},log:{type:"string",lazySaveTimeout:2e3,required:!0},"max-concurrent-downloads":{type:"integer",defaultValue:"5",required:!0,min:1},"check-integrity":{type:"boolean",defaultValue:"false",required:!0},continue:{type:"boolean",required:!0},"all-proxy":{type:"string",lazySaveTimeout:1e3,showHistory:!0},"all-proxy-user":{type:"string"},"all-proxy-passwd":{type:"string"},checksum:{type:"string",required:!0,pattern:"^(md5|sha-(1|224|256|384|512))=[a-zA-Z0-9]+$"},"connect-timeout":{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"dry-run":{type:"boolean",defaultValue:"false",required:!0},"lowest-speed-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-connection-per-server":{type:"integer",defaultValue:"1",required:!0,min:1},"max-file-not-found":{type:"integer",defaultValue:"0",required:!0,min:0},"max-tries":{type:"integer",defaultValue:"5",required:!0,min:0},"min-split-size":{type:"string",suffix:"Bytes",defaultValue:"20M",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"netrc-path":{type:"string",readonly:!0,defaultValue:"$(HOME)/.netrc"},"no-netrc":{type:"boolean",required:!0},"no-proxy":{type:"text",separator:",",showCount:!0},out:{type:"string"},"proxy-method":{type:"option",options:["get","tunnel"],defaultValue:"get",required:!0},"remote-time":{type:"boolean",defaultValue:"false",required:!0},"reuse-uri":{type:"boolean",defaultValue:"true",required:!0},"retry-wait":{type:"integer",suffix:"Seconds",defaultValue:"0",required:!0,min:0,max:600},"server-stat-of":{type:"string"},"server-stat-timeout":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"86400"},split:{type:"integer",defaultValue:"5",required:!0,min:1},"stream-piece-selector":{type:"option",options:["default","inorder","random","geom"],defaultValue:"default",required:!0},timeout:{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"uri-selector":{type:"option",options:["inorder","feedback","adaptive"],defaultValue:"feedback",required:!0},"check-certificate":{type:"boolean",readonly:!0,defaultValue:"true"},"http-accept-gzip":{type:"boolean",defaultValue:"false",required:!0},"http-auth-challenge":{type:"boolean",defaultValue:"false",required:!0},"http-no-cache":{type:"boolean",defaultValue:"false",required:!0},"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:!0},"enable-http-pipelining":{type:"boolean",defaultValue:"false",required:!0},header:{type:"text",separator:"\n",overrideMode:"append",submitFormat:"array",showCount:!0,trimCount:!0},"save-cookies":{type:"string"},"use-head":{type:"boolean",defaultValue:"false",required:!0},"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:!0},"ftp-proxy":{type:"string"},"ftp-proxy-user":{type:"string"},"ftp-proxy-passwd":{type:"string"},"ftp-type":{type:"option",options:["binary","ascii"],defaultValue:"binary",required:!0},"ftp-reuse-connection":{type:"boolean",defaultValue:"true",required:!0},"ssh-host-key-md":{type:"string"},"show-files":{type:"boolean",readonly:!0},"bt-detach-seed-only":{type:"boolean",readonly:!0,defaultValue:"false"},"bt-enable-hook-after-hash-check":{since:"1.19.3",type:"boolean",defaultValue:"true",required:!0},"bt-enable-lpd":{type:"boolean",defaultValue:"false",required:!0},"bt-exclude-tracker":{type:"text",separator:",",showCount:!0},"bt-external-ip":{type:"string"},"bt-force-encryption":{type:"boolean",defaultValue:"false",required:!0},"bt-hash-check-seed":{type:"boolean",defaultValue:"true",required:!0},"bt-load-saved-metadata":{since:"1.33.0",type:"boolean",defaultValue:"false",required:!0},"bt-max-open-files":{type:"integer",defaultValue:"100",required:!0,min:1},"bt-max-peers":{type:"integer",defaultValue:"55",required:!0,min:0},"bt-metadata-only":{type:"boolean",defaultValue:"false",required:!0},"bt-min-crypto-level":{type:"option",options:["plain","arc4"],defaultValue:"plain",required:!0},"bt-prioritize-piece":{type:"string"},"bt-remove-unselected-file":{type:"boolean",defaultValue:"false",required:!0},"bt-require-crypto":{type:"boolean",defaultValue:"false",required:!0},"bt-request-peer-speed-limit":{type:"string",suffix:"Bytes",defaultValue:"50K",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"bt-save-metadata":{type:"boolean",defaultValue:"false",required:!0},"bt-seed-unverified":{type:"boolean",defaultValue:"false",required:!0},"bt-stop-timeout":{type:"integer",suffix:"Seconds",defaultValue:"0",required:!0,min:0},"bt-tracker":{type:"text",separator:",",showCount:!0},"bt-tracker-connect-timeout":{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"bt-tracker-interval":{type:"integer",suffix:"Seconds",defaultValue:"0",required:!0,min:0},"bt-tracker-timeout":{type:"integer",suffix:"Seconds",defaultValue:"60",required:!0,min:1,max:600},"dht-file-path":{type:"string",readonly:!0,defaultValue:"$HOME/.aria2/dht.dat"},"dht-file-path6":{type:"string",readonly:!0,defaultValue:"$HOME/.aria2/dht6.dat"},"dht-listen-port":{type:"string",readonly:!0,defaultValue:"6881-6999"},"dht-message-timeout":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"10"},"enable-dht":{type:"boolean",readonly:!0,defaultValue:"true"},"enable-dht6":{type:"boolean",readonly:!0},"enable-peer-exchange":{type:"boolean",defaultValue:"true",required:!0},"follow-torrent":{type:"option",options:["true","false","mem"],defaultValue:"true",required:!0},"listen-port":{type:"integer",readonly:!0,defaultValue:"6881-6999"},"enable-pmap":{since:"enhanced",type:"boolean",defaultValue:"false",required:!0},"max-overall-upload-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-upload-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"peer-id-prefix":{type:"string",readonly:!0,defaultValue:"A2-$MAJOR-$MINOR-$PATCH-"},"peer-agent":{since:"1.33.0",type:"string",defaultValue:"aria2/$MAJOR.$MINOR.$PATCH",readonly:!0},"seed-ratio":{type:"float",defaultValue:"1.0",required:!0,min:0},"seed-time":{type:"float",suffix:"Minutes",required:!0,min:0},"follow-metalink":{type:"option",options:["true","false","mem"],defaultValue:"true",required:!0},"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:!0},"metalink-enable-unique-protocol":{type:"boolean",defaultValue:"true",required:!0},"enable-rpc":{type:"boolean",readonly:!0,defaultValue:"false"},"pause-metadata":{type:"boolean",defaultValue:"false",required:!0},"rpc-allow-origin-all":{type:"boolean",readonly:!0,defaultValue:"false"},"rpc-listen-all":{type:"boolean",readonly:!0,defaultValue:"false"},"rpc-listen-port":{type:"integer",readonly:!0,defaultValue:"6800"},"rpc-max-request-size":{type:"string",suffix:"Bytes",readonly:!0,defaultValue:"2M"},"rpc-save-upload-metadata":{type:"boolean",defaultValue:"true",required:!0},"rpc-secure":{type:"boolean",readonly:!0},"allow-overwrite":{type:"boolean",defaultValue:"false",required:!0},"allow-piece-length-change":{type:"boolean",defaultValue:"false",required:!0},"always-resume":{type:"boolean",defaultValue:"true",required:!0},"async-dns":{type:"boolean",defaultValue:"true",required:!0},"auto-file-renaming":{type:"boolean",defaultValue:"true",required:!0},"auto-save-interval":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"60"},"conditional-get":{type:"boolean",defaultValue:"false",required:!0},"conf-path":{type:"string",readonly:!0,defaultValue:"$HOME/.aria2/aria2.conf"},"console-log-level":{type:"option",options:["debug","info","notice","warn","error"],readonly:!0,defaultValue:"notice"},"content-disposition-default-utf8":{since:"1.31.0",type:"boolean",defaultValue:"false"},daemon:{type:"boolean",readonly:!0,defaultValue:"false"},"deferred-input":{type:"boolean",readonly:!0,defaultValue:"false"},"disable-ipv6":{type:"boolean",readonly:!0,defaultValue:"false"},"disk-cache":{type:"string",suffix:"Bytes",readonly:!0,defaultValue:"16M"},"download-result":{type:"option",options:["default","full","hide"],defaultValue:"default",required:!0},dscp:{type:"string",readonly:!0},"rlimit-nofile":{type:"string",readonly:!0},"enable-color":{type:"boolean",readonly:!0,defaultValue:"true"},"enable-mmap":{type:"boolean",defaultValue:"false",required:!0},"event-poll":{type:"option",options:["epoll","kqueue","port","poll","select"],readonly:!0},"file-allocation":{type:"option",options:["none","prealloc","trunc","falloc"],defaultValue:"prealloc",required:!0},"force-save":{type:"boolean",defaultValue:"false",required:!0},"save-not-found":{since:"1.27.0",type:"boolean",defaultValue:"true",required:!0},"hash-check-only":{type:"boolean",defaultValue:"false",required:!0},"human-readable":{type:"boolean",readonly:!0,defaultValue:"true"},"keep-unfinished-download-result":{type:"boolean",defaultValue:"true",required:!0},"max-download-result":{type:"integer",defaultValue:"1000",required:!0,min:0},"max-mmap-limit":{since:"1.20.0",type:"string",suffix:"Bytes",defaultValue:"9223372036854775807",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-resume-failure-tries":{type:"integer",defaultValue:"0",required:!0,min:0},"min-tls-version":{type:"option",options:["SSLv3","TLSv1","TLSv1.1","TLSv1.2"],readonly:!0,defaultValue:"TLSv1"},"log-level":{type:"option",options:["debug","info","notice","warn","error"],defaultValue:"debug",required:!0},"optimize-concurrent-downloads":{since:"1.22.0",type:"string",defaultValue:"false"},"piece-length":{type:"string",suffix:"Bytes",defaultValue:"1M",required:!0,pattern:"^(0|[1-9]\\d*(M|m)?)$"},"show-console-readout":{type:"boolean",readonly:!0,defaultValue:"true"},"summary-interval":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"60"},"max-overall-download-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"max-download-limit":{type:"string",suffix:"Bytes",defaultValue:"0",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"no-conf":{type:"boolean",readonly:!0},"no-file-allocation-limit":{type:"string",suffix:"Bytes",defaultValue:"5M",required:!0,pattern:"^(0|[1-9]\\d*(K|k|M|m)?)$"},"parameterized-uri":{type:"boolean",defaultValue:"false",required:!0},quiet:{type:"boolean",readonly:!0,defaultValue:"false"},"realtime-chunk-checksum":{type:"boolean",defaultValue:"true",required:!0},"remove-control-file":{type:"boolean",required:!0},"save-session":{type:"string"},"save-session-interval":{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"0"},"socket-recv-buffer-size":{since:"1.19.3",type:"string",suffix:"Bytes",readonly:!0,defaultValue:"0"},stop:{type:"integer",suffix:"Seconds",readonly:!0,defaultValue:"0"},"truncate-console-readout":{type:"boolean",readonly:!0,defaultValue:"true"}}).constant("aria2GlobalAvailableOptions",{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","enable-pmap","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",{taskOptions:[{key:"dir",category:"global",canUpdate:"new",showHistory:!0},{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",showHistory:!0},{key:"all-proxy-user",category:"http",canUpdate:"new|waiting|paused",showHistory:!0},{key:"all-proxy-passwd",category:"http",canUpdate:"new|waiting|paused"},{key:"checksum",category:"http"},{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:"bt-exclude-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:"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"}]})}(),function(){"use strict";angular.module("ariaNg").constant("aria2Errors",{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"},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"},32:{descriptionKey:"error.checksum.failed"}})}(),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"}})}(),function(){"use strict";angular.module("ariaNg").controller("CommandController",["$rootScope","$window","$location","$routeParams","ariaNgDefaultOptions","ariaNgCommonService","ariaNgLogService","ariaNgSettingService","aria2TaskService","aria2SettingService",function(e,t,a,n,i,s,o,r,l,c){var d=a.path();(function(n,d){return 0===n.indexOf("/new")?function(t,n){try{t=s.base64UrlDecode(t)}catch(e){return s.showError("URL is not base64 encoded!"),!1}var i={},r=!1;if(n){for(var d in n)n.hasOwnProperty(d)&&c.isOptionKeyValid(d)&&(i[d]=n[d]);"true"===n.pause&&(r=!0)}return e.loadPromise=l.newUriTask({urls:[t],options:i},r,(function(e){if(!e.success)return!1;r?a.path("/waiting"):a.path("/downloading")})),o.info("[CommandController] new download: "+t),!0}(d.url,d):0===n.indexOf("/settings/rpc/set")?function(e,n,l,c,d){if(l=l||i.rpcPort,c=c||i.rpcInterface,d=d||i.secret,o.info("[CommandController] set rpc: "+e+"://"+n+":"+l+"/"+c+", secret: "+d),!e||"http"!==e&&"https"!==e&&"ws"!==e&&"wss"!==e)return s.showError("Protocol is invalid!"),!1;if(!n)return s.showError("RPC host cannot be empty!"),!1;if(d)try{d=s.base64UrlDecode(d)}catch(e){return s.showError("RPC secret is not base64 encoded!"),!1}var u={rpcAlias:"",rpcHost:n,rpcPort:l,rpcInterface:c,protocol:e,httpMethod:i.httpMethod,rpcRequestHeaders:"",secret:d};return r.isRpcSettingEqualsDefault(u)?a.path("/downloading"):(r.setDefaultRpcSetting(u,{keepCurrent:!1,forceSet:!0}),a.path("/downloading"),t.location.reload()),!0}(d.protocol,d.host,d.port,d.interface,d.secret):(s.showError("Parameter is invalid!"),!1)})(d,angular.extend({},n,a.search()))||a.path("/downloading")}])}(),function(){"use strict";angular.module("ariaNg").controller("AriaNgDebugController",["$rootScope","$scope","$location","$interval","$timeout","$filter","ariaNgConstants","ariaNgCommonService","ariaNgLocalizationService","ariaNgLogService","ariaNgKeyboardService","ariaNgSettingService","aria2RpcService",function(e,t,a,n,i,s,o,r,l,c,d,u,p){var f=[{name:"logs",show:!0},{name:"rpc",show:!0}],g=null,m=function(){for(var e=[],t=0;t=0)},t.setLogLevelFilter=function(e){t.context.logLevelFilter=e},t.isSetLogLevelFilter=function(e){return t.context.logLevelFilter===e},t.getLogLevelFilter=function(){return t.context.logLevelFilter},t.setAutoRefreshInterval=function(e){t.context.logAutoRefreshInterval=e,g&&n.cancel(g),e>0&&(t.reloadLogs(),g=n((function(){t.reloadLogs()}),t.context.logAutoRefreshInterval))},t.reloadLogs=function(){t.context.logs=c.getDebugLogs().slice()},t.clearDebugLogs=function(){r.confirm("Confirm Clear","Are you sure you want to clear debug logs?","warning",(function(){c.clearDebugLogs(),t.reloadLogs()}),!1)},t.showLogDetail=function(e){t.context.currentLog=e,angular.element("#log-detail-modal").modal()},$("#log-detail-modal").on("hide.bs.modal",(function(e){t.context.currentLog=null})),t.executeAria2Method=function(){if(!t.context.rpcRequestMethod||t.context.rpcRequestMethod.indexOf(".")<0)r.showError("RPC method is illegal!");else{var e=t.context.rpcRequestMethod.split(".");if(2===e.length){var a=e[1];if(angular.isFunction(p[a])){var n={silent:!1,callback:function(e){t.context.rpcResponse=e?s("json")(e.data):s("json")(e)}},i={};try{i=angular.fromJson(t.context.rpcRequestParameters)}catch(e){return c.error("[AriaNgDebugController.executeAria2Method] failed to parse request parameters: "+t.context.rpcRequestParameters,e),void r.showError("RPC request parameters are invalid!")}for(var o in i)i.hasOwnProperty(o)&&"silent"!==o&&"callback"!==o&&(n[o]=i[o]);return p[a](n)}r.showError("AriaNg does not support this RPC method!")}else r.showError("RPC method is illegal!")}},t.requestParametersTextboxKeyDown=function(e){if(u.getKeyboardShortcuts())return d.isCtrlEnterPressed(e)&&t.executeMethodForm.$valid?(e.preventDefault&&e.preventDefault(),t.executeAria2Method(),!1):void 0},t.$on("$destroy",(function(){g&&n.cancel(g)})),e.swipeActions.extendLeftSwipe=function(){var e=m(),a=e.indexOf(t.context.currentTab);return a0&&(t.changeTab(e[a-1]),!0)},e.loadPromise=i((function(){u.isEnableDebugMode()?t.setAutoRefreshInterval(t.context.logAutoRefreshInterval):r.showError("Access Denied!",(function(){u.isEnableDebugMode()||a.path("/settings/ariang")}))}),100)}])}(),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","ariaNgKeyboardService","aria2eRecService",function(e,t,a,n,i,s,o,r,l,c,d,u,p,f,g,m,h,v,b){var k=null,y=null;e.defaultTaskPage=p.getDefaultTaskPage();var w="/"+e.defaultTaskPage,S=function(){var e=i.path().substring(1);return"all"===e||"downloading"===e||"waiting"===e||"stopped"===e?e:""},x=function(){var e=g.getFinalTitleByGlobalStat({globalStat:t.globalStat,currentRpcProfile:C()});s[0].title=e},T=function(e,a){return h.getGlobalStat((function(e){if(e.success||e.data.message!==l.Unauthorized.message){if(e.success){let a=e.data;t.globalStat=a,t.globalStat.numTotal=Number(a.numActive)+Number(a.numWaiting)+Number(a.numStopped),f.recordGlobalStat(e.data)}a&&a(e)}else o.cancel(y)}),e)},C=function(){if(!t.rpcSettings||t.rpcSettings.length<1)return null;for(var e=0;e0,data:f.getGlobalStatsData()},t.enableDebugMode=function(){return p.isEnableDebugMode()},t.quickSettingContext=null,t.rpcSettings=p.getAllRpcSettings(),t.currentRpcProfile=C(),t.currentRpcAlias=p.getCurrentRpcDisplayName(),t.isCurrentRpcUseWebSocket=p.isCurrentRpcUseWebSocket(),t.isTaskSelected=function(){return e.taskContext.getSelectedTaskIds().length>0},t.isSelectedTasksAllHaveUrl=function(){var t=e.taskContext.getSelectedTasks();if(t.length<1)return!1;for(var a=0;a1&&c.showError("Failed to change some tasks state."),!e.hasSuccess)return;let s=t.globalStat;T(!0,(function(o){let r=t.globalStat;e.hasError||"start"!==n||("/waiting"===i.path()&&o.success&&r.numActive>s.numActive?i.path("/downloading"):a.reload())})),e.hasError||"pause"!==n||("/downloading"===i.path()?i.path("/waiting"):a.reload())}),r.length>1))},t.retryTask=function(t){c.confirm("Confirm Retry","Are you sure you want to retry the selected task? AriaNg will create same task after clicking OK.","info",(function(){e.loadPromise=m.retryTask(t.gid,(function(e){if(e.success){T(!0);var t=p.getAfterRetryingTask();e.success&&e.data&&("task-list-default"===t?i.path()!==w?i.path(w):a.reload():"task-list-downloading"===t?"/downloading"!==i.path()?i.path("/downloading"):a.reload():"task-detail"===t?i.path("/task/detail/"+e.data):a.reload())}else c.showError("Failed to retry this task.")}),!1)}))},t.hasPausedTask=function(){return e.taskContext.hasPausedTask()},t.hasRetryableTask=function(){return e.taskContext.hasRetryableTask()},t.hasCompletedTask=function(){return e.taskContext.hasCompletedTask()},t.isSelectedTaskRetryable=function(){var t=e.taskContext.getSelectedTasks();if(t.length<1)return!1;for(var a=0;a1&&c.showError("Failed to remove some task(s)."),e.hasSuccess&&(T(!0),e.hasError||("/downloading"==i.path()?i.path("/stopped"):i.path().startsWith("/task/detail")?i.path(w):a.reload()))}),n.length>1,!!t)};const o=v.isShiftKeyPressed(t);if(p.getConfirmTaskRemoval()||o){let t=null;e.enhanced&&(t={input:"checkbox",inputValue:o,inputPlaceholder:"Remove downloaded file(s) simultaneously"}),c.confirm("Confirm Remove","Are you sure you want to remove the selected task?","warning",s,!1,t)}else s()},t.clearStoppedTasks=function(){c.confirm("Confirm Clear","Are you sure you want to clear stopped tasks?","warning",(function(){e.loadPromise=m.clearStoppedTasks((function(e){e.success&&(T(!0),"/stopped"!==i.path()?i.path(w):a.reload())}))}))},t.isAllTasksSelected=function(){return e.taskContext.isAllSelected()},t.selectAllTasks=function(){e.taskContext.selectAll()},t.selectAllPausedTasks=function(){e.taskContext.selectAllPaused()},t.selectAllFailedTasks=function(){e.taskContext.selectAllFailed()},t.selectAllCompletedTasks=function(){e.taskContext.selectAllCompleted()},t.copySelectedTasksDownloadLink=function(){for(var t=e.taskContext.getSelectedTasks(),a="",n=0;n0&&(a+="\n"),a+=t[n].singleUrl;a.length>0&&r.copyText(a)},t.copySelectedTasksMagnetLink=function(){for(var t=e.taskContext.getSelectedTasks(),a="",n=0;n0&&(a+="\n"),a+="magnet:?xt=urn:btih:"+t[n].infoHash;a.length>0&&r.copyText(a)},t.changeDisplayOrder=function(e,t){var a=S(),n=c.parseOrderType(p.getDisplayOrder(a)),i=c.parseOrderType(e);t&&i.type===n.type&&(i.reverse=!n.reverse),p.setDisplayOrder(i.getValue(),a)},t.isSetDisplayOrder=function(e){var t=S(),a=c.parseOrderType(p.getDisplayOrder(t)),n=c.parseOrderType(e);return a.equals(n)},t.showQuickSettingDialog=function(e,a){t.quickSettingContext={type:e,title:a}},t.switchRpcSetting=function(t){t.isDefault||(p.setDefaultRpcSetting(t),0===i.path().indexOf("/task/detail/")||0===i.path().indexOf("/settings/aria2/")?(e.setAutoRefreshAfterPageLoad(),i.path(w)):n.location.reload())},t.getOpenHandlerUrl=function(e,a){if(!t.currentRpcProfile||!t.currentRpcProfile.openHandlerUrl)return"";let n=t.currentRpcProfile.openHandlerUrl;if("string"!=typeof e||"string"!=typeof n)return"";let i="";const s=n.match(/\${relativepath:(\d+)}/);if(s){const t=parseInt(s[1]);i=t?c.getRelativeDir(e,t):""}return n.replace("${taskdir}",e).replace(/\${relativepath:(\d+)}/,i).replace("${taskname}",a)},p.getTitleRefreshInterval()>0&&(k=o((function(){x()}),p.getTitleRefreshInterval())),p.getGlobalStatRefreshInterval()>0&&(y=o((function(){T(!0)}),p.getGlobalStatRefreshInterval())),b.getRecManifestPromise().then((function(t){if(t){try{var a=n.navigator.language,s=p.getRecCount(),o=t.contents[0].regions||[],r=t.total>s,l=o.includes("all")||o.includes(a);e.hasNewRec=r&&l,e.recTotal=t.total}catch(t){e.hasNewRec=!1,e.recTotal=s}0===i.path().indexOf("/recommend")&&p.setRecCount(e.recTotal)}else e.hasNewRec=!1})).catch((function(t){e.hasNewRec=!1,e.recTotal=p.getRecCount()})),t.updateRecCount=function(){p.setRecCount(e.recCount),e.hasNewRec=!1},t.compactMode=p.getCompactMode(),t.$watch("compactMode",(function(e,t){p.setCompactMode(e)})),t.$on("$destroy",(function(){k&&o.cancel(k),y&&o.cancel(y)})),T(!0,(function(){x()}))}])}(),function(){"use strict";angular.module("ariaNg").controller("NewTaskController",["$rootScope","$scope","$location","$q","$timeout","ariaNgCommonService","ariaNgLogService","ariaNgKeyboardService","ariaNgFileService","ariaNgFileTypes","ariaNgSettingService","aria2TaskService","aria2SettingService","ariaNgNotificationService",function(e,t,a,n,i,s,o,r,l,c,d,u,p,f){var g,m=[{name:"links",show:!0},{name:"options",show:!0}],h=a.search(),v=function(){for(var e=[],t=0;t{e.isDir||t.pendingTasks.push(e)}))}};t.context={currentTab:"links",taskType:"urls",urls:"",uploadFiles:[],showUrlFilter:!1,lastChecked:-1,collapsedDirs:[],torrentTask:{},availableOptions:(g=p.getNewTaskOptionKeys(),p.getSpecifiedOptions(g,{disableRequired:!0})),globalOptions:null,options:{},optionFilter:{global:!0,http:!1,bittorrent:!1},exportCommandApiOptions:null,hasDownloadsPermission:s.hasDownloadsPermission()};const S=angular.copy(t.context);if(t.resetContext=function(){t.context=angular.copy(S),t.pendingTasks=[]},t.changeTab=function(e){"options"===e&&t.loadDefaultOption(),t.context.currentTab=e},e.swipeActions.extendLeftSwipe=function(){var e=v(),a=e.indexOf(t.context.currentTab);return a0&&(t.changeTab(e[a-1]),!0)},t.loadDefaultOption=function(){t.context.globalOptions||(e.loadPromise=p.getGlobalOption((function(e){e.success&&(t.context.globalOptions=e.data)})))},h.url){try{t.context.urls=decodeURI(s.base64UrlDecode(h.url))}catch(e){o.error("[NewTaskController] base64 decode error, url="+h.url,e)}t.context.urls?.startsWith("http")&&(t.context.optionFilter.http=!0,t.context.urls.includes("\n")||i((function(){"Connected"==e.taskContext.rpcStatus&&t.changeTab("options")}),1440,!1)),h.referer&&(t.context.options.referer=h.referer),h.header&&(t.context.options.header=h.header),h.filename&&(t.context.options.out=decodeURIComponent(h.filename)),h.dir&&(t.context.options.dir=decodeURIComponent(h.dir))}t.openTorrent=function(){l.openFileContent({scope:t,fileFilter:".torrent",fileType:"binary"},(function(e){t.context.uploadFiles.push(e),t.context.taskType="torrent",w(e.base64Content)}),(function(e){s.showError(e)}),angular.element("#file-holder"))},t.openMetalink=function(){l.openFileContent({scope:t,fileFilter:".meta4,.metalink",fileType:"binary"},(function(e){t.context.uploadFiles.push(e),t.context.taskType="metalink",t.changeTab("options")}),(function(e){s.showError(e)}),angular.element("#file-holder"))},t.dragEnterHandler=function(e,t){e.preventDefault(),t.focus(),t.addClass("has-warning");let a=e.originalEvent.dataTransfer.items;(a.length>1||"file"!=a[0].kind)&&t.removeClass("has-warning").addClass("has-error")},t.dragLeaveHandler=function(e,t){e.preventDefault(),t.blur(),t.removeClass("has-warning has-error")},t.dropHandler=function(e,a){e.preventDefault(),a.removeClass("has-warning has-error");const n=e.originalEvent.dataTransfer.files,o=e.originalEvent.dataTransfer.items;for(const e of o)"string"==e.kind&&"text/uri-list"==e.type&&(t.context.urls&&!t.context.urls.endsWith("\n")?t.context.urls+="\n":angular.isUndefined(t.context.urls)&&(t.context.urls=""),e.getAsString((function(e){t.$apply((function(){t.context.urls+=e+"\n"}))})));for(const e of n){if(t.context.taskType&&"urls"!==t.context.taskType){if(!e.name.toLowerCase().endsWith(t.context.taskType))continue}else if(e.name.toLowerCase().endsWith(".torrent"))t.context.taskType="torrent";else{if(!e.name.toLowerCase().endsWith(".meta4")&&!e.name.toLowerCase().endsWith(".metalink"))continue;t.context.taskType="metalink"}const a={fileName:e.name},n=new FileReader;n.onload=function(){a.base64Content=n.result.replace(/.*?base64,/,""),t.context.uploadFiles.push(a),"torrent"===t.context.taskType?(t.context.optionFilter.bittorrent=!0,i((function(){w(a.base64Content)}))):t.changeTab("options")},n.onerror=function(){s.showError("Failed to load file!")},n.readAsDataURL(e)}},t.isNewTaskValid=function(){return t.context.uploadFiles.length?"torrent"!==t.context.taskType||t.isAnyFileSelected():t.newTaskForm.$valid},t.startDownload=function(i,s){var o=function(e){if(e.hasSuccess||e.success){var t=null;e.results&&e.results.length>0?t=e.results[0]:e&&(t=e),"task-detail"===d.getAfterCreatingNewTask()&&t&&t.data?a.path("/task/detail/"+t.data):"all"===d.getDefaultTaskPage()?a.path("/all"):i?a.path("/waiting"):a.path("/downloading")}};"urls"===t.context.taskType?t.context.hasDownloadsPermission&&"Connected"!==e.taskContext.rpcStatus?(f.notifyInPage("","Aria2 is disconnected, All tasks will be downloaded via Browser. Invalid URL will be ignored.",{type:"info",delay:6e3}),e.loadPromise=t.invokeBrowserDownload(s)):e.loadPromise=y(i,o):"torrent"===t.context.taskType?e.loadPromise=function(e,a){var i=[],s=angular.copy(t.context.options);b(s);for(const n of t.context.uploadFiles){x(),t.context.torrentTask.selectedFileIndex&&(s["select-file"]=t.context.torrentTask.selectedFileIndex);var o={content:n.base64Content,options:s};i.push(u.newTorrentTask(o,e,a))}return n.all(i)}(i,o):"metalink"===t.context.taskType&&(e.loadPromise=function(e,a){var i=[],s=angular.copy(t.context.options);b(s);for(const n of t.context.uploadFiles){var o={content:n.base64Content,options:s};i.push(u.newMetalinkTask(o,e,a))}return n.all(i)}(i,o))},t.invokeBrowserDownload=function(e){let n=function(){"all"===d.getDefaultTaskPage()?a.path("/all"):a.path("/downloading")};if(t.context.hasDownloadsPermission){let a=s.parseUrlsFromOriginInput(t.context.urls,"^(https?|ftp)://.+$");if(a.length>1)s.confirm("Download via Browser","Confirm to download multiple URLs from Browser simultaneously?","warning",(function(){let e={url:t.context.urls};chrome.runtime.sendMessage({type:"DOWNLOAD_VIA_BROWSER",data:e}).then(n)}),!1,null,(function(){e&&e.preventDefault()}));else if(1===a.length){let e={url:t.context.urls,filename:t.context.options.out};return chrome.runtime.sendMessage({type:"DOWNLOAD_VIA_BROWSER",data:e}).then(n)}}e&&e.preventDefault()},t.showExportCommandAPIModal=function(){t.context.exportCommandApiOptions={type:"new-task",data:k()}},t.setOption=function(e,a,n){""===a&&p.isOptionKeyRequired(e)?delete t.context.options[e]:t.context.options[e]=a,n.setReady()},t.urlTextboxKeyDown=function(e){if(d.getKeyboardShortcuts())return r.isCtrlEnterPressed(e)&&t.newTaskForm.$valid?(e.preventDefault&&e.preventDefault(),t.startDownload(),!1):void 0},t.getValidUrlsCount=function(){let e=0;if(t.context.showUrlFilter)for(const a of t.pendingTasks)t.filterTask(a)&&a.selected&&e++;else{var a=s.parseUrlsFromOriginInput(t.context.urls);e=a?a.length:0}return e},t.showUrlFilter=function(){t.context.showUrlFilter?(t.cancelUrlFilter(),e.searchContext.enabledInPage=!1):((!t.pendingTasks||"urls"===t.context.taskType&&t.newTaskForm.urls.$dirty)&&(t.pendingTasks=k()),e.searchContext.enabledInPage=!0,t.context.showUrlFilter=!0)},t.cancelUrlFilter=function(){t.context.showUrlFilter&&(t.context.showUrlFilter=!1,e.searchContext.enabledInPage=!1)},t.isAnyFileSelected=function(){if(!t.pendingTasks||!t.pendingTasks.length)return!1;for(var e=0;e=0&&(i.push(r),l.selected||(o=!1))}}for(r=0;r0&&"."===i.charAt(0)&&(i=i.substring(1)),g={extension:i,classified:!1,selected:!1,selectedCount:0,unSelectedCount:0},a[n]=g}o.selected?(g.selected=!0,g.selectedCount++):g.unSelectedCount++}var o={};for(var r in c)if(c.hasOwnProperty(r)){for(var l=c[r].name,d=c[r].extensions,u=[],p=0;p0&&(o[r]={name:l,extensions:u})}var f=[];for(var n in a){var g;if(a.hasOwnProperty(n))(g=a[n]).classified||f.push(g)}f.length>0&&(o.other={name:"Other",extensions:f}),t.context.fileExtensions=o,angular.element("#custom-choose-file-modal").modal()}},t.setSelectedExtension=function(e,a){if(t.pendingTasks&&t.pendingTasks.length){var n=t.pendingTasks;for(const o of n){var i="";"urls"===t.context.taskType?i=s.getFileExtensionFromUrl(o.urls[0]):"torrent"===t.context.taskType&&(i=s.getFileExtension(o.path)),i&&(i=i.toLowerCase()),i==="."+e&&(o.selected=a)}}},t.onTaskClick=function(e,a){let n=t.context.lastChecked,i=t.pendingTasks;if(e<0||!Array.isArray(i)||i.length<1)return;let s=i[e].selected=!i[e].selected;if(a.shiftKey&&-1!==n){let t=n=0)},e.keydownActions.selectAll=function(e){return e.preventDefault&&e.preventDefault(),t.$apply((function(){t.selectFiles("auto")})),!1},$("#custom-choose-file-modal").on("hide.bs.modal",(function(e){t.context.fileExtensions=null}));var x=function(){if(!t.context.torrentTask||!t.context.torrentTask.files)return;let e=[];for(const a of t.context.torrentTask.files)a&&a.selected&&!a.isDir&&e.push(a.index);e.length&&(t.context.torrentTask.selectedFileIndex=e.join(","))},T=function(e){if(e){var t=0,a=0;if(e.files&&e.files.length)for(var n=0;n0&&t===e.subDirs.length+e.files.length,e.partialSelected=t>0&&t0}},C=function(){if(t.context.torrentTask&&t.context.torrentTask.multiDir)for(var e=0;e0)for(var i=0;i0&&(d.processDownloadTasks(e.taskContext.list),!a)){var o=!1;for(i=0;i0}else t.data.message===r.Unauthorized.message&&s.cancel(f)}),t)};t.getOrderType=function(){return c.getDisplayOrder(p)},t.openDownloadFolder=function(e,i){if(e.stopPropagation(),0!==e.button||!i.files||i.files.length<1)return;let s="aria2://browse/path="+(i.files.length>1?i.dir+i.taskName:i.files[0].path);t.currentRpcProfile&&t.currentRpcProfile.openHandlerUrl&&(s=t.getOpenHandlerUrl(i.dir,i.taskName)),a.location.href=s,setTimeout((()=>{v||l.confirm("Install Aria2 Manager","Aria2 Manager is not installed, go to Alex Recommends channel for more information?","info",(function(){n.path("recommend").search("path","/posts/3").hash("usage")}))}),1200)},t.onTaskClick=function(t,a,n){if(t<0||!Array.isArray(n)||n.length<1)return;let i=n[t].gid,s=c.getKeyboardShortcuts(),o=a.originalEvent?.sourceCapabilities?.firesTouchEvents||!1;if(2==a.button&&e.taskContext.selected[i])return;if(!(o||0==a.button&&(!s&&!u.isModifierKeyPressed(a)||s&&u.isModifierKeyPressed(a)||a.shiftKey)))for(const t in e.taskContext.selected)t!==i&&(e.taskContext.selected[t]=!1);let r=e.taskContext.selected[i]=!e.taskContext.selected[i];if(a.shiftKey&&0==a.button&&-1!==h){let a=h0&&(f=s((function(){b(!0)}),c.getDownloadTaskRefreshInterval())),o.options(t,"task-list",{revertOnSpill:!0,moves:function(){return t.isSupportDragTask()}}),t.$on("task-list.drop-model",(function(e,t,a){var n=angular.element(t),i=n.attr("data-gid"),s=n.index();g=!0,d.changeTaskPosition(i,s,(function(){g=!1}),!0)})),angular.element(a).on("blur",(function(){v=!0})),t.$on("$destroy",(function(){g=!0,f&&s.cancel(f)})),e.keydownActions.selectAll=function(e){return e.preventDefault&&e.preventDefault(),t.$apply((function(){t.selectAllTasks()})),!1},e.keydownActions.delete=function(e){return e.preventDefault&&e.preventDefault(),t.$apply((function(){t.removeTasks(e)})),!1},e.loadPromise=b(!1),t.isWindows="Windows"==navigator?.userAgentData?.platform||"Win32"==navigator?.platform,t.isRpcLocalhost=c.isCurrentRpcLocalhost(),t.location=p}])}(),function(){"use strict";angular.module("ariaNg").controller("TaskDetailController",["$rootScope","$scope","$routeParams","$location","$interval","clipboard","aria2RpcErrors","ariaNgFileTypes","ariaNgCommonService","ariaNgSettingService","ariaNgMonitorService","aria2TaskService","aria2SettingService",function(e,t,a,n,i,s,o,r,l,c,d,u,p){var f=[{name:"overview",show:!0},{name:"pieces",show:!0},{name:"filelist",show:!0},{name:"btpeers",show:!0}],g=null,m=!1,h=null,v=!0,b=!1,k=function(){for(var e=[],t=0;t0&&t===e.subDirs.length+e.files.length,e.partialSelected=t>0&&t0}},R=function(){if(t.task&&t.task.multiDir)for(var e=0;e0,showPiecesInfo:"never"!==c.getShowPiecesInfoInTaskDetailPage(),showChooseFilesToolbar:!1,fileExtensions:[],collapsedDirs:{},btPeers:[],healthPercent:0,collapseTrackers:!0,statusData:d.getEmptyStatsData(a.gid),availableOptions:[],options:[]},t.changeTab=function(a){"settings"===a&&t.loadTaskOption(t.task),t.context.currentTab=a,e.skipLocationChange=!0,n.search("tab",a).replace()},e.swipeActions.extendLeftSwipe=function(){var e=k(),a=e.indexOf(t.context.currentTab);return a0&&(t.changeTab(e[a-1]),!0)},t.changeFileListDisplayOrder=function(e,a){if(!t.task||!t.task.multiDir){var n=l.parseOrderType(c.getFileListDisplayOrder()),i=l.parseOrderType(e);a&&i.type===n.type&&(i.reverse=!n.reverse),c.setFileListDisplayOrder(i.getValue())}},t.isSetFileListDisplayOrder=function(e){var t=l.parseOrderType(c.getFileListDisplayOrder()),a=l.parseOrderType(e);return t.equals(a)},t.getFileListOrderType=function(){return t.task&&t.task.multiDir?null:c.getFileListDisplayOrder()},t.showChooseFilesToolbar=function(){t.context.showChooseFilesToolbar?t.cancelChooseFiles():(m=!0,t.context.showChooseFilesToolbar=!0)},t.isAnyFileSelected=function(){if(!t.task||!t.task.files)return!1;for(var e=0;e=0&&(i.push(o),d.selected||(s=!1))}}for(o=0;o0&&"."===s.charAt(0)&&(s=s.substring(1)),m={extension:s,classified:!1,selected:!1,selectedCount:0,unSelectedCount:0},a[g]=m}i.selected?(m.selected=!0,m.selectedCount++):m.unSelectedCount++}}var o={};for(var c in r)if(r.hasOwnProperty(c)){var d=r[c].name,u=r[c].extensions,p=[];for(n=0;n0&&(o[c]={name:d,extensions:p})}var f=[];for(var g in a){var m;if(a.hasOwnProperty(g))(m=a[g]).classified||f.push(m)}f.length>0&&(o.other={name:"Other",extensions:f}),t.context.fileExtensions=o,angular.element("#custom-choose-file-modal").modal()}},t.setSelectedExtension=function(e,a){if(t.task&&t.task.files){for(var n=t.task.files,i=0;i span").text().trim(),t="";if(h.find(".setting-value > span").each((function(e,a){e>0&&(t+="\n"),t+=angular.element(a).text().trim()})),c.getIncludePrefixWhenCopyingFromTaskDetails()){var a=e+": "+t;s.copyText(a)}else s.copyText(t)}},b="settings"===t.context.currentTab&&!t.context.options.length,c.getDownloadTaskRefreshInterval()>0&&(g=i((function(){!t.task||"complete"!==t.task.status&&"error"!==t.task.status&&"removed"!==t.task.status?T(!0):i.cancel(g)}),c.getDownloadTaskRefreshInterval())),t.$on("$destroy",(function(){g&&i.cancel(g)})),t.onOverviewMouseDown=function(){angular.element('#overview-items .row[contextmenu-bind!="true"]').contextmenu({target:"#task-overview-contextmenu",before:function(e,t){h=t}}).attr("contextmenu-bind","true")},angular.element("#task-overview-contextmenu").on("hide.bs.context",(function(){h=null})),e.loadPromise=T(!1),t.isWindows="Windows"==navigator?.userAgentData?.platform||"Win32"==navigator?.platform,t.isRpcLocalhost=c.isCurrentRpcLocalhost(),t.backHome=function(){window.history.length>1?window.history.back():n.path("")}}])}(),function(){"use strict";angular.module("ariaNg").controller("AriaNgSettingsController",["$rootScope","$scope","$routeParams","$location","$window","$interval","$timeout","$filter","clipboard","ariaNgLanguages","ariaNgCommonService","ariaNgVersionService","ariaNgKeyboardService","ariaNgNotificationService","ariaNgLocalizationService","ariaNgLogService","ariaNgFileService","ariaNgSettingService","ariaNgMonitorService","ariaNgTitleService","aria2SettingService",function(e,t,a,n,i,s,o,r,l,c,d,u,p,f,g,m,h,v,b,k,y){var w=a.extendType,S=null,x=function(){return k.getFinalTitleByGlobalStat({globalStat:b.getCurrentGlobalStat(),currentRpcProfile:T()})},T=function(){if(!t.context||!t.context.rpcSettings||t.context.rpcSettings.length<1)return null;for(var e=0;e0?(t.changeRpcTab(e-1),!0):0===e&&(t.changeGlobalTab(),!0)},t.isSupportNotification=function(){return f.isSupportBrowserNotification()&&v.isCurrentRpcUseWebSocket(t.context.settings.protocol)},t.setLanguage=function(e){v.setLanguage(e)&&g.applyLanguage(e),t.updateTitlePreview()},t.setTheme=function(t){v.setTheme(t),e.setTheme(t)},t.setDebugMode=function(e){v.setDebugMode(e)},t.setTitle=function(e){v.setTitle(e)},t.setEnableBrowserNotification=function(e){v.setBrowserNotification(e),e&&!f.hasBrowserPermission()&&f.requestBrowserPermission((function(e){e.granted||(t.context.settings.browserNotification=!1,d.showError("You have disabled notification in your browser. You should change your browser's settings before you enable this function."))}))},t.setBrowserNotificationSound=function(e){v.setBrowserNotificationSound(e)},t.setBrowserNotificationFrequency=function(e){v.setBrowserNotificationFrequency(e)},t.setWebSocketReconnectInterval=function(e){C(),v.setWebSocketReconnectInterval(e)},t.setTitleRefreshInterval=function(e){C(),v.setTitleRefreshInterval(e)},t.setGlobalStatRefreshInterval=function(e){C(),v.setGlobalStatRefreshInterval(e)},t.setDownloadTaskRefreshInterval=function(e){C(),v.setDownloadTaskRefreshInterval(e)},t.setRPCListDisplayOrder=function(e){C(),v.setRPCListDisplayOrder(e)},t.setDefaultTaskPage=function(t){e.defaultTaskPage=t,v.setDefaultTaskPage(t)},t.setTaskListIndependentDisplayOrder=function(e){v.setTaskListIndependentDisplayOrder(e)},t.setKeyboardShortcuts=function(e){v.setKeyboardShortcuts(e)},t.setSwipeGesture=function(e){v.setSwipeGesture(e)},t.setDragAndDropTasks=function(e){v.setDragAndDropTasks(e)},t.setAfterCreatingNewTask=function(e){v.setAfterCreatingNewTask(e)},t.setRemoveOldTaskAfterRetrying=function(e){v.setRemoveOldTaskAfterRetrying(e)},t.setPauseAfterRetry=function(e){v.setPauseAfterRetry(e)},t.setConfirmTaskRemoval=function(e){v.setConfirmTaskRemoval(e)},t.setIncludePrefixWhenCopyingFromTaskDetails=function(e){v.setIncludePrefixWhenCopyingFromTaskDetails(e)},t.setShowPiecesInfoInTaskDetailPage=function(e){v.setShowPiecesInfoInTaskDetailPage(e)},t.setAfterRetryingTask=function(e){v.setAfterRetryingTask(e)},t.showImportSettingsModal=function(){t.context.importSettings=null,angular.element("#import-settings-modal").modal()},$("#import-settings-modal").on("hide.bs.modal",(function(e){t.context.importSettings=null})),t.openAriaNgConfigFile=function(){h.openFileContent({scope:t,fileFilter:".json",fileType:"text"},(function(e){t.context.importSettings=e.content}),(function(e){d.showError(e)}),angular.element("#import-file-holder"))},t.importSettings=function(e){var t=null;try{t=JSON.parse(e)}catch(e){return m.error("[AriaNgSettingsController.importSettings] parse settings json error",e),void d.showError("Invalid settings data format!")}if(!angular.isObject(t)||angular.isArray(t))return m.error("[AriaNgSettingsController.importSettings] settings json is not object"),void d.showError("Invalid settings data format!");t&&d.confirm("Confirm Import","Are you sure you want to import all settings?","warning",(function(){v.importAllOptions(t),i.location.reload()}))},t.showExportSettingsModal=function(){t.context.exportSettings=r("json")(v.exportAllOptions()),t.context.exportSettingsCopied=!1,angular.element("#export-settings-modal").modal()},$("#export-settings-modal").on("hide.bs.modal",(function(e){t.context.exportSettings=null,t.context.exportSettingsCopied=!1})),t.copyExportSettings=function(){l.copyText(t.context.exportSettings,{container:angular.element("#export-settings-modal")[0]}),t.context.exportSettingsCopied=!0},t.addNewRpcSetting=function(){C();var e=v.addNewRpcSetting();t.context.rpcSettings.push(e),t.changeRpcTab(t.context.rpcSettings.length-1)},t.updateRpcSetting=function(e,t){C(),"protocol"!==t||e[t]||(e[t]="http"),v.updateRpcSetting(e,t)},t.removeRpcSetting=function(e){var a=e.rpcAlias?e.rpcAlias:e.rpcHost+":"+e.rpcPort;d.confirm("Confirm Remove",'Are you sure you want to remove rpc setting "{rpcName}"?',"warning",(function(){C();var a=t.getCurrentRpcTabIndex(),n=t.context.rpcSettings.indexOf(e);v.removeRpcSetting(e),t.context.rpcSettings.splice(n,1),a>=t.context.rpcSettings.length?t.changeRpcTab(t.context.rpcSettings.length-1):a<=0||a<=n||t.changeRpcTab(a-1)}),!1,{textParams:{rpcName:a}})},t.showExportCommandAPIModal=function(e){t.context.exportCommandApiOptions={type:"setting",data:e}},t.setDefaultRpcSetting=function(e){e.isDefault||(v.setDefaultRpcSetting(e),i.location.reload())},t.resetSettings=function(){d.confirm("Confirm Reset","Are you sure you want to reset all settings?","warning",(function(){v.resetSettings(),i.location.reload()}))},t.clearHistory=function(){d.confirm("Confirm Clear","Are you sure you want to clear all settings history?","warning",(function(){y.clearSettingsHistorys(),i.location.reload()}))},t.resetAria2Settings=function(){d.confirm("Confirm Reset","Reset the current Aria2 settings (Will take effect after Aria2 restarts)?","warning",(function(){const e=v.getRpcOptions(),t=y.getDefaultOptions(Object.keys(e));y.setGlobalOptions(t,(function(){const e=v.getCurrentRpcDisplayName();f.notifyInPage("","settings are reset",{type:"success",contentPrefix:e+" "})})),v.resetRpcOptions()}))},e.loadPromise=o((function(){angular.element('[data-toggle="popover"]').popover()}),100)}])}(),function(){"use strict";angular.module("ariaNg").controller("Aria2SettingsController",["$rootScope","$scope","$location","ariaNgConstants","ariaNgCommonService","aria2SettingService","ariaNgSettingService","ariaNgLocalizationService",function(e,t,a,n,i,s,o,r){var l=a.path().substring(a.path().lastIndexOf("/")+1);t.context={availableOptions:function(e){var t=s.getAvailableGlobalOptionsKeys(e);if(t)return s.getSpecifiedOptions(t);i.showError("Type is illegal!")}(l),globalOptions:[]},t.setGlobalOption=function(e,t,a){return s.setGlobalOption(e,t,(function(n){n.success&&"OK"===n.data?(a.setSuccess(),o.setRpcOption(e,t)):a.setFailed(n.data.message)}),!0)},e.searchContext.enabledInPage=!0,t.filterOption=function(t){if(!(t&&angular.isObject(t)&&angular.isString(t.key)&&angular.isString(t.nameKey)))return!1;if(!e.searchContext||!e.searchContext.text)return!0;let a=!1;const n=e.searchContext.text.toLowerCase();return a|=t.key.toLowerCase().includes(n),a|=r.getLocalizedText(t.nameKey).includes(n),a},e.loadPromise=s.getGlobalOption((function(e){e.success&&(t.context.globalOptions=e.data)}))}])}(),function(){"use strict";angular.module("ariaNg").controller("Aria2StatusController",["$rootScope","$scope","$timeout","ariaNgCommonService","ariaNgSettingService","aria2SettingService",function(e,t,a,n,i,s){t.context={host:i.getCurrentRpcUrl(),serverStatus:null,isSupportReconnect:s.canReconnect()},t.reconnect=function(){!t.context.isSupportReconnect||"Disconnected"!==e.taskContext.rpcStatus&&"Waiting to reconnect"!==e.taskContext.rpcStatus||s.reconnect()},t.saveSession=function(){return s.saveSession((function(e){e.success&&"OK"===e.data&&n.showOperationSucceeded("Session has been saved successfully.")}))},t.shutdown=function(){n.confirm("Confirm Shutdown","Are you sure you want to shutdown aria2?","warning",(function(e){e&&e.success&&"OK"===e.data&&n.showOperationSucceeded("Aria2 has been shutdown successfully.")}),!0,null,null,(function(e){s.shutdown((function(t){e(t)}))}))},e.$watch("taskContext.rpcStatus",(function(e){"Connected"===e?(s.getAria2Status((function(e){e.success&&(t.context.serverStatus=e.data)})),s.getSessionInfo((function(e){e.success&&(t.context.sessionInfo=e.data)}))):(t.context.serverStatus=null,t.context.sessionInfo=null)})),e.loadPromise=a((function(){}),100)}])}(),function(){"use strict";angular.module("ariaNg").controller("RecommendController",["$rootScope","$scope","$location","$sce","aria2eConstants","ariaNgSettingService",function(e,t,a,n,i,s){let o=a.search().path||"",r=a.hash()?"#"+a.hash():"",l=s.getLanguage()||"en";l="zh_Hans"==l?"":"zh_Hant"==l?"/zh-tw":"/en",t.recommendUrl=n.trustAsResourceUrl(i.recommendOrigin+l+o+r);var c=s.getRecCount();e.recTotal>c&&s.setRecCount(e.recTotal),e.hasNewRec=!1}])}(),function(){"use strict";angular.module("ariaNg").directive("ngAutoFocus",["$timeout",function(e){return{restrict:"A",link:function(t,a){e((function(){a[0].focus()}))}}}])}(),function(){"use strict";angular.module("ariaNg").directive("ngPieceBar",["aria2TaskService",function(e){return{restrict:"E",template:'',replace:!0,scope:{bitField:"=",pieceCount:"=",color:"@"},link:function(t,a){var n=function(){var n=a[0],i=e.getCombinedPieces(t.bitField,t.pieceCount),s=n.getContext("2d");s.fillStyle=t.color||"#000",s.clearRect(0,0,n.width,n.height);for(var o=0,r=n.width,l=n.height,c=0;c',replace:!0,scope:{bitField:"=",pieceCount:"="},link:function(t,a){var n=[],i=[],s=function(){i=e.getPieceStatus(t.bitField,t.pieceCount),n.length=0,a.empty();for(var s=Math.max(1,i.length),o=0;o');n.push(r),a.append(r)}};t.$watch("bitField",(function(){!function(){var a=e.getPieceStatus(t.bitField,t.pieceCount);if(i&&a&&i.length===a.length&&a.length===n.length){for(var o=0;o",scope:{options:"=ngData",theme:"=ngTheme"},link:function(a,n,i){angular.extend({},i);var s=n.find("div"),o=n.parent().height(),r=parseInt(i.height)||o||200;s.css("height",r+"px");var l=echarts.init(s[0],t.get(a.theme)),c=function(){l.resize(),a.$apply()};angular.element(e).on("resize",c),a.$watch("options",(function(e){e&&function(e){l.setOption(e)}(e)}),!0),a.$on("$destroy",(function(){l&&!l.isDisposed()&&l.dispose(),angular.element(e).off("resize",c)}))}}}]).directive("ngPopChart",["$window","chartTheme",function(e,t){return{restrict:"A",scope:{options:"=ngData",theme:"=ngTheme"},link:function(e,a,n){var i={ngPopoverClass:"",ngContainer:"body",ngTrigger:"click",ngPlacement:"top"};angular.extend(i,n);var s=null,o='
';a.popover({container:i.ngContainer,content:'
'+o+"
",html:!0,placement:i.ngPlacement,template:'',trigger:i.ngTrigger}).on("shown.bs.popover",(function(){var a=angular.element(".chart-pop"),i=a.parent().height();a.empty();var o=parseInt(n.height)||i||200;a.css("height",o+"px"),s=echarts.init(a[0],t.get(e.theme))})).on("hide.bs.popover",(function(){s&&!s.isDisposed()&&s.dispose()})).on("hidden.bs.popover",(function(){angular.element(".chart-pop").empty().append(o)}));e.$watch("options",(function(e){e&&function(e){s&&!s.isDisposed()&&s.setOption(e)}(e)}),!0)}}}]).factory("chartTheme",["chartDefaultTheme","chartDarkTheme",function(e,t){var a={defaultTheme:e,darkTheme:t};return{get:function(e){return"default"!==e&&a[e+"Theme"]?angular.extend({},a.defaultTheme,a[e+"Theme"]):a.defaultTheme}}}]).factory("chartDefaultTheme",(function(){return{color:["#74a329","#3a89e9"],legend:{top:"bottom"},toolbox:{show:!1},tooltip:{show:!0,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:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"#f3f3f3"}}},valueAxis:{axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"#f3f3f3"}},splitArea:{show:!1}},line:{itemStyle:{normal:{lineStyle:{width:2,type:"solid"}}},smooth:!0,symbolSize:6},textStyle:{fontFamily:"Hiragino Sans GB, Microsoft YaHei, STHeiti, Helvetica Neue, Helvetica, Arial, sans-serif"},animationDuration:500}})).factory("chartDarkTheme",(function(){return{tooltip:{show:!0,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:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"#333"}}},valueAxis:{axisLine:{show:!1},axisTick:{show:!1},axisLabel:{show:!0,textStyle:{color:"#eee"}},splitLine:{lineStyle:{color:"#333"}},splitArea:{show:!1}}}}))}(),function(){"use strict";angular.module("ariaNg").directive("ngDragenter",(function(){return{restrict:"A",link:function(e,t,a){t.on("dragenter",(function(n){e.$eval(a.ngDragenter,{$event:n,element:t})}))}}})),angular.module("ariaNg").directive("ngDragover",(function(){return{restrict:"A",link:function(e,t,a){t.on("dragover",(function(n){e.$eval(a.ngDragover,{$event:n,element:t})}))}}})),angular.module("ariaNg").directive("ngDragleave",(function(){return{restrict:"A",link:function(e,t,a){t.on("dragleave",(function(n){e.$eval(a.ngDragleave,{$event:n,element:t})}))}}})),angular.module("ariaNg").directive("ngDrop",(function(){return{restrict:"A",link:function(e,t,a){t.on("drop",(function(n){e.$eval(a.ngDrop,{$event:n,element:t})}))}}}))}(),function(){"use strict";angular.module("ariaNg").directive("ngExportCommandApiDialog",["clipboard","ariaNgCommonService",function(e,t){return{restrict:"E",templateUrl:"views/export-command-api-dialog.html",replace:!0,scope:{options:"="},link:function(a,n,i){a.context={trueFalseOptions:[{name:"Enabled",value:!0},{name:"Disabled",value:!1}],baseUrl:t.getFullPageUrl(),commandAPIUrl:null,pauseOnAdded:!0,isCopied:!1};var s=function(){var e=a.context.baseUrl;return e.indexOf("#")>=0&&(e=e.substring(0,e.indexOf("#"))),e},o=function(e){var n=s()+"#!/new/task?url="+t.base64UrlEncode(e.urls[0]);if(a.context.pauseOnAdded&&(n+="&pause=true"),e.options)for(var i in e.options)e.options.hasOwnProperty(i)&&(n+="&"+i+"="+e.options[i]);return n};a.generateCommandAPIUrl=function(){var e,n;a.options&&("new-task"===a.options.type?a.context.commandAPIUrl=function(e){for(var t="",a=0;a0&&(t+="\n"),t+=o(e[a]);return t}(a.options.data):"setting"===a.options.type&&(a.context.commandAPIUrl=(e=a.options.data,n=s()+"#!/settings/rpc/set?protocol="+e.protocol+"&host="+e.rpcHost+"&port="+e.rpcPort+"&interface="+e.rpcInterface,e.secret&&(n+="&secret="+t.base64UrlEncode(e.secret)),n)),a.context.isCopied=!1)},a.copyCommandAPI=function(){e.copyText(a.context.commandAPIUrl,{container:angular.element(n)[0]}),a.context.isCopied=!0},angular.element(n).on("hidden.bs.modal",(function(){a.$apply((function(){a.options=null,a.context.commandAPIUrl=null,a.context.isCopied=!1}))})),a.$watch("options",(function(e){e&&(a.generateCommandAPIUrl(),a.context.isCopied=!1,angular.element(n).modal("show"))}),!0)}}}])}(),function(){"use strict";angular.module("ariaNg").directive("ngIndeterminate",(function(){return{restrict:"A",scope:{indeterminate:"=ngIndeterminate"},link:function(e,t){e.$watch("indeterminate",(function(){t[0].indeterminate="true"===e.indeterminate||!0===e.indeterminate}))}}}))}(),angular.module("inputDropdown",[]).directive("inputDropdown",[function(){return{restrict:"E",require:"?ngModel",scope:{defaultDropdownItems:"=",selectedItem:"=",allowCustomInput:"=",inputRequired:"=",disabled:"=",inputName:"@",inputClassName:"@",inputPlaceholder:"@",onlyShowNonEmptyDropdown:"@",filterListMethod:"&",valueChangedMethod:"&",itemSelectedMethod:"&",removeItemMethod:"&"},template:'
  • {{item.readableName}}{{item}}
',controller:["$scope",function(e){this.getSelectedItem=function(){return e.selectedItem},this.isRequired=function(){return e.inputRequired},this.customInputAllowed=function(){return e.allowCustomInput},this.getInput=function(){return e.inputValue}}],link:function(e,t,a,n){var i=!1,s=t.find("input").isolateScope();e.activeItemIndex=0,e.inputValue="",e.dropdownVisible=!1,e.dropdownItems=e.defaultDropdownItems||[],n&&e.$watch((function(){return n.$viewValue}),(function(t){e.inputValue=t})),e.$watch("dropdownItems",(function(t,a){angular.equals(t,a)||(e.allowCustomInput?e.setInputActive():e.setActive(0))})),e.$watch("selectedItem",(function(t,a){s.updateInputValidity(),angular.equals(t,a)||t&&(e.inputValue="string"==typeof t?t:t.readableName)})),e.setInputActive=function(){e.setActive(-1)},e.setActive=function(t){e.activeItemIndex=t},e.inputChange=function(){if(e.selectedItem=null,o(),u(e.inputValue,"input"),e.inputValue){if(e.allowCustomInput&&s.updateInputValidity(),e.filterListMethod){var t=e.filterListMethod({userInput:e.inputValue});t&&t.then((function(t){e.dropdownItems=t}))}}else e.dropdownItems=e.defaultDropdownItems||[]},e.inputFocus=function(){e.allowCustomInput?e.setInputActive():e.setActive(0),o()},e.inputBlur=function(e){i?i=!1:r()},e.dropdownPressed=function(){i=!0},e.selectItem=function(t){e.selectedItem=t,r(),u(t,"select"),e.itemSelectedMethod&&e.itemSelectedMethod({item:t})},e.removeItem=function(t,a){if(e.removeItemMethod&&e.dropdownItems.length>0){let n=e.dropdownItems.indexOf(a);e.dropdownItems.splice(n,1),e.removeItemMethod({$event:t,item:a})}};var o=function(){(!e.onlyShowNonEmptyDropdown||e.dropdownItems&&e.dropdownItems.length)&&(e.dropdownVisible=!0)},r=function(){e.dropdownVisible=!1},l=function(){var t=e.activeItemIndex-1;t>=0?e.setActive(t):e.allowCustomInput&&e.setInputActive()},c=function(){var t=e.activeItemIndex+1;t=0&&e.activeItemIndex0&&-1!==e.activeItemIndex&&(t.preventDefault(),e.$apply(d));break;case 9:e.dropdownVisible&&e.dropdownItems&&e.dropdownItems.length>0&&-1!==e.activeItemIndex&&e.$apply(d)}}))}}}]),angular.module("inputDropdown").directive("inputDropdownValidator",(function(){return{require:["^inputDropdown","ngModel"],restrict:"A",scope:{},link:function(e,t,a,n){var i=n[0],s=n[1];e.updateInputValidity=function(){var e=i.getSelectedItem(),t=!1;i.isRequired()?(i.customInputAllowed()&&i.getInput()||e)&&(t=!0):t=!0,s.$setValidity("itemSelectedValid",t)}}}})),function(){"use strict";angular.module("ariaNg").directive("ngPlaceholder",(function(){return{restrict:"A",scope:{placeholder:"=ngPlaceholder"},link:function(e,t){e.$watch("placeholder",(function(){t[0].placeholder=e.placeholder}))}}}))}(),function(){"use strict";angular.module("ariaNg").directive("ngSetting",["$timeout","$q","ariaNgConstants","ariaNgLocalizationService","ariaNgKeyboardService","aria2SettingService",function(e,t,a,n,i,s){return{restrict:"E",templateUrl:"views/setting.html",require:"?ngModel",replace:!0,scope:{option:"=",ngModel:"=",enhanced:"<",defaultValue:"=?",fixedValue:"=?",onChangeValue:"&"},link:function(o,r,l,c){var d=null,u={showPlaceholderCount:!1,deleteKeyAlwaysChangeValue:!1,lazySaveTimeout:o.option.lazySaveTimeout||a.lazySaveTimeout,errorTooltipPlacement:"top",errorTooltipDelay:a.errorTooltipDelay};angular.extend(u,l);var p,f=function(){o.option&&o.option.showHistory&&(o.history=s.getSettingHistory(o.option.key))},g=function(){angular.element(r).tooltip("dispose")},m=function(t,a,i){t&&e((function(){var e=o.optionStatus.getValue();"failed"!==e&&"error"!==e||angular.element(r).tooltip({animation:!1,title:n.getLocalizedText(t,i),trigger:"focus",placement:u.errorTooltipPlacement,container:r,template:''}).tooltip("show")}),u.errorTooltipDelay)},h=function(e,t,a){if(!e||!t||!angular.isString(e))return 0;var n=e.split(t),i=n.length;if(a)for(var s=0;so.option.max)return void o.optionStatus.setError("Input number is above max value!",{value:o.option.max})}if(""===t||!angular.isDefined(o.option.pattern)||new RegExp(o.option.pattern).test(t)){var i={key:o.option.key,value:t,optionStatus:o.optionStatus},s=function(){o.optionStatus.setSaving(),o.onChangeValue(i)};o.onChangeValue&&(a?(o.optionStatus.setPending(),d=e((function(){s()}),u.lazySaveTimeout)):s())}else o.optionStatus.setError("Input value is invalid!")}else o.optionStatus.setError("Input number is invalid!");else o.optionStatus.setError("Input number is invalid!")},o.inputKeyUp=function(e,t){if((!0===u.deleteKeyAlwaysChangeValue||"true"===u.deleteKeyAlwaysChangeValue)&&(i.isBackspacePressed(e)||i.isDeletePressed(e))){if(o.optionValue&&""!==o.optionValue)return;o.changeValue("",t)}},o.filterHistory=function(e){var a=[];if(o.history&&e)for(var n=0;n0;i.$setValidity("invalidUrls",s)}}))}}}])}(),function(){"use strict";angular.module("ariaNg").directive("ngBlobDownload",["ariaNgFileService",function(e){return{restrict:"A",scope:{ngBlobDownload:"=ngBlobDownload",ngFileName:"@",ngContentType:"@"},link:function(t,a){t.$watch("ngBlobDownload",(function(n){n&&e.saveFileContent(n,a,{fileName:t.ngFileName,contentType:t.ngContentType})}))}}}])}(),function(){"use strict";angular.module("ariaNg").filter("dateDuration",["moment",function(e){return function(t,a,n){var i=e.duration(t,a);return e.utc(i.asMilliseconds()).format(n)}}])}(),function(){"use strict";angular.module("ariaNg").filter("fileOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a)||!n)return a;var i=t.parseOrderType(n);return null===i?a:"index"===i.type?e("orderBy")(a,["index"],i.reverse):"name"===i.type?e("orderBy")(a,["fileName"],i.reverse):"size"===i.type?e("orderBy")(a,["length"],i.reverse):"percent"===i.type?e("orderBy")(a,["completePercent"],i.reverse):"selected"===i.type?e("orderBy")(a,["selected"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("logOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a)||!n)return a;var i=t.parseOrderType(n);return null===i?a:"time"===i.type?e("orderBy")(a,["time"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("longDate",["ariaNgCommonService","ariaNgLocalizationService",function(e,t){return function(a){var n=t.getLongDateFormat();return e.formatDateTime(a,n)}}])}(),function(){"use strict";angular.module("ariaNg").filter("peerOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a))return a;var i=t.parseOrderType(n);return null===i?a:"address"===i.type?e("orderBy")(a,["ip","port"],i.reverse):"client"===i.type?e("orderBy")(a,["client.name","client.version"],i.reverse):"percent"===i.type?e("orderBy")(a,["completePercent"],i.reverse):"dspeed"===i.type?e("orderBy")(a,["downloadSpeed"],i.reverse):"uspeed"===i.type?e("orderBy")(a,["uploadSpeed"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("percent",["$filter",function(e){return function(t,a){var n=Math.pow(10,a),i=parseInt(t*n)/n;return e("number")(i,a)}}])}(),function(){"use strict";angular.module("ariaNg").filter("reverse",(function(){return function(e){return e?e.slice().reverse():e}}))}(),function(){"use strict";angular.module("ariaNg").filter("taskOrderBy",["$filter","ariaNgCommonService",function(e,t){return function(a,n){if(!angular.isArray(a))return a;var i=t.parseOrderType(n);return null===i?a:"name"===i.type?e("orderBy")(a,["taskName"],i.reverse):"size"===i.type?e("orderBy")(a,["totalLength"],i.reverse):"percent"===i.type?e("orderBy")(a,["completePercent"],i.reverse):"remain"===i.type?e("orderBy")(a,["idle","remainTime","remainLength"],i.reverse):"dspeed"===i.type?e("orderBy")(a,["downloadSpeed"],i.reverse):"uspeed"===i.type?e("orderBy")(a,["uploadSpeed"],i.reverse):"default"===i.type?e("orderBy")(a,["groupIndex"],i.reverse):a}}])}(),function(){"use strict";angular.module("ariaNg").filter("taskStatus",(function(){return function(e,t){return e?"active"===e.status?e.verifyIntegrityPending?"Pending Verification":e.verifiedLength?e.verifiedPercent?"format.task.verifying-percent":"Verifying":!0===e.seeder||"true"===e.seeder?"Seeding":"Downloading":t||"waiting"!==e.status?t||"paused"!==e.status?t||"complete"!==e.status?t||"error"!==e.status?t||"removed"!==e.status?"":"Removed":e.errorCode?"format.task.error-occurred":"Error Occurred":"Completed":"Paused":"Waiting":""}}))}(),function(){"use strict";angular.module("ariaNg").filter("groupTask",(function(){return function(e){if(!angular.isArray(e))return e;let t=-1;for(const a in e){switch(e[a].status){case"active":t=1;break;case"waiting":t=2;break;case"paused":t=3;break;case"error":t=4;break;case"complete":t=5;break;case"removed":t=6;break;default:t=10}e[a].groupIndex=t}return e}}))}(),function(){"use strict";angular.module("ariaNg").filter("timeDisplayName",["ariaNgCommonService","ariaNgLocalizationService",function(e,t){return function(a,n){if(!a)return t.getLocalizedText(n);var i=e.getTimeOption(a);return t.getLocalizedText(i.name,{value:i.value})}}])}(),function(){"use strict";angular.module("ariaNg").filter("readableVolume",["$filter",function(e){var t=["B","KB","MB","GB"];return function(a,n){var i=t[0],s=2,o=!1;angular.isNumber(n)?s=n:"auto"===n&&(o=!0),a||(a=0),angular.isNumber(a)||(a=parseInt(a));for(var r=1;r=1024;r++)a/=1024,i=t[r];return o&&(s=function(e){return e<1?2:e<10?1:0}(a)),(a=e("number")(a,s))+" "+i}}])}(),function(){"use strict";angular.module("ariaNg").factory("SweetAlert",(function(){return{swal:function(e,t){Swal.fire(e).then((e=>t(e)))},close:function(){Swal.close()}}}))}(),function(){"use strict";angular.module("ariaNg").provider("ariaNgAssetsCacheService",[function(){var e={},t="languages.";this.getLanguageAsset=function(a){return function(t){for(var a=t.split("."),n=e,i=0;i0&&"\\"!==e.charAt(t-1)&&"="===e.charAt(t))return{key:e.substring(0,t).replace("\\=","="),value:e.substring(t+1,e.length).replace("\\=","=")};return{value:e}},c=function(e,t){var a=e;if(!t)return a;if("["===t[0]&&"]"===t[t.length-1]&&(t=t.substring(1,t.length-1)),"global"===t)return a;for(var n=t.split("."),i=0;ie.toString(16).padStart(2,"0"))).join(""),length:s-t+o}}};return{getFullPageUrl:function(){return e.location.protocol+"//"+e.location.host+e.location.pathname+(e.location.search?e.location.search:"")},base64Encode:function(e){return n.encode(e)},base64Decode:function(e){return n.decode(e)},base64UrlEncode:function(e){return n.urlencode(e)},base64UrlDecode:function(e){return n.urldecode(e)},generateUniqueId:function(){var e=o.appPrefix+"_"+Math.round((new Date).getTime()/1e3)+"_"+Math.random();return this.base64Encode(e)},showDialog:function(e,t,n,i,o){o||(o={}),e&&(e=r.getLocalizedText(e)),t&&(t=r.getLocalizedText(t,o.textParams)),o.confirmButtonText=r.getLocalizedText("OK"),function(e,t,n,i,o){a((function(){s.swal({title:e,text:t,icon:n,reverseButtons:!0,inputAutoFocus:!1,confirmButtonText:o&&o.confirmButtonText||null},(function(){i&&i()}))}),100)}(e,t,n,i,o)},showInfo:function(e,t,a,n){this.showDialog(e,t,"info",a,n)},showError:function(e,t,a){this.showDialog("Error",e,"error",t,a)},showOperationSucceeded:function(e,t){this.showDialog("Operation Succeeded",e,"success",t)},confirm:function(e,t,a,n,i,o,l,c){o||(o={}),e&&(e=r.getLocalizedText(e)),t&&(t=r.getLocalizedText(t,o.textParams)),o.inputPlaceholder&&(o.inputPlaceholder=r.getLocalizedText(o.inputPlaceholder)),o.confirmButtonText=r.getLocalizedText("OK"),o.cancelButtonText=r.getLocalizedText("Cancel"),function(e,t,a,n,i,o,r,l){var c={title:e,text:t,icon:a,showCancelButton:!0,reverseButtons:!0,showLoaderOnConfirm:!!i,preConfirm:l?function(){return new Promise(l)}:null,inputAutoFocus:!1,input:o&&o.input||null,inputValue:o&&o.inputValue||null,inputPlaceholder:o&&o.inputPlaceholder||null,confirmButtonText:o&&o.confirmButtonText||null,cancelButtonText:o&&o.cancelButtonText||null};"warning"===a&&(c.confirmButtonColor="#F39C12"),s.swal(c,(function(e){e.isConfirmed?n&&n(e.value):r&&r(e.value)}))}(e,t,a,n,i,o,l,c)},closeAllDialogs:function(){s.close()},getFileExtension:function(e){return!e||e.lastIndexOf(".")<0?e:e.substring(e.lastIndexOf("."))},getFileExtensionFromUrl:function(e){let t=".";try{let a=new URL(e).pathname.split("/").pop();t+=a.includes(".")?a.split(".").pop():""}catch(e){t="."}return t},parseUrlsFromOriginInput:function(e,t){if(!e)return[];for(var a=e.split("\n"),n=[],i=0;i2?a.slice(-t-1,-1).join("/")+"/":""},parseTorrentInfo:function(e){return c(new Uint8Array(e))},base64ToArrayBuffer:function(e){return function(e){if(!angular.isString(e))return null;const t=e.split(",")[1]||e,a=atob(t),n=a.length,i=new ArrayBuffer(n),s=new Uint8Array(i);for(let e=0;e10&&e.splice(0,e.length-10),i.set(a.browserNotificationHistoryStorageKey,e)}},p=function(t,s){e.Notification&&c(d())&&(function(){if(!r.getBrowserNotificationFrequency()||"unlimited"===r.getBrowserNotificationFrequency())return!1;var e=i.get(a.browserNotificationHistoryStorageKey)||[];if(!angular.isArray(e))return!1;if(e.length<1)return!1;var t=null,s=!1;if("high"===r.getBrowserNotificationFrequency()){if(e.length<10)return!1;t=e[e.length-10].time,s=n.isUnixTimeAfter(t,"-1","minute")}else"middle"===r.getBrowserNotificationFrequency()?(t=e[e.length-1].time,s=n.isUnixTimeAfter(t,"-1","minute")):"low"===r.getBrowserNotificationFrequency()&&(t=e[e.length-1].time,s=n.isUnixTimeAfter(t,"-5","minute"));return s&&o.debug("[ariaNgNotificationService.isReachBrowserNotificationFrequencyLimit] reach frequency limit"+(t?", the oldest time is "+t:"")),s}()||(chrome?.runtime?.id?(s={type:"basic",iconUrl:"tileicon.png",title:t,silent:s.silent??!1,message:s.body},u(),chrome.notifications.create(s)):(s=angular.extend({icon:"tileicon.png"},s),u(),new e.Notification(t,s))))};return{isSupportBrowserNotification:function(){return l},hasBrowserPermission:function(){return!!l&&c(d())},requestBrowserPermission:function(t){l&&function(t){e.Notification&&e.Notification.requestPermission((function(e){t&&t({granted:c(e),permission:e})}))}((function(e){e.granted||r.setBrowserNotification(!1),t&&t(e)}))},notifyViaBrowser:function(e,t,a){return a||(a={}),e&&(e=s.getLocalizedText(e,a.titleParams)),t&&(t=s.getLocalizedText(t,a.contentParams)),function(e,t,a){a||(a={}),a.body=t,r.getBrowserNotificationSound()||(a.silent=!0),l&&r.getBrowserNotification()&&p(e,a)}(e,t,a)},notifyTaskComplete:function(e){this.notifyViaBrowser("Download Completed",e&&e.taskName?e.taskName:"")},notifyBtTaskComplete:function(e){this.notifyViaBrowser("BT Download Completed",e&&e.taskName?e.taskName:"")},notifyTaskError:function(e){this.notifyViaBrowser("Download Error",e&&e.taskName?e.taskName:"")},notifyInPage:function(e,a,n){return n||(n={}),e&&(e=s.getLocalizedText(e,n.titleParams)),a&&(a=s.getLocalizedText(a,n.contentParams),n.contentPrefix&&(a=n.contentPrefix+a)),function(e,a,n){return n||(n={}),a?(n.title=e,n.message=a):n.message=e,n.type&&t[n.type]||(n.type="primary"),n.positionY||(n.positionY="top"),t[n.type](n)}(e,a,n)},clearNotificationInPage:function(){t.clearAll()}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgLocalizationService",["$translate","amMoment",function(e,t){return{applyLanguage:function(a){return e.use(a),t.changeLocale(a),!0},getLocalizedText:function(t,a){return e.instant(t,a)},getLongDateFormat:function(){return this.getLocalizedText("format.longdate")}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgLogService",["$log","ariaNgConstants",function(e,t){var a={DEBUG:1,INFO:2,WARN:3,ERROR:4},n=0,i=!1,s=[],o=function(e,a,o){i&&(s.length>=t.cachedDebugLogsLimit&&s.shift(),s.push(function(e,t,a){return{id:++n,time:new Date,level:t,content:e,attachment:a}}(e,a,o)))};return{setEnableDebugLog:function(e){i=e},compareLogLevel:function(e,t){var n=a[e],i=a[t];return n||(n=0),i||(i=0),n>i?1:n=0&&n.push(a[i]);return n}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgFileService",["$window",function(e){var t=!!e.FileReader,a=!!e.Blob;return{isSupportFileReader:function(){return t},isSupportBlob:function(){return a},openFileContent:function(e,a,n,i){t?(e=angular.extend({scope:null,fileFilter:null,fileType:"binary",successCallback:a,errorCallback:n},e),i&&i.change||(i=angular.element('')),i.data("options",e),e.fileFilter&&i.attr("accept",e.fileFilter),i.val(""),"true"!==i.attr("data-ariang-file-initialized")&&i.change((function(){if(this.files&&!(this.files.length<1)){var e=i.data("options"),t=function(e){var t=[];if(!e||e.length<1)return t.push(/.+$/),t;for(var a=e.split(","),n=0;n')),t.attr("href",s),n.fileName&&t.attr("download",n.fileName),n.autoTrigger&&t.trigger("click"),n.autoRevoke&&URL.revokeObjectURL(s)}}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgSettingService",["$window","$location","$filter","ariaNgConstants","ariaNgDefaultOptions","ariaNgLanguages","ariaNgCommonService","ariaNgLogService","ariaNgStorageService",function(e,t,a,n,i,s,o,r,l){var c={localStorage:l.isLocalStorageSupported(),cookies:l.isCookiesSupported()},d=c.localStorage||c.cookies,u=!!e.matchMedia&&e.matchMedia("(prefers-color-scheme: dark)")&&"not all"!==e.matchMedia("(prefers-color-scheme: dark)").media&&angular.isFunction(e.matchMedia("(prefers-color-scheme: dark)").addEventListener),p=[],f=!1,g={debugMode:!1},m=function(e){for(var t in s)if(s.hasOwnProperty(t)){if(t.toLowerCase()===e.toLowerCase())return t;var a=s[t].aliases;if(angular.isArray(a)&&!(a.length<1))for(var n=0;n1){var a,n=t.split("-");if(t=n[0]+"-"+n[1],!s[t])(a=m(t))&&(t=a)}return s[t]?(r.info('[ariaNgSettingService] use browser language "'+t+'" as current language'),t):(r.info('[ariaNgSettingService] browser language "'+t+'" not support, use default language'),i.language)},v=function(e){return l.set(n.optionStorageKey,e)},b=function(){var e,t=l.get(n.optionStorageKey);if(t&&!s[t.language]&&(t.language=(e=t.language,m(e)||h())),!t){if((t=angular.extend({},i)).language=h(),t.rpcHost||w(t),angular.isArray(t.extendRpcServers))for(var a=0;a"+n.getLocalizedText("No Data")+"";var i=a.getLongTimeFromUnixTime(t[0].name),s=e("readableVolume")(t[0].value)+"/s";return'
'+i+'
'+(e("readableVolume")(t[1].value)+"/s")+'
'+s+"
"}},xAxis:{data:[],type:"category",boundaryGap:!1,axisLabel:{show:!1}},yAxis:{type:"value",axisLabel:{formatter:function(t){return e("readableVolume")(t,"auto")}}},series:[{type:"line",areaStyle:{normal:{opacity:.1}},smooth:!0,symbolSize:6,showAllSymbol:!1,data:[]},{type:"line",areaStyle:{normal:{opacity:.1}},smooth:!0,symbolSize:6,showAllSymbol:!1,data:[]}]},o=i.xAxis.data,l=i.series[0].data,c=i.series[1].data,d=0;d=r(e)&&(n.shift(),i.shift(),o.shift()),n.push(t.time),i.push(t.uploadSpeed),o.push(t.downloadSpeed)}(e,t)},getStatsData:function(e){return c(e)||l(e),function(e){return s[e]}(e)},getEmptyStatsData:function(e){return c(e)&&function(e){delete s[e]}(e),this.getStatsData(e)},recordGlobalStat:function(e){this.recordStat(o,e),i=e},getGlobalStatsData:function(){return this.getStatsData(o)},getCurrentGlobalStat:function(){return i}}}])}(),function(){"use strict";angular.module("ariaNg").factory("ariaNgTitleService",["$filter","ariaNgConstants","ariaNgLocalizationService","ariaNgSettingService",function(e,t,a,n){var i=function(e){if(!e)return{};for(var t=e.substring(2,e.length-1).split(":"),a={oldValue:e},n=1;n0)for(var r=0;r0&&(n+="&"),(angular.isObject(s)||angular.isArray(s))&&(s=angular.toJson(s),s=a.base64Encode(s),s=encodeURIComponent(s)),n+=i+"="+s)}return n.length<1?e:(n=e.indexOf("?")<0?"?"+n:"&"+n,e+n)}(l.url,n.requestBody)),r)for(var c=r.split("\n"),d=0;d0?e.params[0]:null)}}(t))}else e.request&&function(e){var t=angular.fromJson(e);if(t){var a=t.id;if(a){var n=c[a];if(n){var i=n.context;n.deferred.reject({success:!1,context:i}),i.errorCallback&&(s.debug("[aria2WebSocketRpcService.processRequestFailed] "+(i&&i.requestBody&&i.requestBody.method?i.requestBody.method+" ":"")+"request failed"),i.errorCallback(i.id,{message:"Cannot connect to aria2!"})),delete c[a]}}}}(e.request)})),r.onOpen((function(t){s.debug("[aria2WebSocketRpcService.onOpen] websocket is opened",t),e&&e.connectionSuccessCallback&&e.connectionSuccessCallback({rpcUrl:o})})),r.onClose((function(t){for(var a in s.warn("[aria2WebSocketRpcService.onClose] websocket is closed",t),c)if(c.hasOwnProperty(a)){var n=c[a];n?(n.deferred.reject({success:!1,context:n.context}),s.debug("[aria2WebSocketRpcService.socketClient.onClose] reject old request",n.context),n.context.errorCallback(n.context.id,{message:"Cannot connect to aria2!"}),delete c[a]):delete c[a]}var r=i.getWebSocketReconnectInterval()>0;r&&f(e),r&&e&&e.connectionWaitingToReconnectCallback?e.connectionWaitingToReconnectCallback({rpcUrl:o}):e&&e.connectionFailedCallback&&e.connectionFailedCallback({rpcUrl:o})}))}catch(e){return{success:!1,error:"Cannot initialize WebSocket!",exception:e}}return{success:!0,instance:r}},p=function(e){e&&r&&(e.connectionReconnectingCallback&&e.connectionReconnectingCallback({rpcUrl:o}),r.reconnect())},f=function(e){l?s.warn("[aria2WebSocketRpcService.planToReconnect] another reconnection is pending"):(l=a((function(){return null==r?(s.warn("[aria2WebSocketRpcService.planToReconnect] websocket is null"),void(l=null)):0===r.readyState||1===r.readyState?(s.warn("[aria2WebSocketRpcService.planToReconnect] websocket current state is already "+r.readyState),void(l=null)):(p(e),void(l=null))}),i.getWebSocketReconnectInterval()),s.debug("[aria2WebSocketRpcService.planToReconnect] next reconnection is pending in "+i.getWebSocketReconnectInterval()+"ms"))};return{request:function(t){if(t){var a=u({connectionSuccessCallback:t.connectionSuccessCallback,connectionFailedCallback:t.connectionFailedCallback,connectionReconnectingCallback:t.connectionReconnectingCallback,connectionWaitingToReconnectCallback:t.connectionWaitingToReconnectCallback}),n=t.uniqueId,i=angular.toJson(t.requestBody);s.debug("[aria2WebSocketRpcService.request] "+(t&&t.requestBody&&t.requestBody.method?t.requestBody.method+" ":"")+"request start",t);var o=e.defer();return a.instance?(c[n]={context:t,deferred:o},a.instance.send(i)):(o.reject({success:!1,context:t}),s.debug("[aria2WebSocketRpcService.request] client error",a),t.errorCallback(t.id,{message:a.error})),o.promise}},reconnect:function(e){p(e)},on:function(e,t){var a=d[e];angular.isArray(a)||(a=d[e]=[]),a.push(t)}}}])}(),function(){"use strict";angular.module("ariaNg").factory("aria2RpcService",["$location","$q","aria2RpcConstants","aria2RpcErrors","aria2AllOptions","ariaNgCommonService","ariaNgLogService","ariaNgSettingService","ariaNgNotificationService","aria2HttpRpcService","aria2WebSocketRpcService",function(e,t,a,n,i,s,o,r,l,c,d){var u=r.isCurrentRpcUseWebSocket()?d:c,p=!1,f=r.getCurrentRpcSecret(),g=[],m=[],h=[],v=[],b=[],k=[],y=[],w=[],S=[],x=[],T=[],C=[],P=[],D=function(e){return 0===e.indexOf(a.rpcSystemServiceName+".")},R=function(e){return a.rpcServiceName+"."+e},A=function(e,t){if(t)return e;var n=s.generateUniqueId(),i={uniqueId:n,requestBody:{jsonrpc:a.rpcServiceVersion,method:e.methodName,id:n,params:e.params},connectionSuccessCallback:e.connectionSuccessCallback,connectionFailedCallback:e.connectionFailedCallback,connectionReconnectingCallback:e.connectionReconnectingCallback,connectionWaitingToReconnectCallback:e.connectionWaitingToReconnectCallback,successCallback:e.successCallback,errorCallback:e.errorCallback};return u.request(i)},I=function(e,t){var a=function(e){return R(e)}(e);u.on(a,(function(e){if(angular.isArray(t)&&!(t.length<1))for(var a=0;a1){var l=arguments[1];o.successCallback=function(e,t){if(l.callback&&l.callback({id:e,success:!0,data:t,context:l}),O(m),!p){p=!0;var a={rpcName:r.getCurrentRpcDisplayName()};O(g,a)}},o.errorCallback=function(t,a){var i=!1,s=e.path();l.silent||s!==n||(i=L(a)),l.callback&&l.callback({id:t,success:!1,data:a,errorProcessed:i,context:l}),O(h)}}if(arguments.length>2)for(var c=2;c0&&(o.params=s),o},U=function(e,t){var a=angular.copy(e);for(var n in a)a.hasOwnProperty(n)&&M(a,n)&&(a[n]=q(a[n],i[n]));return t&&t.pauseOnAdded&&(a.pause="true"),a},M=function(e,t){return!(!e[t]||!angular.isString(e[t]))&&!(!i[t]||"array"!==i[t].submitFormat)},q=function(e,t){for(var a=e.split(t.separator),n=[],i=0;i0&&(t=e.uris[0].uri,a=!0);var n=t.lastIndexOf("/");if(n<0&&(n=t.lastIndexOf("\\")),n<=0||n===t.length)return t;var i=t.substring(n+1),s=i.indexOf("?"),o=i;if(s>0&&(o=i.substring(0,s)),a)try{o=decodeURI(o)}catch(e){r.warn("[aria2TaskService.getFileName] failed to url decode file name, original file name: "+o,e)}return o},d=function(e,t){var n=e.dir,i=t.path;n&&(n=n.replace(/\\/g,a.defaultPathSeparator)),i&&(i=i.replace(/\\/g,a.defaultPathSeparator));var s=function(){i.length>1&&i.charAt(0)===a.defaultPathSeparator&&(i=i.substr(1))};if(n&&0===i.indexOf(n)&&(i=i.substr(n.length)),s(),e.bittorrent&&"multi"===e.bittorrent.mode&&e.bittorrent.info&&e.bittorrent.info.name){var o=e.bittorrent.info.name;0===i.indexOf(o)&&(i=i.substr(o.length))}return s(),t.fileName&&i.lastIndexOf(t.fileName)+t.fileName.length===i.length&&(i=i.substr(0,i.length-t.fileName.length)),i.length>1&&i.charAt(i.length-1)===a.defaultPathSeparator&&(i=i.substr(0,i.length-1)),i},u=function(e,t,n){var i=n[e];if(i)return i;var s=null,o=e;if(e.length){var r="",l=e.lastIndexOf(a.defaultPathSeparator);l>0&&(r=e.substring(0,l),o=e.substring(l+1)),s=u(r,t,n)}return i={isDir:!0,nodePath:e,nodeName:o,relativePath:s&&s.nodePath||"",level:s&&s.level+1||0,length:0,selected:!0,partialSelected:!1,files:[],subDirs:[]},t.push(i),n[e]=i,s&&s.subDirs.push(i),i},p=function(e,t,a){if(e&&t&&a){var n=e.relativePath||"",i=u(n,t,a);return i.files.push(e),i}},f=function(e,t,a){if(e){var n=0,i=0,s=0;if(e.subDirs&&e.subDirs.length)for(var o=0;o0&&i===e.subDirs.length+e.files.length,e.partialSelected=i>0&&i0}},g=function(e,t){for(var a=[],n=0;n=t)return a}return a},m=function(e,t){if(!e)return r.warn("[aria2TaskService.processDownloadTask] task is null"),e;t=t&&e.bittorrent&&"multi"===e.bittorrent.mode;var a,i,l=g(e.bitfield,e.numPieces);if(e.totalLength=parseInt(e.totalLength),e.completedLength=parseInt(e.completedLength),e.completePercent=e.totalLength>0?e.completedLength/e.totalLength*100:0,e.remainLength=e.totalLength-e.completedLength,e.remainPercent=100-e.completePercent,e.uploadLength=e.uploadLength?parseInt(e.uploadLength):0,e.shareRatio=e.completedLength>0?e.uploadLength/e.completedLength:0,e.uploadSpeed=parseInt(e.uploadSpeed),e.downloadSpeed=parseInt(e.downloadSpeed),e.numPieces=parseInt(e.numPieces),e.completedPieces=s.countArray(l,!0),e.pieceLength=parseInt(e.pieceLength),e.idle=0===e.downloadSpeed,e.remainTime=(a=e.remainLength,0===(i=e.downloadSpeed)?0:a/i),e.seeder=!0===e.seeder||"true"===e.seeder,e.verifiedLength&&e.files){let t=0;e.files.forEach((e=>{t+=e.length})),e.verifiedPercent=t>0?parseInt(e.verifiedLength/t*100):void 0}else e.verifiedPercent=void 0;e.dir=s.formatFilePath(e.dir);var u=function(e){var t="",a=!0;return e.bittorrent&&e.bittorrent.info&&(t=e.bittorrent.info.name),e.bittorrent&&e.files.length>0&&e.files[0].path.includes("[METADATA]")&&(e.files[0].path=e.dir+e.files[0].path.replace("[METADATA]","")+".torrent"),!t&&e.files&&e.files.length>0&&(t=c(e.files[0])),t||(t=o.getLocalizedText("Unknown"),a=!1),{name:t,success:a}}(e);if(e.taskName=u.name,e.hasTaskName=u.success,e.errorDescription=function(e){return e.errorCode&&n[e.errorCode]&&n[e.errorCode].descriptionKey?n[e.errorCode].hide?"":n[e.errorCode].descriptionKey:""}(e),e.files){for(var m=0,h=[],v={},b=0;b0?k.completedLength/k.length*100:0,t){k.relativePath=d(e,k);var y=p(k,h,v);k.level=y.level+1}m+=k.selected?1:0}if(t&&h.length>1){var w=[];f(v[""],v,w),e.files=w,e.multiDir=!0}e.selectedFileCount=m}if(e.files&&1===e.files.length&&e.files[0].uris&&e.files[0].uris[0]){var S=!0,x=e.files[0].uris[0].uri;for(b=0;b0&&(i+=","),i+=t[s];return this.setTaskOption(e,"select-file",i,a,n)},getBtTaskPeers:function(e,t,a,n){return i.getPeers({gid:e.gid,silent:!!a,callback:function(a){t?(a.success&&h(a.data,e,n),t(a)):r.warn("[aria2TaskService.getBtTaskPeers] callback is null")}})},getTaskStatusAndBtPeers:function(e,t,a,n,s,o){var l=[i.tellStatus({gid:e},!0)];return n&&l.push(i.getPeers({gid:e},!0)),i.multicall({methods:l,silent:!!a,callback:function(e){t?(e.task={},e.success&&e.data.length>0&&(e.task=e.data[0][0],m(e.task,o)),e.success&&e.task.bittorrent&&e.data.length>1&&(e.peers=e.data[1][0],h(e.peers,e.task,s)),t(e)):r.warn("[aria2TaskService.getTaskStatusAndBtPeers] callback is null")}})},newUriTask:function(e,t,a,n){return i.addUri({task:e,pauseOnAdded:!!t,silent:!!n,callback:a})},newUriTasks:function(e,t,a,n){return i.addUriMulti({tasks:e,pauseOnAdded:!!t,silent:!!n,callback:a})},newTorrentTask:function(e,t,a,n){return i.addTorrent({task:e,pauseOnAdded:!!t,silent:!!n,callback:a})},newMetalinkTask:function(e,t,a,n){return i.addMetalink({task:e,pauseOnAdded:!!t,silent:!!n,callback:a})},startTasks:function(e,t,a){return i.unpauseMulti({gids:e,silent:!!a,callback:t})},pauseTasks:function(e,t,a){return i.forcePauseMulti({gids:e,silent:!!a,callback:t})},retryTask:function(t,a,n){var s=e.defer(),o=[i.tellStatus({gid:t},!0),i.getOption({gid:t},!0)],c=null,d=null;return i.multicall({methods:o,silent:!!n,callback:function(e){if(!a)return void r.warn("[aria2TaskService.retryTask] callback is null");if(!e.success)return r.warn("[aria2TaskService.retryTask] response is not success",e),s.reject(e),void a(e);if(e.data.length>0&&(c=e.data[0][0]),e.data.length>1&&(d=e.data[1][0]),!c||!d||!c.files||1!==c.files.length||c.bittorrent)return c||r.warn("[aria2TaskService.retryTask] task is null"),d||r.warn("[aria2TaskService.retryTask] options is null"),c.files||r.warn("[aria2TaskService.retryTask] task file is null"),1!==c.files.length&&r.warn("[aria2TaskService.retryTask] task file length is not equal 1"),c.bittorrent&&r.warn("[aria2TaskService.retryTask] task is bittorrent"),s.reject(t),void a({success:!1});for(var o=c.files[0],u=[],p=0;p0&&u.push(i.forceRemoveMulti({gids:r,removeFile:o,silent:!!n,callback:function(e){s.pushArrayTo(g,e.results),p=p||e.hasSuccess,f=f||e.hasError}})),l.length>0&&u.push(i.removeDownloadResultMulti({gids:l,removeFile:o,silent:!!n,callback:function(e){s.pushArrayTo(g,e.results),p=p||e.hasSuccess,f=f||e.hasError}})),e.all(u).then((function(){a&&a({hasSuccess:!!p,hasError:!!f,remainsStoppedTask:!!c,results:g})}))},changeTaskPosition:function(e,t,a,n){return i.changePosition({gid:e,pos:t,how:"POS_SET",silent:!!n,callback:a})},clearStoppedTasks:function(e,t){return i.purgeDownloadResult({silent:!!t,callback:e})},onConnectionSuccess:function(e){e?i.onConnectionSuccess({callback:e}):r.warn("[aria2TaskService.onConnectionSuccess] callback is null")},onConnectionFailed:function(e){e?i.onConnectionFailed({callback:e}):r.warn("[aria2TaskService.onConnectionFailed] callback is null")},onConnectionReconnecting:function(e){e?i.onConnectionReconnecting({callback:e}):r.warn("[aria2TaskService.onConnectionReconnecting] callback is null")},onConnectionWaitingToReconnect:function(e){e?i.onConnectionWaitingToReconnect({callback:e}):r.warn("[aria2TaskService.onConnectionWaitingToReconnect] callback is null")},onFirstSuccess:function(e){e?i.onFirstSuccess({callback:e}):r.warn("[aria2TaskService.onFirstSuccess] callback is null")},onOperationSuccess:function(e){e?i.onOperationSuccess({callback:e}):r.warn("[aria2TaskService.onOperationSuccess] callback is null")},onOperationError:function(e){e?i.onOperationError({callback:e}):r.warn("[aria2TaskService.onOperationError] callback is null")},onTaskCompleted:function(e){e?i.onDownloadComplete({callback:v(this.getTaskStatus,e,"completed")}):r.warn("[aria2TaskService.onTaskCompleted] callback is null")},onBtTaskCompleted:function(e){e?i.onBtDownloadComplete({callback:v(this.getTaskStatus,e,"btcompleted")}):r.warn("[aria2TaskService.onBtTaskCompleted] callback is null")},onTaskErrorOccur:function(e){e?i.onDownloadError({callback:v(this.getTaskStatus,e,"error")}):r.warn("[aria2TaskService.onTaskErrorOccur] callback is null")},processDownloadTasks:function(e,t){if(angular.isArray(e))for(var a=0;a0&&n[n.length-1].isCompleted===s?n[n.length-1].count++:n.push({isCompleted:s,count:1})}return n}(e,t)},estimateHealthPercentFromPeers:function(e,t){if(!e||e.numPieces<1||t.length<1)return r.warn("[aria2TaskService.estimateHealthPercentFromPeers] tasks is null or numPieces < 1 or peers < 1",e),e.completePercent;for(var a=[],n=0,i=e.completePercent,s=0;sn?(n=c,i=o.completePercent):c===n&&o.completePercent>i&&(i=o.completePercent)}var p=0;if(a.length>0)for(;;){var f=!0;for(s=0;s0?(p++,a[s]--):f=!1;if(!f)break}if(p<=n)return i;var m=p/e.numPieces*100;return m<=i?i:m}}}])}(),function(){"use strict";angular.module("ariaNg").factory("aria2SettingService",["ariaNgConstants","aria2AllOptions","aria2GlobalAvailableOptions","aria2QuickSettingsAvailableOptions","aria2TaskAvailableOptions","aria2RpcService","ariaNgLogService","ariaNgStorageService",function(e,t,a,n,i,s,o,r){var l=function(t){return e.settingHistoryKeyPrefix+"."+t};return{isOptionKeyValid:function(e){return!!t[e]},isOptionKeyRequired:function(e){var a=t[e];return a&&a.required},getAvailableGlobalOptionsKeys:function(e){return"basic"===e?a.basicOptions:"http-ftp-sftp"===e?a.httpFtpSFtpOptions:"http"===e?a.httpOptions:"ftp-sftp"===e?a.ftpSFtpOptions:"bt"===e?a.btOptions:"metalink"===e?a.metalinkOptions:"rpc"===e?a.rpcOptions:"advanced"===e&&a.advancedOptions},getAria2QuickSettingsAvailableOptions:function(e){return"globalSpeedLimit"===e&&n.globalSpeedLimitOptions},getAvailableTaskOptionKeys:function(e,t){for(var a=i.taskOptions,n=[],s=0;s-1&&(n.splice(i,1),r.set(a,n)),n},clearSettingsHistorys:function(){for(var t=r.keys(e.settingHistoryKeyPrefix+"."),a=0;a{let n=e.recManifestUrl;fetch(n).then((e=>{t(e.json())})).catch((e=>{a(e)}))}))}}}])}(),angular.module("ariaNg").run(["$templateCache",function(e){e.put("views/debug.html",'
'),e.put("views/export-command-api-dialog.html",''),e.put("views/list.html",'
'),e.put("views/new.html",'
'),e.put("views/notification-reloadable.html",''),e.put("views/recommend.html",''),e.put("views/setting-dialog.html",'\x3c!-- /.modal --\x3e'),e.put("views/setting.html",'
 
'),e.put("views/settings-aria2.html",'
'),e.put("views/settings-ariang.html",'
'),e.put("views/status.html",'
Aria2 RPC Address
Aria2 Status
Session ID
-
Aria2 Version
- Enhanced Edition
Enabled Features
-
Operations
'),e.put("views/task-detail.html",'
\x3c!-- /.nav-tabs-custom --\x3e
')}]); \ No newline at end of file diff --git a/ui/ariang/langs/fr_FR.txt b/ui/ariang/langs/fr_FR.txt new file mode 100644 index 0000000..4c1261b --- /dev/null +++ b/ui/ariang/langs/fr_FR.txt @@ -0,0 +1,776 @@ +[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! +Input number is above max value!=La saisie du nombre est au dessus la valeur maximale! +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. +settings have taken effect=Paramètres appliqués +settings are reset=Paramètres réinitialisés +Reset=Réinitialiser +Select All Paused Tasks=Sélectionner toutes les tâches en pause +Select Single Task=Sélectionner une seule tâche +Select Multiple Tasks=Sélectionner plusieurs tâches +Select Consecutive Tasks=Sélectionner les tâches consécutives +Select All Tasks=Sélectionner toutes les tâches +Task Select Mode=Mode de sélection des tâches +All Tasks=Toutes les tâches +General Settings=Paramètres généraux +Support Author=Soutenir l'auteur +Alex Recommends=Alex recommande +File List=Liste des fichiers +Torrent Name=Nom du torrent +Open download folder=Ouvrir le dossier de téléchargement +Compact Mode=Mode compact +Download Folder Open Handler URL=URL du gestionnaire d'ouverture du dossier de téléchargement +Customize the URL of Download Folder Open Handler=Personnaliser l'URL du gestionnaire d'ouverture du dossier de téléchargement +Download Dir Absolute Path=Chemin absolu du répertoire de téléchargement +Download Dir Relative Path=Chemin relatif du répertoire de téléchargement +Set proper URL template for Aria2-Manager to invoke File Manager to browse remote file via FTP/SMB/Others protocol.=Définir un modèle d'URL approprié pour qu'Aria2-Manager invoque le gestionnaire de fichiers afin de parcourir les fichiers distants via le protocole FTP/SMB/autres. +Truncate the download dir absolute path from tail to head, N means truncation depth.=Tronquer le chemin absolu du répertoire de téléchargement de la fin au début, N représente la profondeur de troncature. +Filename if task contains one file, folder name if task contains more than one file.=Nom du fichier si la tâche contient un seul fichier, nom du dossier si la tâche contient plusieurs fichiers. +Example=Exemple +Reset Aria2 Settings=Réinitialiser les paramètres d'Aria2 +Reset the current Aria2 settings (Will take effect after Aria2 restarts)?=Réinitialiser les paramètres Aria2 actuels (prendra effet après le redémarrage d'Aria2) ? +Keyboard Shortcuts And Multi-Select Mode=Raccourcis clavier et mode multi-sélection +Start Retrying Task Manually=Démarrer manuellement la nouvelle tentative de tâche +Navigate to Default Tasks Page=Accéder à la page des tâches par défaut +Remove downloaded file(s) simultaneously=Supprimer les fichiers téléchargés simultanément +Default Tasks Page=Page des tâches par défaut +Enhanced Edition=Édition améliorée +Install Aria2 Manager=Installer Aria2 Manager +Aria2 Manager is not installed, go to Alex Recommends channel for more information?=Aria2 Manager n'est pas installé, consultez la chaîne « Alex recommande » pour plus d'informations ? +Download via Browser=Télécharger via le navigateur +Confirm to download multiple URLs from Browser simultaneously?=Confirmer le téléchargement simultané de plusieurs URL depuis le navigateur ? +Aria2 is disconnected, All tasks will be downloaded via Browser. Invalid URL will be ignored.=Aria2 est déconnecté, toutes les tâches seront téléchargées via le navigateur. Les URL invalides seront ignorées. + +[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] +English=Anglais +French=Français +Italian=Italien +Japanese=Japonais +Korean=Coréen +Russian=Russe +Simplified Chinese=Chinois Simplifié +Traditional Chinese=Chinois Traditionnel +Ukrainian=Ukrainien + +[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 +requires.aria2-enhanced-edition=Nécessite aria2 édition améliorée (fournie par la version Microsoft Store d'Aria2 Manager) +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. +enable-pmap.name=Activer le mappage de ports UPnP +enable-pmap.description=Activer le mappage automatique des ports UPnP pour les téléchargements BT et le protocole DHT, et définir automatiquement l'adresse IP externe (bt-external-ip) pour améliorer la connectivité BT et la découverte des nœuds. (Nécessite que la fonctionnalité UPnP soit activée sur la passerelle du réseau local) \ No newline at end of file diff --git a/ui/ariang/langs/it_IT.txt b/ui/ariang/langs/it_IT.txt index f5ac825..8324feb 100644 --- a/ui/ariang/langs/it_IT.txt +++ b/ui/ariang/langs/it_IT.txt @@ -375,9 +375,14 @@ checksum.failed=Errore di verifica del checksum del file. [languages] English=Inglese +French=Francese +Italian=Italiano +Japanese=Giapponese +Korean=Coreano +Russian=Russo Simplified Chinese=Cinese Semplificato Traditional Chinese=Cinese Tradizionale -Italian=Italiano +Ukrainian=Ucraino [format] longdate=DD/MM/YYYY HH:mm:ss diff --git a/ui/ariang/langs/ja_JA.txt b/ui/ariang/langs/ja_JA.txt new file mode 100644 index 0000000..a91ce5e --- /dev/null +++ b/ui/ariang/langs/ja_JA.txt @@ -0,0 +1,774 @@ +[global] +AriaNg Version=AriaNgバージョン +Operation Result=操作結果 +Operation Succeeded=操作成功 +is connected=接続済み +settings have taken effect=設定が適用されました +settings are reset=設定がリセットされました +Error=エラー +OK=OK +Confirm=確認 +Cancel=キャンセル +Close=閉じる +Reset=リセット +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 Paused Tasks=一時停止中のタスクをすべて選択 +Select All Failed Tasks=失敗したタスクをすべて選択 +Select All Completed Tasks=完了したタスクをすべて選択 +Select Single Task=単一タスクを選択 +Select Multiple Tasks=複数タスクを選択 +Select Consecutive Tasks=連続タスクを選択 +Select All Tasks=すべてのタスクを選択 +Task Select Mode=タスク選択モード +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=完了 +All Tasks=すべてのタスク +Error Occurred=エラーが発生しました +Removed=削除済み +Finished / Stopped=完了 / 停止 +Uncompleted=未完了 +Click to pin=クリックしてピン留め +Settings=設定 +General Settings=一般設定 +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ステータス +Support Author=作者を支援 +Alex Recommends=Alexのおすすめ +File List=ファイルリスト +File Name=ファイル名 +File Size=サイズ +Progress=進捗 +Share Ratio=共有率 +Remaining=残り時間 +Download Speed=ダウンロード速度 +Upload Speed=アップロード速度 +Links=リンク +Torrent File=Torrentファイル +Metalink File=Metalinkファイル +File Name:=ファイル名: +Torrent Name=Torrent名 +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=ダウンロードディレクトリ +Open download folder=ダウンロードフォルダを開く +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」をクリックすると、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=Torrentファイルを開く +Open Metalink File=Metalinkファイルを開く +Support multiple URLs (one URL per line) input, URL/BitTorrent/Metalink file drag-and-drop here.=複数URL(1行に1URL)の入力、URL/BitTorrent/Metalinkファイルのドラッグ&ドロップをサポートします。 +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=デバッグモード +Compact 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".=複数のリクエストヘッダーをサポートします。各ヘッダーは1行に記述し、「ヘッダー名:ヘッダー値」の形式で記述します。 +Aria2 RPC Secret Token=Aria2 RPCシークレットトークン +Download Folder Open Handler URL=ダウンロードフォルダを開くハンドラーURL +Customize the URL of Download Folder Open Handler=ダウンロードフォルダを開くハンドラーのURLをカスタマイズ +Download Dir Absolute Path=ダウンロードディレクトリの絶対パス +Download Dir Relative Path=ダウンロードディレクトリの相対パス +Set proper URL template for Aria2-Manager to invoke File Manager to browse remote file via FTP/SMB/Others protocol.=Aria2-Managerがファイルマネージャーを呼び出してFTP/SMB/その他のプロトコルでリモートファイルを参照できるように、適切なURLテンプレートを設定します。 +Truncate the download dir absolute path from tail to head, N means truncation depth.=末尾から先頭にダウンロードディレクトリの絶対パスを切り捨てます。Nは切り捨ての深さを意味します。 +Filename if task contains one file, folder name if task contains more than one file.=タスクにファイルが1つだけ含まれる場合はファイル名、複数のファイルが含まれる場合はフォルダ名。 +Example=例 +Activate=有効化 +Reset Settings=設定をリセット +Confirm Reset=リセットの確認 +Are you sure you want to reset all settings?=すべての設定をリセットしますか? +Clear Settings History=設定履歴をクリア +Reset Aria2 Settings=Aria2設定をリセット +Are you sure you want to clear all settings history?=すべての設定の履歴をクリアしますか? +Reset the current Aria2 settings (Will take effect after Aria2 restarts)?=現在のAria2設定をリセットします(Aria2再起動後に有効になります)? +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=キーボードショートカット +Keyboard Shortcuts And Multi-Select Mode=キーボードショートカットと複数選択モード +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=タスク詳細ページに移動 +Start Retrying Task Manually=タスクを再試行後に手動で開始 +Action After Retrying Task=タスク再試行後のアクション +Navigate to Default Tasks Page=デフォルトのタスクリストページに移動 +Navigate to Downloading Tasks Page=ダウンロード中のリストページに移動 +Stay on Current Page=現在のページに留まる +Remove Old Tasks After Retrying=再試行後に古いタスクを削除 +Confirm Task Removal=タスク削除の確認 +Remove downloaded file(s) simultaneously=ダウンロードしたファイルを同時に削除 +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エイリアス +Default Tasks Page=デフォルトのタスクリストページ +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バージョン +Enhanced Edition=拡張版 +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 (安全) +Insecure 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を使用できません。 +Install Aria2 Manager=Aria2 Managerをインストール +Aria2 Manager is not installed, go to Alex Recommends channel for more information?=Aria2 Managerがインストールされていません。「Alexのおすすめ」チャンネルで詳細をご覧ください。 +Download via Browser=ブラウザ経由でダウンロード +Confirm to download multiple URLs from Browser simultaneously?=複数のURLをブラウザから同時にダウンロードしますか? +Aria2 is disconnected, All tasks will be downloaded via Browser. Invalid URL will be ignored.=Aria2が接続されていません。すべてのタスクはブラウザ経由でダウンロードされます。無効なURLは無視されます。 + +[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はすでに同じハッシュのTorrentファイルをダウンロードしています。 +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ファイルの解析に失敗しました。 +torrent.file.corrupted=指定された".torrent" Torrentファイルが破損しているか、aria2に必要な情報が不足しています。 +magnet.uri.bad=指定されたMagnet URIが無効です。 +option.bad=設定エラー。 +server.overload=リモートサーバーがビジー状態で、現在のリクエストを処理できません。 +rpc.request.parse.failed=RPCリクエストの処理に失敗しました。 +checksum.failed=ファイルチェックサムの検証に失敗しました。 + +[languages] +English=英語 +French=フランス語 +Italian=イタリア語 +Japanese=日本語 +Korean=韓国語 +Russian=ロシア語 +Simplified Chinese=簡体字中国語 +Traditional Chinese=繁体字中国語 +Ukrainian=ウクライナ語 + +[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}} 以上が必要です +requires.aria2-enhanced-edition=aria2 拡張版 (Aria2 Manager Microsoft ストア版による提供) が必要です +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=事前割り当て +random=ランダム +select=select +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、および --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 は 16 進数ダイジェストです。たとえば、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=aria2 はサーバーごとの最大接続数を 16 に制限しています。より多くの接続数を使用するには、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*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=.netrc ファイルのパスを指定します。 +no-netrc.name=netrc を無効にする +no-netrc.description=.netrc ファイルの使用を無効にします。 +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 オプションを使用して 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 リクエストヘッダの内容を追加します。各行に 1 つずつ、「ヘッダ名: ヘッダ値」の形式で記述します。 +save-cookies.name=Cookie 保存パス +save-cookies.description=Mozilla/Firefox(1.x/2.x)/Netscape 形式で Cookie をファイルに保存します。ファイルが既に存在する場合、上書きされます。セッションの期限が切れた Cookie も保存され、その有効期限は 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 は 16 進数のダイジェストです。例: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3。このオプションは、SFTP を使用する際にサーバの公開鍵を検証するために使用できます。このオプションが設定されていない場合、つまりデフォルトのままの場合、検証は行われません。 +bt-detach-seed-only.name=シードのみのタスクの分離 +bt-detach-seed-only.description=現在のアクティブなダウンロードタスク(-j オプションを参照)をカウントする際に、シードのみのタスクを除外します。つまり、パラメータが -j3 に設定されていて、現在 3 つのアクティブなタスクがあり、そのうち 1 つがシードモードに入っている場合、ダウンロード中の数から除外され(つまり、数は 2 になります)、キューで待機している次の +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=ローカルピア検出機能を有効にします。プライベートTorrentダウンロードの場合、有効になっていてもaria2はこの機能を使用してダウンロードしません。 +bt-exclude-tracker.name=BTトラッカーアドレスの除外 +bt-exclude-tracker.description=カンマ区切りのBT除外トラッカーアドレス。*を使用してすべてのアドレスに一致させることができるため、すべてのトラッカーアドレスを除外します。シェルコマンドラインで*を使用する場合は、エスケープ文字または引用符を使用する必要があります。 +bt-external-ip.name=外部IPアドレス +bt-external-ip.description=BitTorrentダウンロードとDHTで使用する外部IPアドレスを指定します。これはBitTorrentトラッカーに送信される可能性があります。DHTの場合、このオプションはローカルノードが特定のTorrentをダウンロードしていることを報告します。これはプライベートネットワークでDHTを使用する場合に非常に重要です。この方法は外部と呼ばれていますが、あらゆる種類のIPアドレスを受け入れることができます。 +bt-force-encryption.name=強制暗号化 +bt-force-encryption.description=BTメッセージの内容はarc4で暗号化する必要があります。このオプションは、--bt-require-crypto --bt-min-crypto-level=arc4の2つのオプションを設定するためのショートカットです。このオプションは上記の2つのオプションの内容を変更しません。「はい」に設定すると、以前の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からTorrentメタデータを取得する前に、最初に--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=Torrentファイルのみをダウンロード +bt-metadata-only.description=Torrentファイルのみをダウンロードします。Torrentファイルで記述されているファイルはダウンロードされません。このオプションはマグネットリンクにのみ有効です。 +bt-min-crypto-level.name=最小暗号化レベル +bt-min-crypto-level.description=暗号化方法の最小レベルを設定します。ピアが複数の暗号化方法を提供する場合、aria2は指定されたレベルを満たす最低レベルを選択します。 +bt-prioritize-piece.name=優先ダウンロード +bt-prioritize-piece.description=各ファイルの先頭または末尾のピースを最初にダウンロードしようとします。このオプションはファイルのプレビューに役立ちます。パラメータには、headとtailの2つのキーワードを含めることができます。2つのキーワードが含まれている場合は、カンマで区切る必要があります。各キーワードにはパラメータ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=Torrentファイルを保存 +bt-save-metadata.description=Torrentファイルを「.torrent」ファイルとして保存します。このオプションはマグネットリンクにのみ有効です。ファイル名は16進数エンコードされたハッシュ値と「.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サーバーのサポートも有効にします。Torrentがプライベートに設定されている場合、このオプションが「はい」に設定されていても、aria2はDHTを有効にしません。 +enable-dht6.name=DHT(IPv6)を有効にする +enable-dht6.description=IPv6 DHT機能を有効にします。Torrentがプライベートに設定されている場合、このオプションが「はい」に設定されていても、aria2はDHTを有効にしません。--dht-listen-portオプションを使用してリスンポートを設定します。 +enable-peer-exchange.name=ピア交換を有効にする +enable-peer-exchange.description=ピア交換拡張機能を有効にします。Torrentがプライベートに設定されている場合、このオプション +follow-torrent.name=种子ファイルのダウンロード内容を追跡 +follow-torrent.description=「はい」または「メモリのみ」に設定した場合、拡張子が.torrentまたはコンテンツタイプがapplication/x-bittorrentのファイルのダウンロードが完了すると、aria2は种子ファイルに従って読み取り、そのファイルで言及されているファイルをダウンロードします。「メモリのみ」に設定した場合、その种子ファイルはディスクに書き込まれず、メモリにのみ格納されます。「いいえ」に設定した場合、.torrentファイルはディスクにダウンロードされますが、种子ファイルに従って読み取られず、その中のファイルはダウンロードされません。 +listen-port.name=BTリスンポート +listen-port.description=BTダウンロードのTCPポートを設定します。複数のポートはカンマ「,」で区切ることができます。例:6881,6885。ハイフン「-」を使用して範囲を示すこともできます:6881-6999、または組み合わせて使用することもできます:6881-6889, 6999。 +enable-pmap.name=UPnPポートマッピングを有効にする +enable-pmap.description=BTダウンロードとDHTプロトコルでUPnP自動ポートマッピングを有効にし、同時に外部IPアドレス (bt-external-ip)を自動設定して、BT接続性とノード発見能力を向上させます。(ローカルネットワークゲートウェイでUPnP機能を有効にする必要があります) +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=ローカルディスクに保存されているMetalinkファイル内のmetalink:urlおよびmetalink:metaurlの相対URIアドレスを解析するために、ベース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はそのうちの1つのみを使用します。--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=JSON-RPC/XML-RPCサーバーのTCPポートをリッスンします。 +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オプションで設定されたディレクトリに、アップロードされたメタデータファイル(torrentファイルまたはMetalinkファイル)を保存します。ファイル名には、SHA-1ハッシュ後のメタデータと拡張子の両方が含まれます。torrentファイルの場合、拡張子は「.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=Content-Dispositionの処理にUTF-8を使用 +content-disposition-default-utf8.description=「Content-Disposition」ヘッダーの文字列を処理する際に、ファイル名パラメータなど、ISO-8859-1の代わりにUTF-8文字セットを使用します(拡張バージョンのファイル名ではありません)。 +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インスタンスによって作成され、すべてのダウンロードで共有されます。データは大きな単位で書き込まれ、ファイルのオフセットによって並べ替えられるため、ディスクキャッシュの利点の1つはディスクI/Oの削減です。ハッシュチェックが呼び出されたときにデータがメモリにキャッシュされている場合、ディスクから読み取る必要はありません。サイズにはKまたはM(1K = 1024、1M = 1024K)を含めることができます。 +download-result.name=ダウンロード結果 +download-result.description=このオプションは、ダウンロード結果の形式を変更します。「デフォルト」に設定した場合、GID、ステータス、平均ダウンロード速度、およびパス/URIが出力されます。複数のファイルが関係する場合、最初の要求ファイルのパス/URIのみが出力され、残りは無視されます。「完全」に設定した場合、GID、ステータス、平均ダウンロード速度、ダウンロード進行状況、およびパス/URIが出力されます。その中で、ダウンロード進行状況とパス/URIはファイルごとに1行出力されます。「非表示」に設定した場合、ダウンロード結果は非表示になります。 +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=オープンファイル記述子のソフトリミットを設定します。このオプションは、a. システムがサポートしている(posix)、b. リミットがハードリミットを超えていない、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オプションを参照)を有効にする最大ファイルサイズを設定します。ファイルサイズは、1つのダウンロードタスク内のすべてのファイルのサイズの合計によって決まります。たとえば、1つのダウンロードに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。ステップカウンタは省略できます。上記の2番目の例のように、すべてのURIアドレスが同じファイルを指していない場合は、-Zオプションを使用する必要があります。 +quiet.name=コンソール出力を無効にする +quiet.description= +realtime-chunk-checksum.name=リアルタイムチャンクチェックサム +realtime-chunk-checksum.description=チャンクのチェックサムが提供されている場合、ダウンロード中にチェックサムでチャンクを検証します。 +remove-control-file.name=制御ファイルを削除 +remove-control-file.description=ダウンロード前に制御ファイルを +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=コンソール出力の内容を1行に短縮します。 \ No newline at end of file diff --git a/ui/ariang/langs/ko_KO.txt b/ui/ariang/langs/ko_KO.txt new file mode 100644 index 0000000..9101ad5 --- /dev/null +++ b/ui/ariang/langs/ko_KO.txt @@ -0,0 +1,774 @@ +[global] +AriaNg Version=AriaNg 버전 +Operation Result=작업 결과 +Operation Succeeded=작업 성공 +is connected=연결됨 +settings have taken effect=설정이 적용됨 +settings are reset=설정이 초기화됨 +Error=오류 +OK=확인 +Confirm=확인 +Cancel=취소 +Close=닫기 +Reset=초기화 +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 Paused Tasks=일시 정지된 작업 모두 선택 +Select All Failed Tasks=실패한 작업 모두 선택 +Select All Completed Tasks=완료된 작업 모두 선택 +Select Single Task=단일 작업 선택 +Select Multiple Tasks=다수의 작업 선택 +Select Consecutive Tasks=연속 작업 선택 +Select All Tasks=모든 작업 선택 +Task Select Mode=작업 선택 모드 +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=완료됨 +All Tasks=모든 작업 +Error Occurred=오류 발생 +Removed=삭제됨 +Finished / Stopped=완료 / 중지됨 +Uncompleted=미완료 +Click to pin=고정 클릭 +Settings=시스템 설정 +General Settings=일반 설정 +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 상태 +Support Author=저자 지원 +Alex Recommends=Alex 추천 +File List=파일 목록 +File Name=파일 이름 +File Size=크기 +Progress=진행도 +Share Ratio=공유 비율 +Remaining=남은 시간 +Download Speed=다운로드 속도 +Upload Speed=업로드 속도 +Links=링크 +Torrent File=토렌트 파일 +Metalink File=Metalink 파일 +File Name:=파일 이름: +Torrent 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=다운로드 폴더 +Open download folder=다운로드 폴더 열기 +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) input, URL/BitTorrent/Metalink file drag-and-drop here.=여러 개의 URL 입력 (한 줄에 하나씩), URL/BitTorrent/Metalink 파일 드래그 앤 드롭 지원 +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=디버그 모드 +Compact 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=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 비밀 토큰 +Download Folder Open Handler URL=다운로드 폴더 열기 핸들러 URL +Customize the URL of Download Folder Open Handler=다운로드 폴더 열기 핸들러 URL을 사용자화합니다. +Download Dir Absolute Path=다운로드 디렉토리 절대 경로 +Download Dir Relative Path=다운로드 디렉토리 상대 경로 +Set proper URL template for Aria2-Manager to invoke File Manager to browse remote file via FTP/SMB/Others protocol.=Aria2-Manager가 FTP/SMB/기타 프로토콜을 통해 원격 파일을 탐색할 수 있도록 적절한 URL 템플릿을 설정합니다. +Truncate the download dir absolute path from tail to head, N means truncation depth.=다운로드 디렉토리 절대 경로를 끝에서부터 잘라냅니다. N은 잘라내기 깊이를 의미합니다. +Filename if task contains one file, folder name if task contains more than one file.=작업이 하나의 파일을 포함하면 파일 이름이고, 작업이 여러 파일을 포함하면 폴더 이름입니다. +Example=예시 +Activate=활성화 +Reset Settings=설정 초기화 +Confirm Reset=초기화 확인 +Are you sure you want to reset all settings?=모든 설정을 초기화하시겠습니까? +Clear Settings History=설정 히스토리 삭제 +Reset Aria2 Settings=Aria2 설정 초기화 +Are you sure you want to clear all settings history?=모든 설정 히스토리를 삭제하시겠습니까? +Reset the current Aria2 settings (Will take effect after Aria2 restarts)?=현재 Aria2 설정을 초기화하시겠습니까? (Aria2 재시작 후 적용됨) +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=키보드 단축키 +Keyboard Shortcuts And Multi-Select Mode=키보드 단축키 및 다중 선택 모드 +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=작업 세부 사항 페이지로 이동 +Start Retrying Task Manually=작업을 수동으로 다시 시도 +Action After Retrying Task=작업을 다시 시도 후 수행할 작업 +Navigate to Default Tasks Page=기본 작업 목록 페이지로 이동 +Navigate to Downloading Tasks Page=다운로드 중인 작업 목록 페이지로 이동 +Stay on Current Page=현재 페이지에 머무르기 +Remove Old Tasks After Retrying=작업을 다시 시도 후 이전 작업 삭제 +Confirm Task Removal=작업 삭제 확인 +Remove downloaded file(s) simultaneously=다운로드한 파일을 동시에 삭제 +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 별칭 +Default Tasks Page=기본 작업 목록 페이지 +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 버전 +Enhanced Edition=향상된 버전 +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 (보안) +Insecure 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를 사용할 수 없습니다. +Install Aria2 Manager=Aria2 관리자 설치 +Aria2 Manager is not installed, go to Alex Recommends channel for more information?=Aria2 관리자가 설치되지 않았습니다. 더 많은 정보를 원하시면 Alex 추천 채널을 방문하세요. +Download via Browser=브라우저로 다운로드 +Confirm to download multiple URLs from Browser simultaneously?=브라우저에서 여러 URL을 동시에 다운로드하시겠습니까? +Aria2 is disconnected, All tasks will be downloaded via Browser. Invalid URL will be ignored.=Aria2가 연결되지 않았습니다. 모든 작업은 브라우저를 통해 다운로드됩니다. 잘못된 URL은 무시됩니다. + +[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=토렌트 파일 해석에 실패했습니다. +torrent.file.corrupted=지정된 ".torrent" 토렌트 파일이 손상되었거나 aria2가 필요한 정보를 포함하지 않습니다. +magnet.uri.bad=지정된 마그넷 링크 주소가 유효하지 않습니다. +option.bad=설정 오류. +server.overload=원격 서버가 과부하 상태로 현재 요청을 처리할 수 없습니다. +rpc.request.parse.failed=RPC 요청 처리 실패. +checksum.failed=파일 체크섬 검증 실패. + +[languages] +English=영어 +French=프랑스어 +Italian=이탈리아어 +Japanese=일본어 +Korean=한국어 +Russian=러시아어 +Simplified Chinese=간체 중국어 +Traditional Chinese=번체 중국어 +Ukrainian=우크라이나 말 + +[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}} 이상이 필요합니다. +requires.aria2-enhanced-edition=aria2 Enhanced Edition이 필요합니다. (Aria2 Manager Microsoft Store 버전 제공) +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는 16진수 요약본입니다. 예를 들어 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=aria2는 각 서버당 최대 연결 수를 16으로 제한합니다. 더 큰 연결 수를 사용하려면 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*SIZE 바이트보다 작은 파일을 분할하지 않습니다. 예를 들어 파일 크기가 20MB이고 SIZE가 10M이면 aria2는 파일을 두 부분으로 나눕니다 [0-10MB) 및 [10MB-20MB), 두 소스를 사용하여 다운로드합니다(--split >= 2인 경우). SIZE가 15M이면 2*15M > 20MB이므로 aria2는 파일을 분할하지 않고 하나의 소스를 사용하여 다운로드합니다. 값의 단위를 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 옵션을 사용하여 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=쿠키 저장 경로 +save-cookies.description=Mozilla/Firefox(1.x/2.x)/Netscape 형식으로 쿠키를 파일에 저장합니다. 파일이 이미 있는 경우 덮어씁니다. 세션 만료된 쿠키도 저장되며 만료 시간은 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는 16진수 다이제스트입니다. 예: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. 이 옵션은 SFTP를 사용할 때 서버의 공개 키를 확인하는 데 사용할 수 있습니다. 이 옵션이 설정되지 않은 경우, 즉 기본값으로 유지되는 경우 어떠한 확인도 수행되지 않습니다. +bt-detach-seed-only.name=시드 전용 작업 분리 +bt-detach-seed-only.description=현재 활성 다운로드 작업(-j 옵션 참조)을 통계할 때 시드 전용 작업을 제외합니다. 즉, 매개변수가 -j3으로 설정된 경우 이 옵션을 켜고 현재 3개의 활성 작업이 있고 그 중 1개가 시드 모드로 들어가면 다운로드 중인 수 +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=로컬 노드 발견 기능을 활성화합니다. 비공개 토렌트 다운로드에서는 이 기능을 활성화해도 aria2는 이 기능을 사용하여 다운로드하지 않습니다. +bt-exclude-tracker.name=BT 제외 서버 주소 +bt-exclude-tracker.description=쉼표로 구분된 BT 제외 서버 주소입니다. 모든 주소를 제외하려면 *을 사용할 수 있습니다. 셸 명령줄에서 *을 사용할 때는 이스케이프 문자나 따옴표를 사용해야 합니다. +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=마그넷 링크 다운로드 시 --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="예"로 설정하면 aria2는 이전 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" 파일로 토렌트 파일을 저장합니다. 이 옵션은 마그넷 링크에만 유효합니다. 파일 이름은 16진수로 인코딩된 해시 값과 ".torrent" 확장자를 가집니다. 저장된 디렉토리는 다운로드 파일과 동일합니다. 동일한 파일이 이미 존재하면 토렌트 파일은 저장되지 않습니다. +bt-seed-unverified.name=이미 다운로드한 파일 검증 안 함 +bt-seed-unverified.description=이전에 다운로드한 파일의 각 조각의 해시 값을 확인하지 않습니다. +bt-stop-timeout.name=속도 0일 때 자동 정지 시간 +bt-stop-timeout.description=BT 작업의 다운로드 속도가 지속적으로 0일 경우, 이 옵션에서 설정된 시간이 지나면 다운로드가 중지됩니다. 0으로 설정하면 이 기능이 비활성화됩니다. +bt-tracker.name=BT 서버 주소 +bt-tracker.description=쉼표로 구분된 BT 서버 주소입니다. 이 주소들은 --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 서버에 요청을 보낼 간격 시간을 설정합니다 (초 단위). 이 옵션은 서버가 반환하는 최소 간격 시간과 간격 시간을 완전히 덮어씁니다. 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 확장자나 content-type이 application/x-bittorrent인 파일이 다운로드 완료되었을 때, aria2는 해당 토렌트 파일을 읽고 그 안에 언급된 파일들을 다운로드합니다. "메모리 전용"으로 설정하면, 해당 토렌트 파일은 디스크에 저장되지 않고 메모리에만 저장됩니다. "아니오"로 설정하면, .torrent 파일은 디스크에 다운로드되지만 토렌트 파일을 읽고 그 안의 파일들은 다운로드하지 않습니다. +listen-port.name=BT 수신 포트 +listen-port.description=BT 다운로드에 사용할 TCP 포트를 설정합니다. 여러 포트는 쉼표 ","로 구분할 수 있습니다, 예: 6881,6885. 범위를 표시하려면 하이픈 "-"을 사용할 수 있습니다: 6881-6999, 또는 함께 사용할 수 있습니다: 6881-6889, 6999. +enable-pmap.name=UPnP 포트 매핑 활성화 +enable-pmap.description=BT 다운로드 및 DHT 프로토콜에 대해 UPnP 자동 포트 매핑을 활성화하고, 외부 IP 주소(bt-external-ip)를 자동으로 설정하여 BT 연결성 및 피어 발견 능력을 향상시킵니다. (LAN 게이트웨이에서 UPnP 기능을 활성화해야 합니다) +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.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 확장자 또는 content-type이 application/metalink4+xml, application/metalink+xml인 파일이 다운로드 완료되었을 때, aria2는 해당 Metalink 파일을 읽고 그 안에 언급된 파일들을 다운로드합니다. "메모리 전용"으로 설정하면, 해당 Metalink 파일은 디스크에 저장되지 않고 메모리에만 저장됩니다. "아니오"로 설정하면, .metalink 파일은 디스크에 다운로드되지만 Metalink 파일을 읽고 그 안의 파일들은 다운로드하지 않습니다. +metalink-base-uri.name=기본 URI +metalink-base-uri.description=Metalink 파일 내의 metalink:url 및 metalink:metaurl에서 상대 URI 주소를解析할 수 있도록 기본 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에는 세 가지 유형의 토렌트 파일 다운로드가 있습니다: (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가 재개를 지원하지 않는 URI N개를 만나면(N은 --max-resume-failure-tries 값), 다운로드를 처음부터 다시 시작합니다. --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=Content-Disposition에 UTF-8 사용 +content-disposition-default-utf8.description=Content-Disposition 헤더의 문자열(예: 파일명)을 처리할 때 ISO-8859-1 대신 UTF-8 문자셋을 사용합니다. 확장 파일명은 포함되지 않습니다. +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를 출력합니다. 각 파일에 대해 한 줄씩 출력됩니다. "숨김"으로 설정하면 다운로드 결과가 숨겨집니다. +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은 시스템에서 지원하는 경우에만 사용할 수 있습니다. 최신 리눅스는 epoll을 지원하며, 다양한 BSD 시스템(예: Mac OS X)은 kqueue를 지원합니다. Open Solaris는 port를 지원합니다. 기본값은 사용 중인 운영 체제에 따라 다릅니다. +file-allocation.name=파일 할당 방법 +file-allocation.description=파일 할당 방법을 지정합니다. "없음"은 파일 공간을 사전 할당하지 않습니다. "prealloc"은 다운로드 시작 전에 공간을 미리 할당합니다. 이는 파일 크기에 따라 일정 시간이 소요될 수 있습니다. 최신 파일 시스템(예: ext4, btrfs, xfs 또는 NTFS(MinGW 빌드만 해당))에서는 "falloc"이 가장 좋습니다. "falloc"은 수 GB 크기의 파일을 거의 즉시 할당할 수 있습니다. 오래된 파일 시스템(예: 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=메모리에서 저장할 최대 다운로드 결과 수를 설정합니다. 다운로드 결과에는 완료/오류/삭제된 다운로드가 포함됩니다. 다운로드 결과는 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= +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 단위(K=1024, M=1024K)를 추가할 수 있습니다. +max-download-limit.name=최대 다운로드 속도 +max-download-limit.description=각 작업의 최대 다운로드 속도(바이트/초)를 설정합니다. 0은 제한이 없음을 의미합니다. 숫자 뒤에 K 또는 M 단위(K=1024, M=1024K)를 추가할 수 있습니다. +no-conf.name=설정 파일 비활성화 +no-conf.description= +no-file-allocation-limit.name=파일 할당 제한 +no-file-allocation-limit.description=이 매개변수로 설정된 크기보다 작은 파일 할당에 대해서는 비교하지 않습니다. 숫자 뒤에 K 또는 M 단위(K=1024, M=1024K)를 추가할 수 있습니다. +parameterized-uri.name=파라미터화된 URI 지원 활성화 +parameterized-uri.description=파라미터화된 URI 지원을 활성화합니다. URI 집합을 지정할 수 있습니다: http://{sv1,sv2,sv3}/foo.iso. 또한 숫자 범위 또는 보폭을 지정하여 수열을 생성할 수 있습니다: http://host/image[000-100:2]. 보폭은 생략할 수 있습니다. 모든 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 압축을 사용하려면 +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=이 옵션으로 설정된 시간(초) 후에 애플리케이션을 종료합니다. 0으로 설정하면 이 기능이 비활성화됩니다. +truncate-console-readout.name=콘솔 출력 내용 축소 +truncate-console-readout.description=콘솔 출력의 내용을 한 줄로 축소합니다. \ No newline at end of file diff --git a/ui/ariang/langs/ru_RU.txt b/ui/ariang/langs/ru_RU.txt new file mode 100644 index 0000000..872f0e4 --- /dev/null +++ b/ui/ariang/langs/ru_RU.txt @@ -0,0 +1,776 @@ +[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!=Введенное значение ниже минимального! +Input number is above max 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, потому что этот браузер не соответствует минимальным требованиям для хранения данных. +settings have taken effect=Настройки применены +settings are reset=Настройки сброшены +Reset=Сброс +Select All Paused Tasks=Выбрать все приостановленные задачи +Select Single Task=Выбрать одну задачу +Select Multiple Tasks=Выбрать несколько задач +Select Consecutive Tasks=Выбрать последовательные задачи +Select All Tasks=Выбрать все задачи +Task Select Mode=Режим выбора задач +All Tasks=Все задачи +General Settings=Общие настройки +Support Author=Поддержать автора +Alex Recommends=Рекомендации Alex +File List=Список файлов +Torrent Name=Имя торрента +Open download folder=Открыть папку загрузок +Compact Mode=Компактный режим +Download Folder Open Handler URL=URL обработчика открытия папки загрузок +Customize the URL of Download Folder Open Handler=Настроить URL обработчика открытия папки загрузок +Download Dir Absolute Path=Абсолютный путь к папке загрузок +Download Dir Relative Path=Относительный путь к папке загрузок +Set proper URL template for Aria2-Manager to invoke File Manager to browse remote file via FTP/SMB/Others protocol.=Установите правильный шаблон URL для Aria2-Manager, чтобы он мог вызывать файловый менеджер для просмотра удаленных файлов по протоколу FTP/SMB/другим протоколам. +Truncate the download dir absolute path from tail to head, N means truncation depth.=Обрезать абсолютный путь к папке загрузок с конца к началу, N означает глубину обрезки. +Filename if task contains one file, folder name if task contains more than one file.=Имя файла, если задача содержит один файл, имя папки, если задача содержит более одного файла. +Example=Пример +Reset Aria2 Settings=Сбросить настройки Aria2 +Reset the current Aria2 settings (Will take effect after Aria2 restarts)?=Сбросить текущие настройки Aria2 (вступит в силу после перезапуска Aria2)? +Keyboard Shortcuts And Multi-Select Mode=Горячие клавиши и режим множественного выбора +Start Retrying Task Manually=Начать повторную попытку задачи вручную +Navigate to Default Tasks Page=Перейти на страницу задач по умолчанию +Remove downloaded file(s) simultaneously=Одновременно удалить загруженные файлы +Default Tasks Page=Страница задач по умолчанию +Enhanced Edition=Расширенное издание +Install Aria2 Manager=Установить Aria2 Manager +Aria2 Manager is not installed, go to Alex Recommends channel for more information?=Aria2 Manager не установлен, перейдите на канал «Рекомендации Alex» для получения дополнительной информации? +Download via Browser=Скачать через браузер +Confirm to download multiple URLs from Browser simultaneously?=Подтвердить одновременную загрузку нескольких URL из браузера? +Aria2 is disconnected, All tasks will be downloaded via Browser. Invalid URL will be ignored.=Aria2 отключен, все задачи будут загружены через браузер. Недействительные URL будут проигнорированы. + +[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] +English=Английский +French=Французский +Italian=Итальянский +Japanese=Японский язык +Korean=Корейский язык +Russian=Русский +Simplified Chinese=Упрощенный китайский +Traditional Chinese=Традиционный китайский +Ukrainian=Украинский язык + +[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 +requires.aria2-enhanced-edition=Требуется расширенная версия aria2 (предоставляется Microsoft Store версией Aria2 Manager) +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=Обрезает вывод консоли до одной строки. +enable-pmap.name=Включить отображение портов UPnP +enable-pmap.description=Включить автоматическое отображение портов UPnP для загрузок BT и протокола DHT, а также автоматически установить внешний IP-адрес (bt-external-ip) для улучшения соединения BT и обнаружения узлов. (Требуется включение функции UPnP на сетевом шлюзе) \ No newline at end of file diff --git a/ui/ariang/langs/uk_UK.txt b/ui/ariang/langs/uk_UK.txt new file mode 100644 index 0000000..d814e29 --- /dev/null +++ b/ui/ariang/langs/uk_UK.txt @@ -0,0 +1,774 @@ +[global] +AriaNg Version=AriaNg Версія +Operation Result=Результат операції +Operation Succeeded=Операція успішна +is connected=підключено +settings have taken effect=налаштування набрали чинності +settings are reset=налаштування скинуті +Error=Помилка +OK=ОК +Confirm=Підтвердити +Cancel=Скасувати +Close=Закрити +Reset=Скинути +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 Paused Tasks=Вибрати всі призупинені завдання +Select All Failed Tasks=Вибрати всі невдалі завдання +Select All Completed Tasks=Вибрати всі завершені завдання +Select Single Task=Вибрати одне завдання +Select Multiple Tasks=Вибрати кілька завдань +Select Consecutive Tasks=Вибрати послідовні завдання +Select All Tasks=Вибрати всі завдання +Task Select Mode=Режим вибору завдань +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=Завершено +All Tasks=Всі завдання +Error Occurred=Сталася помилка +Removed=Видалено +Finished / Stopped=Завершено / Зупинено +Uncompleted=Незавершено +Click to pin=Натисніть, щоб закріпити +Settings=Налаштування системи +General Settings=Загальні налаштування +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 +Support Author=Підтримка автора +Alex Recommends=Рекомендації Алекс +File List=Список файлів +File Name=Ім'я файлу +File Size=Розмір файлу +Progress=Прогрес +Share Ratio=Коефіцієнт обміну +Remaining=Залишок часу +Download Speed=Швидкість завантаження +Upload Speed=Швидкість завантаження +Links=Посилання +Torrent File=Файл торрент +Metalink File=Файл Metalink +File Name:=Ім'я файлу: +Torrent 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=Директорія для завантаження +Open download folder=Відкрити папку для завантаження +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) input, URL/BitTorrent/Metalink file drag-and-drop here.=Підтримка введення кількох URL (по одному на рядок), а також перетягування файлів URL/BitTorrent/Metalink сюди. +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=API команда URL +Export Command API=Експортувати API команду +Export=Експортувати +Copied=Копійовано +Pause After Task Created=Пауза після створення завдання +Language=Мова +Theme=Тема +Light=Світла +Dark=Темна +Follow system settings=Слідувати налаштуванням системи +Debug Mode=Режим налагодження +Compact 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=Заголовки запиту Aria2 RPC +Support multiple request headers, one header per line, each line containing "header name: header value".=Підтримка кількох заголовків запиту, кожен заголовок в окремому рядку, кожен рядок містить "назва заголовка: значення заголовка". +Aria2 RPC Secret Token=Токен RPC секрету Aria2 +Download Folder Open Handler URL=URL обробника для відкриття папки завантаження +Customize the URL of Download Folder Open Handler=Налаштувати URL обробника для відкриття папки завантаження +Download Dir Absolute Path=Абсолютний шлях до директорії завантаження +Download Dir Relative Path=Відносний шлях до директорії завантаження +Set proper URL template for Aria2-Manager to invoke File Manager to browse remote file via FTP/SMB/Others protocol.=Налаштуйте відповідний шаблон URL для Aria2-Manager, щоб викликати файловий менеджер для перегляду віддаленого файлу через FTP/SMB/інші протоколи. +Truncate the download dir absolute path from tail to head, N means truncation depth.=Обрізати абсолютний шлях до директорії завантаження з хвоста до голови, N означає глибину обрізки. +Filename if task contains one file, folder name if task contains more than one file.=Ім'я файлу, якщо завдання містить один файл, ім'я папки, якщо завдання містить більше одного файлу. +Example=Приклад +Activate=Активувати +Reset Settings=Скинути налаштування +Confirm Reset=Підтвердити скидання +Are you sure you want to reset all settings?=Ви впевнені, що хочете скинути всі налаштування? +Clear Settings History=Очистити історію налаштувань +Reset Aria2 Settings=Скинути налаштування Aria2 +Are you sure you want to clear all settings history?=Ви впевнені, що хочете очистити всю історію налаштувань? +Reset the current Aria2 settings (Will take effect after Aria2 restarts)?=Скинути поточні налаштування Aria2 (після перезапуску Aria2 набудуть чинності)? +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=Клавіші швидкого доступу +Keyboard Shortcuts And Multi-Select Mode=Швидкі клавіші та режим багатовибору +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=Перейти до сторінки деталей завдання +Start Retrying Task Manually=Розпочати повтор завдання вручну +Action After Retrying Task=Дії після повтору завдання +Navigate to Default Tasks Page=Перейти до сторінки стандартних завдань +Navigate to Downloading Tasks Page=Перейти до сторінки завантажуваних завдань +Stay on Current Page=Залишитися на поточній сторінці +Remove Old Tasks After Retrying=Видалити старі завдання після повтору +Confirm Task Removal=Підтвердити видалення завдання +Remove downloaded file(s) simultaneously=Одночасно видаляти завантажені файли +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 +Default Tasks Page=Сторінка стандартних завдань +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 +Enhanced Edition=Покращене видання +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 (Безпека) +Insecure 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=Налагодження RPC Aria2 +Aria2 RPC Request Method=Метод запиту RPC Aria2 +Aria2 RPC Request Parameters=Параметри запиту RPC Aria2 +Aria2 RPC Response=Відповідь RPC Aria2 +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, оскільки цей браузер не відповідає мінімальним вимогам до зберігання даних. +Install Aria2 Manager=Встановити Aria2 Manager +Aria2 Manager is not installed, go to Alex Recommends channel for more information?=Aria2 Manager не встановлено, перейдіть на канал "Alex Recommends" для отримання додаткової інформації? +Download via Browser=Завантажити через браузер +Confirm to download multiple URLs from Browser simultaneously?=Підтвердьте завантаження кількох URL-адрес одночасно через браузер? +Aria2 is disconnected, All tasks will be downloaded via Browser. Invalid URL will be ignored.=Aria2 відключено, всі завдання будуть завантажені через браузер. Недійсні URL будуть ігноровані. + +[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.file.corrupted=Вказаний файл ".torrent" пошкоджений або не має потрібної інформації для aria2. +magnet.uri.bad=Вказане magnet посилання неправильне. +option.bad=Невірне налаштування. +server.overload=Віддалений сервер перевантажений і не може обробити поточний запит. +rpc.request.parse.failed=Не вдалося обробити RPC запит. +checksum.failed=Не вдалося перевірити контрольну суму файлу. + +[languages] +English=англійська +French=французька +Italian=італійська +Japanese=японська +Korean=корейська +Russian=російська +Simplified Chinese=спрощений китайський +Traditional Chinese=традиційний китайський +Ukrainian=українська + +[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=потрібна версія aria2 v{{version}} або вище +requires.aria2-enhanced-edition=потрібна розширена версія aria2 (постачена через Aria2 Manager версії Microsoft Store) +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=відлагодження (Debug) +info=звичайний (Info) +notice=загальний (Notice) +warn=попередження (Warn) +error=помилка (Error) +adaptive=адаптивний +epoll=epoll +falloc=falloc +feedback=зворотний зв'язок +geom=геометрія +inorder=по черзі +kqueue=kqueue +poll=poll +port=порт +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 або 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=встановіть контрольну суму. Формат значення: 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=aria2 обмежує максимальну кількість з'єднань на кожен сервер до 16. Якщо ви хочете використовувати більше з'єднань, вам потрібно адаптувати 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*SIZE байт. Наприклад, якщо розмір файлу 20 МБ, а SIZE дорівнює 10 МБ, aria2 розіб'є файл на 2 частини [0-10 МБ) і [10 МБ-20 МБ] і використовуватиме 2 джерела для завантаження (якщо --split >= 2). Якщо SIZE дорівнює 15 МБ, оскільки 2*15 МБ > 20 МБ, 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=кількість з'єднань для завантаження. Якщо надано більше URI адрес, ніж N, використовуються лише перші N адрес, інші використовуються як резервні. Якщо URI адреси менше за N, ці адреси будуть використовуватись багато разів, щоб утримувати N одночасних з'єднань. Кількість з'єднань для одного сервера обмежена параметром --max-connection-per-server. +stream-piece-selector.name=алгоритм вибору частини потоку +stream-piece-selector.description=встановлює алгоритм вибору частин для HTTP/FTP завантажень. Частини — це фіксовані сегменти для паралельного завантаження. +timeout.name=тайм-аут +timeout.description= +uri-selector.name=алгоритм вибору URI +uri-selector.description=встановлює алгоритм вибору URI. Доступні значення: "по черзі", "зворотний зв'язок" і "адаптивний". Якщо встановлено "по черзі", URI використовуються в порядку їхнього появи. Якщо встановлено "зворотний зв'язок", aria2 вибирає сервер з найкращою швидкістю завантаження серед доступних URI. +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 відправляється лише тоді, коли сервер вимагає цього. Якщо встановлено "ні", запит буде надсилатися завжди. +http-no-cache.name=вимкнути кешування +http-no-cache.description=додано заголовок Cache-Control: no-cache і Pragma: no-cache, щоб уникнути кешування контенту. +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=зберігає cookies у форматі Mozilla/Firefox (1.x/2.x)/Netscape. Якщо файл вже існує, він буде перезаписаний. Також будуть збережені cookies з терміном дії "0", що вказує на закінчення сесії. +use-head.name=використовувати метод HEAD +use-head.description=використовує метод HEAD при першому запиті до HTTP сервера. +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 активних завдання, і одне з них переходить в режим роздачі, то воно буде виключено з кількості завантажуваних (кількість стане 2), і наступне завдання в черзі розпочнеться. +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=Увімкнути функцію локального виявлення вузлів. Якщо завантаження є приватним torrent, навіть якщо цей параметр увімкнено, aria2 не використовуватиме цю функцію. +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 у приватних мережах. +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=Якщо встановлено "Так", перевірка хешу файлів буде проводитися перед початком роздачі, після того як завершиться перевірка цілісності файлів і завантаження. Якщо ви хочете перевіряти файли тільки у разі їх пошкодження або незавершеного завантаження, встановіть "Ні". Цей параметр діє лише для BT-завдань. +bt-load-saved-metadata.name=Завантажити збережені метадані +bt-load-saved-metadata.description=При завантаженні через magnet, спробуйте завантажити файли метаданих, збережені через параметр --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=Встановлює мінімальний рівень шифрування для вибору методів шифрування, які відповідають заданому рівню. +bt-prioritize-piece.name=Пріоритетне завантаження +bt-prioritize-piece.description=Пробує завантажувати частини файлів з початку або кінця файлів в першу чергу. Це корисно для попереднього перегляду файлів. Можна вказати два ключових слова: head і tail, які слід розділити комою. +bt-remove-unselected-file.name=Видалити не вибрані файли +bt-remove-unselected-file.description=Після завершення BT-завдання видаляє з диска файли, які не були вибрані для завантаження. Для вибору файлів використовуйте параметр --select-file. +bt-require-crypto.name=Потрібне шифрування +bt-require-crypto.description=Якщо встановлено "Так", aria2 не прийматиме старі протоколи BitTorrent (\19BitTorrent протокол) і буде використовувати тільки зашифровані з'єднання. +bt-request-peer-speed-limit.name=Очікувана швидкість завантаження +bt-request-peer-speed-limit.description=Якщо загальна швидкість завантаження BT-завдання нижча за задану, aria2 тимчасово збільшить кількість з'єднань для покращення швидкості. +bt-save-metadata.name=Зберегти метадані торренту +bt-save-metadata.description=Зберігає метадані торренту у файл ".torrent". Цей параметр діє тільки для магнітних посилань. +bt-seed-unverified.name=Не перевіряти файли перед роздачею +bt-seed-unverified.description=Не перевіряти хеш кожної частини файлів, що були раніше завантажені. +bt-stop-timeout.name=Автоматичне зупинення при нульовій швидкості +bt-stop-timeout.description=Зупиняє завантаження, якщо швидкість завантаження залишатиметься 0 протягом встановленого часу. +bt-tracker.name=Сервер BT +bt-tracker.description=Список серверів BT, розділений комами. Ці адреси не будуть виключені за допомогою параметра --bt-exclude-tracker. +bt-tracker-connect-timeout.name=Час очікування підключення до сервера BT +bt-tracker-connect-timeout.description=Встановлює час очікування підключення до сервера BT (в секундах). +bt-tracker-interval.name=Інтервал між запитами до сервера BT +bt-tracker-interval.description=Встановлює інтервал між запитами до сервера BT (в секундах). +bt-tracker-timeout.name=Час очікування сервера BT +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 серверів. +dht-message-timeout.name=Час очікування повідомлень DHT +dht-message-timeout.description= +enable-dht.name=Увімкнути DHT (IPv4) +enable-dht.description=Увімкнути підтримку DHT для IPv4. Цей параметр також увімкне підтримку UDP серверів. +enable-dht6.name=Увімкнути DHT (IPv6) +enable-dht6.description=Увімкнути підтримку DHT для IPv6. Якщо торрент приватний, навіть за встановленого параметра "Так", aria2 не увімкне DHT. +enable-peer-exchange.name=Увімкнути обмін вузлами +enable-peer-exchange.description=Увімкнути розширення обміну вузлами. Якщо торрент приватний, навіть за встановленого параметра "Так", aria2 не увімкне цю функцію. +follow-torrent.name=Слідувати за вмістом торрент-файлу +follow-torrent.description=Якщо встановлено "Так" або "Тільки пам'ять", aria2 прочитає та завантажить файли, згадані в торрент-файлі після завершення завантаження торрент-файлу. +listen-port.name=Порт прослуховування BT +listen-port.description=Встановлює TCP порт для прослуховування BT-завдань. +enable-pmap.name=Увімкнути UPnP порт мапінг +enable-pmap.description=Увімкнути автоматичний UPnP порт мапінг для BT-завдань і DHT. +max-overall-upload-limit.name=Максимальна глобальна швидкість завантаження +max-overall-upload-limit.description=Встановлює максимальну швидкість глобального завантаження (в байтах на секунду). +max-upload-limit.name=Максимальна швидкість завантаження +max-upload-limit.description=Встановлює максимальну швидкість завантаження для кожного завдання. +peer-id-prefix.name=Префікс ID вузла +peer-id-prefix.description=Встановлює префікс для ID вузла в BT. +peer-agent.name=Агент Peer +peer-agent.description=Встановлює рядок для версії клієнта при виконанні BT розширеного рукостискання. +seed-ratio.name=Мінімальне співвідношення поширення +seed-ratio.description=Встановлює співвідношення поширення. Завершить роздачу, коли співвідношення досягне цього значення. +seed-time.name=Мінімальний час роздачі +seed-time.description=Встановлює мінімальний час роздачі в хвилинах. +follow-metalink.name=Завантажити файли з Metalink +follow-metalink.description=Якщо встановлено "Так" або "Тільки пам'ять", aria2 завантажить файли, згадані в Metalink файлі після завершення завантаження цього файлу. +metalink-base-uri.name=Основний URI +metalink-base-uri.description=Встановлює основний URI для розбору відносних URI в Metalink файлі. +metalink-language.name=Мова +metalink-language.description= +metalink-location.name=Преферований розташування сервера +metalink-location.description=Місце розташування преферованого сервера. +metalink-os.name=Операційна система +metalink-os.description=Операційна система для завантаження файлів. +metalink-version.name=Номер версії +metalink-version.description=Номер версії файлу для завантаження. +metalink-preferred-protocol.name=Переважний протокол +metalink-preferred-protocol.description=Вказує переважний протокол для використання. Може бути встановлено на http, https, ftp або "none". Якщо встановлено "none", ця опція буде відключена. +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=Зберігати завантажені торрент-файли або файли 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 завжди намагатиметься відновити завантаження, і якщо це не вдасться, завантаження буде припинено. Якщо встановлено "ні", aria2 завантажить файл заново, якщо URI не підтримує відновлення або при досягненні максимального числа спроб відновлення. +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, файли не зберігаються автоматично під час завантаження, але зберігаються після завершення. +conditional-get.name=Умовне завантаження +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 +content-disposition-default-utf8.description=Обробляти рядки в заголовку "Content-Disposition" за допомогою кодування UTF-8 замість ISO-8859-1, наприклад, для імен файлів, але не для розширених імен файлів. +daemon.name=Увімкнути фоновий процес +daemon.description= +deferred-input.name=Відкладене завантаження +deferred-input.description=Якщо встановлено "так", aria2 не буде читати всі URI з файлу, вказаного параметром --input-file, при старті, а буде завантажувати їх по мірі необхідності. Це зменшує використання пам'яті при наявності великої кількості URI в файлі. Якщо встановлено "ні", всі URI будуть прочитані при старті. Параметр --deferred-input буде відключений при використанні -save-session. +disable-ipv6.name=Вимкнути IPv6 +disable-ipv6.description= +disk-cache.name=Кеш на диску +disk-cache.description=Увімкнути кешування на диску. Якщо встановлено 0, кеш буде вимкнено. Дані завантаження зберігаються в пам'яті та кешуються на диск, що зменшує кількість операцій введення-виведення на диску. Розмір кешу можна вказати в байтах, включаючи K або M (1K = 1024, 1M = 1024K). +download-result.name=Результат завантаження +download-result.description=Ця опція змінює формат виведення результату завантаження. Якщо встановлено "за замовчуванням", виводиться GID, статус, середня швидкість завантаження та шлях/URI. Якщо є кілька файлів, виводиться тільки шлях/URI першого файлу. Якщо встановлено "повний", виводяться GID, статус, середня швидкість завантаження, прогрес і шлях/URI для кожного файлу. +dscp.name=DSCP +dscp.description=Налаштування значення DSCP для пакунків BT у QoS. Цей параметр встановлює лише біт DSCP в полі TOS пакунка IP. +rlimit-nofile.name=Максимальна кількість відкритих дескрипторів файлів +rlimit-nofile.description=Встановіть м'яке обмеження для кількості відкритих дескрипторів файлів. Ця опція активується лише за таких умов: а. система підтримує це (posix). б. обмеження не перевищує жорстке обмеження (hard limit). в. вказане обмеження вище поточного м'якого обмеження. Це еквівалентно встановленню 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 до завершення виділення. Якщо ваша система не підтримує функцію 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=Встановіть максимальну кількість результатів завантаження, які можуть зберігатися в пам'яті. Результати завантаження включають завершені/помилкові/видалені завантаження. Результати зберігаються в черзі з принципом 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= +optimize-concurrent-downloads.name=Оптимізувати кількість одночасних завантажень +optimize-concurrent-downloads.description=Оптимізує кількість одночасних завантажень залежно від доступної пропускної здатності. aria2 використовує раніше обчислену швидкість завантаження через правило N = A + B Log10 (швидкість у Мбіт/с), щоб визначити кількість одночасних завантажень. Параметри A і B можна змінювати через параметри, розділяючи їх двокрапкою. Значення за замовчуванням (A=5, B=25) дозволяють здійснювати зазвичай 5 одночасних завантажень на мережі 1Mbps, і 50 на мережі 100Mbps. Кількість одночасних завантажень не може перевищувати максимальне значення, визначене параметром --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=Зберігати помилки та незавершені завдання в зазначений файл при виході. Ви можете повторно завантажити його за допомогою опції --input-file під час перезапуску aria2. Якщо ви хочете, щоб виведення було стиснуте в GZip, додайте розширення .gz до імені файлу. Зверніть увагу, що метадані завантажень, доданих за допомогою RPC методів aria2.addTorrent() та aria2.addMetalink(), не будуть збережені в файлі. +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=Завершити програму через вказаний час (в секундах). Якщо встановити в 0, ця опція буде вимкнена. +truncate-console-readout.name=Обрізати вивід на консоль +truncate-console-readout.description=Обрізати вивід на консоль в одну стрічку. \ No newline at end of file diff --git a/ui/ariang/langs/zh_Hans.txt b/ui/ariang/langs/zh_Hans.txt index 86f66fe..19a40a4 100644 --- a/ui/ariang/langs/zh_Hans.txt +++ b/ui/ariang/langs/zh_Hans.txt @@ -377,9 +377,14 @@ checksum.failed=文件校验失败. [languages] English=英语 +French=法语 +Italian=意大利语 +Japanese=日语 +Korean=韩语 +Russian=俄语 Simplified Chinese=简体中文 Traditional Chinese=繁体中文 -Italian=意大利语 +Ukrainian=乌克兰语 [format] longdate=YYYY年MM月DD日 HH:mm:ss diff --git a/ui/ariang/langs/zh_Hant.txt b/ui/ariang/langs/zh_Hant.txt index fade119..ebe1154 100644 --- a/ui/ariang/langs/zh_Hant.txt +++ b/ui/ariang/langs/zh_Hant.txt @@ -378,9 +378,14 @@ checksum.failed=檔案校驗失敗. [languages] English=英語 +French=法語 +Italian=義大利語 +Japanese=日語 +Korean=韓語 +Russian=俄語 Simplified Chinese=簡體中文 Traditional Chinese=繁體中文 -Italian=義大利語 +Ukrainian=烏克蘭語 [format] longdate=YYYY年MM月DD日 HH:mm:ss